[SCIP] Upgrading of linear constraints to a "special" constraint handler?

Stefan Vigerske svigerske at gams.com
Wed Aug 12 10:44:39 CEST 2020


Hi,

also constraints that are created via the C-API during problem creation 
stage are upgraded to SetPPC or Knapsack, if possible. The LP file 
reader and the SCIP shell also just use the C-API.
The upgrade happens during presolve and only in the transformed problem 
(the internal problem representation that SCIP works on and feels free 
to modify) and only if constraint isn't marked as do-not-upgrade or 
modifiable. Maybe some other flags are relevant, too; if you use 
SCIPcreateConsBasicLinear, then flags should be set automatically such 
that upgrades should happen if the structure of the constraint allows.

Using the type-specific methods has little performance advantage, since 
the structure detection and upgrade can be skipped. But those are quite 
cheap, too.
But if your constraints are modifiable, but you know that your 
modifications will preserve the constraint type, my guess is that you 
should create them with the specialized type in the beginning, since 
otherwise the upgrade would be skipped (cons_linear doesn't know what 
modifications are planned).

The specialized constraint handlers may also do propagation and presolve 
a bit faster. There might be more, others know that better.

Stefan


On 8/11/20 9:20 PM, Franzen, Christian wrote:
> Hi SCIP-Team.
> 
> 
> When solving a MIP using SCIP's console and just reading from an LP file, I see in the statistics that constraints are automatically detected to be of some special type like SetPPC or Knapsack. However, when using the C-API to create my problem and adding constraints via SCIPcreateConsLinear() these constraints will not be automatically upgraded to SetPPC or Knapsack constraints. Is this by intention or do I miss something?
> 
> 
> Would it be beneficial within a branch-and-price-and-cut solver to use the type specific create methods like SCIPcreateConsKnapsack() or SCIPcreateConsSetcover()? My understanding is that the type specific constraint handlers offer separation of cuts, but that is something that can not be used within in a branch-and-price method. Are there any other benefits of the more specific constraints compared to the general linear constraints?
> 
> 
> Regards
> 
> Christian
> 
> 
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
> 



More information about the Scip mailing list