Logo ROOT  
Reference Guide
GSLSimAnMinimizer.h
Go to the documentation of this file.
1// @(#)root/mathmore:$Id$
2// Author: L. Moneta Wed Dec 20 17:16:32 2006
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT *
7 * *
8 * This library is free software; you can redistribute it and/or *
9 * modify it under the terms of the GNU General Public License *
10 * as published by the Free Software Foundation; either version 2 *
11 * of the License, or (at your option) any later version. *
12 * *
13 * This library is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16 * General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this library (see file COPYING); if not, write *
20 * to the Free Software Foundation, Inc., 59 Temple Place, Suite *
21 * 330, Boston, MA 02111-1307 USA, or contact the author. *
22 * *
23 **********************************************************************/
24
25// Header file for class GSLSimAnMinimizer
26
27#ifndef ROOT_Math_GSLSimAnMinimizer
28#define ROOT_Math_GSLSimAnMinimizer
29
30
31
32#include "Math/BasicMinimizer.h"
33
34
35#include "Math/IFunctionfwd.h"
36
38
39
40
42
43
44
45
46namespace ROOT {
47
48 namespace Math {
49
50
51
52//_____________________________________________________________________________________
53 /**
54 GSLSimAnMinimizer class for minimization using simulated annealing
55 using the algorithm from
56 <A HREF="http://www.gnu.org/software/gsl/manual/html_node/Simulated-Annealing.html">
57 GSL</A>.
58 It implements the ROOT::Minimizer interface and
59 a plug-in (name "GSLSimAn") exists to instantiate this class via the plug-in manager
60 Configuration (Setting/getting) the options is done through the methods defined in the
61 ROOT::Math::Minimizer class.
62 The user needs to call the base class method ROOT::Math::Minimizer::SetOptions to set the
63 corresponding options.
64 Here is some code example for increasing n_tries from 200 (default) to 1000
65 ```
66 ROOT::Math::GenAlgoOptions simanOpt;
67 simanOpt.SetValue("n_tries", 1000);
68 ROOT::Math::MinimizerOptions opt;
69 opt.SetExtraOptions(simanOpt);
70 minimizer->SetOptions(opt);
71 ```
72
73 @ingroup MultiMin
74 */
76
77 public:
78 /**
79 Default constructor
80 */
81 GSLSimAnMinimizer(int type = 0);
82
83 /**
84 Destructor (no operations)
85 */
86 virtual ~GSLSimAnMinimizer();
87
88 private:
89 // usually copying is non trivial, so we make this unaccessible
90
91 /**
92 Copy constructor
93 */
95
96 /**
97 Assignment operator
98 */
100 {
101 if (this == &rhs)
102 return *this; // time saving self-test
103 return *this;
104 }
105
106 public:
107 /// method to perform the minimization
108 virtual bool Minimize();
109
110 /// number of calls
111 unsigned int NCalls() const;
112
113 /// Get current minimizer option parameteres
115
116 /// set new minimizer option parameters using directly the GSLSimAnParams structure
117 void SetParameters(const GSLSimAnParams &params)
118 {
119 fSolver.SetParams(params);
120 DoSetMinimOptions(params); // store new parameters also in MinimizerOptions
121 }
122
123 protected:
124 /// set minimizer option parameters from stored ROOT::Math::MinimizerOptions (fOpt)
125 void DoSetSimAnParameters(const MinimizerOptions &opt);
126
127 /// Set the Minimizer options from the simulated annealing parameters
128 void DoSetMinimOptions(const GSLSimAnParams &params);
129
130 private:
132
133
134};
135
136 } // end namespace Math
137
138} // end namespace ROOT
139
140
141#endif /* ROOT_Math_GSLSimAnMinimizer */
int type
Definition: TGX11.cxx:121
Base Minimizer class, which defines the basic funcionality of various minimizer implementations (apar...
GSLSimAnMinimizer class for minimization using simulated annealing using the algorithm from GSL.
virtual ~GSLSimAnMinimizer()
Destructor (no operations)
void SetParameters(const GSLSimAnParams &params)
set new minimizer option parameters using directly the GSLSimAnParams structure
GSLSimAnMinimizer(int type=0)
Default constructor.
void DoSetSimAnParameters(const MinimizerOptions &opt)
set minimizer option parameters from stored ROOT::Math::MinimizerOptions (fOpt)
const GSLSimAnParams & MinimizerParameters() const
Get current minimizer option parameteres.
ROOT::Math::GSLSimAnnealing fSolver
GSLSimAnMinimizer(const GSLSimAnMinimizer &)
Copy constructor.
unsigned int NCalls() const
number of calls
virtual bool Minimize()
method to perform the minimization
GSLSimAnMinimizer & operator=(const GSLSimAnMinimizer &rhs)
Assignment operator.
void DoSetMinimOptions(const GSLSimAnParams &params)
Set the Minimizer options from the simulated annealing parameters.
GSLSimAnnealing class for performing a simulated annealing search of a multidimensional function.
void SetParams(const GSLSimAnParams &params)
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
structure holding the simulated annealing parameters