[Coin-discuss] OsiCbc
Ted Ralphs
tkralphs at lehigh.edu
Tue Apr 5 19:43:00 EDT 2005
John J Forrest wrote:
>
> Ted,
>
> Does adding #include <cstdio> at top of CoinHelperFunctions.hpp help?
>
> John
Yes, that fixes it. Thanks.
Also, the OsiSymSolverInterface unit test should work properly now.
There was a bug in the copy constructor that is now fixed. Also, I had
to comment out a few tests. SYMPHONY will not pass the common unit tests
for two reasons:
1. We do not allow an infeasible solution to be loaded into the
interface. I think this is a reasonable policy, since it is natural to
assume that the currently loaded solution is feasible to the currently
loaded problem. SYMPHONY has no mechanism for storing an infeasible
solution. This unit test requires this. I'm not sure this is reasonable,
but I'd be curious to hear other opinions.
2. Pointers to rim vectors returned by methods such as getColLower()
become invalid if the problem is modified. This is because SYMPHONY
itself returns a copy of requested rim vectors to the interface (not a
pointer to the internally stored data). The pointer to this copy is then
cached locally in the interface. It is the pointer to this locally
cached copy that is returned to the user. The locally cached arrays are
deleted when certain problem data are modified and only recreated when a
new pointer is requested. In particular, when any column bound is
changed, the locally cached copies of both the upper and lower bound
arrays are deleted. The common unit test requests a pointer to the
bounds arrays, then modifies the problem and expects that pointer to
remain valid. I'm not sure this is reasonable either. Pointers should
probably only be required to remain valid while the problem data remains
unchanged. I'd be curious to hear other opinions on this as well.
Cheers,
Ted
--
Dr. Ted Ralphs
Assistant Professor
Industrial and Systems Engineering
Lehigh University
(610)758-4784
tkralphs at lehigh.edu
www.lehigh.edu/~tkr2
More information about the Coin-discuss
mailing list