COPASI API  4.40.278
COptMethod Class Reference

#include <COptMethod.h>

Inheritance diagram for COptMethod:

Public Member Functions

 COptMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType, const bool &parallel)
 COptMethod (const COptMethod &src, const CDataContainer *pParent)
virtual const CVector< C_FLOAT64 > * getBestParameters () const
virtual C_FLOAT64 getBestValue () const
virtual const CVector< C_FLOAT64 > * getCurrentParameters () const
virtual C_FLOAT64 getCurrentValue () const
virtual unsigned C_INT32 getMaxLogVerbosity () const
const COptLoggetMethodLog () const
virtual bool initialize ()
virtual bool isValidProblem (const CCopasiProblem *pProblem)
virtual bool optimise ()
void setProblem (COptProblem *problem)
virtual ~COptMethod ()
- Public Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src, const CDataContainer *pParent)
virtual void clearCallBack ()
const CProcessReportLevelgetCallBack () const
CMathContainergetMathContainer () const
const CTaskEnum::MethodgetSubType () const
const CTaskEnum::TaskgetType () const
virtual void load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH)
CCopasiMethodoperator= (const CCopasiMethod &rhs)
virtual void print (std::ostream *ostream) const
virtual void printResult (std::ostream *ostream) const
virtual bool setCallBack (CProcessReportLevel callBack)
void setMathContainer (CMathContainer *pContainer)
virtual ~CCopasiMethod ()
- Public Member Functions inherited from CCopasiParameterGroup
bool addGroup (const std::string &name)
void addParameter (CCopasiParameter *pParameter)
bool addParameter (const CCopasiParameter &parameter)
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
template<class CType >
bool addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
virtual bool applyData (const CData &data, CUndoData::CChangeSet &changes)
CCopasiParameterGroupassertGroup (const std::string &name, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
template<class CType >
CType * assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue, const CCopasiParameter::UserInterfaceFlag &flag=CCopasiParameter::UserInterfaceFlag::All)
index_iterator beginIndex () const
const_name_iterator beginName () const
 CCopasiParameterGroup (const CCopasiParameterGroup &src, const CDataContainer *pParent=NULL)
 CCopasiParameterGroup (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="ParameterGroup")
void clear ()
virtual void createUndoData (CUndoData &undoData, const CUndoData::Type &type, const CData &oldData=CData(), const CCore::Framework &framework=CCore::Framework::ParticleNumbers) const
virtual bool elevateChildren ()
index_iterator endIndex () const
const_name_iterator endName () const
CCopasiParameterGroupgetElementTemplates ()
const CCopasiParameterGroupgetElementTemplates () const
CCopasiParameterGroupgetGroup (const size_t &index)
const CCopasiParameterGroupgetGroup (const size_t &index) const
CCopasiParameterGroupgetGroup (const std::string &name)
const CCopasiParameterGroupgetGroup (const std::string &name) const
virtual size_t getIndex (const CDataObject *pObject) const
size_t getIndex (const std::string &name) const
std::string getKey (const size_t &index) const
std::string getKey (const std::string &name) const
virtual const std::string & getName (const size_t &index) const
virtual const CObjectInterfacegetObject (const CCommonName &cn) const
CCopasiParametergetParameter (const size_t &index)
const CCopasiParametergetParameter (const size_t &index) const
CCopasiParametergetParameter (std::string name)
const CCopasiParametergetParameter (std::string name) const
CCopasiParameter::Type getType (const size_t &index) const
CCopasiParameter::Type getType (const std::string &name) const
std::string getUniqueParameterName (const CCopasiParameter *pParameter) const
template<class CType >
CType & getValue (const size_t &index)
template<class CType >
const CType & getValue (const size_t &index) const
template<class CType >
CType & getValue (const std::string &name)
template<class CType >
const CType & getValue (const std::string &name) const
bool haveTemplate () const
virtual CUndoObjectInterfaceinsert (const CData &data)
CCopasiParameterGroupoperator= (const CCopasiParameterGroup &rhs)
virtual bool remove (CDataObject *pObject)
bool removeParameter (CCopasiParameter *pParameter)
bool removeParameter (const size_t &index)
bool removeParameter (const std::string &name)
virtual void setUserInterfaceFlag (const UserInterfaceFlag &flag)
template<class CType >
bool setValue (const size_t &index, const CType &value)
template<class CType >
bool setValue (const std::string &name, const CType &value)
size_t size (const UserInterfaceFlag &require=UserInterfaceFlag::None, const UserInterfaceFlag &exclude=UserInterfaceFlag::None) const
bool swap (const size_t &iFrom, const size_t &iTo)
bool swap (index_iterator &from, index_iterator &to)
virtual CData toData () const
virtual void updateIndex (const size_t &index, const CUndoObjectInterface *pUndoObject)
virtual ~CCopasiParameterGroup ()
- Public Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src, const CDataContainer *pParent)
 CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CDataContainer *pParent=NO_PARENT, const std::string &objectType="Parameter")
virtual CCommonName getCN () const override
template<class CType >
const CType & getDefault () const
virtual const std::string & getKey () const override
virtual std::string getObjectDisplayName () const override
const CCopasiParameter::TypegetType () const
const UserInterfaceFlaggetUserInterfaceFlag () const
template<class CType >
std::vector< std::pair< CType, CType > > & getValidValues ()
template<class CType >
const std::vector< std::pair< CType, CType > > & getValidValues () const
void * getValidValuesPointer () const
template<class CType >
CType & getValue ()
template<class CType >
const CType & getValue () const
virtual void * getValuePointer () const override
CDataObjectgetValueReference () const
bool hasValidValues () const
bool isBasic () const
bool isDefault () const
bool isEditable () const
bool isUnsupported () const
bool isValidValue (const bool &value) const
bool isValidValue (const C_FLOAT64 &value) const
bool isValidValue (const C_INT32 &value) const
bool isValidValue (const CCommonName &value) const
template<class CType >
bool isValidValue (const CType &) const
bool isValidValue (const std::string &value) const
bool isValidValue (const std::vector< CCopasiParameter * > &value) const
bool isValidValue (const unsigned C_INT32 &value) const
CCopasiParameteroperator= (const CCopasiParameter &rhs)
template<class CType >
bool setDefault (const CType &defaultValue)
bool setDefault (const std::vector< CCopasiParameter * > &defaultValue)
virtual bool setObjectParent (const CDataContainer *pParent) override
template<class CType , class Enum >
bool setValidValues (const CEnumAnnotation< CType, Enum > &validValues)
template<class CType >
bool setValidValues (const std::vector< std::pair< CType, CType > > &validValues)
template<class CType >
bool setValue (const CType &value)
bool setValue (const std::vector< CCopasiParameter * > &value)
virtual ~CCopasiParameter ()
- Public Member Functions inherited from CDataContainer
virtual bool add (CDataObject *pObject, const bool &adopt=true)
virtual bool appendDeletedDependentData (CUndoData &undoData) const
 CDataContainer (const CDataContainer &src, const CDataContainer *pParent)
 CDataContainer (const std::string &name, const CDataContainer *pParent=NO_PARENT, const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)
virtual std::string getChildObjectUnits (const CDataObject *pObject) const
void getDescendants (CDataObject::DataObjectSet &descendants, const bool &recursive=false) const
virtual objectMapgetObjects ()
virtual const objectMapgetObjects () const
virtual const std::string getUnits () const override
virtual const CDataObjectgetValueObject () const override
void objectRenamed (CDataObject *pObject, const std::string &oldName)
virtual ~CDataContainer ()
- Public Member Functions inherited from CDataObject
void addIssue (const CIssue &issue)
void addReference (const CDataContainer *pReference)
virtual void calculateValue () override
 CDataObject (const CDataObject &src, const CDataContainer *pParent=NULL)
virtual void destruct () override
virtual const CDataObjectgetDataObject () const override
CDataContainergetObjectAncestor (const std::string &type) const
CDataModelgetObjectDataModel () const
const CObjectInterfacegetObjectFromCN (const CCommonName &cn) const
const std::string & getObjectName () const
CDataContainergetObjectParent () const
const std::string & getObjectType () const
virtual const CObjectInterface::ObjectSetgetPrerequisites () const override
virtual const CValiditygetValidity () const override
bool hasFlag (const Flag &flag) const
virtual bool isPrerequisiteForContext (const CObjectInterface *pObject, const CCore::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const override
bool prerequisitsContains (const DataObjectSet &objects) const
void removeIssue (const CIssue &issue)
void removeReference (const CDataContainer *pReference)
bool setObjectName (const std::string &name)
void validityChanged (const CValidity &changedValidity) override
void validityRemoved (const CValidity &changedValidity)
virtual ~CDataObject ()
- Public Member Functions inherited from CObjectInterface
 CObjectInterface ()
 CObjectInterface (const CObjectInterface &src)
virtual ~CObjectInterface ()
- Public Member Functions inherited from CUndoObjectInterface
 CUndoObjectInterface ()
 CUndoObjectInterface (const CUndoObjectInterface &src)
bool generateUuid ()
const xg::Guid & getUuid () const
bool setUuid (const std::string &uuid)
bool setUuid (const xg::Guid &uuid)
virtual ~CUndoObjectInterface ()

Protected Member Functions

virtual bool cleanup ()
virtual void signalMathContainerChanged ()
- Protected Member Functions inherited from CCopasiMethod
 CCopasiMethod (const CCopasiMethod &src)
 CCopasiMethod (const CDataContainer *pParent, const CTaskEnum::Method &methodType, const CTaskEnum::Task &taskType)
- Protected Member Functions inherited from CCopasiParameterGroup
 CCopasiParameterGroup ()
- Protected Member Functions inherited from CCopasiParameter
 CCopasiParameter (const CCopasiParameter &src)
- Protected Member Functions inherited from CDataContainer
template<class CType >
CDataMatrixReference< CType > * addMatrixReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
template<class CType >
CDataObjectReference< CType > * addObjectReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
template<class CType >
CDataVectorReference< CType > * addVectorReference (const std::string &name, CType &reference, const CFlags< Flag > &flag=CFlags< Flag >::None)
 CDataContainer (const CDataContainer &src)
void initObjects ()
- Protected Member Functions inherited from CDataObject
 CDataObject ()
 CDataObject (const std::string &name, const CDataContainer *pParent=static_cast< CDataContainer * >((void *) 0), const std::string &type="CN", const CFlags< Flag > &flag=CFlags< Flag >::None)

Static Protected Member Functions

static std::pair< C_FLOAT64, bool > objectiveValue (COptProblem *pProblem, const CVectorCore< C_FLOAT64 > &parameters)
static void reflect (COptProblem *pProblem, const C_FLOAT64 &bestValue, C_FLOAT64 &objectiveValue)

Protected Attributes

unsigned C_INT32 mLogVerbosity
CMathContext mMathContext
COptLog mMethodLog
bool mParallel
COptProblemContext mProblemContext
- Protected Attributes inherited from CCopasiMethod
CProcessReportLevel mProcessReport
- Protected Attributes inherited from CCopasiParameter
std::string mKey
void * mpDefault
void * mpValidValues
void * mpValue
UserInterfaceFlag mUserInterfaceFlag
- Protected Attributes inherited from CDataContainer
objectMap mObjects
- Protected Attributes inherited from CDataObject
ObjectSet mPrerequisits
std::set< CDataContainer * > mReferences
- Protected Attributes inherited from CObjectInterface
CValidity mValidity

Private Member Functions

 COptMethod ()

Additional Inherited Members

- Public Types inherited from CCopasiParameterGroup
typedef CDataObjectMap::const_type_iterator< CCopasiParameterconst_name_iterator
typedef std::vector< CCopasiParameter * > elements
typedef elements::iterator index_iterator
typedef CDataObjectMap::type_iterator< CCopasiParametername_iterator
- Public Types inherited from CCopasiParameter
enum class  eUserInterfaceFlag { editable , basic , unsupported , __SIZE }
enum class  Type {
typedef CFlags< eUserInterfaceFlagUserInterfaceFlag
- Public Types inherited from CDataContainer
typedef CDataObjectMap objectMap
- Public Types inherited from CDataObject
typedef std::set< const CDataObject * > DataObjectSet
enum  Flag {
  Container , Vector , Matrix , NameVector ,
  Reference , ValueBool , ValueInt , ValueInt64 ,
  ValueDbl , NonUniqueName , StaticString , ValueString ,
  Separator , DisplayName , ModelEntity , Array ,
  DataModel , Root , Gui , __SIZE
- Public Types inherited from CObjectInterface
typedef std::vector< const CDataContainer * > ContainerList
typedef std::set< const CObjectInterface * > ObjectSet
- Static Public Member Functions inherited from CCopasiParameter
static void allocateValidValues (const Type &type, void *&pValidValues)
static void allocateValue (const Type &type, void *&pValue)
static void assignValue (const Type &type, void *&pValue, const void *pNewValue)
static void deleteValidValues (const Type &type, void *&pValidValues)
static void deleteValue (const Type &type, void *&pValue)
static CCopasiParameterfromData (const CData &data, CUndoObjectInterface *pParent)
- Static Public Member Functions inherited from CDataContainer
static CDataContainerfromData (const CData &data, CUndoObjectInterface *pParent)
- Static Public Member Functions inherited from CDataObject
static CDataObjectfromData (const CData &data, CUndoObjectInterface *pParent)
static void sanitizeObjectName (std::string &name)
- Static Public Member Functions inherited from CObjectInterface
static const CDataObjectDataObject (const CObjectInterface *pInterface)
static CObjectInterfaceGetObjectFromCN (const ContainerList &listOfContainer, const CCommonName &objName)
- Static Public Member Functions inherited from CUndoObjectInterface
template<class CType >
static CType * fromData (const CData &, CUndoObjectInterface *)
- Static Public Attributes inherited from CCopasiParameter
static const CEnumAnnotation< std::string, TypeTypeName
static const CEnumAnnotation< std::string, TypeXMLType
- Static Public Attributes inherited from CDataContainer
static const CObjectInterface::ContainerList EmptyList

Constructor & Destructor Documentation

◆ COptMethod() [1/3]

COptMethod::COptMethod ( )

Default constructor.

◆ COptMethod() [2/3]

COptMethod::COptMethod ( const CDataContainer pParent,
const CTaskEnum::Method methodType,
const CTaskEnum::Task taskType,
const bool &  parallel 

Specific constructor

constCDataContainer * pParent
constCTaskEnum::Method & methodType
constCTaskEnum::Task & taskType
constbool & parallel

COptMethod class This class describes the interface to all optimization methods. The various method like RandomSearch or GA have to be derived from this class.

Created for COPASI by Stefan Hoops 2002

References CCopasiParameterGroup::assertParameter(), C_INT32, CCopasiParameter::editable, and CCopasiParameter::UINT.

◆ COptMethod() [3/3]

COptMethod::COptMethod ( const COptMethod src,
const CDataContainer pParent 

◆ ~COptMethod()

COptMethod::~COptMethod ( )


Member Function Documentation

◆ cleanup()

◆ getBestParameters()

◆ getBestValue()

◆ getCurrentParameters()

◆ getCurrentValue()

◆ getMaxLogVerbosity()

unsigned C_INT32 COptMethod::getMaxLogVerbosity ( ) const

◆ getMethodLog()

const COptLog & COptMethod::getMethodLog ( ) const

Retrieve the log of the solution

References mMethodLog.

◆ initialize()

◆ isValidProblem()

bool COptMethod::isValidProblem ( const CCopasiProblem pProblem)

Check if the method is suitable for this problem

bool suitability of the method

Reimplemented from CCopasiMethod.

References CCopasiMessage::EXCEPTION, and CCopasiMethod::isValidProblem().

◆ objectiveValue()

std::pair< C_FLOAT64, bool > COptMethod::objectiveValue ( COptProblem pProblem,
const CVectorCore< C_FLOAT64 > &  parameters 

Calculate the objective value for the provided parameter set

COptProblem* pProblem
constCVectorCore< C_FLOAT64 > & parameters
std::pair< C_FLOAT64 objectiveValue, bool continue >

References COptProblem::calculate(), COptProblem::getCalculateValue(), and COptProblem::setParameters().

Referenced by reflect().

◆ optimise()

bool COptMethod::optimise ( void  )

Execute the optimization algorithm calling simulation routine when needed. It is noted that this procedure can give feedback of its progress by the callback function set with SetCallback. @ return success;

Reimplemented in CRandomSearch, COptMethodTruncatedNewton, COptMethodSteepestDescent, COptMethodStatistics, COptMethodSS, COptMethodSRES, COptMethodSA, COptMethodPS, COptMethodPraxis, COptMethodNL2SOL, COptMethodNelderMead, COptMethodLevenbergMarquardt, COptMethodHookeJeeves, COptMethodGASR, COptMethodGA, COptMethodEP, COptMethodDE, and COptMethodCoranaWalk.

Referenced by COptMethodSS::localmin(), COptTask::process(), CFitTask::process(), and TestOptimization().

◆ reflect()

void COptMethod::reflect ( COptProblem pProblem,
const C_FLOAT64 bestValue,
C_FLOAT64 objectiveValue 

Reflect the objective value if it is outside the parametric or functional domain

COptProblem* pProblem
constC_FLOAT64 & bestValue
C_FLOAT64& objectiveValue

References COptProblem::checkFunctionalConstraints(), COptProblem::checkParametricConstraints(), and objectiveValue().

◆ setProblem()

void COptMethod::setProblem ( COptProblem problem)

◆ signalMathContainerChanged()

void COptMethod::signalMathContainerChanged ( )

Member Data Documentation

◆ mLogVerbosity

◆ mMathContext

CMathContext COptMethod::mMathContext

A thread specific math container

Referenced by COptMethod(), initialize(), setProblem(), and signalMathContainerChanged().

◆ mMethodLog

◆ mParallel

bool COptMethod::mParallel

Boolean indicating whether this method con use parallel execution.

◆ mpParentTask

◆ mProblemContext

COptProblemContext COptMethod::mProblemContext

A thread specific problem

Referenced by COptMethodHookeJeeves::bestNearby(), COptMethodNL2SOL::calcr(), COptMethodSS::combination(), COptMethod(), COptMethodPS::create(), COptMethodEP::creation(), COptMethodSRES::creation(), COptMethodDE::creation(), COptMethodGA::creation(), COptMethodGASR::creation(), COptMethodSS::creation(), COptMethodSteepestDescent::descentLine(), COptMethodCoranaWalk::evaluate(), COptMethodHookeJeeves::evaluate(), COptMethodLevenbergMarquardt::evaluate(), COptMethodNelderMead::evaluate(), COptMethodNL2SOL::evaluate(), COptMethodPraxis::evaluate(), COptMethodPS::evaluate(), COptMethodSA::evaluate(), COptMethodSteepestDescent::evaluate(), COptMethodTruncatedNewton::evaluate(), COptMethodDE::evaluate(), COptMethodEP::evaluate(), COptMethodGA::evaluate(), COptMethodGASR::evaluate(), COptMethodSRES::evaluate(), COptMethodSS::evaluate(), COptMethodStatistics::evaluate(), CRandomSearch::evaluate(), COptMethodPraxis::evaluateFunction(), COptMethodLevenbergMarquardt::gradient(), COptMethodSteepestDescent::gradient(), COptMethodLevenbergMarquardt::hessian(), initialize(), COptMethodCoranaWalk::initialize(), COptMethodEP::initialize(), COptMethodHookeJeeves::initialize(), COptMethodLevenbergMarquardt::initialize(), COptMethodNelderMead::initialize(), COptMethodNL2SOL::initialize(), COptMethodPraxis::initialize(), COptMethodSA::initialize(), COptMethodSRES::initialize(), COptMethodSS::initialize(), COptMethodStatistics::initialize(), COptMethodSteepestDescent::initialize(), COptMethodTruncatedNewton::initialize(), COptPopulationMethod::initialize(), CRandomSearch::initialize(), COptMethodSS::localmin(), COptMethodPS::move(), COptMethodSRES::mutate(), COptMethodGA::mutate(), COptMethodGASR::mutate(), COptMethodEP::mutate(), COptMethodCoranaWalk::optimise(), COptMethodDE::optimise(), COptMethodEP::optimise(), COptMethodGA::optimise(), COptMethodGASR::optimise(), COptMethodHookeJeeves::optimise(), COptMethodLevenbergMarquardt::optimise(), COptMethodNelderMead::optimise(), COptMethodNL2SOL::optimise(), COptMethodPraxis::optimise(), COptMethodPS::optimise(), COptMethodSA::optimise(), COptMethodSRES::optimise(), COptMethodSS::optimise(), COptMethodStatistics::optimise(), COptMethodSteepestDescent::optimise(), COptMethodTruncatedNewton::optimise(), CRandomSearch::optimise(), COptMethodGASR::phi(), COptMethodSRES::phi(), COptMethodSS::randomize(), COptMethodDE::replicate(), setProblem(), COptMethodTruncatedNewton::sFun(), and signalMathContainerChanged().

The documentation for this class was generated from the following files: