[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] Getting more info from presolver
From: |
Andrew Makhorin |
Subject: |
Re: [Help-glpk] Getting more info from presolver |
Date: |
Sat, 14 Jun 2008 12:27:14 +0400 |
> I saw a couple of threads on this topic, but I don't think they
> completely answered my question. I am getting the "PROBLEM HAS NO
> PRIMAL FEASIBLE SOLUTION" from glpsol. This doesn't surprise me as I
> am currently debugging my input file. I have a MathProg model of my
> problem by my data sets are so large, I am trying to produce a CPLEX
> LP format file for input instead to avoid the long model translation
> step. The reason I mention this is that I know the MathProg model is
> good but my Java code to generate a CPLEX LP format file must not
> correspond to the MathProg model exactly yet. So this brings me to
> the hope that the glpk presolver could offer more insight about which
> constraints it finds unsatisfiable. Even if it told me one of them,
> it would be a great clue for my debugging. If there is a way to do
> this through the API (vs. glpsol), that's fine too.
You may look at the output listing produced by either glpsol (with
-o option) or the api routine lpx_print_sol. If your lp instance has
no primal feasible solution, at the bottom of the listing, where KKT
are printed, you see the lines like follows:
KKT.PB: max.abs.err. = 1.00e+00 on column 26
max.rel.err. = 5.00e-01 on column 141
PRIMAL SOLUTION IS INFEASIBLE
Here the row/column number indicates a constraint/variable, which is
"unsatisfiable" in the sense that decreasing its primal infeasibility
leads to increasing primal infeasibility of other constraints/vars.
Note that on running glpsol you need to disable the lp presolver
(--nopresol), because it is unable to recover non-optimal solutions.