[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Help-glpk] Confused by error messages

**From**: |
Andrew Makhorin |

**Subject**: |
Re: [Help-glpk] Confused by error messages |

**Date**: |
Tue, 3 Apr 2007 12:55:30 +0400 |

The error appears due to very large coefficients in some constraints
in your instance. In particular:
OL1_MEMv1n1__MEMv0n1: + 4878963.5 d_MEMv1n1__MEMv0n1
+ 4878963.5 c_MEMv1n1__MEMv0n1 + X_MEMv0n1 - W_MEMv1n1 - X_MEMv1n1 >= 0
OL1_ADDv0n1__MEMv0n1: + 4878963.5 d_ADDv0n1__MEMv0n1
+ 4878963.5 c_ADDv0n1__MEMv0n1 + X_MEMv0n1 - W_ADDv0n1 - X_ADDv0n1 >= 0
OL1_PBRv0n1__MEMv0n1: + 4878963.5 d_PBRv0n1__MEMv0n1
+ 4878963.5 c_PBRv0n1__MEMv0n1 + X_MEMv0n1 - W_PBRv0n1 - X_PBRv0n1 >= 0
Since c_MEMv1n1__MEMv0n1, c_ADDv0n1__MEMv0n1, etc. are binary
variables, any error in their values within a tolerance about 1e-5
(that is tol_int) gives the error in residuals about 4878963.5 * 1e-5 =
= 48.8 that is just reported by the glpk solver.
Your model is badly formulated, and I think many solvers would have
numeric difficulties on solving it. You could try decreasing tol_int
to, say, 1e-8; however, a much better and reliable way would be
reformulating the model to get rid of such large coefficients.
>* I see that the tol_int is a member of MIPTREE structure and is set*
>* in the mip_create_tree routine. I didn't find any public API to set*
>* it's value. Am I missing something here? (BTW, tol_int is set to*
>* 1e-5 by default )*
It can be changed as follows:
lpx_set_real_parm(lp, LPX_K_TOLINT, new_value);
Andrew Makhorin