Forum Discussion
FICO
10 years agoCommunity Manager
When does the LP status return problem status as "unsolved"?
Hi, I have an LP problem that does not find an optimal solution, but is also not infeasible or unbounded. The getparam("XPRS_LPSTATUS") query returns 7 (XPRS_LP_UNSOLVED).
Any pointers as to why and when this tends to happen would be immensely appreciated.
Many thanks in advance!
2 Replies
- FICOCommunity Manager
XPRS_LP_UNSOLVED is the return status when the LP solver fails to solve your problem due to numerical difficulties. This can happen if you are solving your problem with the Barrier solver and it fails to converge to a feasible and optimal solution. Normally, crossover would still be able to clean up after such a Barrier solve, but if you turn crossover off, Xpress would return the XPRS_LP_UNSOLVED status instead.
If you post the output log from the Xpress-Optimizer, it should be clearer which algorithm was used and why it stopped with this status. In Mosel you enable output logging by calling setparam("XPRS_VERBOSE", true).
- FICOCommunity Manager
Hi Michael, many thanks for a quick response. The model definitely uses the Barrier solver, and what's more has crossover turned off (not exactly sure why as I inherited a large part of the code from a colleague).
I'll rerun the model with the Optimizer output logged and will post back.
Thanks again.
Edit: Below is the Optimizer log (I've cut out some of the iteration rows to save space). It appears that primal and dual objective values never really come close?
Reading Problem \xprs_83c0010
Problem Statistics
12747331 ( 0 spare) rows
8710222 ( 0 spare) structural columns
67322229 ( 0 spare) non-zero elements
Global Statistics
0 entities 0 sets 0 set members
Minimizing LP \xprs_83c0010
Original problem has:
12747331 rows 8710222 cols 67322229 elements
Presolved problem has:
3281682 rows 1858248 cols 14776720 elements
Building dual
Barrier cache sizes : L1=32K L2=30720K
Using AVX support
Cores per CPU (CORESPERCPU): 24
Barrier starts, using up to 48 threads, 24 cores
Matrix ordering - Dense cols.: 35172 NZ(L): 240911645 Flops: 91802766682
Its P.inf D.inf U.inf Primal obj. Dual obj. Compl.
0 1.39e+011 3.18e+008 0.00e+000 -2.4575688e+018 -2.3511488e+011 9.0e+018
1 1.01e+011 2.24e+008 0.00e+000 -1.8143030e+018 3.6833580e+014 6.7e+018
2 7.08e+010 1.70e+008 0.00e+000 -1.2929085e+018 5.5269739e+014 5.2e+018
... [Cut out to save space]
84 5.12e+002 4.27e+004 0.00e+000 -1.0431354e+013 7.8574040e+010 2.1e+009
85 1.13e+004 4.27e+004 0.00e+000 -1.0435649e+013 7.8573871e+010 2.0e+009
86 1.13e+004 4.27e+004 0.00e+000 -1.0435649e+013 7.8573853e+010 2.0e+009
Barrier method finished in 2408 seconds
?249 Warning: insufficient improvement found
Uncrunching matrix
Its Obj Value S Ninf Nneg Sum Inf Time
0 -2.59962E+12 B 170839 0 1140.294530 2462
Problem is unsolved
Related Content
Related Content
MIP solution status
Hello, I've been using code like this to get the solution status of a MIP: case getprobstat of XPRS_OPT: status:="Optimum found" XPRS_UNF: status:="Unfinished" XPRS_INF: status:="Infeasib...5 months agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum3 unread comments3 unread8Views0likes3CommentsHow do you get the problem status after optimizing, using the new object oriented from xpress 9.4?
Hi, Using the old BCL, I had written this ] prob.mipOptimize(); int status = prob.getMIPStat(); and then used logic to handle different status codes defined here https://www.fico.com/fico-xpress...2 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum5 unread comments5 unread1View0likes5CommentsProblem with Xpress installation: Module `mminsight' not found.
I attempted a new installation of Xpress and Insight on a Windows 11 PC. (Downloaded files yesterday.) xp9.8.0_win_x86_64_setup.exe and FICO_Xpress_Insight_5.16.1_Community_Edition_setup.exe installe...8 months agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum1 unread comment1 unread5Views0likes1Comment