integer solution
#1
when running a model, it ends in an integer solution. How can I turn this into an optimal solution? Where should I start to look into in order to achieve this?
Reply
#2
Welcome to the ETSAP Forum!

TIMES is normally solved as an LP, and so I guess you are using some of the MIP extensions: lumpy investments (DSC) or discrete unit commitment (DUC)?

"Integer solution" probably refers to a MIP solution not proven optimal.  To make sure that the solution is optimal, you should set the MIP optimality gap tolerance to zero.  You can do it in GAMS or in the solver option file.  Under VEDA, you can find the GAMS Options section in the Control Panel, and there the OPTCR setting, which stands for the relative optimality gap tolerance.  Putting zero (0) there should be sufficient.  The default value is 0.1 in GAMS, meaning that a 10% gap to the calculated best possible solution is sufficient for termination.
Reply
#3
(21-06-2019, 08:44 PM)Antti-L Wrote: Welcome to the ETSAP Forum!

TIMES is normally solved as an LP, and so I guess you are using some of the MIP extensions: lumpy investments (DSC) or discrete unit commitment (DUC)?

"Integer solution" probably refers to a MIP solution not proven optimal.  To make sure that the solution is optimal, you should set the MIP optimality gap tolerance to zero.  You can do it in GAMS or in the solver option file.  Under VEDA, you can find the GAMS Options section in the Control Panel, and there the OPTCR setting, which stands for the relative optimality gap tolerance.  Putting zero (0) there should be sufficient.  The default value is 0.1 in GAMS, meaning that a 10% gap to the calculated best possible solution is sufficient for termination.


Dear Antti,

 I am running just LP (using barrier), no DSC or DUC,  but I see from the DOS run screen that indeed MIP is started, I do not know why. And in my options screen OPTCR is gray-ed out. So I cannot set a zero unless I activate DSC or DUC.
Reply
#4
Ok, that sounds a bit strange then.  Confused

Do you perhaps happen to have some NCAP_DISC or NCAP_SEMI attributes defined in the model run?
Because VEDA normally uses the DSCAUTO switch, specifying any NCAP_DISC/NCAP_SEMI would indeed automatically activate MIP solution. But that's basically the only explanation that I can now imagine for you having MIP solution without DSC or DUC.
Reply
#5
dear Antti,

thanks for the hint - there is indeed a NCAP_SEMI in the model I received. I will ask why that is.
thanks for your help :-) It's been a while since I used TIMES after being at the origin of it in my ETSAP time, I 've "grown up" with MARKAL.
kind regards
Koen
Reply
#6
Thanks, that must be the reason for the unexpected "integer solution".

If the model has been designed to be run always with NCAP_SEMI, you can then just activate DSC and set OPTCR in the Control Panel, or you can set OPTCR in the RUN file template (Option optcr=0.0; ).

But if you want to run the model as an LP formulation, I think it would be best to move the NCAP_SEMI definitions into a scenario file, which will be included in the run only when you want to run the model with the MIP formulation.
Reply
#7
(22-06-2019, 08:38 PM)Antti-L Wrote: Thanks, that must be the reason for the unexpected "integer solution".

If the model has been designed to be run always with NCAP_SEMI, you can then just activate DSC and set OPTCR in the Control Panel, or you can set OPTCR in the RUN file template (Option optcr=0.0; ).

But if you want to run the model as an LP formulation, I think it would be best to move the NCAP_SEMI definitions into a scenario file, which will be included in the run only when you want to run the model with the MIP formulation.


Dear Antti,

many thanks for your advice and help - I really appreciate it.
Koen
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)