0

I am working on a hydro unit-commitment optimization problem, which I am reproducing the results of a certain scientific article. I have double checked all the problem data and constraints, and everything seems to be fine. The goal is to use the Gurobi solver, which accuses the problem to be infeasible and is unable to solve the model. The suggestion was to use the IPOPT solver, it turns out to give me the correct objetive function value, even though the problem is also accused to be infeasible. I have identified which constraints is causing my model to be infeasible via Infeasible Irreducible System (IIS) Tool, the results written to the txt file are the following. How can I manage to make the model feasible, relaxing the constraints or anyhow, so I can solve with Gurobi and get the same results? If any other relevant information might be necessary to better understand the context please let me know, the model is actually quite big.

Model unknown_copy
\ LP format - for model browsing. Use MPS format to capture full model detail.
Minimize
 
Subject To
 constraints(1474): - 470 u(5_2_17) + w(5_2_17) <= 0
 constraints(1522): - 470 u(5_3_17) + w(5_3_17) <= 0
 constraints(1570): - 470 u(5_4_17) + w(5_4_17) <= 0
 constraints(2290): g(5_1_17) - 215 u(5_1_17) <= 0
 constraints(2561): g(5_1_17) + g(5_2_17) + g(5_3_17) + g(5_4_17) = 830
 constraints(9042): g(5_2_17) + 37.5685717831504 u(5_2_17)
   - 0.461258179047618 w(5_2_17) <= 30.60699513446293
 constraints(9138): g(5_3_17) + 37.5685717831504 u(5_3_17)
   - 0.461258179047618 w(5_3_17) <= 30.60699513446293
 constraints(9140): g(5_3_17) + 260.913290772527 u(5_3_17)
   - 0.197897437142857 w(5_3_17) <= 366.4855962350004
 constraints(9234): g(5_4_17) + 37.5685717831504 u(5_4_17)
   - 0.461258179047618 w(5_4_17) <= 30.60699513446293
 constraints(9236): g(5_4_17) + 260.913290772527 u(5_4_17)
   - 0.197897437142857 w(5_4_17) <= 366.4855962350004
Bounds
 g(5_1_17) free
 g(5_2_17) free
 g(5_3_17) free
 g(5_4_17) free
 w(5_2_17) free
 w(5_3_17) free
 w(5_4_17) free
Binaries
 u(5_1_17) u(5_2_17) u(5_3_17) u(5_4_17)
End here
Gzmrtz
  • 1
  • 2
  • Identifying what makes the model infeasible is sometimes difficult because all the constraints act together (obviously.) If you have a reference, I would plug in the values and then analyze the model to see where problems are. This is a reference: https://stackoverflow.com/questions/51044262/finding-out-reason-of-pyomo-model-infeasibility/70910431#70910431 – AirSquid Jun 25 '23 at 14:07
  • If you *know* which constraint you'd like to modify, as a start, you can just put a penalty variable on it to make it elastic and then add that variable (perhaps with some small weight) to the objective function to minimize the penalty – AirSquid Jun 25 '23 at 14:08
  • IPOPT is for continuous problems. – Erwin Kalvelagen Jun 25 '23 at 19:37
  • @AirSquid doing such tests seems to be impracticable, as you can see I have almost 10000 constraints and up to 3000 variables. – Gzmrtz Jun 26 '23 at 12:24

0 Answers0