• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/examples/FunctionMin/exampletiming.c

00001 
00002 /* runs the timing experiment for MY_OPTIMIZER.
00003  */
00004 
00005 #include <stdio.h>
00006 #include <string.h>
00007 #include <time.h>
00008 #include <stdlib.h>
00009 
00010 #include "bbobStructures.h"
00011 
00012 /* include all declarations for your own optimizer here */
00013 void MY_OPTIMIZER(double(*fgeneric)(double*), unsigned int dim, double ftarget, double maxfunevals);
00014 
00015 int main(void)
00016 {
00017 /* your own internal stuff */
00018 
00019     unsigned int dim[6] = {2, 3, 5, 10, 20, 40};
00020     double timings[6];
00021     unsigned int runs[6]; /*not really needed*/
00022     unsigned int dims[6]; /*not really needed*/
00023     unsigned int i, idx_dim, nbrun;
00024     double ftarget;
00025     clock_t t0;
00026 
00027     ParamStruct params = fgeneric_getDefaultPARAMS();
00028     strcpy(params.dataPath, "tmp");
00029     params.funcId = 8;
00030     params.instanceId = 1;
00031 
00032     for (idx_dim = 0; idx_dim < 6; idx_dim++)
00033     {
00034         nbrun = 0;
00035         params.DIM = dim[idx_dim];
00036         ftarget = fgeneric_initialize(params);
00037         t0 = clock();
00038         while ((double)(clock()-t0)/CLOCKS_PER_SEC < 30.)
00039         {
00040             MY_OPTIMIZER(&fgeneric_evaluate, dim[idx_dim], ftarget, 1e5); /*adjust maxfunevals*/
00041             nbrun ++;
00042         }
00043         timings[idx_dim] = (double)(clock()-t0)/CLOCKS_PER_SEC / (double)fgeneric_evaluations();
00044         dims[idx_dim] = dim[idx_dim];
00045         runs[idx_dim] = nbrun;
00046         fgeneric_finalize();
00047         printf("Dimensions:");
00048         for (i = 0; i <= idx_dim; i++)
00049             printf(" %11d ", dims[i]);
00050         printf("\n      runs:");
00051         for (i = 0; i <= idx_dim; i++)
00052             printf(" %11d ", runs[i]);
00053         printf("\n times [s]:");
00054         for (i = 0; i <= idx_dim; i++)
00055             printf(" %11.1e ", timings[i]);
00056         printf("\n");
00057     }
00058     return 0;
00059 }

Generated on Tue Nov 4 2014 13:04:32 for ECF by  doxygen 1.7.1