[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