[Scip] Interpretation of solution file from SCIP: missing variables and

Ramón Casero Cañas rcasero at gmail.com
Thu Feb 27 15:30:40 CET 2014


Fair enough :)

Thanks for the info. SCIP is a large code base, any insights are welcome!

On 27 February 2014 10:18, Stefan Vigerske <stefan at math.hu-berlin.de> wrote:
> Hi,
>
>
> On 02/27/2014 01:40 AM, Ramón Casero Cañas wrote:
>>
>> Dear all,
>>
>> So thanks to your help and the documentation, I have been able to
>> write my problem to a PIP file, call the SCIP binary from Matlab
>> (scip-3.0.2.linux.x86_64.gnu.opt.spx), solve the problem until it
>> finds 1 valid solution, write the solution to a file, and read it back
>> into Matlab.
>>
>> I have variables
>>
>> x1
>> y1
>> z1
>> ...
>> x4574
>> y4574
>> z4574
>>
>> both in the objective function and constraints.
>>
>> SCIP runs for a while, finds a solution, and writes its to a file. It
>> seems that I have variables missing in the solution
>>
>> solution status: solution limit reached
>> objective value:                    -760.711552889581
>> x1                                   0.44337718267988   (obj:0)
>> y1                                  -1.11537963003733   (obj:0)
>> z1                                  0.640066367478129   (obj:0)
>> x2                                  0.635593926577552   (obj:0)
>> y2                                  0.405953492189133   (obj:0)
>> z2                                   1.13206100660573   (obj:0)
>> ...
>> x20                                 0.225420591151844   (obj:0)
>> y20                                  1.33025644597009   (obj:0)
>> z20                                  0.17304145468582   (obj:0)
>> y21                                  1.09858400598118   (obj:0)
>> x22                                 0.042773405539517   (obj:0)
>> y22                                  1.05348001958397   (obj:0)
>> y23                                 0.715794911501469   (obj:0)
>> ...
>>
>> Note how e.g. x21, z21 and z22 are missing here (and they are not
>> elsewhere in the file either). Is this expected behaviour?
>
>
> Only the variables with nonzero value in the solution are printed.
>
>
>> In addition, the solutions file has at the end lines like:
>>
>> quadobjvar                          -760.711552889581   (obj:1)
>> nlreform0                           0.820888812661168   (obj:0)
>> nlreform1                           0.777248902182625   (obj:0)
>> nlreform2                          -0.189610104867685   (obj:0)
>> nlreform3                         -0.0728986988897996   (obj:0)
>> ...
>>
>> What are those for? I did an online search, but could only find where
>> nlreform is coded in SCIP, not what it means.
>
>
> Well, the code is the explanation for their meaning ;-).
>
> The nlreform variables are added during presolve when the problem is
> reformulated. These reformulations introduce a number of auxiliary variables
> (nlreform0, nlreform1, ...), which are required to setup a linear relaxation
> of your problem.
> There is currently no way to suppress printing the values of these
> variables.
>
> The quadobjvar variables is added by the PIP reader in SCIP to represent
> your quadratic objective function. As SCIP supports only linear objective
> functions, it moves a nonlinear objective function f(x) into a constraint
> f(x) <= z (in case of minimization), and then uses 1*z as objective
> function.
>
> Hope that helps,
> Stefan
>
>>
>> Best regards,
>>
>> Ramon.
>>
>



-- 
Dr. Ramón Casero Cañas

Oxford e-Research Centre (OeRC)
University of Oxford
7 Keble Rd
Oxford OX1 3QG

tlf     +44 (0) 1865 610739
web     http://www.cs.ox.ac.uk/people/Ramon.CaseroCanas
photos  http://www.flickr.com/photos/rcasero/



More information about the Scip mailing list