#include <OSCoinSolver.h>
Inheritance diagram for CoinSolver:
Public Member Functions | |
CoinSolver () | |
The class contructor. | |
~CoinSolver () | |
The class destructor. | |
virtual void | solve () throw (ErrorClass) |
The implementation of the virtual functions. | |
virtual void | buildSolverInstance () throw (ErrorClass) |
The implementation of the virtual functions. | |
virtual void | setSolverOptions () throw (ErrorClass) |
The implementation of the virtual functions. | |
bool | setCoinPackedMatrix () |
Create a CoinPackedMatrix. | |
std::string | getCoinSolverType (std::string osol_) |
void | dataEchoCheck () |
Print out problem parameters. | |
void | writeResult (OsiSolverInterface *solver) |
void | writeResult (CbcModel *model) |
Public Attributes | |
OsiSolverInterface * | osiSolver |
ossiSolver is the osi solver object -- in this case clp, glpk, cbc, or cplex | |
OSiLReader * | m_osilreader |
m_osilreader is an OSiLReader object used to create an osinstance from an osil string if needed | |
OSoLReader * | m_osolreader |
m_osolreader is an OSoLReader object used to create an osoption from an osol string if needed | |
Private Attributes | |
CoinPackedMatrix * | m_CoinPackedMatrix |
m_CoinPackedMatrix is a Coin Packed Matrix ojbect | |
OSrLWriter * | osrlwriter |
osrlwriter object used to write osrl from and OSResult object | |
const char ** | cbc_argv |
when Cbc is the solver, these are the arguments sent to Cbc Solve | |
int | num_cbc_argv |
the number of arguments in the argument list to the Cbc Solver | |
double | cpuTime |
This class implements a solve method for the Coin solvers It reads an OSInstance object and puts into the Coin OSI format
Definition at line 39 of file OSCoinSolver.h.
CoinSolver::CoinSolver | ( | ) |
CoinSolver::~CoinSolver | ( | ) |
The class destructor.
Definition at line 94 of file OSCoinSolver.cpp.
References cbc_argv, m_CoinPackedMatrix, m_osilreader, m_osolreader, num_cbc_argv, osiSolver, DefaultSolver::osresult, and osrlwriter.
void CoinSolver::solve | ( | ) | throw (ErrorClass) [virtual] |
The implementation of the virtual functions.
Implements DefaultSolver.
Definition at line 634 of file OSCoinSolver.cpp.
References buildSolverInstance(), cbc_argv, cpuTime, e, ErrorClass::errormsg, OSInstance::getConstraintNumber(), OSInstance::getInstanceName(), OSInstance::getNumberOfBinaryVariables(), OSInstance::getNumberOfIntegerVariables(), OSInstance::getVariableNumber(), num_cbc_argv, DefaultSolver::osinstance, osiSolver, DefaultSolver::osresult, DefaultSolver::osrl, osrlwriter, OSResult::setConstraintNumber(), OSResult::setGeneralMessage(), OSResult::setGeneralStatusType(), OSResult::setInstanceName(), OSResult::setObjectiveNumber(), OSResult::setSolutionNumber(), OSResult::setSolverInvoked(), setSolverOptions(), OSResult::setVariableNumber(), DefaultSolver::sSolverName, OSrLWriter::writeOSrL(), and writeResult().
Referenced by main().
void CoinSolver::buildSolverInstance | ( | ) | throw (ErrorClass) [virtual] |
The implementation of the virtual functions.
Implements DefaultSolver.
Definition at line 124 of file OSCoinSolver.cpp.
References DefaultSolver::bCallbuildSolverInstance, ErrorClass::errormsg, OSInstance::getConstraintLowerBounds(), OSInstance::getConstraintUpperBounds(), OSInstance::getDenseObjectiveCoefficients(), OSInstance::getLinearConstraintCoefficientNumber(), OSInstance::getNumberOfBinaryVariables(), OSInstance::getNumberOfIntegerVariables(), OSInstance::getNumberOfNonlinearExpressions(), OSInstance::getNumberOfQuadraticTerms(), OSInstance::getNumberOfStringVariables(), OSInstance::getObjectiveMaxOrMins(), OSInstance::getObjectiveNumber(), OSInstance::getVariableLowerBounds(), OSInstance::getVariableNumber(), OSInstance::getVariableTypes(), OSInstance::getVariableUpperBounds(), k, m_CoinPackedMatrix, m_osilreader, DefaultSolver::osil, DefaultSolver::osinstance, osiSolver, DefaultSolver::osresult, DefaultSolver::osrl, osrlwriter, OSiLReader::readOSiL(), setCoinPackedMatrix(), OSResult::setGeneralMessage(), OSResult::setGeneralStatusType(), DefaultSolver::sSolverName, and OSrLWriter::writeOSrL().
void CoinSolver::setSolverOptions | ( | ) | throw (ErrorClass) [virtual] |
The implementation of the virtual functions.
Implements DefaultSolver.
Definition at line 255 of file OSCoinSolver.cpp.
References DefaultSolver::bSetSolverOptions, cbc_argv, DEBUG, OSOption::getInitVarValuesSparse(), OSOption::getNumberOfInitVarValues(), OSOption::getNumberOfSolverOptions(), OSInstance::getObjectiveConstants(), OSOption::getSolverOptions(), OSInstance::getVariableNumber(), OSInstance::instanceData, k, Variable::lb, m, m_osolreader, n, num_cbc_argv, os_strtod(), OSDBL_MAX, DefaultSolver::osinstance, osiSolver, DefaultSolver::osol, DefaultSolver::osoption, OSoLReader::readOSoL(), DefaultSolver::sSolverName, Variable::ub, InitVarValue::value, Variables::var, and InstanceData::variables.
Referenced by solve().
bool CoinSolver::setCoinPackedMatrix | ( | ) |
Create a CoinPackedMatrix.
Definition at line 596 of file OSCoinSolver.cpp.
References ErrorClass::errormsg, OSInstance::getConstraintNumber(), OSInstance::getLinearConstraintCoefficientMajor(), OSInstance::getLinearConstraintCoefficientNumber(), OSInstance::getLinearConstraintCoefficientsInColumnMajor(), OSInstance::getLinearConstraintCoefficientsInRowMajor(), OSInstance::getVariableNumber(), SparseMatrix::indexes, m_CoinPackedMatrix, DefaultSolver::osinstance, DefaultSolver::osresult, DefaultSolver::osrl, osrlwriter, OSResult::setGeneralMessage(), OSResult::setGeneralStatusType(), SparseMatrix::starts, SparseMatrix::values, and OSrLWriter::writeOSrL().
Referenced by buildSolverInstance().
std::string CoinSolver::getCoinSolverType | ( | std::string | osol_ | ) |
Definition at line 813 of file OSCoinSolver.cpp.
References ErrorClass::errormsg, DefaultSolver::osresult, DefaultSolver::osrl, osrlwriter, OSResult::setGeneralMessage(), OSResult::setGeneralStatusType(), and OSrLWriter::writeOSrL().
void CoinSolver::dataEchoCheck | ( | ) |
Print out problem parameters.
Definition at line 844 of file OSCoinSolver.cpp.
References OSInstance::getConstraintLowerBounds(), OSInstance::getConstraintNames(), OSInstance::getConstraintNumber(), OSInstance::getConstraintUpperBounds(), OSInstance::getDenseObjectiveCoefficients(), OSInstance::getInstanceDescription(), OSInstance::getInstanceName(), OSInstance::getInstanceSource(), OSInstance::getObjectiveMaxOrMins(), OSInstance::getVariableLowerBounds(), OSInstance::getVariableNames(), OSInstance::getVariableNumber(), OSInstance::getVariableTypes(), OSInstance::getVariableUpperBounds(), OSInstance::instanceData, m_CoinPackedMatrix, Objectives::numberOfObjectives, Objectives::obj, InstanceData::objectives, and DefaultSolver::osinstance.
void CoinSolver::writeResult | ( | OsiSolverInterface * | solver | ) |
Definition at line 886 of file OSCoinSolver.cpp.
References cpuTime, OSInstance::getConstraintNumber(), OSInstance::getNumberOfBinaryVariables(), OSInstance::getNumberOfIntegerVariables(), OSInstance::getVariableNumber(), getVersionInfo(), os_dtoa_format(), DefaultSolver::osinstance, DefaultSolver::osresult, DefaultSolver::osrl, osrlwriter, OSResult::setAnOtherVariableResultSparse(), OSResult::setDualVariableValuesDense(), OSResult::setGeneralStatusType(), OSResult::setNumberOfOtherVariableResults(), OSResult::setObjectiveValuesDense(), OSResult::setPrimalVariableValuesDense(), OSResult::setServiceName(), OSResult::setSolutionMessage(), OSResult::setSolutionStatus(), OSResult::setSolverInvoked(), OSResult::setTime(), DefaultSolver::sSolverName, OSrLWriter::writeOSrL(), and x.
Referenced by solve().
void CoinSolver::writeResult | ( | CbcModel * | model | ) |
Definition at line 987 of file OSCoinSolver.cpp.
References cpuTime, OSInstance::getConstraintNumber(), OSInstance::getNumberOfBinaryVariables(), OSInstance::getNumberOfIntegerVariables(), OSInstance::getVariableNumber(), getVersionInfo(), os_dtoa_format(), DefaultSolver::osinstance, DefaultSolver::osresult, DefaultSolver::osrl, osrlwriter, OSResult::setAnOtherVariableResultSparse(), OSResult::setDualVariableValuesDense(), OSResult::setGeneralStatusType(), OSResult::setNumberOfOtherVariableResults(), OSResult::setObjectiveValuesDense(), OSResult::setPrimalVariableValuesDense(), OSResult::setServiceName(), OSResult::setSolutionStatus(), OSResult::setTime(), OSrLWriter::writeOSrL(), and x.
OsiSolverInterface* CoinSolver::osiSolver |
ossiSolver is the osi solver object -- in this case clp, glpk, cbc, or cplex
Definition at line 94 of file OSCoinSolver.h.
Referenced by buildSolverInstance(), main(), setSolverOptions(), solve(), and ~CoinSolver().
m_osilreader is an OSiLReader object used to create an osinstance from an osil string if needed
Definition at line 102 of file OSCoinSolver.h.
Referenced by buildSolverInstance(), and ~CoinSolver().
m_osolreader is an OSoLReader object used to create an osoption from an osol string if needed
Definition at line 108 of file OSCoinSolver.h.
Referenced by setSolverOptions(), and ~CoinSolver().
CoinPackedMatrix* CoinSolver::m_CoinPackedMatrix [private] |
m_CoinPackedMatrix is a Coin Packed Matrix ojbect
Definition at line 127 of file OSCoinSolver.h.
Referenced by buildSolverInstance(), dataEchoCheck(), setCoinPackedMatrix(), and ~CoinSolver().
OSrLWriter* CoinSolver::osrlwriter [private] |
osrlwriter object used to write osrl from and OSResult object
Definition at line 130 of file OSCoinSolver.h.
Referenced by buildSolverInstance(), CoinSolver(), getCoinSolverType(), setCoinPackedMatrix(), solve(), writeResult(), and ~CoinSolver().
const char** CoinSolver::cbc_argv [private] |
when Cbc is the solver, these are the arguments sent to Cbc Solve
Definition at line 135 of file OSCoinSolver.h.
Referenced by setSolverOptions(), solve(), and ~CoinSolver().
int CoinSolver::num_cbc_argv [private] |
the number of arguments in the argument list to the Cbc Solver
Definition at line 139 of file OSCoinSolver.h.
Referenced by setSolverOptions(), solve(), and ~CoinSolver().
double CoinSolver::cpuTime [private] |