[Coin-lpsolver] Re: Fw: [Coin-core] paper/notes for Coin Presolve?
Lou Hafer
lou at cs.sfu.ca
Thu Mar 11 18:05:59 EST 2004
John,
It's a postsolve glitch --- dylp picked it up loading the postsolved
status vector at the call to resolve(), around line 3228 in
OsiSolverInterfaceTest (the presolve test section). If clp is less trusting of
the incoming status vector, it might never see it. I cut clp out of the build
while I was debugging, and do not really know how to turn on its debugging
checks. The problem might not even occur if clp's optimal basis for the
presolved 25fv47 is sufficiently different from dylp's.
I think I know what needs to be done, and will go ahead now with the
fix. I've got the overall architecture sorted out, and Vernon's comments
clear up a few bits of uncertainty. It looks to me like all that's really
required is to add some status information to the action records held in the
remove_fixed_action and make_fixed_action postsolve objects. I think I'll
also add the variable index to the make_fixed_action record --- its absence
makes me nervous. Given that remove_fixed_action has to remain as a separate
capability, it makes good sense to build make_fixed_action on top of it.
I haven't checked in any changes yet, I'm afraid, and things will get
ugly when I do: I've added several hundred lines of documentation over
CoinPresolveMatrix.[hpp,cpp], CoinPresolveFixed.[hpp,cpp], and
OsiPresolve.[cpp,hpp]. The actual code changes are fairly minimal. About 15
-- 20 lines to remove explicit use of the CoinWarmStartBasis constructor in
OsiPresolve. Another 20 lines or so to fix the problems in CoinPresolveFixed.
If you have things pending, you might want to get them in ahead of me.
Lou
More information about the Clp
mailing list