Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
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 ~GSLSimAnMinimizer() override;
87
88 /// method to perform the minimization
89 bool Minimize() override;
90
91 /// number of calls
92 unsigned int NCalls() const override;
93
94 /// Get current minimizer option parameters
95 const GSLSimAnParams &MinimizerParameters() const { return fSolver.Params(); }
96
97 /// set new minimizer option parameters using directly the GSLSimAnParams structure
98 void SetParameters(const GSLSimAnParams &params)
99 {
100 fSolver.SetParams(params);
101 DoSetMinimOptions(params); // store new parameters also in MinimizerOptions
102 }
103
104 protected:
105 /// set minimizer option parameters from stored ROOT::Math::MinimizerOptions (fOpt)
106 void DoSetSimAnParameters(const MinimizerOptions &opt);
107
108 /// Set the Minimizer options from the simulated annealing parameters
109 void DoSetMinimOptions(const GSLSimAnParams &params);
110
111 private:
113
114
115};
116
117 } // end namespace Math
118
119} // end namespace ROOT
120
121
122#endif /* ROOT_Math_GSLSimAnMinimizer */
Base Minimizer class, which defines the basic functionality of various minimizer implementations (apa...
bool Minimize() override
method to perform the minimization
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)
unsigned int NCalls() const override
number of calls
const GSLSimAnParams & MinimizerParameters() const
Get current minimizer option parameters.
ROOT::Math::GSLSimAnnealing fSolver
~GSLSimAnMinimizer() override
Destructor (no operations).
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.
structure holding the simulated annealing parameters