COPASI API
4.16.103
|
#include <COptMethodDE.h>
Public Member Functions | |
COptMethodDE (const COptMethodDE &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | optimise () |
virtual | ~COptMethodDE () |
![]() | |
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 | boost () |
virtual bool | cleanup () |
COptMethodDE (const CCopasiContainer *pParent=NULL) | |
bool | creation (size_t first, size_t last=std::numeric_limits< size_t >::max()) |
bool | evaluate (const CVector< C_FLOAT64 > &individual) |
size_t | fittest () |
virtual bool | initialize () |
void | initObjects () |
bool | replicate () |
Private Attributes | |
size_t | mBestIndex |
C_FLOAT64 | mBestValue |
C_FLOAT64 | mEvaluationValue |
unsigned C_INT32 | mGeneration |
unsigned C_INT32 | mGenerations |
size_t | mhGenerations |
std::vector< CVector < C_FLOAT64 > * > | mIndividual |
C_FLOAT64 | mMutationVarians |
unsigned C_INT32 | mPopulationSize |
CPermutation * | mpPermutation |
CRandom * | mpRandom |
CVector< C_FLOAT64 > | mValue |
size_t | mVariableSize |
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 20 of file COptMethodDE.h.
COptMethodDE::COptMethodDE | ( | const COptMethodDE & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy Constructor
const | COptMethodDE & src |
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 46 of file COptMethodDE.cpp.
References initObjects().
|
virtual |
|
private |
Default Constructor
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 22 of file COptMethodDE.cpp.
References CCopasiParameterGroup::addParameter(), C_INT32, initObjects(), CRandom::mt19937, and CCopasiParameter::UINT.
|
private |
Definition at line 237 of file COptMethodDE.cpp.
References mIndividual, mPopulationSize, and mValue.
|
privatevirtual |
Cleanup arrays and pointers.
Reimplemented from COptMethod.
Definition at line 380 of file COptMethodDE.cpp.
References mIndividual, mpPermutation, mpRandom, and pdelete.
Referenced by initialize(), optimise(), and ~COptMethodDE().
|
private |
Initialise the population
size_t | first |
size_t | last (default: population size) |
Definition at line 250 of file COptMethodDE.cpp.
References C_FLOAT64, COptItem::checkConstraint(), evaluate(), COptItem::getLowerBoundValue(), CRandom::getRandomCC(), COptItem::getUpperBoundValue(), max, mBestIndex, mEvaluationValue, min, mIndividual, mPopulationSize, mpRandom, mValue, and mVariableSize.
Referenced by optimise().
Evaluate the fitness of one individual
const | CVector< C_FLOAT64 > & individual |
Definition at line 67 of file COptMethodDE.cpp.
References COptProblem::calculate(), COptProblem::checkFunctionalConstraints(), COptProblem::getCalculateValue(), mEvaluationValue, and COptMethod::mpOptProblem.
Referenced by creation(), optimise(), and replicate().
|
private |
Find the best individual at this generation
Definition at line 221 of file COptMethodDE.cpp.
References C_FLOAT64, C_INVALID_INDEX, max, mPopulationSize, and mValue.
Referenced by optimise().
|
privatevirtual |
Initialize arrays and pointer.
Reimplemented from COptMethod.
Definition at line 325 of file COptMethodDE.cpp.
References CProcessReport::addItem(), cleanup(), CRandom::createGenerator(), CProcessReport::finishItem(), CCopasiParameter::getValue(), COptMethod::initialize(), mBestValue, mGeneration, mGenerations, mhGenerations, mIndividual, mMutationVarians, CCopasiMethod::mpCallBack, COptMethod::mpOptItem, mPopulationSize, mpPermutation, mpRandom, mValue, mVariableSize, CCopasiParameter::Value::pUINT, CVector< CType >::resize(), and CCopasiParameterGroup::setValue().
Referenced by optimise().
|
private |
Initialize contained objects.
Definition at line 320 of file COptMethodDE.cpp.
References CCopasiContainer::addObjectReference(), mGeneration, and CCopasiObject::ValueInt.
Referenced by COptMethodDE().
|
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 393 of file COptMethodDE.cpp.
References C_FLOAT64, C_INVALID_INDEX, COptItem::checkConstraint(), cleanup(), creation(), COutputInterface::DURING, evaluate(), CProcessReport::finishItem(), fittest(), COptItem::getLowerBoundValue(), COptItem::getStartValue(), COptItem::getUpperBoundValue(), initialize(), mBestIndex, mBestValue, mEvaluationValue, mGeneration, mGenerations, mhGenerations, mIndividual, CCopasiMethod::mpCallBack, COptMethod::mpOptProblem, mPopulationSize, COptMethod::mpParentTask, mValue, mVariableSize, CCopasiTask::output(), CProcessReport::progressItem(), replicate(), and COptProblem::setSolution().
|
private |
Replicate the individuals with crossover
Definition at line 86 of file COptMethodDE.cpp.
References C_FLOAT64, C_INVALID_INDEX, COptItem::checkConstraint(), evaluate(), COptItem::getLowerBoundValue(), CRandom::getRandomNormal(), CRandom::getRandomU(), COptItem::getUpperBoundValue(), mBestIndex, mEvaluationValue, mIndividual, mMutationVarians, mPopulationSize, mpPermutation, mpRandom, mValue, mVariableSize, CPermutation::next(), CPermutation::pick(), and CPermutation::shuffle().
Referenced by optimise().
|
friend |
|
private |
Definition at line 152 of file COptMethodDE.h.
Referenced by creation(), optimise(), and replicate().
|
private |
Definition at line 151 of file COptMethodDE.h.
Referenced by initialize(), and optimise().
|
private |
The value of the last evaluation.
Definition at line 139 of file COptMethodDE.h.
Referenced by creation(), evaluate(), optimise(), and replicate().
|
private |
Definition at line 153 of file COptMethodDE.h.
Referenced by initialize(), initObjects(), and optimise().
|
private |
number of generations
Definition at line 104 of file COptMethodDE.h.
Referenced by initialize(), and optimise().
|
private |
Handle to the process report item "Current Generation"
Definition at line 109 of file COptMethodDE.h.
Referenced by initialize(), and optimise().
for array of individuals w/ candidate values for the parameters
Definition at line 129 of file COptMethodDE.h.
Referenced by boost(), cleanup(), creation(), initialize(), optimise(), and replicate().
|
private |
variance for mutations
Definition at line 149 of file COptMethodDE.h.
Referenced by initialize(), and replicate().
|
private |
size of the population
Definition at line 114 of file COptMethodDE.h.
Referenced by boost(), creation(), fittest(), initialize(), optimise(), and replicate().
|
private |
A permutation of integers used to for replication;
Definition at line 134 of file COptMethodDE.h.
Referenced by cleanup(), initialize(), and replicate().
|
private |
a pointer to the randomnumber generator.
Definition at line 119 of file COptMethodDE.h.
Referenced by cleanup(), creation(), initialize(), and replicate().
array of values of objective function f/ individuals
Definition at line 144 of file COptMethodDE.h.
Referenced by boost(), creation(), fittest(), initialize(), optimise(), and replicate().
|
private |
number of parameters
Definition at line 124 of file COptMethodDE.h.
Referenced by creation(), initialize(), optimise(), and replicate().