[SCIP] Undeclared Variables Used in the Constraints

Matthias Walter matthias at matthiaswalter.org
Fri Sep 18 08:51:43 CEST 2020


Hi Samuel,

I read your question differently than Ambros did: If you mean how an LP 
file that contains a variable t_0 not appearing in the bounds section 
shall be interpreted, then the answer is that such a variable has lower 
bound 0 and upper bound infinity by default, unless you specify 
different bounds in the Bounds section (or make it binary). Of course, 
adding bounds as explicit constraints also works, like t_0 >= 40 in your 
case.

Best,
Matthias

On 18.09.20 00:34, Ambros Gleixner wrote:
> Hi Samuel,
>
> This depends on the objective function coefficient of the variable in 
> relation to the coefficient of the variable in the constraint and the 
> sides of the constraint.
>
> Say the objective coefficient is nonnegative and the constraint is a 
> <= constraint.  Decreasing the variable always improves the objective 
> or leaves it unchanged.
>
> Now if the constraint coefficient is positive, then SCIP will fix the 
> variable at minus infinity, according to the fact that one can always 
> choose a sufficiently small, finite value to satisfy the constraint.
>
> If the constraint coefficient is negative, then it is best to set the 
> variable such that the inequality is tight.  This means performing a 
> multi-aggregation and is described in detail in Algorithm 10.4 of 
> Tobias Achterberg's thesis
>
> http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:0297-zib-11129
>
> To look at the code, see method dualPresolve() in cons_linear.c.
>
> Hope that helps.
>
> Best,
> Ambros
>
>
>
>
>
> Am 14.09.20 um 23:07 schrieb Samuel Jiménez Gil:
>> Hi all,
>> Hope you are well. I've done quite a few experiments trying to 
>> understand this question but I don't manage to understand the rationale.
>>
>> Do you know what SCIP does when you add an arbitrary constraint 
>> containing a variable which was not declared (free variable), and 
>> thus no bounds were provided?
>>
>> Example, (t_0 not declared):
>>
>> Minimize
>> 0
>> Subject To
>>   c1: i_0 + i_1 > 11
>>   c2: i_0 - 2 i_1 > -1
>>   c3: t_0 > 40
>> Bounds
>>   0 <= i_0 <= 1000
>>   0 <= i_1 <= 1000
>> End
>>
>> According to what I've seen t_0 could have any value and is 
>> ocassionally replaced by one of the declared variables.
>>
>> Many thanks in advance.
>>
>> Samuel.
>> Ph.D Candidate.
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
>>
>



More information about the Scip mailing list