Files Classes Functions Hierarchy
#include <patternsearch.h>
Public Types | |
| typedef typeop< EXP >::Tbare::Ttype | T |
| typedef typeop< EXP > ::Tbare::XItype | XI |
Public Member Functions | |
| patternsearch (EXP exp_, T hstep_=1) | |
| The pattern move is configured with an exploratory mover and variable step length. | |
| void | reset () |
| Reset from the current position and keep the state. | |
| void | reset (T const *x0) |
| New position and new state. | |
| void | operator++ () |
| One exploratory move then pattern moves. | |
| bool const | operator! () const |
Public Attributes | |
| EXP | exp |
| The exploratory mover. | |
| T | hstep |
| Pattern move is X[n+1]=X[n]+hstep*(x[n]-x[n-1]). | |
| cirbuffarr< T > | xi0 |
| The previous state. | |
| vec< XI, T > | xivec |
| The current state as a vec for arithmetic operations. | |
I modified the algorithm for a variable step length. This showed improvement when I used the Fibonacci golden ratio as the step length.
Pattern move : X[n+1] = X[n] + hstep*(X[n]-X[n-1])
Definition at line 21 of file patternsearch.h.
| typedef typeop<EXP>::Tbare::Ttype patternsearch< EXP >::T |
Definition at line 25 of file patternsearch.h.
| typedef typeop<EXP>::Tbare::XItype patternsearch< EXP >::XI |
Definition at line 26 of file patternsearch.h.
| patternsearch< EXP >::patternsearch | ( | EXP | exp_, | |
| T | hstep_ = 1 | |||
| ) | [inline] |
| bool const patternsearch< EXP >::operator! | ( | ) | const [inline] |
Definition at line 54 of file patternsearch.h.
References patternsearch< EXP >::exp.
00055 { return exp.valid; }
| void patternsearch< EXP >::operator++ | ( | ) | [inline] |
One exploratory move then pattern moves.
Definition at line 76 of file patternsearch.h.
References patternsearch< EXP >::exp, patternsearch< EXP >::hstep, patternsearch< EXP >::xi0, and patternsearch< EXP >::xivec.
00077 { 00078 for (bool loop=true; loop;) 00079 { 00080 xi0.push(exp.xi); 00081 xivec -= xi0[1]; 00082 xivec *= hstep; 00083 xivec += xi0[0]; 00084 00085 exp.movelocal(); 00086 00087 loop = exp.evaluate(); 00088 } 00089 xi0.copyto(exp.xi); 00090 }
| void patternsearch< EXP >::reset | ( | T const * | x0 | ) | [inline] |
New position and new state.
ie a full reset.
Definition at line 47 of file patternsearch.h.
References patternsearch< EXP >::exp, and patternsearch< EXP >::reset().
Referenced by patternsearch< EXP >::reset().
| void patternsearch< EXP >::reset | ( | ) | [inline] |
Reset from the current position and keep the state.
Definition at line 67 of file patternsearch.h.
References patternsearch< EXP >::exp, and patternsearch< EXP >::xi0.
Referenced by minimizecomparetest01(), minimizecomparetest02(), test08(), and test11().
00068 { 00069 exp.reset(); 00070 xi0.push(exp.xi); 00071 exp.move(); 00072 xi0.push(exp.xi); 00073 }
| EXP patternsearch< EXP >::exp |
The exploratory mover.
Definition at line 29 of file patternsearch.h.
Referenced by minimizecomparetest01(), minimizecomparetest02(), patternsearch< EXP >::operator!(), patternsearch< EXP >::operator++(), patternsearch< EXP >::reset(), test08(), and test11().
| T patternsearch< EXP >::hstep |
Pattern move is X[n+1]=X[n]+hstep*(x[n]-x[n-1]).
Definition at line 32 of file patternsearch.h.
Referenced by patternsearch< EXP >::operator++().
| cirbuffarr< T > patternsearch< EXP >::xi0 |
The previous state.
Definition at line 38 of file patternsearch.h.
Referenced by patternsearch< EXP >::operator++(), and patternsearch< EXP >::reset().
| vec< XI, T > patternsearch< EXP >::xivec |
The current state as a vec for arithmetic operations.
Definition at line 41 of file patternsearch.h.
Referenced by patternsearch< EXP >::operator++().
1.5.8