How can I find the global optimal solution for the following MINLP problem.

Solver related questions
Post Reply
Asadujjaman
User
User
Posts: 16
Joined: 3 years ago

How can I find the global optimal solution for the following MINLP problem.

Post by Asadujjaman »

Hi,

I have attached at MINLP problem. I am using license version of LINDO and LINDO GLOBAL to solve the problem. However, I got the local solutions every time. It also shows the following message "*** could not allocate enough memory". For better understanding I have also attached a screenshot of the output (attached figure 1).
How can I allocate enough memory?
How can I get the global optimum solution? Please suggest based on the LINDO and LINDO GLOBAL solver as I only have the license of these solvers.
Is there any way to minimize the computational time?
What is the lower bound and UPPER BOUND of the objective function (attached figure 2)?

Thanks in advance.

Regards
Asadujjaman
Example.gms
program file
(4.76 KiB) Downloaded 232 times
GAMS solution
GAMS solution
Output with UPPER and LOWER BOUND
Output with UPPER and LOWER BOUND
User avatar
bussieck
Moderator
Moderator
Posts: 1033
Joined: 7 years ago

Re: How can I find the global optimal solution for the following MINLP problem.

Post by bussieck »

It's a shame that you don't have other MINLP solvers available. For example, BARON solves this in no time:

Code: Select all

  Iteration    Open nodes         Time (s)    Lower bound      Upper bound
*         1             1             5.06     5093.56          5139.88    
          1             1             6.38     5093.56          5095.02    
          5             0            10.77     5093.56          5094.07    

 Calculating duals

                         *** Normal completion ***            

 Wall clock time:                    10.88
 Total CPU time used:                10.77

 Total no. of BaR iterations:       5
 Best solution found at node:       1
 Max. no. of nodes in memory:       2
 
 All done
===========================================================================

Solution      = 5093.56180998214  found at node 1
Best possible = 5094.0712171
Absolute gap  = 0.509407117861883  optca = 1E-9
Relative gap  = 9.99999992445891E-5  optcr = 0.0001
But you can easily linearize your model since the only non-linearity you have is exp(intvar). Your intvar has values between 0 and deadline (35), so a very limited range. Hence you can represent the intvar as a summation of binary variables (b is a set of 0..35) intvar = sum(b, binvar(b)*b.val); sum(b, binvar(b))=1. With that you can linearize exp(intvar) as sum(b, binvar(b)*exp(b.val)) and instead of a MINLP have a MIP which LINDO solves quickly to global optimality. I have attached the modified code.
Example.gms
(5.08 KiB) Downloaded 231 times
-Michael
Post Reply