[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] Intermediate feasible "solutions" (suboptimal)
From: |
Andrew Makhorin |
Subject: |
Re: [Help-glpk] Intermediate feasible "solutions" (suboptimal) |
Date: |
Tue, 6 Oct 2009 08:25:43 +0400 |
> I am using GLPK in PYTHON via CVXOPT (which has an option to select
> solver as GLPK). I am using it to solve an LP. I'd like to print out
> the values of the variables in the problem as simplex progresses. In
> other words, I am interested in feasible but suboptimal intermediate
> "solutions".
> Is there any way to achieve that without using the GLPK API in C. That
> is, is it possible to print the intermediate feasible "solutions" by
> passing some option to GLPK via CVXOPT ? I couldn't find anything
> relevant in the GLPK manual, CVXOPT manual or online.
> I tried the following : I set the iteration limit. But such pre-
> optimal termination seems to be interpreted as a failure by GLPK.
> Here's what happens. The output of GLPK is :
>> 0: obj = 0.000000000e+00 infeas = 3.500e+01 (0)
>> 200: obj = 3.367050904e+00 infeas = 2.000e+01 (0)
>> * 294: obj = 8.833290070e+00 infeas = 0.000e+00 (0)
>> * 300: obj = 8.833290070e+00 infeas = 0.000e+00 (0)
>> ITERATION LIMIT EXCEEDED; SEARCH TERMINATED
>> glp_simplex: unable to recover undefined or non-optimal solution
> Following the message printed by GLPK at the end (above), we find that
> it is coming from the function "simplex2" in file glpapi06.c of GLPK.
> The appropriate lines are :
>> if (glp_get_status(prob) != GLP_OPT)
>> { if (parm->msg_lev >= GLP_MSG_ERR)
>> xprintf("glp_simplex: unable to recover undefined or non-
>> op"
>> "timal solution\n");
> I suppose I could start modifying my local copy of GLPK to get what I
> want. But I am hoping for an easier solution.
Non-optimal solution cannot be recovered due to the lp presolver,
which is enabled by default in glpsol. You can disable it with the
option '--nopresol'.