Skip to content

SCIP direct / persistent not compatible with Constraint.Feasible #3976

@bknueven

Description

@bknueven

Summary

Using Constraint.Feasible cause scip_direct and scipt_persistent to crash.

Steps to reproduce the issue

# example.py
from pyomo.environ import *

m = ConcreteModel()
m.x = Var(bounds=(0,1))
m.c = Constraint(expr=Constraint.Feasible)
m.o = Objective(expr=m.x)

s = SolverFactory("scip_direct")
s.solve(m)

Error Message

Traceback (most recent call last):
  File "D:\Users\knueven1\Software\egret-int\failing_pyomo_model.py", line 9, in <module>
    s.solve(m)
    ~~~~~~~^^^
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\contrib\solver\common\base.py", line 638, in solve
    results: Results = super().solve(model)
                       ~~~~~~~~~~~~~^^^^^^^
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\contrib\solver\solvers\scip\scip_direct.py", line 115, in solve
    scip_model, solution_loader, has_obj = self._create_solver_model(model, config)
                                           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\contrib\solver\solvers\scip\scip_direct.py", line 223, in _create_solver_model
    self._add_constraints(cons)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\contrib\solver\solvers\scip\scip_direct.py", line 206, in _add_constraints
    self._add_constraint(con)
    ~~~~~~~~~~~~~~~~~~~~^^^^^
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\contrib\solver\solvers\scip\scip_direct.py", line 249, in _add_constraint
    scip_expr = self._expr_visitor.walk_expression(con.expr)
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\core\expr\visitor.py", line 274, in walk_expression
    result = self._process_node(root, RECURSION_LIMIT)
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\core\expr\visitor.py", line 377, in _process_node_general
    return self.exitNode(node, data)
           ~~~~~~~~~~~~~^^^^^^^^^^^^
  File "D:\Users\knueven1\AppData\Local\miniforge3\envs\naerm\Lib\site-packages\pyomo\contrib\solver\solvers\scip\base.py", line 279, in exitNode
    raise NotImplementedError(f'unrecognized expression type: {nt}')
NotImplementedError: unrecognized expression type: <class 'pyomo.core.expr.relational_expr.TrivialRelationalExpression'>

Information on your system

Pyomo version: 6.10.1
Python version: 3.13.14
Operating system: Windows
How Pyomo was installed (PyPI, conda, source): PyPI
Solver (if applicable): SCIP

Additional information

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions