[SCIP] Scaling the OF and differences between primal bound and resulting OF value

Stefan Vigerske svigerske at gams.com
Thu Mar 18 10:12:54 CET 2021


Hi,

the solution you write with "write solution" shouldn't be included in 
AMPL. I'm even surprised that AMPL can read SCIP solution files.
The "write amplsol" command is to write the solution file for AMPL. In 
this file, values should be in the order that is expected by AMPL.
AMPL puts nonlinear variables before linear ones, while SCIP puts 
discrete variables before continuous, so orders are different. But SCIP 
solution files also include variable names, so the files actually look 
much different.
If you think that there may be a bug in the AMPL interface, then 
submitting some files that reproduce this at the bug submission page 
(https://www.scipopt.org/bugs.php) could be useful.

Stefan

On 3/17/21 7:29 PM, Oreste Fecarotta wrote:
> Hi Stefan,
> 
> Sorry to bother you again.
> I’ve followed your instructions and created a .nl file with AMPL and 
> used the interactive shell. I managed to get a file .sol containing the 
> solution found after a certain time limit. I used both the command 
> "write solution filename.sol" and "write amplsol". Then I included the 
> .sol in AMPL but the displayed solution seems to be not reasonable, as 
> the variables assume values out of their own bounds, and the OF is 
> completely different from and unreasonably much better than the one 
> shown by SCIP. There is likely an error in the assignment of the 
> solution to the corresponding variables: I suppose that the order of the 
> variables is confused and the values are misplaced while writing the 
> .sol file, but I am not able to understand where the problem basically 
> lies.
> 
> Could you please help me?
> 
> Thank you in advance
> 
> Oreste Fecarotta
> PhD in Hydraulic Engineering
> Assistant Professor in Hydraulic Engineering
> University of Naples "Federico II"
> Via Claudio 21, 80125 Napoli (ITALY)
> - ScopusID:36503779200  
> <https://www.scopus.com/authid/detail.uri?authorId=36503779200>
> - ORCID:0000-0003-0471-8821  <https://orcid.org/0000-0003-0471-8821>
> - WoSID:P-7250-2016  
> <https://publons.com/researcher/1354138/oreste-fecarotta/>
> - web:Docenti unina  <www.docenti.unina.it/oreste.fecarotta>
> - Ord.Ing.NA Sez.A 20328
> - tel: +39-081-7683462
> - fax: +39-081-1683456
> 
> Il 12/03/2021 18:02, Stefan Vigerske ha scritto:
>> Hi,
>>
>> if SCIP solved with a different objective function than AMPL (because 
>> SCIP treats very small numbers as 0, but AMPL doesn't), then the 
>> primal bound reported in the SCIP log can be different than the one 
>> calculated by AMPL.
>>
>> Stefan
>>
>> On 3/12/21 1:35 PM, Oreste Fecarotta wrote:
>>> Dear Stefan,
>>> thank you for your fast reply. If I understand, the behavior of SCIP 
>>> with small numbers (x=0 if -10^-9<=x<=10^-9), explains why it 
>>> differently performs as I use a different number to scale the OF.
>>> Nevertheless, I do not understand why this implies that the primal 
>>> bound is different from the final solution. E.g., during the 
>>> calculation, it shows a primal bound equal to -1.54E-07; then reaches 
>>> the time limit; finally, the printed OF is -1.04E-07, which is very 
>>> close to the guess point, without significant improvements.
>>>
>>> Thank you for your help,
>>>
>>> Oreste Fecarotta
>>> PhD in Hydraulic Engineering
>>> Assistant Professor in Hydraulic Engineering
>>> University of Naples "Federico II"
>>> Via Claudio 21, 80125 Napoli (ITALY)
>>> - ScopusID:36503779200 
>>> <https://www.scopus.com/authid/detail.uri?authorId=36503779200>
>>> - ORCID:0000-0003-0471-8821 <https://orcid.org/0000-0003-0471-8821>
>>> - WoSID:P-7250-2016 
>>> <https://publons.com/researcher/1354138/oreste-fecarotta/>
>>> - web:Docenti unina <www.docenti.unina.it/oreste.fecarotta>
>>> - Ord.Ing.NA Sez.A 20328
>>> - tel: +39-081-7683462
>>> - fax: +39-081-1683456
>>>
>>> Il 11/03/2021 17:53, Stefan Vigerske ha scritto:
>>>> Hi,
>>>>
>>>> SCIP treats numbers within 1e-9 of zero as zero. If you divided your 
>>>> objective by 1e12, this would mean that objective coefficients that 
>>>> were within [-1000,1000] before are now treated as 0 by SCIP.
>>>>
>>>> I don't think that there is anything to automatically print the best 
>>>> solution while solving or to write all solutions to a file at the 
>>>> end, but if you let AMPL generate a .nl file and then run scipampl 
>>>> on this .nl file with additional option -i, i.e.,
>>>>   /path/to/scipampl /path/to/myproblem.nl -i
>>>> then you will get into the interactive shell of SCIP 
>>>> (https://www.scipopt.org/doc/html/SHELL.php).
>>>> In the shell, there is a "display solutions" command that you can 
>>>> use to print all solutions that were found after a solve to the screen.
>>>>
>>>> Stefan
>>>>
>>>> On 3/11/21 12:24 PM, Oreste Fecarotta wrote:
>>>>> Hi,
>>>>> I'm using SCIP with AMPL, and I have a large problem involving 
>>>>> thousands of variables and contraints.
>>>>> I found that I can get some good results
>>>>> 1) by setting heuristics to aggressive and
>>>>> 2) Dividing the objective function by a large number (let me say 
>>>>> 10^12)
>>>>>
>>>>> With my surprise, the improvement in the primal bound that is shown 
>>>>> during the calculation is lost as I print the OF value once I reach 
>>>>> the time limit. I cannot understand why this happens. Furthermore, 
>>>>> this does not happen if I divide the OF by a smaller number (i.e. 
>>>>> 10^6). Unfortunately, in the latter case, I cannot get the same 
>>>>> improvement in the solution.
>>>>>
>>>>> Could you please help me?
>>>>> Is there any option to print the best solution found during the 
>>>>> calculation?
>>>>> Or to store the whole solution pool?
>>>>> I found the option gams/dumpsolutions for GAMS, but I'm using AMPL...
>>>>>
>>>>> Thank you,
>>>>>
>>>>> Oreste Fecarotta
>>>>> PhD in Hydraulic Engineering
>>>>> Assistant Professor in Hydraulic Engineering
>>>>> University of Naples "Federico II"
>>>>> Via Claudio 21, 80125 Napoli (ITALY)
>>>>> - ScopusID:36503779200 
>>>>> <https://www.scopus.com/authid/detail.uri?authorId=36503779200>
>>>>> - ORCID:0000-0003-0471-8821 <https://orcid.org/0000-0003-0471-8821>
>>>>> - WoSID:P-7250-2016 
>>>>> <https://publons.com/researcher/1354138/oreste-fecarotta/>
>>>>> - web:Docenti unina <www.docenti.unina.it/oreste.fecarotta>
>>>>> - Ord.Ing.NA Sez.A 20328
>>>>> - tel: +39-081-7683462
>>>>> - fax: +39-081-1683456
>>>>>
>>>>> Il 20/01/2021 09:31, Franzen, Christian ha scritto:
>>>>>>
>>>>>> Hi Ambros.
>>>>>>
>>>>>>
>>>>>> Thanks for your reponse and sorry for answering late. I have 
>>>>>> "switched off" presolving by including no presolver plugins, hence 
>>>>>> I only got the presolving code from the propagators and constraint 
>>>>>> handlers. That seems to work properly. I started to include one 
>>>>>> presolver plugin after the other and there seems to be a problem 
>>>>>> with "domcol". It fixed a lot of variables and afterwards my 
>>>>>> problem is reported to be unbounded. I did not test all presolver 
>>>>>> plugins yet, but I will try to test all of them by the end of this 
>>>>>> week. Any idea concerning "domcol"?
>>>>>>
>>>>>>
>>>>>> Regards
>>>>>> Christian
>>>>>>
>>>>>> ------------------------------------------------------------------------ 
>>>>>>
>>>>>> *Von:* Scip <scip-bounces at zib.de> im Auftrag von Ambros Gleixner 
>>>>>> <gleixner at zib.de>
>>>>>> *Gesendet:* Mittwoch, 13. Januar 2021 21:15
>>>>>> *An:* scip at zib.de
>>>>>> *Betreff:* Re: [SCIP] After stopping pricing and doing restart, 
>>>>>> model is becoming unbounded during presolve?
>>>>>> Hi Christian,
>>>>>>
>>>>>> Strange indeed.  Have you tried to turn off presolving? Does it still
>>>>>> happen?  Have you tried to successively activate individual 
>>>>>> presolvers
>>>>>> to see when it starts failing?
>>>>>>
>>>>>> Best,
>>>>>> Ambros
>>>>>>
>>>>>>
>>>>>> Am 04.01.21 um 17:10 schrieb Franzen, Christian:
>>>>>> > Hi Scip Team.
>>>>>> >
>>>>>> >
>>>>>> > Thanks to the help of Gregor, I managed to make SCIP stop 
>>>>>> pricing after
>>>>>> > some iterations and doing a restart on the reduced master without
>>>>>> > pricing. Unfortunately, I am facing some really strang behaviour.
>>>>>> > Sometime it happens, that my model (for that I already have found a
>>>>>> > feasible solution), is reported to be unbound. I wrote the 
>>>>>> corresponding
>>>>>> > LP files before and after presolving to disk and I see that some
>>>>>> > variable bounds vanished, which seems to be the reason for the
>>>>>> > unboundness. Furthermore, some of the objective coefficients 
>>>>>> changed
>>>>>> > their sign. Any ideas how or why that is happening during 
>>>>>> presolving?
>>>>>> >
>>>>>> >
>>>>>> > Regards
>>>>>> >
>>>>>> > Christian
>>>>>> >
>>>>>> >
>>>>>> > P.S.: I attach the SCIP log for one of these runs.
>>>>>> >
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > Scip mailing list
>>>>>> > Scip at zib.de
>>>>>> > https://listserv.zib.de/mailman/listinfo/scip 
>>>>>> <https://listserv.zib.de/mailman/listinfo/scip>
>>>>>> >
>>>>>> _______________________________________________
>>>>>> Scip mailing list
>>>>>> Scip at zib.de
>>>>>> https://listserv.zib.de/mailman/listinfo/scip 
>>>>>> <https://listserv.zib.de/mailman/listinfo/scip>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Scip mailing list
>>>>>> Scip at zib.de
>>>>>> https://listserv.zib.de/mailman/listinfo/scip
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Scip mailing list
>>>>> Scip at zib.de
>>>>> https://listserv.zib.de/mailman/listinfo/scip
>>>>>
>>>>
>>>> _______________________________________________
>>>> Scip mailing list
>>>> Scip at zib.de
>>>> https://listserv.zib.de/mailman/listinfo/scip
>>>
>>>
>>>
>>> _______________________________________________
>>> Scip mailing list
>>> Scip at zib.de
>>> https://listserv.zib.de/mailman/listinfo/scip
>>>
>>
> 
> 
> 
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
> 



More information about the Scip mailing list