On Fri, 29 Jun 2012, Andrew Makhorin wrote:

When this is solved (with --exact --noscale), glpsol tells me "INTEGER
OPTIMAL SOLUTION FOUND" and the variable assignments in the solution are
as follows:

No.    Column name       Activity     Lower bound   Upper bound
------ ------------    ------------- ------------- -------------
18 dcsn_lte_0   *              0             0             1
35 u_EAX_4008e0                9             0   4.29497e+09

and the row solution:

No.    Row name        Activity      Lower bound   Upper bound
------ ------------    ------------- ------------- -------------
15     c13                   9                           4

If we plug the assignment into the original constraint, then we get:

-4294967296 * 0 + 1 * 9 <= 4
therefore: 9 <= 4

Which is false, so under this assignment the system in infeasible. The solver
should have either tried a different assignment of either variables, or if it
could not, then it should have reported the problem infeasible? Right?

Is this a bug, a misuse of glpk or a misunderstanding?


Being numerical procedures both the glpk integer optimizer and
underlying simplex solver work with a finite relative precision, and you
should not expect that the simplex solver is able to obtain an exact
solution even if your input data are integral (i.e. free of round-off
errors). In other word, the constraint actually used on obtaining basic
solutions is the following:

I thought that that was the point of --exact.
Even if the input routines are  double precision,
the given numbers are representable.
Perhaps there is a presolve that is not done with exact arithmetic.

--
Michael   [email protected]
"On Monday, I'm gonna have to tell my kindergarten class,
whom I teach not to run with scissors,
that my fiance ran me through with a broadsword."  --  Lily

_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to