English Français

Documentation / Manuel développeur

Modules disponibles

Calibration,  DataServer,  Launcher,  MetaModelOptim,  Modeler,  Optimizer,  ReLauncher,  Reliability,  ReOptimizer,  Sampler,  Sensitivity,  UncertModeler,  XmlProblem,   Uranie / MetaModelOptim: TEgoShareSolver.h Source File
Uranie / MetaModelOptim  v4.11.0
/* @license-end */
TEgoShareSolver.h
Go to the documentation of this file.
1 /* --- Ansi C --- */
3 // Copyright (C) 2019 CEA/DEN
4 //
5 // This program is free software: you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public License
7 // as published by the Free Software Foundation, either version 3 of
8 // the License, or any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this program.
17 // if not, see <http://www.gnu.org/licenses/>.
19 
28 #ifndef __EGOSHARESOLVER__
29 #define __EGOSHARESOLVER__
30 
31 // ROOT
32 
33 // Uranie
34 #include "TDataServer.h"
35 #include "TRun.h"
36 #ifdef WITH_VIZIR
37 #include "TVizirGenetic.h"
38 #include "TVizir2.h"
39 #endif
40 #include "TOptimFit.h"
41 
42 #include "TEGO.h"
43 #include "THJMA.h"
44 
45 
46 namespace URANIE {
47 namespace MetaModelOptim {
48 
50 {
51 protected:
52  URANIE::DataServer::TDataServer *_tds;
53  vector<URANIE::DataServer::TAttribute*> _in;
54  URANIE::DataServer::TAttribute *_ego;
55  URANIE::Relauncher::TRun *_run;
56  URANIE::Reoptimizer::TMaximizeFit _maxim;
58  double _valid_ei;
59 
60  virtual void fitnessChanged() = 0;
61  virtual void extend() = 0;
62  virtual void solverLoop() = 0;
63 
64 public:
66  virtual ~TEgoShareSolver();
67 
68  virtual void significantEI(double);
69  void setManyNewItem(int);
70 
71  virtual void build(URANIE::Relauncher::TRun *,
72  vector<URANIE::DataServer::TAttribute*>&, URANIE::DataServer::TAttribute *);
73  virtual void next();
74  virtual void more();
75 
77 };
78 
80 {
81 protected:
82  URANIE::Reoptimizer::TOptimRepriseSolver *_algo;
83  URANIE::Reoptimizer::TOptimReprise *_viz;
84  URANIE::Reoptimizer::TGreaterFit _signif;
85  int _NG;
86 
87 public:
89  virtual ~TEgoBasicSolver();
90 
91  void setSolver(URANIE::Reoptimizer::TOptimRepriseSolver *);
92  void setStepSize(int);
93 
94  void solverLoop();
95 
97 };
98 
99 #ifdef WITH_VIZIR
100 class TEgoVzrSolver : public TEgoShareSolver
101 {
102 protected:
103  URANIE::Reoptimizer::TVizirSolverShare *_algo;
104  URANIE::Reoptimizer::TVizir2 *_viz;
105  URANIE::Reoptimizer::TGreaterFit _signif;
106  int _NG;
107 
108 public:
109  TEgoVzrSolver();
110  virtual ~TEgoVzrSolver();
111 
112  void setSolver(URANIE::Reoptimizer::TVizirSolverShare *);
113  void setStepSize(int);
114 
115  void solverLoop();
116 
117  ClassDef(URANIE::MetaModelOptim::TEgoVzrSolver, ID_EGO)
118 };
119 #endif
120 
122 {
123 protected:
126 
127 public:
128  TEgoHjSolver();
129  virtual ~TEgoHjSolver();
130 
131  void setSize(int, int);
132  virtual int getNext(long ev, int nb,
133  vector<vector<URANIE::DataServer::UEntry*>> &sampl, vector<char> &mark);
134  void solverLoop();
135 
137 };
138 
139 
140 } } //namespace
141 
142 #endif
Definition: TEGO.h:57
virtual int getNext(long ev, int nb, vector< vector< URANIE::DataServer::UEntry *>> &sampl, vector< char > &mark)
Definition: TEgoShareSolver.cxx:181
virtual void significantEI(double)
Definition: TEgoShareSolver.cxx:58
void setSolver(URANIE::Reoptimizer::TOptimRepriseSolver *)
Definition: TEgoShareSolver.cxx:110
URANIE::Reoptimizer::TMaximizeFit _maxim
Definition: TEgoShareSolver.h:56
vector< URANIE::DataServer::TAttribute * > _in
Definition: TEgoShareSolver.h:53
int _NinDat
Definition: TEgoShareSolver.h:57
Definition: TEgoShareSolver.h:79
URANIE::Reoptimizer::TOptimReprise * _viz
Definition: TEgoShareSolver.h:83
Definition: THJMA.h:88
TEgoShareSolver()
Definition: TEgoShareSolver.cxx:45
double _valid_ei
Definition: TEgoShareSolver.h:58
URANIE::Reoptimizer::TOptimRepriseSolver * _algo
Definition: TEgoShareSolver.h:82
#define ID_EGO
Definition: TEGO.h:31
void setStepSize(int)
Definition: TEgoShareSolver.cxx:115
URANIE::Reoptimizer::TGreaterFit _signif
Definition: TEgoShareSolver.h:84
int _first
Definition: TEgoShareSolver.h:57
Definition: TEgoShareSolver.h:49
HJMA search algorithm.
Definition: TEgoShareSolver.h:121
virtual void next()
Definition: TEgoShareSolver.cxx:77
virtual ~TEgoBasicSolver()
Definition: TEgoShareSolver.cxx:103
TEgoHjSolver()
Definition: TEgoShareSolver.cxx:159
virtual void build(URANIE::Relauncher::TRun *, vector< URANIE::DataServer::TAttribute *> &, URANIE::DataServer::TAttribute *)
Definition: TEgoShareSolver.cxx:68
void setSize(int, int)
Definition: TEgoShareSolver.cxx:174
void solverLoop()
Definition: TEgoShareSolver.cxx:242
URANIE::DataServer::TDataServer * _tds
Definition: TEgoShareSolver.h:52
void setManyNewItem(int)
Definition: TEgoShareSolver.cxx:63
int _Nstep
Definition: TEgoShareSolver.h:124
TEgoBasicSolver()
Definition: TEgoShareSolver.cxx:97
URANIE::DataServer::TAttribute * _ego
Definition: TEgoShareSolver.h:54
int _NG
Definition: TEgoShareSolver.h:85
URANIE::Relauncher::TRun * _run
Definition: TEgoShareSolver.h:55
virtual ~TEgoShareSolver()
Definition: TEgoShareSolver.cxx:52
int _many
Definition: TEgoShareSolver.h:57
virtual void more()
Definition: TEgoShareSolver.cxx:89
int _Nfirst
Definition: TEgoShareSolver.h:124
void solverLoop()
Definition: TEgoShareSolver.cxx:120
efficient global optimization algorithm
THJMA * _algo
Definition: TEgoShareSolver.h:125
virtual ~TEgoHjSolver()
Definition: TEgoShareSolver.cxx:168