[Osi] OsiCpx writeLp not working
Matthew Galati
magh at lehigh.edu
Mon Jun 2 13:30:40 EDT 2008
There seems to be a bigger problem at hand here.
I start out with 5 columns in an OsiCpx object.
If I use the base class Osi::getObjValue( ) after adding a column, I get
the correct number of columns, but junk back from getObjCoefficients( )
and getColSolution( )
MVG inside OsiSolverInterface nc = 6
OsiCpxSolverInterface::getObjCoefficients()
OsiCpxSolverInterface::getColSolution()
OsiCpxSolverInterface::getDblParam(4)
objOffset = 0
MVG getObjValue i:0, retVal: -0, objCo: -15 colSol: 0
MVG getObjValue i:1, retVal: -2.44186, objCo: -15 colSol: 0.162791
MVG getObjValue i:2, retVal: -10.1163, objCo: -15 colSol: 0.511628
MVG getObjValue i:3, retVal: -12.5581, objCo: -15 colSol: 0.162791
MVG getObjValue i:4, retVal: -12.5581, objCo: -15 colSol: 0
MVG getObjValue i:5, retVal: -12.5581, objCo: 1.56391e-311 colSol:
7.20064e-313
OsiCpxSolverInterface::getNumCols()
MVG inside OsiSolverInterface nc = 6
> If I addCols to my OsiCpx object -- it correctly keeps the information
> in memory, however when I call writeLp it calls the native Osi writer
> and does not seem to have my new columns - it only has the original
> problem. I assume this once again has something to do with cached
> information.
>
> One quick fix suggestion -- use Cpx's native LP writer just like we do
> for MPS. This is suggested in ticket 61.
>
> void OsiCpxSolverInterface::writeLp(const char *filename,
> const char *extension,
> double epsilon,
> int numberAcross,
> int decimals,
> double objSense,
> bool useRowNames) const
> {
> debugMessage("OsiCpxSolverInterface::writeLp(%s, %s, %g)\n", filename,
> extens\
> ion, objSense);
>
> // *FIXME* : this will not output ctype information to the MPS file
> char filetype[4] = "LP";
> std::string f(filename);
> std::string e(extension);
> std::string fullname = f + "." + e;
> int err = CPXwriteprob( env_, getMutableLpPtr(), const_cast<char*>(
> fullname.\
> c_str() ), filetype );
> checkCPXerror( err, "CPXwriteprob", "writeLp" );
> }
>
>
> _______________________________________________
> Osi mailing list
> Osi at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/osi
>
More information about the Osi
mailing list