COPASI API
4.16.103
|
#include <COptMethodPS.h>
Public Member Functions | |
COptMethodPS (const COptMethodPS &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | optimise () |
virtual | ~COptMethodPS () |
![]() | |
COptMethod (const COptMethod &src, const CCopasiContainer *pParent=NULL) | |
bool | isBounded (void) |
virtual bool | isValidProblem (const CCopasiProblem *pProblem) |
void | setProblem (COptProblem *problem) |
virtual | ~COptMethod () |
![]() | |
CCopasiMethod (const CCopasiMethod &src, const CCopasiContainer *pParent=NULL) | |
const CCopasiMethod::SubType & | getSubType () const |
const CCopasiTask::Type & | getType () const |
virtual void | load (CReadConfig &configBuffer, CReadConfig::Mode mode=CReadConfig::SEARCH) |
virtual void | print (std::ostream *ostream) const |
virtual void | printResult (std::ostream *ostream) const |
virtual bool | setCallBack (CProcessReport *pCallBack) |
virtual | ~CCopasiMethod () |
![]() | |
bool | addGroup (const std::string &name) |
bool | addParameter (const CCopasiParameter ¶meter) |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type) |
template<class CType > | |
bool | addParameter (const std::string &name, const CCopasiParameter::Type type, const CType &value) |
void | addParameter (CCopasiParameter *pParameter) |
CCopasiParameterGroup * | assertGroup (const std::string &name) |
template<class CType > | |
CCopasiParameter * | assertParameter (const std::string &name, const CCopasiParameter::Type type, const CType &defaultValue) |
index_iterator | beginIndex () const |
name_iterator | beginName () const |
CCopasiParameterGroup (const CCopasiParameterGroup &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameterGroup (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &objectType="ParameterGroup") | |
void | clear () |
virtual bool | elevateChildren () |
index_iterator | endIndex () const |
name_iterator | endName () const |
CCopasiParameterGroup * | getGroup (const std::string &name) |
const CCopasiParameterGroup * | getGroup (const std::string &name) const |
CCopasiParameterGroup * | getGroup (const size_t &index) |
const CCopasiParameterGroup * | getGroup (const size_t &index) const |
size_t | getIndex (const std::string &name) const |
std::string | getKey (const std::string &name) const |
std::string | getKey (const size_t &index) const |
virtual const std::string & | getName (const size_t &index) const |
virtual const CObjectInterface * | getObject (const CCopasiObjectName &cn) const |
CCopasiParameter * | getParameter (const std::string &name) |
const CCopasiParameter * | getParameter (const std::string &name) const |
CCopasiParameter * | getParameter (const size_t &index) |
const CCopasiParameter * | getParameter (const size_t &index) const |
CCopasiParameter::Type | getType (const std::string &name) const |
CCopasiParameter::Type | getType (const size_t &index) const |
std::string | getUniqueParameterName (const CCopasiParameter *pParameter) const |
const CCopasiParameter::Value & | getValue (const std::string &name) const |
const CCopasiParameter::Value & | getValue (const size_t &index) const |
CCopasiParameter::Value & | getValue (const std::string &name) |
CCopasiParameter::Value & | getValue (const size_t &index) |
CCopasiParameterGroup & | operator= (const CCopasiParameterGroup &rhs) |
bool | removeParameter (const std::string &name) |
bool | removeParameter (const size_t &index) |
template<class CType > | |
bool | setValue (const std::string &name, const CType &value) |
template<class CType > | |
bool | setValue (const size_t &index, const CType &value) |
size_t | size () const |
bool | swap (const size_t &iFrom, const size_t &iTo) |
bool | swap (index_iterator &from, index_iterator &to) |
virtual | ~CCopasiParameterGroup () |
![]() | |
CCopasiParameter (const CCopasiParameter &src, const CCopasiContainer *pParent=NULL) | |
CCopasiParameter (const std::string &name, const Type &type, const void *pValue=NULL, const CCopasiContainer *pParent=NULL, const std::string &objectType="Parameter") | |
virtual CCopasiObjectName | getCN () const |
virtual const std::string & | getKey () const |
virtual std::string | getObjectDisplayName (bool regular=true, bool richtext=false) const |
const CCopasiParameter::Type & | getType () const |
const Value & | getValue () const |
Value & | getValue () |
virtual void * | getValuePointer () const |
CCopasiObject * | getValueReference () const |
bool | isValidValue (const C_FLOAT64 &value) const |
bool | isValidValue (const C_INT32 &value) const |
bool | isValidValue (const unsigned C_INT32 &value) const |
bool | isValidValue (const bool &value) const |
bool | isValidValue (const std::string &value) const |
bool | isValidValue (const CCopasiObjectName &value) const |
bool | isValidValue (const std::vector< CCopasiParameter * > &value) const |
CCopasiParameter & | operator= (const CCopasiParameter &rhs) |
template<class CType > | |
bool | setValue (const CType &value) |
bool | setValue (const std::vector< CCopasiParameter * > &value) |
virtual | ~CCopasiParameter () |
![]() | |
virtual bool | add (CCopasiObject *pObject, const bool &adopt=true) |
CCopasiContainer (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=CCopasiObject::Container) | |
CCopasiContainer (const CCopasiContainer &src, const CCopasiContainer *pParent=NULL) | |
virtual std::string | getChildObjectUnits (const CCopasiObject *pObject) const |
virtual const objectMap & | getObjects () const |
virtual std::string | getUnits () const |
virtual const CCopasiObject * | getValueObject () const |
virtual bool | remove (CCopasiObject *pObject) |
virtual | ~CCopasiContainer () |
![]() | |
void | addDirectDependency (const CCopasiObject *pObject) |
CCopasiObject (const CCopasiObject &src, const CCopasiContainer *pParent=NULL) | |
void | clearDirectDependencies () |
void | clearRefresh () |
bool | dependsOn (DataObjectSet candidates, const DataObjectSet &context=DataObjectSet()) const |
void | getAllDependencies (DataObjectSet &dependencies, const DataObjectSet &context) const |
virtual const DataObjectSet & | getDirectDependencies (const DataObjectSet &context=DataObjectSet()) const |
CCopasiContainer * | getObjectAncestor (const std::string &type) const |
CCopasiDataModel * | getObjectDataModel () |
const CCopasiDataModel * | getObjectDataModel () const |
const std::string & | getObjectName () const |
CCopasiContainer * | getObjectParent () const |
const std::string & | getObjectType () const |
virtual const CObjectInterface::ObjectSet & | getPrerequisites () const |
virtual Refresh * | getRefresh () const |
UpdateMethod * | getUpdateMethod () const |
bool | hasCircularDependencies (DataObjectSet &candidates, DataObjectSet &verified, const DataObjectSet &context) const |
bool | hasUpdateMethod () const |
bool | isArray () const |
bool | isContainer () const |
bool | isDataModel () const |
bool | isMatrix () const |
bool | isNameVector () const |
bool | isNonUniqueName () const |
virtual bool | isPrerequisiteForContext (const CObjectInterface *pObject, const CMath::SimulationContextFlag &context, const CObjectInterface::ObjectSet &changedObjects) const |
bool | isReference () const |
bool | isRoot () const |
bool | isSeparator () const |
bool | isStaticString () const |
bool | isValueBool () const |
bool | isValueDbl () const |
bool | isValueInt () const |
bool | isValueInt64 () const |
bool | isValueString () const |
bool | isVector () const |
virtual bool | mustBeDeleted (const DataObjectSet &deletedObjects) const |
void | removeDirectDependency (const CCopasiObject *pObject) |
void | setDirectDependencies (const DataObjectSet &directDependencies) |
bool | setObjectName (const std::string &name) |
virtual bool | setObjectParent (const CCopasiContainer *pParent) |
void | setObjectValue (const C_FLOAT64 &value) |
void | setObjectValue (const C_INT32 &value) |
void | setObjectValue (const bool &value) |
template<class CType > | |
void | setRefresh (CType *pType, void(CType::*method)(void)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_FLOAT64 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const C_INT32 &)) |
template<class CType > | |
void | setUpdateMethod (CType *pType, void(CType::*method)(const bool &)) |
virtual | ~CCopasiObject () |
![]() | |
CObjectInterface () | |
virtual | ~CObjectInterface () |
Private Member Functions | |
void | buildInformants () |
virtual bool | cleanup () |
COptMethodPS (const CCopasiContainer *pParent=NULL) | |
bool | create (const size_t &index) |
const C_FLOAT64 & | evaluate () |
virtual bool | initialize () |
void | initObjects () |
bool | move (const size_t &index) |
bool | reachedStdDeviation () |
Private Attributes | |
size_t | mBestIndex |
CMatrix< C_FLOAT64 > | mBestPositions |
CVector< C_FLOAT64 > | mBestValues |
bool | mContinue |
C_FLOAT64 | mEvaluationValue |
size_t | mhIteration |
CVector< CVector< C_FLOAT64 > > | mIndividuals |
std::vector< std::set< size_t > > | mInformants |
unsigned C_INT32 | mIteration |
unsigned C_INT32 | mIterationLimit |
size_t | mNumInformed |
size_t | mNumInformedMin |
CPermutation * | mpPermutation |
CRandom * | mpRandom |
unsigned C_INT32 | mSwarmSize |
CVector< C_FLOAT64 > | mValues |
size_t | mVariableSize |
C_FLOAT64 | mVariance |
CMatrix< C_FLOAT64 > | mVelocities |
Friends | |
COptMethod * | COptMethod::createMethod (CCopasiMethod::SubType subType) |
Additional Inherited Members | |
![]() | |
enum | SubType { unset = 0, RandomSearch, RandomSearchMaster, SimulatedAnnealing, CoranaWalk, DifferentialEvolution, ScatterSearch, GeneticAlgorithm, EvolutionaryProgram, SteepestDescent, HybridGASA, GeneticAlgorithmSR, HookeJeeves, LevenbergMarquardt, NelderMead, SRES, Statistics, ParticleSwarm, Praxis, TruncatedNewton, Newton, deterministic, LSODAR, directMethod, stochastic, tauLeap, adaptiveSA, hybrid, hybridLSODA, hybridODE45, DsaLsodar, tssILDM, tssILDMModified, tssCSP, mcaMethodReder, scanMethod, lyapWolf, sensMethod, EFMAlgorithm, EFMBitPatternTreeAlgorithm, EFMBitPatternAlgorithm, Householder, crossSectionMethod, linearNoiseApproximation } |
![]() | |
typedef parameterGroup::iterator | index_iterator |
typedef CCopasiContainer::objectMap::iterator | name_iterator |
typedef std::vector < CCopasiParameter * > | parameterGroup |
![]() | |
enum | Type { DOUBLE = 0, UDOUBLE, INT, UINT, BOOL, GROUP, STRING, CN, KEY, FILE, EXPRESSION, INVALID } |
![]() | |
typedef std::multimap < std::string, CCopasiObject * > | objectMap |
![]() | |
typedef std::set< const CCopasiObject * > | DataObjectSet |
typedef std::vector< Refresh * > | DataUpdateSequence |
![]() | |
typedef std::set< const CObjectInterface * > | ObjectSet |
typedef std::vector < CObjectInterface * > | UpdateSequence |
![]() | |
static COptMethod * | createMethod (CCopasiMethod::SubType subType=CCopasiMethod::RandomSearch) |
![]() | |
static std::vector< Refresh * > | buildUpdateSequence (const DataObjectSet &objects, const DataObjectSet &uptoDateObjects, const DataObjectSet &context=DataObjectSet()) |
static void | setRenameHandler (CRenameHandler *rh) |
![]() | |
static const std::string | SubTypeName [] |
static const char * | XMLSubType [] |
![]() | |
static const std::string | TypeName [] |
static const char * | XMLType [] |
![]() | |
static const std::vector < CCopasiContainer * > | EmptyList |
![]() | |
enum | Flag { Container = 0x1, Vector = 0x2, Matrix = 0x4, NameVector = 0x8, Reference = 0x10, ValueBool = 0x20, ValueInt = 0x40, ValueInt64 = 0x80, ValueDbl = 0x100, NonUniqueName = 0x200, StaticString = 0x400, ValueString = 0x800, Separator = 0x1000, ModelEntity = 0x2000, Array = 0x4000, DataModel = 0x8000, Root = 0x10000, Gui = 0x20000 } |
![]() | |
COptMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiMethod (const CCopasiTask::Type &taskType, const SubType &subType, const CCopasiContainer *pParent=NULL) | |
![]() | |
CCopasiParameterGroup () | |
![]() | |
template<class CType > | |
CCopasiObject * | addMatrixReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addObjectReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
template<class CType > | |
CCopasiObject * | addVectorReference (const std::string &name, CType &reference, const unsigned C_INT32 &flag=0) |
void | initObjects () |
![]() | |
CCopasiObject () | |
CCopasiObject (const std::string &name, const CCopasiContainer *pParent=NULL, const std::string &type="CN", const unsigned C_INT32 &flag=0) | |
![]() | |
const bool | mBounds |
const std::vector< COptItem * > * | mpOptContraints |
const std::vector< COptItem * > * | mpOptItem |
COptProblem * | mpOptProblem |
COptTask * | mpParentTask |
const std::vector < UpdateMethod * > * | mpSetCalculateVariable |
![]() | |
CProcessReport * | mpCallBack |
![]() | |
std::string | mKey |
CCopasiObject * | mpValueReference |
size_t | mSize |
Value | mValue |
![]() | |
objectMap | mObjects |
![]() | |
static CRenameHandler * | smpRenameHandler = NULL |
Definition at line 29 of file COptMethodPS.h.
COptMethodPS::COptMethodPS | ( | const COptMethodPS & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy Constructor
const | COptMethodPS & src |
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 61 of file COptMethodPS.cpp.
References initObjects().
|
virtual |
|
private |
Default Constructor
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 30 of file COptMethodPS.cpp.
References CCopasiParameterGroup::addParameter(), C_FLOAT64, C_INT32, initObjects(), CRandom::mt19937, CCopasiParameter::UDOUBLE, and CCopasiParameter::UINT.
|
private |
create the informant for each individual
Definition at line 389 of file COptMethodPS.cpp.
References mInformants, mNumInformed, mpPermutation, mSwarmSize, CPermutation::next(), CPermutation::pick(), and CPermutation::shuffle().
Referenced by optimise().
|
privatevirtual |
Cleanup arrays and pointers.
Reimplemented from COptMethod.
Definition at line 381 of file COptMethodPS.cpp.
References mpPermutation, mpRandom, and pdelete.
Referenced by initialize(), optimise(), and ~COptMethodPS().
|
private |
Create the indexed individual in the swarm
const | size_t & index |
Definition at line 194 of file COptMethodPS.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, COptItem::checkConstraint(), COutputInterface::DURING, evaluate(), COptItem::getLowerBoundValue(), CRandom::getRandomCC(), CRandom::getRandomNormal(), COptItem::getUpperBoundValue(), max, mBestIndex, mBestPositions, mBestValues, mContinue, min, mIndividuals, COptMethod::mpOptItem, COptMethod::mpOptProblem, COptMethod::mpParentTask, mpRandom, COptMethod::mpSetCalculateVariable, mValues, mVariableSize, mVelocities, CCopasiTask::output(), and COptProblem::setSolution().
Referenced by optimise().
|
private |
Evaluate the fitness of one individual
Definition at line 89 of file COptMethodPS.cpp.
References COptProblem::calculate(), COptProblem::checkFunctionalConstraints(), COptProblem::getCalculateValue(), mContinue, mEvaluationValue, and COptMethod::mpOptProblem.
Referenced by create(), move(), and optimise().
|
privatevirtual |
Initialize arrays and pointer.
Reimplemented from COptMethod.
Definition at line 327 of file COptMethodPS.cpp.
References CProcessReport::addItem(), cleanup(), CRandom::createGenerator(), CCopasiParameter::getValue(), COptMethod::initialize(), mBestPositions, mBestValues, mContinue, mhIteration, mIndividuals, mIteration, mIterationLimit, mNumInformed, mNumInformedMin, CCopasiMethod::mpCallBack, COptMethod::mpOptItem, mpPermutation, mpRandom, mSwarmSize, mValues, mVariableSize, mVariance, mVelocities, CCopasiParameter::Value::pUDOUBLE, CCopasiParameter::Value::pUINT, CMatrix< CType >::resize(), CVector< CType >::resize(), and CCopasiParameterGroup::setValue().
Referenced by optimise().
|
private |
Initialize contained objects.
Definition at line 322 of file COptMethodPS.cpp.
References CCopasiContainer::addObjectReference(), mIteration, and CCopasiObject::ValueInt.
Referenced by COptMethodPS().
|
private |
Move the indexed individual in the swarm
const | size_t & index |
Definition at line 107 of file COptMethodPS.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, COptItem::checkConstraint(), COutputInterface::DURING, evaluate(), COptItem::getLowerBoundValue(), CRandom::getRandomCC(), COptItem::getUpperBoundValue(), mBestIndex, mBestPositions, mBestValues, mContinue, mEvaluationValue, mIndividuals, mInformants, mNumInformed, mNumInformedMin, COptMethod::mpOptItem, COptMethod::mpOptProblem, COptMethod::mpParentTask, mpRandom, COptMethod::mpSetCalculateVariable, mValues, mVariableSize, mVelocities, CCopasiTask::output(), and COptProblem::setSolution().
Referenced by optimise().
|
virtual |
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 from COptMethod.
Definition at line 495 of file COptMethodPS.cpp.
References CVectorCore< CType >::array(), buildInformants(), C_FLOAT64, COptItem::checkConstraint(), cleanup(), create(), COutputInterface::DURING, evaluate(), CProcessReport::finishItem(), COptItem::getLowerBoundValue(), COptItem::getStartValue(), COptItem::getUpperBoundValue(), initialize(), mBestIndex, mBestPositions, mBestValues, mContinue, mhIteration, mIndividuals, mIteration, mIterationLimit, move(), CCopasiMethod::mpCallBack, COptMethod::mpOptItem, COptMethod::mpOptProblem, COptMethod::mpParentTask, COptMethod::mpSetCalculateVariable, mSwarmSize, mValues, mVariableSize, mVelocities, CCopasiTask::output(), CProcessReport::progressItem(), reachedStdDeviation(), and COptProblem::setSolution().
|
private |
Definition at line 423 of file COptMethodPS.cpp.
References CVectorCore< CType >::array(), C_FLOAT64, mIndividuals, mNumInformed, mNumInformedMin, mSwarmSize, mValues, mVariableSize, and mVariance.
Referenced by optimise().
|
friend |
|
private |
Index of the best solution found so far.
Definition at line 192 of file COptMethodPS.h.
Referenced by create(), move(), and optimise().
Matrix of best positions for each individual
Definition at line 167 of file COptMethodPS.h.
Referenced by create(), initialize(), move(), and optimise().
Vector of individual best values.
Definition at line 162 of file COptMethodPS.h.
Referenced by create(), initialize(), move(), and optimise().
|
private |
Indicates whether calculation shall continue
Definition at line 202 of file COptMethodPS.h.
Referenced by create(), evaluate(), initialize(), move(), and optimise().
|
private |
The value of the last evaluation.
Definition at line 197 of file COptMethodPS.h.
Referenced by evaluate(), and move().
|
private |
Handle to the process report item "Current Iteration"
Definition at line 137 of file COptMethodPS.h.
Referenced by initialize(), and optimise().
Matrix of individuals with candidate values for the parameters
Definition at line 147 of file COptMethodPS.h.
Referenced by create(), initialize(), move(), optimise(), and reachedStdDeviation().
|
private |
Vector containing the set of informants for each individual.
Definition at line 177 of file COptMethodPS.h.
Referenced by buildInformants(), and move().
|
private |
current iterations
Definition at line 132 of file COptMethodPS.h.
Referenced by initialize(), initObjects(), and optimise().
|
private |
maximal number of iterations
Definition at line 112 of file COptMethodPS.h.
Referenced by initialize(), and optimise().
|
private |
The number of individual informed by each individual
Definition at line 187 of file COptMethodPS.h.
Referenced by buildInformants(), initialize(), move(), and reachedStdDeviation().
|
private |
The minimal number of individuals informed by each individual
Definition at line 182 of file COptMethodPS.h.
Referenced by initialize(), move(), and reachedStdDeviation().
|
private |
A permutation of integers used to create the informants;
Definition at line 172 of file COptMethodPS.h.
Referenced by buildInformants(), cleanup(), and initialize().
|
private |
a pointer to the random number generator.
Definition at line 127 of file COptMethodPS.h.
Referenced by cleanup(), create(), initialize(), and move().
|
private |
size of the population
Definition at line 117 of file COptMethodPS.h.
Referenced by buildInformants(), initialize(), optimise(), and reachedStdDeviation().
Vector of values of objective function of each individual
Definition at line 152 of file COptMethodPS.h.
Referenced by create(), initialize(), move(), optimise(), and reachedStdDeviation().
|
private |
number of parameters
Definition at line 142 of file COptMethodPS.h.
Referenced by create(), initialize(), move(), optimise(), and reachedStdDeviation().
|
private |
The variance acceptable for the solution
Definition at line 122 of file COptMethodPS.h.
Referenced by initialize(), and reachedStdDeviation().
Matrix of individual velocities
Definition at line 157 of file COptMethodPS.h.
Referenced by create(), initialize(), move(), and optimise().