COPASI API
4.16.103
|
#include <COptMethodGASR.h>
Public Member Functions | |
COptMethodGASR (const COptMethodGASR &src, const CCopasiContainer *pParent=NULL) | |
virtual bool | optimise () |
virtual | ~COptMethodGASR () |
![]() | |
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 | |
virtual bool | cleanup () |
COptMethodGASR (const CCopasiContainer *pParent=NULL) | |
bool | creation (size_t first, size_t last=std::numeric_limits< size_t >::max()) |
bool | crossover (const CVector< C_FLOAT64 > &parent1, const CVector< C_FLOAT64 > &parent2, CVector< C_FLOAT64 > &child1, CVector< C_FLOAT64 > &child2) |
bool | evaluate (const CVector< C_FLOAT64 > &individual) |
size_t | fittest () |
virtual bool | initialize () |
void | initObjects () |
bool | mutate (CVector< C_FLOAT64 > &individual) |
C_FLOAT64 | phi (size_t indvNum) |
bool | replicate () |
bool | select () |
bool | swap (size_t from, size_t to) |
Private Attributes | |
size_t | mBestIndex |
C_FLOAT64 | mBestValue |
CVector< bool > | mCrossOver |
CVector< bool > | mCrossOverFalse |
C_FLOAT64 | mEvaluationValue |
unsigned C_INT32 | mGeneration |
unsigned C_INT32 | mGenerations |
size_t | mhGenerations |
std::vector< CVector < C_FLOAT64 > * > | mIndividual |
C_FLOAT64 | mMutationVarians |
C_FLOAT64 | mPf |
CVector< C_FLOAT64 > | mPhi |
unsigned C_INT32 | mPopulationSize |
CPermutation * | mpPermutation |
CRandom * | mpRandom |
CVector< C_FLOAT64 > | mValue |
size_t | mVariableSize |
CVector< size_t > | mWins |
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 30 of file COptMethodGASR.h.
COptMethodGASR::COptMethodGASR | ( | const COptMethodGASR & | src, |
const CCopasiContainer * | pParent = NULL |
||
) |
Copy Constructor
const | COptMethodGASR & src |
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 57 of file COptMethodGASR.cpp.
References initObjects().
|
virtual |
|
private |
Default Constructor
const | CCopasiContainer * pParent (default: NULL) |
Definition at line 29 of file COptMethodGASR.cpp.
References CCopasiParameterGroup::addParameter(), C_FLOAT64, C_INT32, CCopasiParameter::DOUBLE, initObjects(), CRandom::mt19937, and CCopasiParameter::UINT.
|
privatevirtual |
Cleanup arrays and pointers.
Reimplemented from COptMethod.
Definition at line 455 of file COptMethodGASR.cpp.
References mIndividual, mpPermutation, mpRandom, and pdelete.
Referenced by initialize(), optimise(), and ~COptMethodGASR().
|
private |
Initialise the population
size_t | first |
size_t | last (default: population size) |
Definition at line 332 of file COptMethodGASR.cpp.
References C_FLOAT64, evaluate(), COptItem::getLowerBoundValue(), CRandom::getRandomCC(), COptItem::getUpperBoundValue(), max, mEvaluationValue, min, mIndividual, mPhi, mPopulationSize, mpRandom, mValue, mVariableSize, and phi().
Referenced by optimise().
|
private |
const | CVector< C_FLOAT64 > & parent1 |
const | CVector< C_FLOAT64 > & parent2 |
CVector< | C_FLOAT64 > & child1 |
CVector< | C_FLOAT64 > & child2 |
Definition at line 144 of file COptMethodGASR.cpp.
References C_INT32, CRandom::getRandomU(), mCrossOver, mCrossOverFalse, mpRandom, and mVariableSize.
Referenced by replicate().
Evaluate the fitness of one individual
const | CVector< C_FLOAT64 > & individual |
Definition at line 81 of file COptMethodGASR.cpp.
References COptProblem::calculate(), COptProblem::getCalculateValue(), mEvaluationValue, and COptMethod::mpOptProblem.
Referenced by creation(), optimise(), and replicate().
|
private |
Find the best individual at this generation
Definition at line 316 of file COptMethodGASR.cpp.
References C_FLOAT64, C_INVALID_INDEX, max, mPhi, mPopulationSize, and mValue.
Referenced by optimise().
|
privatevirtual |
Initialize arrays and pointer.
Reimplemented from COptMethod.
Definition at line 399 of file COptMethodGASR.cpp.
References CProcessReport::addItem(), C_FLOAT64, cleanup(), CRandom::createGenerator(), CCopasiParameter::getValue(), COptMethod::initialize(), mCrossOver, mCrossOverFalse, mGeneration, mGenerations, mhGenerations, mIndividual, mMutationVarians, CCopasiMethod::mpCallBack, mPf, mPhi, COptMethod::mpOptItem, mPopulationSize, mpPermutation, mpRandom, mValue, mVariableSize, mWins, CCopasiParameter::Value::pDOUBLE, CCopasiParameter::Value::pUINT, CVector< CType >::resize(), and CCopasiParameterGroup::setValue().
Referenced by optimise().
|
private |
Initialize contained objects.
Definition at line 394 of file COptMethodGASR.cpp.
References CCopasiContainer::addObjectReference(), mGeneration, and CCopasiObject::ValueInt.
Referenced by COptMethodGASR().
fm one individual
CVector< | C_FLOAT64 > & individual |
Definition at line 122 of file COptMethodGASR.cpp.
References C_FLOAT64, CRandom::getRandomNormal(), mMutationVarians, mpRandom, and mVariableSize.
Referenced by replicate().
|
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 468 of file COptMethodGASR.cpp.
References C_INVALID_INDEX, cleanup(), creation(), COutputInterface::DURING, evaluate(), CProcessReport::finishItem(), fittest(), initialize(), mBestIndex, mBestValue, mEvaluationValue, mGeneration, mGenerations, mhGenerations, mIndividual, CCopasiMethod::mpCallBack, mPhi, COptMethod::mpOptProblem, mPopulationSize, COptMethod::mpParentTask, COptMethod::mpSetCalculateVariable, mValue, mVariableSize, CCopasiTask::output(), phi(), CProcessReport::progressItem(), replicate(), select(), and COptProblem::setSolution().
|
private |
For Stochastic Ranking, evaluate the distance ofparameters to boundaries
Definition at line 276 of file COptMethodGASR.cpp.
References C_FLOAT64, mIndividual, COptMethod::mpOptContraints, and COptMethod::mpOptItem.
Referenced by creation(), optimise(), and replicate().
|
private |
Replicate the individuals with crossover
Definition at line 196 of file COptMethodGASR.cpp.
References crossover(), evaluate(), mEvaluationValue, mIndividual, mPhi, mPopulationSize, mpPermutation, mutate(), mValue, CPermutation::next(), phi(), and CPermutation::shuffle().
Referenced by optimise().
|
private |
Select surviving population
Definition at line 230 of file COptMethodGASR.cpp.
References CRandom::getRandomOO(), mPf, mPhi, mPopulationSize, mpRandom, mValue, and swap().
Referenced by optimise().
|
private |
Swap individuals from and to
size_t | from |
size_t | to |
Definition at line 99 of file COptMethodGASR.cpp.
References C_FLOAT64, mIndividual, mPhi, mValue, and mWins.
Referenced by select().
|
friend |
|
private |
Definition at line 227 of file COptMethodGASR.h.
Referenced by optimise().
|
private |
|
private |
Vector of crossover points.
Definition at line 196 of file COptMethodGASR.h.
Referenced by crossover(), and initialize().
|
private |
Vector used to initialize the crossover point to false
Definition at line 191 of file COptMethodGASR.h.
Referenced by crossover(), and initialize().
|
private |
The value of the last evaluation.
Definition at line 221 of file COptMethodGASR.h.
Referenced by creation(), evaluate(), optimise(), and replicate().
|
private |
Definition at line 228 of file COptMethodGASR.h.
Referenced by initialize(), initObjects(), and optimise().
|
private |
number of generations
Definition at line 151 of file COptMethodGASR.h.
Referenced by initialize(), and optimise().
|
private |
Handle to the process report item "Current Generation"
Definition at line 156 of file COptMethodGASR.h.
Referenced by initialize(), and optimise().
for array of individuals w/ candidate values for the parameters
Definition at line 181 of file COptMethodGASR.h.
Referenced by cleanup(), creation(), initialize(), optimise(), phi(), replicate(), and swap().
|
private |
variance for mutations
Definition at line 216 of file COptMethodGASR.h.
Referenced by initialize(), and mutate().
|
private |
Probability value used for SR ****
Definition at line 171 of file COptMethodGASR.h.
Referenced by initialize(), and select().
For Stochastic Ranking. Used for array of Phi values for the individuals
Definition at line 186 of file COptMethodGASR.h.
Referenced by creation(), fittest(), initialize(), optimise(), replicate(), select(), and swap().
|
private |
size of the population
Definition at line 161 of file COptMethodGASR.h.
Referenced by creation(), fittest(), initialize(), optimise(), replicate(), and select().
|
private |
A permutation of integers used to create the informants;
Definition at line 206 of file COptMethodGASR.h.
Referenced by cleanup(), initialize(), and replicate().
|
private |
a pointer to the randomnumber generator.
Definition at line 166 of file COptMethodGASR.h.
Referenced by cleanup(), creation(), crossover(), initialize(), mutate(), and select().
array of values of objective function f/ individuals
Definition at line 201 of file COptMethodGASR.h.
Referenced by creation(), fittest(), initialize(), optimise(), replicate(), select(), and swap().
|
private |
number of parameters
Definition at line 176 of file COptMethodGASR.h.
Referenced by creation(), crossover(), initialize(), mutate(), and optimise().
|
private |
number of wins of each individual in the tournament
Definition at line 211 of file COptMethodGASR.h.
Referenced by initialize(), and swap().