Closed yonizim closed 2 years ago
The root cause had to do with an old implementation of clone_expression
that was not updated to the "pyomo4" expression rules. This was actually fixed on main a little over two weeks ago (PR #2143), and will be available in the next Pyomo release (not scheduled yet, but likely before the end of the month).
Summary
Lets look at a model with an objective which consists of nested summed expression. This expression is created using clone_expression command. Solving it with any solver fails, with the following error message:
AttributeError: 'SumExpression' object has no attribute 'fixed'
Steps to reproduce the issue
A simple script which demonstrates the problem.
If we would replace the objective expression with the following equivalent line:
new_expr = sum(2*vars_encoding_dict[id(model.x[i])] for i in model.x)
the solver terminates successfully.Error Message
Information on your system
Pyomo version: 6.1.2 Python version: 3.8.6 Operating system: MacOSX 10.1.5.7 (Catalina) How Pyomo was installed (PyPI, conda, source): pypi Solver (if applicable): cplex_direct
Additional information