Forum Discussion
FICO
3 years agoCommunity Manager
What does it mean when the parameter XPRS_MIPINFEAS takes the value -1?
Printing getparam("XPRS_MIPINFEAS") produces "-1". What does this mean?
FICO
3 years agoCommunity Manager
Thank you Daniel,
I am calling this function from cb_preintsol, which, in its turn, is in tree_cut_gen.
In principle I want to understand if cb_preintsol is triggered every time that an integer solution is found. (I have the impression that sometimes "cb_node" identifies that the current solution is integer, but then cb_preintsol is not triggered; and vice-versa).
This is why in cb_preintsol I start recovering the LP solution and check myself if its binary variables take integer values. After this is when I see the -1 value for the XPRS_MIPINFEAS parameter with the statement
writeln('is_int is ... ', is_int, ' parameter XPRS_MIPINFEAS is ...', getparam("XPRS_MIPINFEAS")
I am adding the beginning of the code of my cb_preintsol procedure (until the write statement), as well as the tree_cut_gen procedure.
Thanks again,
Elena
procedure cb_preintsol(isheur:boolean, cutoff:real)
declarations
my_tipo: integer
my_corte: linctr
my_corteid: integer
que_index: integer
end-declarations
writeln("ENTERS preintsol, node: ", getparam("XPRS_nodes"), "ncortes: ", ncorte)
ncorte:=0
returned:=false
is_int:=true
forall(i in N1) bary(i):=getsol(y(i))
forall(i,k,r in N1)barz(i,k,r):=getsol(z(i,k,r))
forall(i in N1| bary(i)>eps) do
if(1-bary(i)>eps) then
is_int:=false
writeln(' y fraccional: i=', i, ' bary(i)=', bary(i))
break
else
forall(k,r in N1|barz(i,k,r)>eps) do
if(1-barz(i,k,r)>eps) then
is_int:=false
writeln('z fraccional, ', i, ' ', k, ' ' , r, ' barz(i,k,r)=', barz(i,k,r))
break
end-if
end-do
end-if
end-do
writeln('is_int is ... ', is_int, ' parameter XPRS_MIPINFEAS is ...', getparam("XPRS_MIPINFEAS"))
...
*****************************************************
procedure tree_cut_gen
setparam("XPRS_CUTSTRATEGY", 0) ! Disable automatic cuts
setparam("XPRS_PRESOLVE", 0) ! Switch presolve off
setparam("XPRS_EXTRAROWS", 5000) ! Reserve extra rows in matrix
feastol:= getparam("XPRS_FEASTOL") ! Get the zero tolerance
setparam("zerotol", feastol * 10) ! Set the comparison tolerance of Mosel
setcallback(XPRS_CB_CM, "cb_node")
setcallback(XPRS_CB_PREINTSOL, "cb_preintsol")
end-procedure
Related Content
Related Content
Error with Knitro tolerance parameters
Years ago, I used Knitro tolerance parameters XKTR_PARAM_OPTTOL and XKTR_PARAM_FEASTOL successfully. Now (FICO Xpress Mosel 64-bit v6.4.4, FICO Xpress v9.3.0), there seems to be an issue. setparam...2 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum7 unread comments7 unread0Views0likes7CommentsParameter Threads
Hi, I'm using Fico Xpress and I have a question about the parameter THREADS. According to the documentation, THREADS > 0 means the "number of threads to use". Let suppose THREADS = 4. In this ca...7 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum2 unread comments2 unread0Views0likes2Comments
