[Scip] Get linear constraint to corresponding row

Markus Kruber markus.kruber at rwth-aachen.de
Wed Apr 2 10:42:54 CEST 2014


Hi Gerald,

thanks for the quick response.

 We are working on the separation of zerohalf cuts in branch-and-price and
we want to implement this in GCG. Therefore, we extended SCIP's zerohalf
separator. At the moment we store for each zerohalf cut the corresponding
coefficients of the lprows which were used to create the zerohalf cut. We
want to use this information in the pricing problem in order to include the
zerohalf cuts correctly in the branch-price-and-cut procedure.

The problem is that in GCG we only calculate a variable's coefficients
corresponding to the constraints and not to the rows of the master
problem. This
is why it would be helpful to have the constraints corresponding to the
rows that were used to create a zerohalf cut. But maybe we can access this
information by using SCIPgetRowLinear() and getting the corresponding
coefficient of the row. If our problem only contains linear constraints
(which it does since the master problem in GCG only constains linear
constraints), each row corresponds to one linear constraint and this should
work. Do you agree with that?

Regards,
Markus


2014-04-01 9:06 GMT+02:00 Gerald Gamrath <gamrath at zib.de>:

>  Dear Markus,
>
> there is no such method in SCIP. The reason for this is, that in a general
> CIP setting, there is no one-to-one correspondence between constraints and
> rows. An "and" constraint, for example can add multiple rows to get a
> tighter relaxation of the constraint in the LP. The knapsack constraint
> handler, on the other hand, separates knapsack cover cuts, so generates
> multiple rows as well, even if the initial LP relaxation is just one row.
> Even more, a constraint handler could also separate cuts based on more than
> one constraint of its type.
>
> Therefore, there is no general method for this. "SCIPgetRowLinear" is
> implemented in the linear constraint handler, which knows at that point
> that it creates exactly one row for each constraint and therefore can
> return the row.
>
> What was it you wanted to do? Perhaps you can just work on the row (you
> can get the columns there and also get the variable for a column by
> "SCIPcolGetVar") or work directly on the linear constraints?
>
> Best,
> Gerald
>
> Am 31.03.2014 19:13, schrieb Markus Kruber:
>
>  Dear all,
>
>  I have given a row in my LP which belongs to a linear constraint. Now I
> am looking for a method which returns me this linear constraint.
> I already have found the method "SCIPgetRowLinear". In my understanding
> the other direction.
>
>  Best regards,
>  Markus
>
>
> _______________________________________________
> Scip mailing listScip at zib.dehttp://listserv.zib.de/mailman/listinfo/scip
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20140402/fe373257/attachment.html>


More information about the Scip mailing list