-
Notifications
You must be signed in to change notification settings - Fork 273
Description
Hello,
I am working on a relatively large MINLP/MILP model using PySCIPOpt and the SCIP backend.
In some cases, SCIP reports:
SCIP Status : problem is solved [infeasible]
Solving Nodes : 0
(0 solutions)
But SCIP does not output any conflict set or IIS information, even when I enable conflict analysis options.
What I did
I tried enabling conflict analysis and disabling presolving:
model = Model()
model.setMinimize()
model.setParam("presolving/maxrounds", 0)
model.setParam("presolving/maxrestarts", 0)
model.setParam("conflict/enable", True)
model.setParam("display/verblevel", 5)
model.solveConcurrent()
The solver log becomes more verbose, but there is still no information about which constraints conflict.
The output ends with:
Presolving detected infeasibility
SCIP Status : problem is solved [infeasible]
I also tried calling methods mentioned in the SCIP C API documentation:
SCIPcomputeIIS()
SCIPgetConflictConss()
SCIPanalyzeConflict()
but in PySCIPOpt these functions do not exist, for example:
AttributeError: 'pyscipopt.scip.Model' object has no attribute 'getConflictConss'
Question
🔍 How can I obtain the conflicting set of constraints (IIS), or any conflict analysis output, using PySCIPOpt?
More specifically:
Does PySCIPOpt expose any API to:
compute IIS,
retrieve conflict constraints,
or print the conflicting subsystem?
If not, is there:
an equivalent Python-side method,
or a recommended workaround to inspect which constraints are responsible for infeasibility?
Is conflict analysis simply not supported through the current PySCIPOpt interface?
My model is several thousand linear constraints, so manually checking conflicts is not feasible.
Being able to retrieve an IIS or conflict set would be extremely helpful for debugging infeasible formulations.
Looking forward to your reply!
Thanks a lot!