[Scip] FARKAS COEFFICIENT
Ambros Gleixner
gleixner at zib.de
Thu Oct 30 19:53:42 CET 2014
Dear Diego,
Am 30.10.2014 um 19:32 schrieb dponce at us.es:
> Hello SCIP,
>
> The previous problem I had has been solved. Finally, I found a mistake
> in the code.
>
> Now, when the instance is not too small, my procedure is not working in
> some PRICERFARKAS. I found the function SCIPgetVarFarkasCoef(). Is this
> the slack of the associated dual constraint?
they should be something like +/- y^T A, where A is the constraint
matrix and y the Farkas ray.
> My variables are nonnegatives and usually its Farkas coefficient is
> nonpossitive. But sometimes I have found possitive Farkas coefficient.
> Is this possible?
Are they only slightly positive? This could easily happen due to
numerics. You should compare with SCIP's epsilon or feastol.
Ambros
>
> Thanks.
>
> Diego.
>
> El 24/10/2014 18:57, dponce at us.es escribió:
>
>> Dear Gerald,
>>
>> answered to your question, all my constraints are modifiable.
>>
>> I have checked all my constraints are contained in the LP and the
>> problem is infeasible. Let me explain in a different way from my
>> previous e-mail what is happening.
>>
>> In my problem x variables are added from the very begining and y
>> variables are the ones to add.
>>
>> My feasible region is Ay = 1 (u)
>>
>> -By >=-b (v)
>>
>> Cx -Dy = 0 (w)
>> where A,B,C,D>=0 b>0
>>
>> x,y>=0
>>
>> in a minimization problem and I guess SCIP is considering Min 0'x+0'y
>> problem since v Farkas multipliers are possitive.
>>
>> So my Farkas dual is Max u' -v'b +w'0
>>
>> w'C <= 0 (x)
>>
>> s.t. u'A-v'B -w'D <= 0 (y)
>>
>> v>=0
>>
>> For the first time I do not have y variables, so the primal is
>> infeasible and SCIP realizes and set my variable isfarkas to TRUE.
>> However, to solve the problem
>>
>> Max u' -v'b +w'0
>>
>> w'C <= 0 (x)
>>
>> v>=0
>>
>> I expect for instance w=0,v=0 and u_1+u_2+...+u_n=e99. So I'd add any
>> y_i variable with u_i*a_i>0, I'd see what is happening and so on until
>> feasibility.
>>
>> But what really is happening is that the solution of the sual farkas
>> is u_j=1 for some j and v_k=e99 for some k. Hence the objective
>> function is 1-b_k*e99=-e99 which is not logical solution for a
>> maximization problem. Are there any function to get the dual Farkas
>> objective? Just to verify.
>>
>> Finally, when I set x variables to binary, if I start with a feasible
>> solution, every time that I am in Farkas I do not add any new variable
>> and the node is closed. By the moment the solutions that I got are
>> correct-I have solved the problem by another approach-, but I can't
>> assure. I think if I solve the mistake for getting a first feasible
>> solution in the LP, it will be enough to assure well done my MILP
>> procedure.
>>
>> Best.
>>
>> Diego.
>>
>> El 24/10/2014 12:58, Gerald Gamrath escribió:
>>
>> Dear Diego,
>>
>> I have implemented a branch-and-price-procedure with a pricer
>> which seems working in the PRICERREDCOST. But in the instances
>> that it need to use PRICERFARKAS I am obtaining some farkas
>> multipliers with strange values, like -e99. Indeed this dual
>> variable should be nonnegative.
>>
>> this sounds strange. Can you please check with SCIPgetLPSolstat()
>> that the LP is really infeasible and with SCIProwIsInLP() that the
>> row corresponding to the constraint for which you get the dual
>> farkas multiplier is contained in the LP (you can get the row of a
>> linear constraint with SCIPgetRowLinear()). Did you mark the
>> constraint to be modifiable?
>>
>> Because of this problem, I would like to know if SCIP by
>> itself is able to close an infeasible node since the variables
>> fixed avoid any feasible solution *and how*.
>>
>> Yes, SCIP can detect the infeasibility of a node in the domain
>> propagation step. For example, if you have a constraint x + y = 1
>> and x and y were both fixed to 0, SCIP will detect the
>> infeasibility and cut off the node. However, this is only done if
>> the constraint was not marked to be modifiable, since otherwise
>> pricing might add more variables to the constraint and there might
>> still be feasible solutions with x = y = 0.
>>
>> My Farkas pricing is similar to the Reduced cost pricing whith
>> 0 in the coefficients of the objective function
>> and SCIPgetDualfarkasLinear() instead of SCIPgetDualsolLinear().
>>
>> This is how it should be.
>>
>> Best,
>> Gerald
>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de <mailto:Scip at zib.de>
>> http://listserv.zib.de/mailman/listinfo/scip
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
>
--
____________________________________________________________
Ambros M. Gleixner
Zuse Institute Berlin - Matheon - Berlin Mathematical School
http://www.zib.de/gleixner
More information about the Scip
mailing list