I have a MINLP model. I prefer to run the model as an exact mathematical program and not use metaheuristics unless I have to. I use GAMS to run the model but due to the large size of the problem and nonlinearity of the model GAMS is now unable to solve it.

One of the nonlinear constraints is Eq(1). (FS and H are continuous positive variables and the others are parametes.) I considered using F=1/H but it would make other constraints non-linear.

Then again H is always positive and must be non-zero so I suppose I can move it to the left side and write it as the Eq(2). Eq1&2 So are there any other ways to linearize this equation? if not can I linearize Eq(2)? How? Please help me.

asked 08 Sep '16, 17:13

Sherwin's gravatar image

accept rate: 0%

edited 08 Sep '16, 17:42

What solver(s) did you call from GAMS?

(09 Sep '16, 22:40) Mark L Stone

I checked DICOPT, SBB, OQNLP, COINOS, COINBONMIN and none of them could find a solution. The result says it's locally infeasible and reduced gradient less than tolerance. I couldn't use BARON since I have min, max functions. I think GAMS can't find the neighborhood of the optimal solution.

(10 Sep '16, 04:37) Sherwin

I'm confused. Have you found ANY feasible solution? Do you know if the problem is feasible? Have you tried KNITRO? If you haven't found a feasible solution, have you tried to find one for the continuous relaxation of your problem? If you have not found a feasible solution, have you tried to find a feasible solution for the problem which does not include the (only the one you showed?) nonlinear constraint? If you can't find feasible solution, have you converted the nonlinear constraint into a nonlinear least squares objective, and tried solving that problem subject to the remaining constraints?

(10 Sep '16, 07:52) Mark L Stone

I don't know where in your model the min/max functions which you say BARON won't accept are, but if they are only in the objective function, and you have not found any feasible solution, you could try using BARON just on the feasibility problem to see what it says (it's not 100% rigorous in assessing feasibility). Or run BARON to solve the nonlinear least squares problem I mentioned in my previous comment, and see how close the objective can be reduced to zero.

(10 Sep '16, 07:59) Mark L Stone

Yes, the problem is feasible and it has feasible solutions but the optimal solution can't be found since the solution space is so big. I didn't know about KNITRO, now that you mentioned I tried it but it starts from 0 to look for the solution but the variables are bounded and 0 is not even in the limit(I even set an initial point equal to 60 but it starts from 0) and like other solvers says the problem is infeasible.

(11 Sep '16, 07:50) Sherwin

I tried my best but I couldn't linearize the nonlinear constraints and if I just omit them, the result will be an unacceptable one since the two nonlinear constraints define my objective function as you see in the picture http://i.stack.imgur.com/lPgaa.png, Eq(1&2) show how I defined y as it's a binary variable. Eq(3) is FS as you I said earlier and m=Eq(4) is my objective function to maximize y and minimize FS and all the other constraints are linear.

(11 Sep '16, 08:02) Sherwin

Would you please tell me how can I use BARON just on the feasibility problem and how can I convert the objective into a nonlinear least square objective? and do you know any other ways to define y or linearize FS?

(11 Sep '16, 08:02) Sherwin

There's no value in nonlinear least squares problem now that I see that equation 3 is essentially just a place holder for a nonlinear objective function term (unless FS_j also appears in linear constraints). Don't linearize it - that's reality. Equations 1 and 2 night offer opportunity for improved formulation. I don't know how you enter them in GAMS and GAMS transforms to problem to solver. Is GAMS generating Big M constraints? Are the participating variables bounded? There is an option in BARON to find one or all feasible solutions - I don';t know whether/how that can be accessed from GAMS.

(11 Sep '16, 09:22) Mark L Stone

For feasibility problem, omit objective if allowed, or make it a constant, such as 0. As for starting point in KNITRO, you should be able to specify it, and if it is feasible, KNITRO should use it. It could possibly get into trouble later and declare local infeasibility. There are options in terms of how/whether constraints are observed as algorithm proceeds - changing from default might help. Also, you might be better off with Active-Set or SQP algorithm than interior point algorithm if having trouble with/maintaining feasibility.

(11 Sep '16, 09:29) Mark L Stone

If starting point is feasible but KNITRO says shifted starting point, and then says it is infeasible, I'm not sure, but I think in such case either turning off pre-solve or using Active-Set or SQP instead of interior point algorithm might avoid the problem.

(11 Sep '16, 09:30) Mark L Stone

Thank you about the FS constraint. You just ensured me that it can't be linearized. About the min/max constraint I just enter the exact equation in GAMS and it doesn't show the procedure it uses. GAMS doesn't even show the expanded form of constraints in results if it is a nonlinear one. I tried linearing the min/max constraint manually(Big M constraint), but it didn't work. About KNITRO I should say that I don't have any idea how to change the settings of it. So the last choice is to use (meta)heuristics and MATLAB, I guess. I can't thank you enough for your time and concern. Thanks a lot...

(11 Sep '16, 12:02) Sherwin

You might benefit from reading the GAMS documentation on KNITRO https://www.gams.com/help/index.jsp?topic=%2Fgams.doc%2Fsolvers%2Fknitro%2Findex.html . The options are listed and briefly discussed. Also KNITRO standalone documentation https://www.gams.com/help/index.jsp?topic=%2Fgams.doc%2Fsolvers%2Fknitro%2Findex.html .

(11 Sep '16, 12:12) Mark L Stone

Thank you soooo much.

(11 Sep '16, 12:14) Sherwin
showing 5 of 13 show 8 more comments

I don't believe that (2) is mathematically equivalent to (1), so that's a non-starter. Neither do I believe that (1) can be linearized. If the substitution \(F=1/H\) does muck up other constraints, then I suspect the best you can hope for is an approximation to the original constraint. You could do piecewise-linear approximations of \(1/H\) (for each combination of subscripts), using SOS2 variables. That would effectively turn the (approximate) problem into a mixed integer linear program. The large size you quoted doesn't bode well for how that will scale, though.


answered 09 Sep '16, 15:40

Paul%20Rubin's gravatar image

Paul Rubin ♦♦
accept rate: 19%

Thank you so much for your help and advice. It means a lot.

(09 Sep '16, 15:52) Sherwin
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 08 Sep '16, 17:13

Seen: 706 times

Last updated: 11 Sep '16, 12:14

OR-Exchange! Your site for questions, answers, and announcements about operations research.