123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- #ifndef _ADAPTIVE_DIRECTION_RANDOM_SEARCH_OPTIMIZER_
- #define _ADAPTIVE_DIRECTION_RANDOM_SEARCH_OPTIMIZER_
- #include "core/optimization/blackbox/SimpleOptimizer.h"
- #include "core/optimization/blackbox/Definitions_core_opt.h"
- namespace OPTIMIZATION
- {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- class AdaptiveDirectionRandomSearchOptimizer : public SimpleOptimizer
- {
- public:
- typedef SimpleOptimizer SuperClass;
- typedef OPTIMIZATION::matrix_type matrix_type;
-
-
-
-
-
- AdaptiveDirectionRandomSearchOptimizer(unsigned int numOfPoints, OptLogBase *loger=NULL);
-
-
-
-
-
- AdaptiveDirectionRandomSearchOptimizer( const AdaptiveDirectionRandomSearchOptimizer &opt);
-
-
-
- AdaptiveDirectionRandomSearchOptimizer & operator=(const AdaptiveDirectionRandomSearchOptimizer &opt);
-
-
-
-
- ~AdaptiveDirectionRandomSearchOptimizer();
-
-
-
-
-
-
-
-
- void init();
-
-
-
-
- int optimize();
-
-
-
-
-
-
-
-
-
- bool setControlSeqParams(double b0, double bfac, unsigned int bThresTimesNotDecreased, double bBreak);
-
-
-
-
-
-
-
-
-
- void activateAdvancedInit(bool enable, matrix_type& lowerBounds, matrix_type& upperBounds);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- bool setRecallParams(double c0s, double c1s, double c0f, double c1f, double D);
-
-
-
-
- inline void setNumberOfPoints(unsigned int num){m_numberOfParallelPoints = num;};
-
-
-
-
-
- inline void setInitFunctionValueThresh(bool active, double threshold){m_initFuncThreshActive = active;m_initFuncTresh = threshold;};
- private:
-
-
-
- unsigned int m_numberOfParallelPoints;
-
-
-
- matrix_type m_Parameters;
-
-
-
- matrix_type m_CurrentCostFunctionValues;
-
-
-
- matrix_type generatePoints();
-
-
-
- matrix_type generatePoint();
-
-
-
-
-
-
- void acceptPoints(matrix_type oldValues, matrix_type newValues);
- bool *m_pointsAccepted;
-
-
-
- double m_b0;
-
-
-
- double m_bfac;
-
-
-
- double *m_bk;
-
-
-
- unsigned int m_bThresTimesNotDecreased;
-
-
-
- double m_bBreak;
-
-
-
- matrix_type m_backupPoint;
-
-
-
- double m_backupPointValue;
-
-
-
- bool m_backupActive;
-
-
-
- double m_c0s;
-
-
-
- double m_c1s;
-
-
-
- double m_c0f;
-
-
-
- double m_c1f;
-
-
-
- double m_D;
-
-
-
- bool m_initFuncThreshActive;
-
-
-
- double m_initFuncTresh;
-
-
-
- bool m_advancedInit;
-
-
-
-
- matrix_type m_advancedinitLowerBounds;
-
-
-
- matrix_type m_advancedinitUpperBounds;
- };
- }
- #endif
|