linopy icon indicating copy to clipboard operation
linopy copied to clipboard

Compute IIS if problem is infeasible for solver COPT

Open PeterKlein11 opened this issue 1 year ago • 0 comments

COPT has a python example of how to calculate the IIS to help debug infeasible solutions. It would be great to add this functionality to linopy.

Compute IIS if problem is infeasible

if model.status == COPT.INFEASIBLE:

Compute IIS

model.computeIIS()

Check if IIS is available

if model.hasIIS: # Print variables and constraints in IIS cons = model.getConstrs() vars = model.getVars()

print("\n======================== IIS result ========================")
for con in cons:
  if con.iislb or con.iisub:
    print('  {0}: {1}'.format(con.name, "lower" if con.iislb else "upper"))

print("")
for var in vars:
  if var.iislb or var.iisub:
    print('  {0}: {1}'.format(var.name, "lower" if var.iislb else "upper"))

# Write IIS to file
print("")
model.writeIIS('iis_ex1.iis')

PeterKlein11 avatar Oct 10 '24 10:10 PeterKlein11