[Coin-discuss] OsiHints: balance, new hints

Lou Hafer lou at cs.sfu.ca
Fri May 2 13:24:14 EDT 2003


Folks,

	I've been looking at implementing hints for OsiDylp, and I'd like to
get others' thoughts on the issues.

	OsiHintStrength has a rather positive attitude. Suppose that I want
to discourage a solver from doing something it would normally do by default
(scaling, for example). Setting OsiDoScale to OsiHintIgnore doesn't seem
quite adequate. Creating a hint called OsiDoNotScale is one possibility.
Creating a set of negative OsiHintStrength values (OsiHintNoTry, etc.) is
another. Do any of you have thoughts on this?

	Since dylp's algorithm is a bit off to the side of a standard simplex
solver, there are a number of hints that would be useful for it, but probably
not relevant for other solvers (force use of the full constraint system, for
example, or accept/produce a set of active variables). One of the beauties of
hints is that solvers can ignore them, so one option would be for me to
create new OsiHintParam values.

	One obvious alternative would be to put this stuff into the
ApplicationData block, but that (to me, at least) tends to weaken the
`interchangeable solvers' goal of OSI. An application could include
solver-specific hints, and it would build and run even if the solver were not
available in a particular environment. Putting info into an ApplicationData
block would likely require conditional compilation, as constructing the
ApplicationData block would require the #include files for the solver.
Thoughts? Alternatives?

						Thanks,
							Lou	
	




More information about the Coin-discuss mailing list