1 <?xml version="1.0" encoding="ISO-8859-1"?>
3 * Ajouter ici d'éventuels commentaires sur le fichier XML
5 <refentry version="5.0-subset Scilab" xml:id="neldermead_overview" xml:lang="fr"
6 xmlns="http://docbook.org/ns/docbook"
7 xmlns:xlink="http://www.w3.org/1999/xlink"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns:ns4="http://www.w3.org/1999/xhtml"
10 xmlns:mml="http://www.w3.org/1998/Math/MathML"
11 xmlns:db="http://docbook.org/ns/docbook">
13 <pubdate>$LastChangedDate: 16-12-2008 $</pubdate>
17 <refname>overview</refname>
19 <refpurpose>An overview of the Nelder-Mead toolbox.</refpurpose>
23 <title>Purpose</title>
25 <para>The goal of this toolbox is to provide a Nelder-Mead direct search
26 optimization method. That Nelder-Mead algorithm may be used in the
27 following optimization context :<itemizedlist>
29 <para>there is no need to provide the derivatives of the objective
34 <para>the number of parameters is small (up to 10-20),</para>
38 <para>there are bounds and/or non linear constraints.</para>
40 </itemizedlist></para>
46 <para>This package provides the following
51 <para>“neldermead” provides various Nelder-Mead variants
52 and manages for Nelder-Mead specific settings, such as the method to
53 compute the initial simplex, the specific termination criteria,</para>
57 <para>“fminsearch” provides a Scilab commands which aims
58 at behaving as Matlab's fminsearch. Specific terminations criteria,
59 initial simplex and auxiliary settings are automatically configured so
60 that the behaviour of Matlab's fminsearch is exactly
65 <para>“optimset”, “optimget” provides Scilab
66 commands to emulate their Matlab counterparts.</para>
70 <para>“nmplot” provides a high-level component which
71 provides directly output pictures for Nelder-Mead algorithm.</para>
75 <para>The current component is based on the
76 following components </para>
80 <para>“optimbase” provides an abstract class for a general
81 optimization component, including the number of variables, the minimum
82 and maximum bounds, the number of non linear inequality constraints,
83 the loggin system, various termination criteria, the cost function,
88 <para>“optimsimplex” provides a class to manage a simplex
89 made of an arbitrary number of vertices, including the computation of
90 a simplex by various methods (axes, regular, Pfeffer's, randomized
91 bounds), the computation of the size by various methods (diameter,
92 sigma +, sigma-, etc...),</para>
98 <title>Features</title>
100 <para>The following is a list of features the Nelder-Mead prototype
101 algorithm currently provides :</para>
105 <para>Manage various simplex initializations</para>
109 <para>initial simplex given by user,</para>
113 <para>initial simplex computed with a length and along the
114 coordinate axes,</para>
118 <para>initial regular simplex computed with Spendley et al.
123 <para>initial simplex computed by a small perturbation around the
124 initial guess point</para>
130 <para>Manage cost function</para>
134 <para>optionnal additionnal argument</para>
138 <para>direct communication of the task to perform : cost function
139 or inequality constraints</para>
145 <para>Manage various termination criteria, including maximum number of
146 iterations, tolerance on function value (relative or absolute),
149 <para>tolerance on x (relative or absolute),</para>
153 <para>tolerance on standard deviation of function value
154 (original termination criteria in [3]),</para>
158 <para>maximum number of evaluations of cost function,</para>
162 <para>absolute or relative simplex size,</para>
164 </itemizedlist></para>
168 <para>Manage the history of the convergence, including</para>
172 <para>history of function values,</para>
176 <para>history of optimum point,</para>
180 <para>history of simplices,</para>
184 <para>history of termination criterias,</para>
190 <para>Provide a plot command which allows to graphically see the
191 history of the simplices toward the optimum,</para>
195 <para>Provide query features for the status of the optimization
196 process number of iterations, number of function evaluations, status
197 of execution, function value at initial point, function value at
198 optimal point, etc...</para>
202 <para>Spendley et al. fixed shaped algorithm,</para>
206 <para>Kelley restart based on simplex gradient,</para>
210 <para>O'Neill restart based on factorial search around optimum,</para>
214 <para>Box-like method managing bounds and nonlinear inequality
215 constraints based on arbitrary number of vertices in the
226 <para>implement "optimget"</para>
230 <para>provide the original Box method</para>
234 <para>implement parabolic line search</para>
236 </itemizedlist></para>
240 <title>Example : Optimizing the Rosenbrock function</title>
242 <para>In the following example, one searches the minimum of the 2D
243 Rosenbrock function. One begins by defining the function "rosenbrock"
244 which computes the Rosenbrock function. The traditionnal initial guess
245 [-1.2 1.0] is used. The initial simplex is computed along the axes with a
246 length equal to 0.1. The Nelder-Mead algorithm with variable simplex size
247 is used. The verbose mode is enabled so that messages are generated during
248 the algorithm. After the optimization is performed, the optimum is
249 retrieved with quiery features.</para>
251 <programlisting role="example">
252 function y = rosenbrock (x)
253 y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
256 nm = neldermead_new ();
257 nm = neldermead_configure(nm,"-x0",[-1.2 1.0]');
258 nm = neldermead_configure(nm,"-simplex0method","axes");
259 nm = neldermead_configure(nm,"-simplex0length",0.1);
260 nm = neldermead_configure(nm,"-method","variable");
261 nm = neldermead_configure(nm,"-verbose",1);
262 nm = neldermead_configure(nm,"-function",rosenbrock);
263 nm = neldermead_search(nm);
264 xopt = neldermead_get(nm,"-xopt");
265 fopt = neldermead_get(nm,"-fopt");
266 historyfopt = neldermead_get(nm,"-historyfopt");
267 iterations = neldermead_get(nm,"-iterations");
268 historyxopt = neldermead_get(nm,"-historyxopt");
269 historysimplex = neldermead_get(nm,"-historysimplex");
270 fx0 = neldermead_get(nm,"-fx0");
271 status = neldermead_get(nm,"-status");
272 nm = neldermead_destroy(nm);
277 <title>Authors</title>
279 <para>Michael Baudin, 2008-2009</para>
283 <title>Bibliography</title>
285 <para>“Sequential Application of Simplex Designs in Optimisation and
286 Evolutionary Operation”, Spendley, W. and Hext, G. R. and Himsworth,
287 F. R., American Statistical Association and American Society for Quality,
290 <para>“A Simplex Method for Function Minimization”, Nelder, J.
291 A. and Mead, R., The Computer Journal, 1965</para>
293 <para>"A New Method of Constrained Optimization and a Comparison With
294 Other Methods", M. J. Box, The Computer Journal 1965 8(1):42-52, 1965 by
295 British Computer Society</para>
297 <para>“Convergence Properties of the Nelder--Mead Simplex Method in
298 Low Dimensions”, Jeffrey C. Lagarias and James A. Reeds and Margaret
299 H. Wright and Paul E. Wright, SIAM Journal on Optimization, 1998</para>
301 <para>“Compact numerical methods for computers : linear algebra and
302 function minimisation”, Nash, J. C., Hilger, Bristol, 1979</para>
304 <para>“Iterative Methods for Optimization”, C. T. Kelley,
307 <para>“Iterative Methods for Optimization: Matlab Codes”,
308 http://www4.ncsu.edu/~ctk/matlab_darts.html</para>
310 <para>“Sequential Simplex Optimization: A Technique for Improving
311 Quality and Productivity in Research, Development, and
312 Manufacturing”, Walters, Fred H. and Jr, Lloyd R. and Morgan,
313 Stephen L. and Deming, Stanley N., 1991</para>
315 <para>“Numerical Recipes in C, Second Edition”, W. H. Press
316 and Saul A. Teukolsky and William T. Vetterling and Brian P. Flannery,
319 <para>“Detection and Remediation of Stagnation in the Nelder--Mead
320 Algorithm Using a Sufficient Decrease Condition”, SIAM J. on
321 Optimization, Kelley,, C. T., 1999</para>
323 <para>Matlab – fminsearch ,
324 http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/fminsearch.html</para>
326 <para>GAMS, A19A20 - description,
327 http://gams.nist.gov/serve.cgi/Module/NASHLIB/A19A20/11238/</para>
330 http://people.sc.fsu.edu/~burkardt/f77_src/asa047/asa047.f</para>
333 http://www.stat.uconn.edu/~mhchen/survbook/example51/optim1.f</para>
335 <para>as47,f, http://lib.stat.cmu.edu/apstat/47</para>
337 <para>“Algorithm AS47 - Function minimization using a simplex
338 procedure, O'Neill, R., 1971, Applied Statistics</para>