[SCIP] Error: constraint is not linear

mahdi noorizadegan m.noorizadegan at gmail.com
Sun Jun 30 08:49:17 CEST 2019


Dear Gerald,

Thanks for your reply.
The .lp file is not created at all for SCIPwriteTransProblem().
I am not sure if it is a coding issue. The problem is similar to VRP.
Here is the piece of the code.

In the below code the last line before Return SCIP_OKAY; (highlighted in
green) in " SCIP_RETCODE ObjPricerGTE::AddImpPaths" is printed but the line
after  "return AddImpPaths(scip, Paths)" (highlighted in red)  is not.

When I add " SCIP_CALL( SCIPwriteTransProblem(scip, "GTEPricing.lp", "lp",
FALSE) ); " to the adding variable procedure i.e. " SCIP_RETCODE
ObjPricerGTE::AddImpPaths", the .lp file is created.
As you see there is no if  condition that can affect the output.


Regards,
Mahdi

  SCIP_Real reduced_cost =FindShortestPath(pi, lambda, alpha, Paths);
   if (  reduced_cost>0.001 )  {
           return AddImpPaths(scip, Paths);
       cout<<"\n reduced_cost";
   }
   SCIP_CALL( SCIPwriteTransProblem(scip, "GTEPricing.lp", "lp", FALSE) );

.
.
.
SCIP_RETCODE ObjPricerGTE::AddImpPaths(
   SCIP*                 scip,
    vector<list<list<int> > >&      ImpPaths
   ) const{
.....
  cout<<"\n gen LP";
            return SCIP_OKAY;
   }

On Fri, 28 Jun 2019 at 01:26, Gerald Gamrath <gamrath at zib.de> wrote:

> Dear Mahdi,
>
> I am sorry, but I did not really understand what is going wrong, you need
> to give more detail. When do you call SCIPwriteTransProblem()? It does not
> write anything or are variables missing in the .lp file?
>
> If I understand you correctly, you have a function that adds the priced
> variables and that should write the problem, which does not happen, and
> also some output that you would expect which should be printed at the end
> of the function is not printed. I can only guess that you have some if
> conditions in the function that return earlier and thus, you do not reach
> the end of the function. But I cannot help you debug your code. You could
> compile in debug mode and run it with gdb to set break points and go
> step-by-step to see what happens, if you cannot identify it just by looking
> at the code.
>
> Best,
> Gerald
>
> On 26.06.19 08:31, mahdi noorizadegan wrote:
>
> Hi Gerald,
>
> I have a pricing procedure which finds variables with negative reduced
> cost.
> Once they are found they are added to the master problem. However, the .lp
> file via SCIPwriteTransProblem is not created after addition. It is set to
> create .lp file after addition of variables.
>
> I do cout "check" at the end of the variable adding function (before
> return SCIP_OKAY) and also after call for this function. While it leaves
> the function and starts the pricing procedure, it does not print the check
> point after the var adding function. Therefore no .lp file is created.
> Could you please let me know what I have done wrong?
>
> Regards,
> Mahdi
>
>
> On Sat, 25 May 2019 at 12:58, Gerald Gamrath <gamrath at zib.de> wrote:
>
>> Dear Mahdi,
>>
>> even if you create a model with only linear constraints, SCIP might
>> upgrade them in presolving to specialized linear constraints like knapsack
>> or set cover constraints. SCIP does not do this if you marked a constraint
>> to be modifiable, which you should have done if priced variables will
>> potentially be added to the constraint. On the other hand, if you will not
>> add any priced variables to the constraint, you don't need to mark it to be
>> modifiable, but you should also not need its dual value.
>>
>> I would suggest you check what type the constraint has via
>> SCIPconshdlrGetName(SCIPconsGetHdlr(cons)) either in gdb or in your code.
>>
>> Best,
>> Gerald
>>
>> On 22.05.19 14:45, mahdi noorizadegan wrote:
>>
>> Hello,
>>
>> I am implementing an IP using branch and price method.
>> When I want to get the dual value of constraints which are all linear, I
>> get the following error
>>
>> [src/scip/cons_linear.c:17033] ERROR: constraint is not linear
>>
>> What can be wrong?
>>
>> Looking forward to hearing from you,
>> Regards,
>> Mahdi
>>
>> _______________________________________________
>> Scip mailing listScip at zib.dehttps://listserv.zib.de/mailman/listinfo/scip
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190630/74d5abb7/attachment.html>


More information about the Scip mailing list