NOMAD Source
Version 4.0.0 Beta
|
Class to perform a Search method using Nelder Mead simplex algorithm. More...
#include <NMSearchMethod.hpp>
Public Member Functions | |
NMSearchMethod (const Step *parentStep) | |
Constructor. More... | |
virtual void | start () override |
virtual bool | run () override |
![]() | |
SearchMethod (const Step *parentStep) | |
Constructor. More... | |
bool | isEnabled () const |
void | setEnabled (const bool enabled) |
virtual void | end () override |
What a step does. More... | |
![]() | |
Step () | |
Constructor #1 for MainStep (no parent) More... | |
Step (const Step *parentStep, const std::shared_ptr< RunParameters > &runParams=nullptr, const std::shared_ptr< PbParameters > &pbParams=nullptr) | |
Constructor #2 for child step of a parent sharing the same stopReason. More... | |
Step (const Step *parentStep, std::shared_ptr< AllStopReasons > stopReasons, const std::shared_ptr< RunParameters > &runParams=nullptr, const std::shared_ptr< PbParameters > &pbParams=nullptr) | |
Constructor #3: for a child Step with a provided stopReason (such as an algorithm) More... | |
virtual | ~Step () |
Destructor. More... | |
const Step * | getParentStep () const |
Get the parent step. More... | |
virtual const std::string | getName () const |
Get the name of this step. More... | |
void | setName (const std::string &name) |
Set the name of this step. More... | |
std::shared_ptr< AllStopReasons > | getAllStopReasons () const |
void | addCallback (const NOMAD::CallbackType &callbackType, const NOMAD::StepEndCbFunc &stepEndCbFunc) |
Set user callback. More... | |
void | addCallback (const NOMAD::CallbackType &callbackType, const NOMAD::HotRestartCbFunc &hotRestartCbFunc) |
void | AddOutputInfo (const std::string &s, bool isBlockStart, bool isBlockEnd) const |
display output More... | |
void | AddOutputInfo (const std::string &s, OutputLevel outputLevel=OutputLevel::LEVEL_INFO) const |
void | AddOutputError (const std::string &s) const |
void | AddOutputWarning (const std::string &s) const |
void | AddOutputVeryHigh (const std::string &s) const |
void | AddOutputHigh (const std::string &s) const |
void | AddOutputDebug (const std::string &s) const |
void | AddOutputInfo (OutputInfo outputInfo) const |
template<typename T > | |
const Step * | getParentOfType (const bool stopAtAlgo=true) const |
Template function to get the parent of given type. More... | |
bool | isAnAlgorithm () const |
const std::shared_ptr< MeshBase > | getIterationMesh () const |
const std::shared_ptr< EvalPoint > | getIterationFrameCenter () const |
const std::shared_ptr< Barrier > | getMegaIterationBarrier () const |
Point | getSubFixedVariable () const |
virtual void | hotRestartOnUserInterrupt () |
Helper for hot restart functionalities. More... | |
![]() | |
MadsIterationUtils (const Step *parentStep) | |
Constructor. More... | |
![]() | |
IterationUtils (const Step *parentStep) | |
Constructor. More... | |
~IterationUtils () | |
Destructor. More... | |
const SuccessType & | getSuccessType () const |
void | setSuccessType (const SuccessType &success) |
size_t | getTrialPointsCount () const |
EvalPointSet & | getTrialPoints () |
bool | insertTrialPoint (const EvalPoint &evalPoint) |
Insert a trial point. More... | |
void | clearTrialPoints (void) |
Clear trial points. More... | |
virtual void | postProcessing () |
Helper for end() More... | |
virtual void | verifyPointsAreOnMesh () |
Helper for start() More... | |
bool | evalTrialPoints (Step *step) |
Start evaluation of the trial points. More... | |
size_t | getNbEvalPointsThatNeededEval () const |
Get the number of evaluation points in the queue for evaluation. More... | |
virtual void | updatePointsWithFrameCenter () |
Add current frame center as originator of each point in trialPoints. More... | |
Private Member Functions | |
void | init () |
Helper for constructor. More... | |
void | generateTrialPoints () override |
Generate new points (no evaluation) More... | |
Additional Inherited Members | |
![]() | |
static bool | getUserTerminate () |
Interruption call by user. More... | |
static void | setUserTerminate () |
Interruption requested. More... | |
static void | userInterrupt (int signalValue) |
Interruption call by user with a signal value. More... | |
static bool | getUserInterrupt () |
static void | runCallback (NOMAD::CallbackType callbackType, const NOMAD::Step &step, bool &stop) |
Run user callback. More... | |
static void | runCallback (NOMAD::CallbackType callbackType, std::vector< std::string > ¶mLines) |
![]() | |
static void | snapPointToBoundsAndProjectOnMesh (Point &xt, const ArrayOfDouble &lb, const ArrayOfDouble &ub, const std::shared_ptr< Point > frameCenter, const std::shared_ptr< MeshBase > mesh=nullptr) |
Helper for start() More... | |
![]() | |
void | init () |
![]() | |
void | verifyParentNotNull () |
Helper for constructors. More... | |
void | verifyGenerateAllPointsBeforeEval (const std::string &method, const bool expected) const |
Helper for validating steps depending on parameter GENERATE_ALL_POINTS_BEFORE_EVAL. More... | |
void | init () |
Helper for constructors. More... | |
void | defaultStart () |
bool | defaultRun () |
void | defaultEnd () |
void | hotRestartBeginHelper () |
Helpers for hot restart, to be called at the start and end of any override. More... | |
void | hotRestartEndHelper () |
Helpers for hot restart, to be called at the start and end of any override. More... | |
![]() | |
const Step * | _parentStep |
The parent of this step. More... | |
std::string | _name |
The name of this step. More... | |
std::shared_ptr< AllStopReasons > | _stopReasons |
The stop reasons of an algorithm. More... | |
std::shared_ptr< RunParameters > | _runParams |
The run parameters that control a step. More... | |
std::shared_ptr< PbParameters > | _pbParams |
The problem parameters that control a step. More... | |
![]() | |
const Step * | _parentStep |
SuccessType | _success |
Success type of this step. More... | |
Iteration * | _iterAncestor |
MegaIteration * | _megaIterAncestor |
![]() | |
static bool | _userInterrupt |
Interrupt NOMAD if Ctrl-C is pressed. More... | |
static bool | _userTerminate |
Terminate NOMAD if Ctrl-C is pressed again. More... | |
static NOMAD::StepEndCbFunc | _cbIterationEnd |
static NOMAD::StepEndCbFunc | _cbMegaIterationEnd |
static NOMAD::HotRestartCbFunc | _cbHotRestart |
Class to perform a Search method using Nelder Mead simplex algorithm.
If Nelder Mead search is enabled (check is done in NMSearchMethod::init), the NMSearchMethod::run function manages the execution (start, run, end) of the NM algorithm.
The new trial points can be generated during a single pass of all Nelder Mead reflective steps (REFLECT, EXPAND, INSIDE_CONTRACTION, OUTSIDE_CONTRACTION) ( generateTrialPoint ) or as a NM optimization.
Definition at line 13 of file NMSearchMethod.hpp.
|
inlineexplicit |
Constructor.
/param parentStep The parent of this search step – IN.
Definition at line 20 of file NMSearchMethod.hpp.
|
overrideprivatevirtual |
Generate new points (no evaluation)
This function is used only when a MADS search based on Nelder Mead with the option to generate all points before evaluation performs one iteration of all reflective steps (Reflect, Expansion, Inside and Outside Contraction).
Implements IterationUtils.
|
private |
Helper for constructor.
Test if the NM search is enabled or not.
|
overridevirtual |
Execute (start, run, end) the NM algorihm. Returns a true
flag if the algorithm found better point.
Reimplemented from SearchMethod.
|
overridevirtual |
Make sure the step by step version of NM algorithm is used.
Reimplemented from SearchMethod.