<div dir="ltr">Hi Stephen,<div><br></div><div>Thanks for that. I was looking for a non-hacky way of doing this and I think your first option is the neatest. Thanks for pointing out that the last separation round before pricing kicks in must add at least one cut - I would have missed that. One way of deciding that a sufficient number of cuts have been added is to observe that my constraint handler has not generated any in a separation round. So in this case I guess I will have to throw in a dummy cut to ensure that pricing happens.</div><div><br></div><div>James</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 20 Jul 2020 at 07:44, Maher, Stephen <<a href="mailto:S.J.Maher@exeter.ac.uk">S.J.Maher@exeter.ac.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi James,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
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.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
The most "SCIP" way of achieving this is the following:</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
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.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
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.</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
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.<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Cheers,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Steve<br>
</div>
<div>
<div id="gmail-m_-6354373513622230162appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-6354373513622230162divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Scip <<a href="mailto:scip-bounces@zib.de" target="_blank">scip-bounces@zib.de</a>> on behalf of James Cussens <<a href="mailto:james.cussens@york.ac.uk" target="_blank">james.cussens@york.ac.uk</a>><br>
<b>Sent:</b> 17 July 2020 17:58<br>
<b>To:</b> <a href="mailto:scip@zib.de" target="_blank">scip@zib.de</a> <<a href="mailto:scip@zib.de" target="_blank">scip@zib.de</a>><br>
<b>Subject:</b> [SCIP] delaying pricing</font>
<div> </div>
</div>
<div>
<div style="background-color:rgb(255,235,156);width:100%;border-style:solid;border-color:rgb(156,101,0);border-width:1pt;padding:2pt;font-size:10pt;line-height:12pt;font-family:Calibri;color:black;text-align:left">
<span style="color:rgb(156,101,0);font-weight:bold">CAUTION:</span> 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.</div>
<br>
<div>
<div dir="ltr">
<div>Hi SCIPers,</div>
<div><br>
</div>
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.
<div><br>
<div>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).  </div>
<div><br>
</div>
<div>Is there a way of controlling when pricing happens in this way?</div>
<div><br>
</div>
<div>James<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
<div>James Cussens</div>
<div>Room CSE/239<br>
Dept of Computer Science<br>
University of York                                        <br>
York YO10 5GE, UK</div>
<div>Tel    +44 (0)1904 325371</div>
<div><a href="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" target="_blank">http://www.cs.york.ac.uk/~jc</a><br>
<a href="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" target="_blank">http://www.york.ac.uk/docs/disclaimer/email.htm</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>James Cussens</div><div>Room CSE/239<br>Dept of Computer Science<br>University of York                                        <br>York YO10 5GE, UK</div><div>Tel    +44 (0)1904 325371</div><div><a href="http://www.cs.york.ac.uk/~jc" target="_blank">http://www.cs.york.ac.uk/~jc</a><br><a href="http://www.york.ac.uk/docs/disclaimer/email.htm" target="_blank">http://www.york.ac.uk/docs/disclaimer/email.htm</a></div></div></div></div></div>