[Coin-discuss] unitTest & column solution before solve

Lou Hafer lou at cs.sfu.ca
Thu Apr 24 18:23:39 EDT 2003


Folks,

	I'm working my way through the software rot in OsiDylpSolverInterface
and have been poking at the parts of the unitTest that check for behaviour
prior to calling a solver. I'd like to propose a change to the test for
"getColSolution before solve", aka "make sure the column solution is
something reasonable" (line 1797 in OsiSolverInterfaceTest.cpp).

	Without really looking at the test, I got to asking myself `what is
reasonable', and came up with this: The solution should provide a worst-case
bound on the objective value. A crude way to do this is to set each primal
variable to the `wrong' bound. For minimisation, that'd be the upper bound
when the objective coefficient is positive, the lower bound when negative.
In either direction, infinity is a possibility.  Unlikely to be feasible, and
wildly pessimistic, but dead easy to construct, well-specified, and
mathematically valid.

	So I did this, and it failed the test. Turns out the test has the
additional caveat that if there's at least one finite bound, then the value
in the initial solution should be finite. This seems sort of arbitrary.

	I'd like to propose that we remove the `prefer finite' check in the
unit test. 

	Further in this same direction, is there any interest in trying to
add some principles of behaviour to the documentation for OsiSolverInterface?

						Lou




More information about the Coin-discuss mailing list