Inheritance diagram for ObjCryst::OptimizationObj:
Public Member Functions | |
OptimizationObj (const string name="") | |
Constructor. | |
virtual | ~OptimizationObj () |
Destructor. | |
virtual void | RandomizeStartingConfig () |
Randomize starting configuration. Only affects limited and periodic parameters. | |
virtual void | Optimize (long &nbSteps, const bool silent=false, const REAL finalcost=0, const REAL maxTime=-1)=0 |
Launch optimization (a single run) for N steps. | |
virtual void | MultiRunOptimize (long &nbCycle, long &nbSteps, const bool silent=false, const REAL finalcost=0, const REAL maxTime=-1)=0 |
Launch optimization for multiple runs of N steps. | |
void | FixAllPar () |
Fix all parameters. | |
void | SetParIsFixed (const string &parName, const bool fix) |
Fix one parameter. | |
void | SetParIsFixed (const RefParType *type, const bool fix) |
Fix one family of parameters. | |
void | UnFixAllPar () |
UnFix All parameters. | |
void | SetParIsUsed (const string &parName, const bool use) |
Set a parameter to be used. | |
void | SetParIsUsed (const RefParType *type, const bool use) |
Set a family of parameters to be used. | |
void | SetLimitsRelative (const string &parName, const REAL min, const REAL max) |
Change the relative limits for a parameter from its name. | |
void | SetLimitsRelative (const RefParType *type, const REAL min, const REAL max) |
Change the relative limits for a family of parameter. | |
void | SetLimitsAbsolute (const string &parName, const REAL min, const REAL max) |
Change the absolute limits for a parameter from its name. | |
void | SetLimitsAbsolute (const RefParType *type, const REAL min, const REAL max) |
Change the absolute limits for a family of parameter. | |
virtual REAL | GetLogLikelihood () const |
The optimized (minimized, actually) function. | |
void | StopAfterCycle () |
Stop after the current cycle. USed for interactive refinement. | |
virtual void | DisplayReport () |
Show report to the user during refinement. Used for GUI update. | |
void | AddRefinableObj (RefinableObj &) |
Add a refined object. All sub-objects are also added. | |
RefinableObj & | GetFullRefinableObj (const bool rebuild=true) |
Get the RefinableObj with all the parameters from all refined objects. | |
virtual void | XMLOutput (ostream &os, int indent=0) const=0 |
Output a description of the object in XML format to a stream. | |
virtual void | XMLInput (istream &is, const XMLCrystTag &tag)=0 |
Input in XML format from a stream, restoring the set of refined objects and the associated cost functions. Note that the corresponding objects must have been loaded in memory before, else shit happens. | |
const string & | GetName () const |
Get the name for this object. | |
void | SetName (const string &) |
Set the name for this object. | |
virtual const string | GetClassName () const |
Get the name for this class type. | |
virtual void | Print () const |
Print some information about this object. | |
void | RestoreBestConfiguration () |
Restore the Best configuration. | |
bool | IsOptimizing () const |
Are we busy optimizing ? | |
void | TagNewBestConfig () |
During a global optimization, tell all objects that the current config is the latest "best" config. | |
REAL | GetLastOptimElapsedTime () const |
Get the elapsed time (in seconds) during the last optimization. | |
MainTracker & | GetMainTracker () |
Get the MainTracker. | |
const MainTracker & | GetMainTracker () const |
Get the MainTracker. | |
RefObjOpt & | GetXMLAutoSaveOption () |
const RefObjOpt & | GetXMLAutoSaveOption () const |
const REAL & | GetBestCost () const |
Access to current best cost. | |
REAL & | GetBestCost () |
Access to current best cost. | |
Protected Member Functions | |
void | PrepareRefParList () |
Prepare mRefParList for the refinement. | |
virtual void | InitOptions () |
Initialization of options. | |
virtual void | UpdateDisplay () |
Update Display (if any display is available), when a new 'relevant' configuration is reached. | |
void | BuildRecursiveRefObjList () |
(Re)build OptimizationObj::mRecursiveRefinedObjList, if an object has been added or modified. | |
Protected Attributes | |
RefinableObj | mRefParList |
The refinable par list used during refinement. | |
string | mName |
Name of the GlobalOptimization object. | |
string | mSaveFileName |
File name where refinement info is saved (NOT USED so far...). | |
long | mNbTrial |
Number of trials so far. | |
REAL | mBestCost |
Best value of the cost function so far. | |
long | mBestParSavedSetIndex |
Index of the 'best' saved parameter set. | |
unsigned long | mContext |
The current 'context', in the case the optimization is run in different parallel contexts. | |
map< unsigned long, map< const RefinableObj *, LogLikelihoodStats > > | mvContextObjStats |
Statistics for each context (mutable for dynamic update during optimization). | |
map< const RefinableObj *, DynamicObjWeight > | mvObjWeight |
Weights for each objects in each context (mutable for dynamic update during optimization). | |
std::vector< pair< long, REAL > > | mvSavedParamSet |
List of saved parameter sets. | |
bool | mIsOptimizing |
True if a refinement is being done. For multi-threaded environment. | |
bool | mStopAfterCycle |
If true, then stop at the end of the cycle. Used in multi-threaded environment. | |
ObjRegistry< RefinableObj > | mRefinedObjList |
The refined objects. | |
ObjRegistry< RefinableObj > | mRecursiveRefinedObjList |
The refined objects, recursively including all sub-objects. | |
RefObjOpt | mXMLAutoSave |
Periodic save of complete environment as an xml file. | |
REAL | mLastOptimTime |
The time elapsed after the last optimization, in seconds. | |
MainTracker | mMainTracker |
MainTracker object to track the evolution of cost functions, likelihood, and individual parameters. |
This is an abstract base class, derived for Monte-Cralo type algorithms (Simulated Annealing & Parallel Tempering), and hopefully soon for Genetic Algorithms.
|
Constructor.
|
|
Destructor.
|
|
Add a refined object. All sub-objects are also added.
|
|
(Re)build OptimizationObj::mRecursiveRefinedObjList, if an object has been added or modified. If no object has been added and no sub-object has been added/removed, then nothing is done. |
|
Show report to the user during refinement. Used for GUI update.
|
|
Fix all parameters.
|
|
Access to current best cost.
|
|
Access to current best cost.
|
|
Get the name for this class type.
Reimplemented in ObjCryst::MonteCarloObj. |
|
Get the RefinableObj with all the parameters from all refined objects. If rebuild=true, prepare again the list of objects/parameters. |
|
Get the elapsed time (in seconds) during the last optimization.
|
|
The optimized (minimized, actually) function. This function is the weighted sum of the chosen Cost Functions for the refined objects. |
|
Get the MainTracker.
|
|
Get the MainTracker.
|
|
Get the name for this object.
|
|
|
|
|
|
Initialization of options.
Reimplemented in ObjCryst::MonteCarloObj. |
|
Are we busy optimizing ?
|
|
Launch optimization for multiple runs of N steps.
Implemented in ObjCryst::MonteCarloObj, and ObjCryst::SimplexObj. |
|
Launch optimization (a single run) for N steps.
Implemented in ObjCryst::MonteCarloObj, and ObjCryst::SimplexObj. |
|
Prepare mRefParList for the refinement.
|
|
Print some information about this object.
|
|
Randomize starting configuration. Only affects limited and periodic parameters.
|
|
Restore the Best configuration.
|
|
Change the absolute limits for a family of parameter.
|
|
Change the absolute limits for a parameter from its name.
|
|
Change the relative limits for a family of parameter.
|
|
Change the relative limits for a parameter from its name.
|
|
Set the name for this object.
|
|
Fix one family of parameters.
|
|
Fix one parameter.
|
|
Set a family of parameters to be used.
|
|
Set a parameter to be used.
|
|
Stop after the current cycle. USed for interactive refinement.
|
|
During a global optimization, tell all objects that the current config is the latest "best" config.
|
|
UnFix All parameters.
|
|
Update Display (if any display is available), when a new 'relevant' configuration is reached. This calls all RefinableObj::UpdateDisplay() |
|
Input in XML format from a stream, restoring the set of refined objects and the associated cost functions. Note that the corresponding objects must have been loaded in memory before, else shit happens.
Implemented in ObjCryst::MonteCarloObj, and ObjCryst::SimplexObj. |
|
Output a description of the object in XML format to a stream. This saves the list of refined object and the cost functions, as well as options for the refinement. The refined objects are not saved, so this must be done somewhere else (they must be reloaded before this object). Implemented in ObjCryst::MonteCarloObj, and ObjCryst::SimplexObj. |
|
Best value of the cost function so far.
|
|
Index of the 'best' saved parameter set.
|
|
The current 'context', in the case the optimization is run in different parallel contexts.
|
|
True if a refinement is being done. For multi-threaded environment.
|
|
The time elapsed after the last optimization, in seconds.
|
|
MainTracker object to track the evolution of cost functions, likelihood, and individual parameters.
|
|
Name of the GlobalOptimization object.
|
|
Number of trials so far.
|
|
The refined objects, recursively including all sub-objects. This is mutable, since it is a function of mRefinedObjList only. |
|
The refined objects.
|
|
The refinable par list used during refinement. Only a condensed version of all objects. This is useful to keep an history of modifications, and to restore previous values.
|
|
File name where refinement info is saved (NOT USED so far...).
|
|
If true, then stop at the end of the cycle. Used in multi-threaded environment.
|
|
Statistics for each context (mutable for dynamic update during optimization).
|
|
Weights for each objects in each context (mutable for dynamic update during optimization).
|
|
List of saved parameter sets. This is used to save possible solutions during the optimization, so that the user can check them afterwards. The first member of each pair is the index of the parameter set, and the second is the overall cost for that set. |
|
Periodic save of complete environment as an xml file.
|