[SCIP] delaying pricing

Maher, Stephen S.J.Maher at exeter.ac.uk
Mon Jul 20 08:44:44 CEST 2020


Hi James,

There is no way within the default SCIP methods that will enable you to achieve what you want. However, it is easily possible to delay the pricing until you have added a sufficient number of cuts.

The most "SCIP" way of achieving this is the following:

First, you should define a new boolean variable in your pricer data "pricingactive" to indicate whether the pricing should be performed. This will be a parameter for your pricer, which you add to the SCIP parameters using the function "SCIPaddBoolParam", with the default value FALSE. In pricerredcost, while pricingactive is FALSE, then exit the pricing with the result SCIP_SUCCESS. This will indicate that the LP is solved and separation can be performed.

Second, in you constraint handler, when you have reached a sufficient number of cuts, then you set the parameter for "pricingactive" to TRUE. It is important that you change this parameter in a call to the separation routine that adds at least one cut. The addition of a cut will ensure that the LP is resolved and the pricing loop is performed.

The less "SCIP" way would not use a new parameter. You still need the variable "pricingactive" in your pricer data, but you can write a public function in your pricer that changes this variable value. You would then include the header for your pricer in your constraint handler. The second step from above is still required, but using your new public function.

Cheers,

Steve

________________________________
From: Scip <scip-bounces at zib.de> on behalf of James Cussens <james.cussens at york.ac.uk>
Sent: 17 July 2020 17:58
To: scip at zib.de <scip at zib.de>
Subject: [SCIP] delaying pricing

CAUTION: This email originated from outside of the organisation. Do not click links or open attachments unless you recognise the sender and know the content is safe.

Hi SCIPers,

I am working on a branch-cut-and-price SCIP project. I have a constraint handler that adds lots of cuts (using a fairly large initial set of variables). I would like to delay pricing until quite a few rounds of cutting have taken place since I use the dual values of these cuts in pricing and I suspect that having lots of cuts in place will both speed up the pricing process and reduce the number of potential variables with negative reduced cost.

In short I don't want to use the initial LP for pricing but the LP I get after adding many useful valid inequalities (my cuts).

Is there a way of controlling when pricing happens in this way?

James

--
James Cussens
Room CSE/239
Dept of Computer Science
University of York
York YO10 5GE, UK
Tel    +44 (0)1904 325371
http://www.cs.york.ac.uk/~jc<https://eur03.safelinks.protection.outlook.com/?url=http:%2F%2Fwww.cs.york.ac.uk%2F~jc&data=02%7C01%7CS.J.Maher%40exeter.ac.uk%7C02541c5985234fb9ee5c08d82a733ad7%7C912a5d77fb984eeeaf321334d8f04a53%7C0%7C1%7C637306021680169041&sdata=dzDrDmws17YVZJqa0bV%2BtoIn7u87EjMNwKpdiezAIZY%3D&reserved=0>
http://www.york.ac.uk/docs/disclaimer/email.htm<https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.york.ac.uk%2Fdocs%2Fdisclaimer%2Femail.htm&data=02%7C01%7CS.J.Maher%40exeter.ac.uk%7C02541c5985234fb9ee5c08d82a733ad7%7C912a5d77fb984eeeaf321334d8f04a53%7C0%7C1%7C637306021680179037&sdata=ZaSWCmToqx5bfcLCzHmA88CXDRTBCtO2OUNC9xjCSAY%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20200720/54410e24/attachment.html>


More information about the Scip mailing list