[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