You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If $x$ is represented by a fixed Var object in the implementation of this model, instead of, say, an immutable Param object, then the *.bar file obtained via the BARON writer seems to contain an incorrect representation of the "epigraph" constraints. More precisely, instead of the original epigraph constraints
$$(x - 4)^2 + (z_{i} - 1)^2 - t \leq 0, \qquad i = 0, 1$$
the BARON writer output actually represents
$$-(x - 4)^2 + (z_{i} - 1)^2 - t \leq 0, \qquad i = 0, 1$$
Since the Pyomo BARON solver interface (solvers.plugins.solvers.BARON) relies on the Pyomo BARON writer, solving the Pyomo model with BARON may yield an incorrect result. This issue may also affect the PyROS solver (contrib.pyros), which makes extensive use of models with fixed Var objects, if BARON is passed as a subsolver.
Steps to reproduce the issue
Script for building, writing, and solving the Pyomo model with $x=3.5, t = 0.55, u_0 = 9/8, u_1 = 13/10$:
Console output. Remains the same across different BARON executables (22.11.03, 23.1.5, 23.2.27, 23.3.11)
$ python example.pySolution with make_x_fixed_var=True: z0=1.5220538677594437 z1=1.7588178025829206 d0=0.0 d1=1.3529367712253249Solution with make_x_fixed_var=False: z0=1.5220538677594437 z1=1.547722557316334 d0=1.3570408625028816 d1=0.14667822677957854
BARON writer output model_with_fixed_var_True.bar. Notice the epigraph constraints (represented in file by s_igraph_con_1_ and s_igraph_con_4_ are inconsistent with the original model epigraph constraints.
BARON writer output: model_with_fixed_var_False.bar. Notice the epigraph constraints (represented in file by s_igraph_con_1_ and s_igraph_con_4_ are consistent with the original model epigraph constraints.
Summary
For fixed reals$x, t, u_0, u_1$ , consider the model
If$x$ is represented by a fixed
Var
object in the implementation of this model, instead of, say, an immutableParam
object, then the *.bar file obtained via the BARON writer seems to contain an incorrect representation of the "epigraph" constraints. More precisely, instead of the original epigraph constraintsthe BARON writer output actually represents
Since the Pyomo BARON solver interface (
solvers.plugins.solvers.BARON
) relies on the Pyomo BARON writer, solving the Pyomo model with BARON may yield an incorrect result. This issue may also affect the PyROS solver (contrib.pyros
), which makes extensive use of models with fixedVar
objects, if BARON is passed as a subsolver.Steps to reproduce the issue
Script for building, writing, and solving the Pyomo model with$x=3.5, t = 0.55, u_0 = 9/8, u_1 = 13/10$ :
Error Message
Console output. Remains the same across different BARON executables (22.11.03, 23.1.5, 23.2.27, 23.3.11)
BARON writer output
model_with_fixed_var_True.bar
. Notice the epigraph constraints (represented in file bys_igraph_con_1_
ands_igraph_con_4_
are inconsistent with the original model epigraph constraints.BARON writer output:
model_with_fixed_var_False.bar
. Notice the epigraph constraints (represented in file bys_igraph_con_1_
ands_igraph_con_4_
are consistent with the original model epigraph constraints.Information on your system
Pyomo version: 6.5.1dev0 #b2101fd
Python version: 3.9.13
Operating system: Ubuntu 20.04
How Pyomo was installed (PyPI, conda, source): source
Solver (if applicable): BARON
Additional information
The text was updated successfully, but these errors were encountered: