<div dir="ltr"><div>Dear Jakob,<br><br>Thank you for your quick response.  <br><br></div><div>First on the LP error messages: I made a small mistake in the formulation of the added constraints, so this is solved. It however does not solve the strange behaviour of not entering a pricing round again after adding constraints/cuts.<br><br></div><div>On the constraints adding: Actually I use the constraint handler to handle constraints belonging to branching decisions. So i actually 'misuse'  the sepalp call to add additional valid inequalities to the problem. I set the initial flag to true as you mentioned, so that could not cause the strange behaviour. <br><br>I implemented it now by adding rows instead of constraints, and added them by    SCIP_CALL( SCIPaddCut(scip_, NULL, row, FALSE, &infeasible) ); <br></div><div>This gives me a segfault:<br><br>==25272== Process terminating with default action of signal 11 (SIGSEGV)<br>==25272==  Access not within mapped region at address 0x40<br>==25272==    at 0x4F6760: SCIPconshdlrIncNAppliedCuts (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br>==25272==    by 0x5ED1E0: sepastoreApplyCut (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br>==25272==    by 0x5EE751: SCIPsepastoreApplyCuts (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br>==25272==    by 0x60C283: priceAndCutLoop.isra.14 (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br>==25272==    by 0x60ED50: propAndSolve.isra.16 (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br>==25272==    by 0x60F9F9: SCIPsolveCIP (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br>==25272==    by 0x5E2DE2: SCIPsolve (in /home/p267375/Github/bpc/SCIP_project/bin/vrp.linux.x86_64.gnu.opt.cpx)<br><br><br></div><div>So I thought it is better to create an Sepa Class and implement the   execlp method to do the same thing. I add them as constraints and this seems to work :))<br></div><div>I by the way intended to use constraints instead of cuts since I need the dual values of the added inequalities for my pricing process.<br><br></div><div>Cheers,<br><br></div><div>Albert<br></div><div><br><br><br><br><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 16, 2017 at 9:09 AM, Jakob Witzig <span dir="ltr"><<a href="mailto:witzig@zib.de" target="_blank">witzig@zib.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Albert,<br>
<br>
when you implement the SCIP_DECL_CONSSEPA callback for your branch-price-and-cut approach you could think about adding a cut (SCIP_ROW) instead of a constraint (SCIP_CONS). Within SCIP there is are slight differences between both types, e.g., a constraint can be propagated and a cut not. When you decide to add cuts instead of constraints, the result pointer needs to be set to SCIP_SEPARATED.<br>
<br>
Moreover, you should make sure that your constraints (in your current implementation) enter the LP, i.e., set initial flag to TRUE.<br>
<br>
The warnings are printed by SCIP (see lp.c) and just say that your LP is numerically unstable and the LP solver struggles with solving them. You should have a look at your formulation and the constraints/cuts you generate.<br>
<br>
Cheers,<br>
Jakob<div><div class="h5"><br>
<br>
Am 14.01.2017 um 22:06 schrieb Schrotenboer, A.H.:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hello all,<br>
<br>
I'm using the c++ wrapper classes of scip to implement a branch & price<br>
& cut algorithm. So in each node of the branch and bound tree i do<br>
column generation. After that is finished, i want to add cuts (valid<br>
inequalities actually). I did that by implementing the function of my<br>
constraint handler: SCIP_DECL_CONSSEPALP(ObjConshd<wbr>lrMSPRP::scip_sepalp),<br>
where ObjConshdlrMSPRP denotes my own Constraint Handler class.<br>
<br>
After it has added constraints to the LP via multiple calls of<br>
SCIP_CALL(SCIPaddCons(scip_, cons)), where 'cons' is a simple linear<br>
constraint, it  sets ' *result = SCIP_CONSADDED'.<br>
<br>
After the cuts are added, it should redo the column generation process,<br>
since there are possibly new columns of negative reduced costs that<br>
should enter the LP relaxation. This however does not happen. I get the<br>
following strange calls of (i think cplex)<br>
<br>
(node 2) numerical troubles in LP 21 -- solve again with dual simplex<br>
without scaling<br>
(node 2) numerical troubles in LP 22 -- solve again with dual simplex<br>
without presolving<br>
(node 2) numerical troubles in LP 23 -- solve again with dual simplex<br>
with tighter primal and dual feasibility tolerance<br>
(node 2) numerical troubles in LP 24 -- solve again from scratch with<br>
dual simplex<br>
<br>
Does someone know why this happens and/or why my pricing problem is not<br>
entered again at the same node?<br>
<br>
Thanks in advance,<br>
<br>
Albert Schrotenboer<br>
<br>
<br>
<br></div></div>
______________________________<wbr>_________________<br>
Scip mailing list<br>
<a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a><br>
<a href="http://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">http://listserv.zib.de/mailman<wbr>/listinfo/scip</a><br>
<br>
</blockquote>
<br>
<br>
-- <br>
Jakob Witzig<br>
<br>
Zuse Institute Berlin (ZIB)<br>
<br>
Division Mathematical Optimization and Scientific Information<br>
Research Group Mathematical Optimization Methods<br>
<br>
Takustrasse 7<br>
14195 Berlin<br>
<br>
Tel. : +49 (0)30 84185-416<br>
Fax  : +49 (0)30 84185-269<br>
email: <a href="mailto:witzig@zib.de" target="_blank">witzig@zib.de</a><br>
</blockquote></div><br></div>