Page 1 of 1

MSNLP solver "stops" before running the algorithm

Posted: Thu Sep 24, 2020 9:16 pm
by tyuji
Hello,

I'm using the MSNLP solver of GAMS in Julia language. I'm running MSNLP for each sample of a data set, so
that the only difference between different runs is the objective function, that depends on the data sample.

For most samples, the algorithm runs normally. However, for some specific samples, the solver crashes even before
starting the algorithm iterations. In fact, it doesn't show any error notification, and just gets stuck indefinitely,
it keeps processing something, but the algorithm doesn't move (I've waited for a few hours). I don't know if it helps,
but I appended what is printed until the program "stops".

I know MSNLP does not work for some objective functions (for example, when the function derivative has discontinuities),
but in these cases the program breaks and notifies the error.

What can be the problem? Do I have to specify something else? Is it trying to evaluate the objective function or
something?

Thank you.

-----------------------------------------------------

[ Info: Updated GAMS model type: UNDEFINED -> NLP
--- Job moi.gms Start 09/24/20 15:59:44 32.2.0 rc62c018 WEX-WEI x86 64bit/MS Windows
--- Applying:
C:\GAMS\32\gmsprmNT.txt
--- GAMS Parameters defined
Input C:\Users\Ryuuji\AppData\Local\Temp\gams_jl_BVMsfY\moi.gms
ScrDir C:\Users\Ryuuji\AppData\Local\Temp\gams_jl_BVMsfY\225a\
SysDir C:\GAMS\32\
CurDir C:\Users\Ryuuji\AppData\Local\Temp\gams_jl_BVMsfY\
OptFile 1
LimRow 0
LimCol 0
SolPrint 0
SavePoint 1
SolveLink 5
Threads 1
Solver msnlp
GAMS 32.2.0 Copyright (C) 1987-2020 GAMS Development. All rights reserved
Licensee: xxxxxxxx
Community license for demonstration and instructional purposes only
--- Starting compilation
--- moi.gms(532) 3 Mb
--- Starting execution: elapsed 0:00:00.044
--- moi.gms(496) 4 Mb
--- Generating NLP model moi
--- moi.gms(499) 6 Mb
--- Reset Solvelink = 2
--- 1 rows 5 columns 5 non-zeroes
--- 9,206 nl-code 4 nl-non-zeroes
--- moi.gms(499) 4 Mb
--- Executing MSNLP (Solvelink=2): elapsed 0:00:00.092

Multi Start 32.2.0 rc62c018 Released Aug 26, 2020 WEI x86 64bit/MS Window

*** This solver runs with a community license. No commercial use.
Reading parameter(s) from "C:\Users\Ryuuji\AppData\Local\Temp\gams_jl_BVMsfY\msnlp.opt"
>> iteration_limit 5000
>> nlpsolver ipopt
>> max_solver_calls 5000
Finished reading from "C:\Users\Ryuuji\AppData\Local\Temp\gams_jl_BVMsfY\msnlp.opt"

MSMS Default Iteration Limit of 1000 OverRidden by Option File Value of 5000

MsNlp Local Nlp Solver = ipopt

MsNlp Termination Criteria:
Time Limit = 10000000000 (sec)
Limit on MsNlp Iterations (Trial Points) = 5000
Maximum Number of Local Solver Calls = 5000
Maximum Number Solver Calls with no
Improvement in Objective Value = 500
Maximum Number of Distinct Local Optima = 1000

Re: MSNLP solver "stops" before running the algorithm

Posted: Fri Sep 25, 2020 11:44 am
by Fred
Can you share the source file moi.gms?

Fred

Re: MSNLP solver "stops" before running the algorithm

Posted: Fri Sep 25, 2020 5:01 pm
by tyuji
Sure.
moi.gms
(56.78 KiB) Downloaded 423 times

Re: MSNLP solver "stops" before running the algorithm

Posted: Sat Sep 26, 2020 7:41 am
by bussieck
My bet is on Ipopt as the culprit. You could use the solver as an executable (add solvelink 2 to the msnlp.opt) and observe what process hangs. Moreover, it makes much more sense to use an active set solver like Conopt within MSNLP. MINLP is about restarts and an interior code (like Ipopt) and restarting are not a perfect match. The model is also tough. The restarts result in many bad function values. Conopt reports for many of the restarts:

Code: Select all

 ** A function value is very large or NaN (Not a Number).
    Add bounds to ensure that the function values are defined and bounded.
-Michael