Files Classes Functions Hierarchy
#include <cassert>#include <iostream>#include <point.h>#include <commandline.h>#include <print.h>#include <random.h>#include <exploreh.h>#include <probparab.h>#include <probsysequ01.h>#include <patternsearch.h>#include <patternsearchD2.h>#include <explorequad.h>#include <explorerand.h>#include <partialderivativetest.h>#include <lineoptimizergoldtest.h>#include <explorelinetest.h>#include <explorepdtest.h>#include <minimizecomparetest.h>#include <exploretest.h>#include <minexpdimtest.h>#include <typedefs.h>
Go to the source code of this file.
Typedefs | |
| typedef point2< double > | pt2 |
Functions | |
| void | test08 (int argc, char **argv) |
| void | test09 (int argc, char **argv) |
| void | test11 (int argc, char **argv) |
| int | main (int argc, char **argv) |
| int main | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 234 of file main.cpp.
References explorelinetest01(), explorelinetest02(), explorelinetest03(), explorepdtest01(), explorepdtest02(), exploretest01(), exploretest02(), exploretest03(), exploretest04(), exploretest05(), exploretest06(), exploretest07(), exploretest08(), lineoptimizergoldtest01(), commandline::mapvar(), minimizecomparetest01(), minimizecomparetest02(), minimizecomparetest03(), partialderivativetest01(), minexpdimtest::test01(), minexpdimtest::test02(), minexpdimtest::test03(), minexpdimtest::test04(), minexpdimtest::test05(), test08(), and test09().
00235 { 00236 commandline cmd(argc,argv); 00237 uint prog(0); 00238 cmd.mapvar(prog,"prog"); 00239 00240 switch (prog) 00241 { 00242 case 0: 00243 cout << "Testing programs for pattern search optimization."; 00244 cout << endl << endl; 00245 cout << "$./main prog=1 - minimize a 3D parabola" << endl; 00246 cout << "$./main prog=2 - least squares fit of line segments" << endl; 00247 cout << "$./main prog=3 - solving a system of non linear equations" << endl; 00248 cout << "$./main prog=10 - pattern move with explorh" << endl; 00249 cout << " options: counter=400 hstep=0.68" << endl; 00250 cout << "$./main prog=9 - pattern move with explorequad in dim dimensions" << endl; 00251 cout << " options: counter=400 hstep=0.68 dim=30 average=2" << endl; 00252 cout << "$./main prog=13-15 - 1D line minimization test" << endl; 00253 cout << "$./main prog=20-22 - explore line test" << endl; 00254 cout << "$./man prog=16-17 - compare algorithms" << endl; 00255 cout << "$./main prog=50-54 - minexpdim" << endl; 00256 break; 00257 00258 case 1: exploretest01(); break; 00259 case 2: exploretest02(); break; 00260 case 3: exploretest03(); break; 00261 case 4: exploretest04(); break; 00262 case 5: exploretest05(); break; 00263 case 6: exploretest06(); break; 00264 case 7: exploretest07(); break; 00265 case 8: exploretest08(); break; 00266 case 9: test09(argc,argv); break; 00267 case 10: test08(argc,argv); break; 00268 case 16: minimizecomparetest01(argc,argv); break; 00269 case 17: minimizecomparetest02(argc,argv); break; 00270 case 18: minimizecomparetest03(argc,argv); break; 00271 00272 00273 case 12: partialderivativetest01(); break; 00274 case 35: lineoptimizergoldtest01(); break; 00275 // case 36: lineoptimizergoldtest02(); break; 00276 // case 37: lineoptimizergoldtest03(); break; 00277 // case 38: lineoptimizergoldtest04(); break; 00278 case 20: explorelinetest01(argc,argv); break; 00279 case 21: explorelinetest02(argc,argv); break; 00280 case 22: explorelinetest03(argc,argv); break; 00281 00282 // case 23: powelltest01(argc,argv); break; 00283 // case 24: powelltest02(argc,argv); break; 00284 00285 case 30: explorepdtest01(argc,argv); break; 00286 case 31: explorepdtest02(argc,argv); break; 00287 00288 case 50: minexpdimtest::test01(); break; 00289 case 51: minexpdimtest::test02(); break; 00290 case 52: minexpdimtest::test03(argc,argv); break; 00291 case 53: minexpdimtest::test04(argc,argv); break; 00292 case 54: minexpdimtest::test05(argc,argv); break; 00293 00294 default: cout << "error: No case handled." << endl; return 1; 00295 } 00296 00297 return 0; 00298 }
| void test08 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 35 of file main.cpp.
References probparab2::counter, patternsearch< EXP >::exp, exploreh< FN, XI, T >::fn, commandline::mapvar(), printvecfunc(), patternsearch< EXP >::reset(), SHOW, and exploreh< FN, XI, T >::xi.
00036 { 00037 commandline cmd(argc,argv); 00038 double hstep(1.0); 00039 cmd.mapvar(hstep,"hstep"); 00040 uint counter(200); 00041 cmd.mapvar(counter,"counter"); 00042 00043 00044 uintc n(3); 00045 probparab2 fn; 00046 exploreh<probparab2 &,double*,double> g(fn,n,2.0,5000); 00047 00048 //explorequad< exploreh<probparab2 &,double*,double> > g2(fn,n,2.0,5000); 00049 00050 00051 patternsearch< exploreh<probparab2 &,double*,double> & > pat(g,hstep); 00052 00053 double x0[n] = { 0.0, 0.0, 0.0 }; 00054 00055 cout << "Pattern search algorithm" << endl; 00056 00057 for ( pat.reset(x0); g.fn.counter<counter; ) 00058 { 00059 //cout << "++pat" << endl; 00060 ++pat; 00061 cout << printvecfunc(pat.exp.xi,pat.exp.N) << endl; 00062 //cout << pat.xi0 << endl; 00063 } 00064 cout << printvecfunc(g.xi,n) << endl; 00065 cout << SHOW(g.fn.counter) << endl; 00066 cout << SHOW(hstep) << endl; 00067 cout << SHOW(pat.exp.fmin) << endl; 00068 00069 00070 /* 00071 g.indexmax = 50; 00072 for (pat.reset(x0); !pat; ++pat) 00073 cout << g.xi[0] << " " << g.xi[1] << " " << g.xi[2] << endl; 00074 cout << SHOW(fn.counter) << endl; 00075 00076 cout << "The exact solution is (1,2,5)" << endl; 00077 */ 00078 00079 }
| void test09 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 81 of file main.cpp.
References patternsearchD2< EXP >::exp, commandline::mapvar(), printvecfunc(), patternsearchD2< EXP >::reset(), SHOW, and patternsearchD2< EXP >::xi0.
Referenced by main().
00082 { 00083 commandline cmd(argc,argv); 00084 double hstep(1.0); 00085 cmd.mapvar(hstep,"hstep"); 00086 uint counter(200); 00087 cmd.mapvar(counter,"counter"); 00088 uint average(0); 00089 cmd.mapvar(average,"average"); 00090 00091 uint dim=1; 00092 cmd.mapvar(dim,"dim" ); 00093 00094 uintc n(3); 00095 probparab2 fn; 00096 00097 typedef explorequad< exploreh<probparab2 &,double*,double> > eh2; 00098 00099 eh2 g(fn,n,2.0,5000); 00100 patternsearchD2< eh2 & > pat(g,dim,hstep); 00101 00102 double x0[n] = { 0.0, 0.0, 0.0 }; 00103 00104 cout << "Pattern search algorithm" << endl; 00105 00106 uint k=0; 00107 for ( pat.reset(x0); g.fn.counter<counter; ) 00108 { 00109 //cout << "++pat" << endl; 00110 ++pat; 00111 //cout << SHOW(k) << endl; 00112 cout << printvecfunc(pat.exp.xi,pat.exp.N) << endl; 00113 //cout << pat.xi0 << endl; 00114 00115 ++k; 00116 if( (average!=0) && (k%average==0) ) 00117 { 00118 cout << "average" << endl; 00119 for (uint j=0; j<pat.exp.N; ++j) 00120 pat.exp.xi[j] = (pat.xi0[0][j]+pat.xi0[1][j])*0.5; 00121 pat.reset(); 00122 cout << printvecfunc(pat.exp.xi,pat.exp.N) << endl; 00123 } 00124 00125 } 00126 cout << printvecfunc(g.xi,n) << endl; 00127 cout << SHOW(g.fn.counter) << endl; 00128 cout << SHOW(hstep) << endl; 00129 cout << SHOW(average) << endl; 00130 cout << SHOW(pat.exp.fmin) << endl; 00131 }
| void test11 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 161 of file main.cpp.
References probsysequ01::counter, patternsearchD2< EXP >::exp, patternsearch< EXP >::exp, exploreh< FN, XI, T >::fmin, exploreh< FN, XI, T >::fn, commandline::mapvar(), printvecfunc(), patternsearchD2< EXP >::reset(), patternsearch< EXP >::reset(), exploreh< FN, XI, T >::reset(), SHOW, and exploreh< FN, XI, T >::xi.
00162 { 00163 cout << "Testing optimizers for a 2 variable non-linear system" << endl << endl; 00164 00165 commandline cmd(argc,argv); 00166 00167 uint counter(200); 00168 cmd.mapvar(counter,"counter"); 00169 00170 uint dim=1; 00171 cmd.mapvar(dim,"dim" ); 00172 00173 uintc n(2); 00174 double x0[n] = { 0.5, 0.5 }; 00175 00176 00177 cout << "exploreh" << endl; 00178 exploreh<probsysequ01,double*,double> g1(n,0.2,50000); 00179 for ( g1.reset(x0); g1.fn.counter<counter; ) 00180 ++g1; 00181 cout << printvecfunc(g1.xi,n) << endl; 00182 cout << SHOW(g1.fn.counter) << endl; 00183 cout << SHOW(g1.fmin) << endl; 00184 00185 cout << "patternsearch" << endl; 00186 typedef exploreh<probsysequ01,double*,double> e1; 00187 e1 f2(n,0.2,5000); 00188 patternsearch< e1 & > g2(f2,0.2); 00189 00190 for ( g2.reset(x0); g2.exp.fn.counter<counter; ) 00191 ++g2; 00192 cout << printvecfunc(g2.exp.xi,n) << endl; 00193 cout << SHOW(f2.fn.counter) << endl; 00194 cout << SHOW(f2.fmin) << endl; 00195 00196 cout << "pattern with explorequad " << SHOW(dim) << endl; 00197 typedef explorequad< exploreh<probsysequ01,double*,double> > eh2; 00198 eh2 f3(n,0.2,5000); 00199 patternsearchD2< eh2 & > g3(f3,dim,0.2); 00200 for ( g3.reset(x0); f3.fn.counter<counter; ) 00201 ++g3; 00202 cout << printvecfunc(g3.exp.xi,n) << endl; 00203 cout << SHOW(f3.fn.counter) << endl; 00204 cout << SHOW(f3.fmin) << endl; 00205 00206 cout << "pattern " << SHOW(dim) << endl; 00207 f2.fn.counter=0; 00208 patternsearchD2< e1 & > g4(f2,dim,0.2); 00209 for ( g4.reset(x0); f2.fn.counter<counter; ) 00210 ++g4; 00211 cout << printvecfunc(g4.exp.xi,n) << endl; 00212 cout << SHOW(f2.fn.counter) << endl; 00213 cout << SHOW(f2.fmin) << endl; 00214 00215 cout << "explorerand" << endl; 00216 explorerand< exploreh<probsysequ01,double*,double>, random00<> > g5(n,0.2,50000); 00217 for ( g5.reset(x0); g5.fn.counter<counter; ) 00218 ++g5; 00219 cout << printvecfunc(g5.xi,n) << endl; 00220 cout << SHOW(g5.fn.counter) << endl; 00221 cout << SHOW(g5.fmin) << endl; 00222 00223 }
1.5.8