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 (4.76 KB)

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

```
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 KB)

-Michael