[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-glpk] GLPK crash with --intopt option
From: |
Andrew Makhorin |
Subject: |
Re: [Bug-glpk] GLPK crash with --intopt option |
Date: |
Wed, 30 Apr 2008 21:21:52 +0400 |
Thank you for the bug report.
> When running the glpsol command line for the MIP model.mps everything is
> OK, optimal solution is found.
> But when I launch it with the --intopt option, GLPK crashes (see
> crash.txt file).
> It seems that for a column, ipp_tight_bnds() function returns 0, because
> bounds are unchanged, which is not alloweed in reduce_bounds().
> Why is it an error ?
In your instance there are some integer variables, which have no upper
bound and at the same time have large constraint coefficients. This
causes an excessive round-off error on computing implied upper bounds
of such variables in the mip preprocessor.
The bug will be fixed in a next version of the package.
If you need to fix the bug right now, please replace lines 798-813 in
file glpipp02.c:
{ switch(ipp_tight_bnds(ipp, col, lb, ub))
{ case 0:
/* bounds remain unchanged; can never be */
xassert(ipp != ipp);
case 1:
/* bounds have been changed */
break;
case 2:
/* new bounds are primal infeasible */
return 1;
default:
xassert(ipp != ipp);
}
/* activate x[j] for further processing */
ipp_enque_col(ipp, col);
}
by the following fragment:
{ switch(ipp_tight_bnds(ipp, col, lb, ub))
{ case 0:
#if 0
/* bounds remain unchanged; can never be */
xassert(ipp != ipp);
#else
/* can be if lb or ub is large and x[j] is integer */
break;
#endif
case 1:
/* bounds have been changed */
/* activate x[j] for further processing */
ipp_enque_col(ipp, col);
break;
case 2:
/* new bounds are primal infeasible */
return 1;
default:
xassert(ipp != ipp);
}
}
> I worked with GLP 4.28 on windows XP
> Thank you very much for giving me an explanation, and best regards,