[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