1

I have a MINLP model which includes binary variables, linear objective function, and linear and nonlinear constraints. Nonlinear constraints are coded as following:

Loc1(s,t,ieq)$(tt(s,t) AND ORD(t)<NTS(s)) .. ABS((1-exp(-K*sum(i$iieq(s,t,ieq,i),X(s,t,i))))-(1-exp(-K*sum(i$iieq(s,t+1,ieq,i),X(s,t+1,i)))))=L=0.1;
Loc2(s,t,ieq)$(tt(s,t) AND ORD(s)<CARD(s) AND ORD(t)=NTS(s)) .. ABS((1-exp(-K*sum(i$iieq(s,t,ieq,i),X(s,t,i))))-(1-exp(-K*sum(i$iieq(s+1,'1',ieq,i),X(s+1,'1',i)))))=L=0.1;

s, t, i, and ieq are sets and tt(s,t) and iieq(s,t,ieq,i) are subsets of the aforementioned sets. NTS(s) is a parameter and X(s,t,i) is the decision variable.

No feasible solution was found for the MINLP model by all the common MINLP solvers. So, I've solved the RMINLP model first, and then immediately solved the MINLP model with BARON solver. There was optimal solution for the RMINLP model,

** Optimal solution. Reduced gradient less than tolerance.

but the MINLP model was still infeasible.

EXIT: Maximum Number of Iterations Exceeded. NLP0014I 3 FAILED 63.055607 3000 39.887 Cbc0006I The LP relaxation is infeasible or too expensive

Bonmin finished. No feasible solution found

When I checked out the .lst file, 'INFES=...' was written in front of the one of nonlinear constraints:

Loc1(3,1,20).. - (8.99476238049235)*X(3,1,32) + (7.99476238048063)*X(3,2,35) =L= 0.1 ; (LHS = 0.100000000001171, INFES = 1.17147958000885E-12 ****)

When I ignore the nonlinear constraints, the linear model is solved by CPLEX without any problem. I'm sure that the model is implemented correctly in GAMS according to its formulation. But I don't know what's wrong with my model that doesn't have a feasible solution.

Someone could help me with my problem?

ouflak
  • 2,458
  • 10
  • 44
  • 49
nkh7293
  • 11
  • 3
  • Never, never, never use ABS() in an MINLP/NLP model. NLP solvers typically assume smoothness. I think you cannot claim this model is implemented correctly. – Erwin Kalvelagen Dec 05 '21 at 14:50
  • Thank you so much for your help. I knew that abs() might make it difficult for the solver to find the solution, but I thought Baron could deal with it. I've read about alternatives for abs(), but it's still unclear for me how to treat with abs() in my model. – nkh7293 Dec 05 '21 at 17:35
  • Actually, I meant my codes are matched with my formulation in terms of indexing. However, there might be some imperfections in my mathematical model. – nkh7293 Dec 05 '21 at 18:00
  • There is much confusion here. Baron is a global solver (strictly speaking Baron does not work with abs(x) but with sqrt(x^2)). But the output you show is for Bonmin. Absolute values can be reformulated with standard reformulations from MIP modeling (such as variable splitting). I never leave absolution function in my models: it is just asking for trouble. – Erwin Kalvelagen Dec 05 '21 at 18:09
  • I also want to mention that it is quite possible that the RMINLP has a feasible solution but the MINLP is infeasible, This is comparable to a MIP model that is infeasible but the relaxation is feasible. – Erwin Kalvelagen Dec 05 '21 at 18:49
  • Thank you so much. I've started using gams for a couple of months and I really have no idea why bonmin is shown in the output. – nkh7293 Dec 09 '21 at 07:51
  • As you adviced, I eliminated abs() by reformulating, but the model was still infeasible. So, I decided to remove the exp() function and only the arguments of exp() remained, and I solved the MIP model and its solution was very closed to what I expected from solving the nonlinear version. then, I used this solution as a starting point for solving MINLP, and it worked, but the solution of MIP model was still better. So, I decided to use the solution of MIP model as an approximate solution. – nkh7293 Dec 09 '21 at 07:52

0 Answers0