00001
00020
00021
00022
00023
00024 # include <stdio.h>
00025 # include <stdlib.h>
00026 #include <string.h>
00027 # include <math.h>
00028
00029 # include "global.h"
00030 # include "sub.h"
00031 # include "rand.h"
00032
00033 void calc_benchmark_norm_f15();
00034 void calc_benchmark_norm_f16();
00035 void calc_benchmark_norm_f17();
00036 void calc_benchmark_norm_f18();
00037 void calc_benchmark_norm_f19();
00038 void calc_benchmark_norm_f20();
00039 void calc_benchmark_norm_f21();
00040 void calc_benchmark_norm_f22();
00041 void calc_benchmark_norm_f23();
00042 void calc_benchmark_norm_f24();
00043 void calc_benchmark_norm_f25();
00044
00045 FILE *myopen(const char *file, const char *mode) {
00046 FILE *fpt;
00047 fpt = fopen(file,mode);
00048
00049 if (fpt == NULL) {
00050 char fname[120];
00051 sprintf(fname, "/usr/local/include/cec2005/%s", file);
00052 fpt = fopen(fname, mode);
00053 }
00054
00055 return fpt;
00056 }
00057
00058
00059 void initialize_f1()
00060 {
00061 int i, j;
00062 FILE *fpt;
00063 fpt = myopen("input_data/sphere_func_data.txt","r");
00064
00065 if (fpt==NULL)
00066 {
00067 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00068 exit(0);
00069 }
00070 for (i=0; i<nfunc; i++)
00071 {
00072 for (j=0; j<nreal; j++)
00073 {
00074 fscanf(fpt,"%Lf",&o[i][j]);
00075
00076 }
00077 }
00078 fclose(fpt);
00079 bias[0] = -450.0;
00080 return;
00081 }
00082
00083 void initialize_f2()
00084 {
00085 int i, j;
00086 FILE *fpt;
00087 fpt = myopen("input_data/schwefel_102_data.txt","r");
00088
00089 if (fpt==NULL)
00090 {
00091 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00092 exit(0);
00093 }
00094 for (i=0; i<nfunc; i++)
00095 {
00096 for (j=0; j<nreal; j++)
00097 {
00098 fscanf(fpt,"%Lf",&o[i][j]);
00099
00100 }
00101 }
00102 fclose(fpt);
00103 bias[0] = -450.0;
00104 return;
00105 }
00106
00107 void initialize_f3()
00108 {
00109 int i, j;
00110 FILE *fpt;
00111 if (nreal==2) fpt = myopen("input_data/elliptic_M_D2.txt","r");
00112 if (nreal==10) fpt = myopen("input_data/elliptic_M_D10.txt","r");
00113 if (nreal==30) fpt = myopen("input_data/elliptic_M_D30.txt","r");
00114 if (nreal==50) fpt = myopen("input_data/elliptic_M_D50.txt","r");
00115 if (fpt==NULL)
00116 {
00117 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00118 exit(0);
00119 }
00120 for (i=0; i<nreal; i++)
00121 {
00122 for (j=0; j<nreal; j++)
00123 {
00124 fscanf(fpt,"%Lf",&g[i][j]);
00125
00126 }
00127 }
00128 fclose(fpt);
00129 fpt = myopen("input_data/high_cond_elliptic_rot_data.txt","r");
00130 if (fpt==NULL)
00131 {
00132 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00133 exit(0);
00134 }
00135 for (i=0; i<nfunc; i++)
00136 {
00137 for (j=0; j<nreal; j++)
00138 {
00139 fscanf(fpt,"%Lf",&o[i][j]);
00140
00141 }
00142 }
00143 fclose(fpt);
00144 bias[0] = -450.0;
00145 return;
00146 }
00147
00148 void initialize_f4()
00149 {
00150 int i, j;
00151 FILE *fpt;
00152 fpt = myopen("input_data/schwefel_102_data.txt","r");
00153 if (fpt==NULL)
00154 {
00155 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00156 exit(0);
00157 }
00158 for (i=0; i<nfunc; i++)
00159 {
00160 for (j=0; j<nreal; j++)
00161 {
00162 fscanf(fpt,"%Lf",&o[i][j]);
00163
00164 }
00165 }
00166 fclose(fpt);
00167 bias[0] = -450.0;
00168 return;
00169 }
00170
00171 void initialize_f5()
00172 {
00173 int i, j;
00174 int index;
00175 FILE *fpt;
00176 char c;
00177 Af5 = (long double **)malloc(nreal*sizeof(long double));
00178 for (i=0; i<nreal; i++)
00179 {
00180 Af5[i] = (long double *)malloc(nreal*sizeof(long double));
00181 }
00182 Bf5 = (long double *)malloc(nreal*sizeof(long double));
00183 fpt = myopen("input_data/schwefel_206_data.txt","r");
00184 for (i=0; i<nfunc; i++)
00185 {
00186 for (j=0; j<nreal; j++)
00187 {
00188 fscanf(fpt,"%Lf",&o[i][j]);
00189
00190 }
00191 do
00192 {
00193 fscanf(fpt,"%c",&c);
00194 }
00195 while (c!='\n');
00196 }
00197 for (i=0; i<nreal; i++)
00198 {
00199 for (j=0; j<nreal; j++)
00200 {
00201 fscanf(fpt,"%Lf",&Af5[i][j]);
00202
00203 }
00204 do
00205 {
00206 fscanf(fpt,"%c",&c);
00207 }
00208 while (c!='\n');
00209 }
00210 fclose(fpt);
00211 if (nreal%4==0)
00212 {
00213 index = nreal/4;
00214 }
00215 else
00216 {
00217 index = nreal/4 + 1;
00218 }
00219 for (i=0; i<index; i++)
00220 {
00221 o[0][i] = -100.0;
00222 }
00223 index = (3*nreal)/4 - 1;
00224 for (i=index; i<nreal; i++)
00225 {
00226 o[0][i] = 100.0;
00227 }
00228 for (i=0; i<nreal; i++)
00229 {
00230 Bf5[i] = 0.0;
00231 for (j=0; j<nreal; j++)
00232 {
00233 Bf5[i] += Af5[i][j]*o[0][j];
00234 }
00235 }
00236 bias[0] = -310.0;
00237 return;
00238 }
00239
00240 void initialize_f6()
00241 {
00242 int i, j;
00243 FILE *fpt;
00244 fpt = myopen("input_data/rosenbrock_func_data.txt","r");
00245 if (fpt==NULL)
00246 {
00247 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00248 exit(0);
00249 }
00250 for (i=0; i<nfunc; i++)
00251 {
00252 for (j=0; j<nreal; j++)
00253 {
00254 fscanf(fpt,"%Lf",&o[i][j]);
00255 o[i][j] -= 1.0;
00256
00257 }
00258 }
00259 fclose(fpt);
00260 bias[0] = 390.0;
00261 return;
00262 }
00263
00264 void initialize_f7()
00265 {
00266 int i, j;
00267 FILE *fpt;
00268 if (nreal==2) fpt = myopen("input_data/griewank_M_D2.txt","r");
00269 if (nreal==10) fpt = myopen("input_data/griewank_M_D10.txt","r");
00270 if (nreal==30) fpt = myopen("input_data/griewank_M_D30.txt","r");
00271 if (nreal==50) fpt = myopen("input_data/griewank_M_D50.txt","r");
00272 if (fpt==NULL)
00273 {
00274 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00275 exit(0);
00276 }
00277 for (i=0; i<nreal; i++)
00278 {
00279 for (j=0; j<nreal; j++)
00280 {
00281 fscanf(fpt,"%Lf",&g[i][j]);
00282
00283 }
00284 }
00285 fclose(fpt);
00286 fpt = myopen("input_data/griewank_func_data.txt","r");
00287 if (fpt==NULL)
00288 {
00289 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00290 exit(0);
00291 }
00292 for (i=0; i<nfunc; i++)
00293 {
00294 for (j=0; j<nreal; j++)
00295 {
00296 fscanf(fpt,"%Lf",&o[i][j]);
00297
00298 }
00299 }
00300 fclose(fpt);
00301 bias[0] = -180.0;
00302 return;
00303 }
00304
00305 void initialize_f8()
00306 {
00307 int i, j;
00308 int index;
00309 FILE *fpt;
00310 if (nreal==2) fpt = myopen("input_data/ackley_M_D2.txt","r");
00311 if (nreal==10) fpt = myopen("input_data/ackley_M_D10.txt","r");
00312 if (nreal==30) fpt = myopen("input_data/ackley_M_D30.txt","r");
00313 if (nreal==50) fpt = myopen("input_data/ackley_M_D50.txt","r");
00314 if (fpt==NULL)
00315 {
00316 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00317 exit(0);
00318 }
00319 for (i=0; i<nreal; i++)
00320 {
00321 for (j=0; j<nreal; j++)
00322 {
00323 fscanf(fpt,"%Lf",&g[i][j]);
00324
00325 }
00326 }
00327 fclose(fpt);
00328 fpt = myopen("input_data/ackley_func_data.txt","r");
00329 if (fpt==NULL)
00330 {
00331 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00332 exit(0);
00333 }
00334 for (i=0; i<nfunc; i++)
00335 {
00336 for (j=0; j<nreal; j++)
00337 {
00338 fscanf(fpt,"%Lf",&o[i][j]);
00339
00340 }
00341 }
00342 fclose(fpt);
00343 index = nreal/2;
00344 for (i=1; i<=index; i++)
00345 {
00346 o[0][2*i-2] = -32.0;
00347 }
00348 bias[0] = -140.0;
00349 return;
00350 }
00351
00352 void initialize_f9()
00353 {
00354 int i, j;
00355 FILE *fpt;
00356 fpt = myopen("input_data/rastrigin_func_data.txt","r");
00357 if (fpt==NULL)
00358 {
00359 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00360 exit(0);
00361 }
00362 for (i=0; i<nfunc; i++)
00363 {
00364 for (j=0; j<nreal; j++)
00365 {
00366 fscanf(fpt,"%Lf",&o[i][j]);
00367
00368 }
00369 }
00370 fclose(fpt);
00371 bias[0] = -330.0;
00372 return;
00373 }
00374
00375 void initialize_f10()
00376 {
00377 int i, j;
00378 FILE *fpt;
00379 if (nreal==2) fpt = myopen("input_data/rastrigin_M_D2.txt","r");
00380 if (nreal==10) fpt = myopen("input_data/rastrigin_M_D10.txt","r");
00381 if (nreal==30) fpt = myopen("input_data/rastrigin_M_D30.txt","r");
00382 if (nreal==50) fpt = myopen("input_data/rastrigin_M_D50.txt","r");
00383 if (fpt==NULL)
00384 {
00385 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00386 exit(0);
00387 }
00388 for (i=0; i<nreal; i++)
00389 {
00390 for (j=0; j<nreal; j++)
00391 {
00392 fscanf(fpt,"%Lf",&g[i][j]);
00393
00394 }
00395 }
00396 fclose(fpt);
00397 fpt = myopen("input_data/rastrigin_func_data.txt","r");
00398 if (fpt==NULL)
00399 {
00400 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00401 exit(0);
00402 }
00403 for (i=0; i<nfunc; i++)
00404 {
00405 for (j=0; j<nreal; j++)
00406 {
00407 fscanf(fpt,"%Lf",&o[i][j]);
00408
00409 }
00410 }
00411 fclose(fpt);
00412 bias[0] = -330.0;
00413 return;
00414 }
00415
00416 void initialize_f11()
00417 {
00418 int i, j;
00419 FILE *fpt;
00420 if (nreal==2) fpt = myopen("input_data/weierstrass_M_D2.txt","r");
00421 if (nreal==10) fpt = myopen("input_data/weierstrass_M_D10.txt","r");
00422 if (nreal==30) fpt = myopen("input_data/weierstrass_M_D30.txt","r");
00423 if (nreal==50) fpt = myopen("input_data/weierstrass_M_D50.txt","r");
00424 if (fpt==NULL)
00425 {
00426 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00427 exit(0);
00428 }
00429 for (i=0; i<nreal; i++)
00430 {
00431 for (j=0; j<nreal; j++)
00432 {
00433 fscanf(fpt,"%Lf",&g[i][j]);
00434
00435 }
00436 }
00437 fclose(fpt);
00438 fpt = myopen("input_data/weierstrass_data.txt","r");
00439 if (fpt==NULL)
00440 {
00441 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00442 exit(0);
00443 }
00444 for (i=0; i<nfunc; i++)
00445 {
00446 for (j=0; j<nreal; j++)
00447 {
00448 fscanf(fpt,"%Lf",&o[i][j]);
00449
00450 }
00451 }
00452 fclose(fpt);
00453 bias[0] = 90.0;
00454 return;
00455 }
00456
00457 void initialize_f12()
00458 {
00459 int i, j;
00460 FILE *fpt;
00461 char c;
00462 Af12 = (long double **)malloc(nreal*sizeof(long double));
00463 Bf12 = (long double **)malloc(nreal*sizeof(long double));
00464 alphaf12 = (long double *)malloc(nreal*sizeof(long double));
00465 for (i=0; i<nreal; i++)
00466 {
00467 Af12[i] = (long double *)malloc(nreal*sizeof(long double));
00468 Bf12[i] = (long double *)malloc(nreal*sizeof(long double));
00469 }
00470 fpt = myopen("input_data/schwefel_213_data.txt","r");
00471 if (fpt==NULL)
00472 {
00473 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00474 exit(0);
00475 }
00476
00477 for (i=0; i<nreal; i++)
00478 {
00479 for (j=0; j<nreal; j++)
00480 {
00481 fscanf(fpt,"%Lf",&Af12[i][j]);
00482
00483 }
00484 do
00485 {
00486 fscanf(fpt,"%c",&c);
00487 }
00488 while (c!='\n');
00489 }
00490 if (i!=100)
00491 {
00492 for (i=nreal; i<100; i++)
00493 {
00494 do
00495 {
00496 fscanf(fpt,"%c",&c);
00497 }
00498 while(c!='\n');
00499 }
00500 }
00501
00502 for (i=0; i<nreal; i++)
00503 {
00504 for (j=0; j<nreal; j++)
00505 {
00506 fscanf(fpt,"%Lf",&Bf12[i][j]);
00507
00508 }
00509 do
00510 {
00511 fscanf(fpt,"%c",&c);
00512 }
00513 while (c!='\n');
00514 }
00515 if (i!=100)
00516 {
00517 for (i=nreal; i<100; i++)
00518 {
00519 do
00520 {
00521 fscanf(fpt,"%c",&c);
00522 }
00523 while(c!='\n');
00524 }
00525 }
00526
00527 for (i=0; i<nreal; i++)
00528 {
00529 fscanf(fpt,"%Lf",&alphaf12[i]);
00530
00531 }
00532 fclose(fpt);
00533 bias[0] = -460.0;
00534 return;
00535 }
00536
00537 void initialize_f13()
00538 {
00539 int i, j;
00540 FILE *fpt;
00541 fpt = myopen("input_data/EF8F2_func_data.txt","r");
00542 if (fpt==NULL)
00543 {
00544 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00545 exit(0);
00546 }
00547 for (i=0; i<nfunc; i++)
00548 {
00549 for (j=0; j<nreal; j++)
00550 {
00551 fscanf(fpt,"%Lf",&o[i][j]);
00552 o[i][j] -= 1.0;
00553
00554 }
00555 }
00556 fclose(fpt);
00557 bias[0] = -130.0;
00558 return;
00559 }
00560
00561 void initialize_f14()
00562 {
00563 int i, j;
00564 FILE *fpt;
00565 if (nreal==2) fpt = myopen("input_data/E_ScafferF6_M_D2.txt","r");
00566 if (nreal==10) fpt = myopen("input_data/E_ScafferF6_M_D10.txt","r");
00567 if (nreal==30) fpt = myopen("input_data/E_ScafferF6_M_D30.txt","r");
00568 if (nreal==50) fpt = myopen("input_data/E_ScafferF6_M_D50.txt","r");
00569 if (fpt==NULL)
00570 {
00571 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00572 exit(0);
00573 }
00574 for (i=0; i<nreal; i++)
00575 {
00576 for (j=0; j<nreal; j++)
00577 {
00578 fscanf(fpt,"%Lf",&g[i][j]);
00579
00580 }
00581 }
00582 fclose(fpt);
00583 fpt = myopen("input_data/E_ScafferF6_func_data.txt","r");
00584 if (fpt==NULL)
00585 {
00586 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00587 exit(0);
00588 }
00589 for (i=0; i<nfunc; i++)
00590 {
00591 for (j=0; j<nreal; j++)
00592 {
00593 fscanf(fpt,"%Lf",&o[i][j]);
00594
00595 }
00596 }
00597 fclose(fpt);
00598 bias[0] = -300.0;
00599 return;
00600 }
00601
00602 void initialize_f15()
00603 {
00604 int i, j;
00605 FILE *fpt;
00606 char c;
00607 fpt = myopen("input_data/hybrid_func1_data.txt","r");
00608 if (fpt==NULL)
00609 {
00610 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00611 exit(0);
00612 }
00613 for (i=0; i<nfunc; i++)
00614 {
00615 for (j=0; j<nreal; j++)
00616 {
00617 fscanf(fpt,"%Lf",&o[i][j]);
00618
00619 }
00620 do
00621 {
00622 fscanf(fpt,"%c",&c);
00623 }
00624 while (c!='\n');
00625
00626 }
00627 fclose(fpt);
00628 lambda[0] = 1.0;
00629 lambda[1] = 1.0;
00630 lambda[2] = 10.0;
00631 lambda[3] = 10.0;
00632 lambda[4] = 1.0/12.0;
00633 lambda[5] = 1.0/12.0;
00634 lambda[6] = 5.0/32.0;
00635 lambda[7] = 5.0/32.0;
00636 lambda[8] = 1.0/20.0;
00637 lambda[9] = 1.0/20.0;
00638 global_bias = 120.0;
00639 return;
00640 }
00641
00642 void initialize_f16()
00643 {
00644 int i, j, k;
00645 FILE *fpt;
00646 char c;
00647 fpt = myopen("input_data/hybrid_func1_data.txt","r");
00648 if (fpt==NULL)
00649 {
00650 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00651 exit(0);
00652 }
00653 for (i=0; i<nfunc; i++)
00654 {
00655 for (j=0; j<nreal; j++)
00656 {
00657 fscanf(fpt,"%Lf",&o[i][j]);
00658
00659 }
00660 do
00661 {
00662 fscanf(fpt,"%c",&c);
00663 }
00664 while (c!='\n');
00665
00666 }
00667 fclose(fpt);
00668 if (nreal==2) fpt = myopen("input_data/hybrid_func1_M_D2.txt","r");
00669 if (nreal==10) fpt = myopen("input_data/hybrid_func1_M_D10.txt","r");
00670 if (nreal==30) fpt = myopen("input_data/hybrid_func1_M_D30.txt","r");
00671 if (nreal==50) fpt = myopen("input_data/hybrid_func1_M_D50.txt","r");
00672 for (i=0; i<nfunc; i++)
00673 {
00674 for (j=0; j<nreal; j++)
00675 {
00676 for (k=0; k<nreal; k++)
00677 {
00678 fscanf(fpt,"%Lf",&l[i][j][k]);
00679
00680 }
00681 do
00682 {
00683 fscanf(fpt,"%c",&c);
00684 }
00685 while (c!='\n');
00686 }
00687
00688 }
00689 lambda[0] = 1.0;
00690 lambda[1] = 1.0;
00691 lambda[2] = 10.0;
00692 lambda[3] = 10.0;
00693 lambda[4] = 1.0/12.0;
00694 lambda[5] = 1.0/12.0;
00695 lambda[6] = 5.0/32.0;
00696 lambda[7] = 5.0/32.0;
00697 lambda[8] = 1.0/20.0;
00698 lambda[9] = 1.0/20.0;
00699 global_bias = 120.0;
00700 return;
00701 }
00702
00703 void initialize_f17()
00704 {
00705 int i, j, k;
00706 FILE *fpt;
00707 char c;
00708 fpt = myopen("input_data/hybrid_func1_data.txt","r");
00709 if (fpt==NULL)
00710 {
00711 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00712 exit(0);
00713 }
00714 for (i=0; i<nfunc; i++)
00715 {
00716 for (j=0; j<nreal; j++)
00717 {
00718 fscanf(fpt,"%Lf",&o[i][j]);
00719
00720 }
00721 do
00722 {
00723 fscanf(fpt,"%c",&c);
00724 }
00725 while (c!='\n');
00726
00727 }
00728 fclose(fpt);
00729 if (nreal==2) fpt = myopen("input_data/hybrid_func1_M_D2.txt","r");
00730 if (nreal==10) fpt = myopen("input_data/hybrid_func1_M_D10.txt","r");
00731 if (nreal==30) fpt = myopen("input_data/hybrid_func1_M_D30.txt","r");
00732 if (nreal==50) fpt = myopen("input_data/hybrid_func1_M_D50.txt","r");
00733 for (i=0; i<nfunc; i++)
00734 {
00735 for (j=0; j<nreal; j++)
00736 {
00737 for (k=0; k<nreal; k++)
00738 {
00739 fscanf(fpt,"%Lf",&l[i][j][k]);
00740
00741 }
00742 do
00743 {
00744 fscanf(fpt,"%c",&c);
00745 }
00746 while (c!='\n');
00747 }
00748
00749 }
00750 lambda[0] = 1.0;
00751 lambda[1] = 1.0;
00752 lambda[2] = 10.0;
00753 lambda[3] = 10.0;
00754 lambda[4] = 1.0/12.0;
00755 lambda[5] = 1.0/12.0;
00756 lambda[6] = 5.0/32.0;
00757 lambda[7] = 5.0/32.0;
00758 lambda[8] = 1.0/20.0;
00759 lambda[9] = 1.0/20.0;
00760 global_bias = 120.0;
00761 return;
00762 }
00763
00764 void initialize_f18()
00765 {
00766 int i, j, k;
00767 FILE *fpt;
00768 char c;
00769 fpt = myopen("input_data/hybrid_func2_data.txt","r");
00770 if (fpt==NULL)
00771 {
00772 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00773 exit(0);
00774 }
00775 for (i=0; i<nfunc; i++)
00776 {
00777 for (j=0; j<nreal; j++)
00778 {
00779 fscanf(fpt,"%Lf",&o[i][j]);
00780
00781 }
00782 do
00783 {
00784 fscanf(fpt,"%c",&c);
00785 }
00786 while (c!='\n');
00787
00788 }
00789 fclose(fpt);
00790
00794 for (j = 0; j < nreal; j++) {
00795 o[9][j] = 0.0;
00796 }
00797
00798 if (nreal==2) fpt = myopen("input_data/hybrid_func2_M_D2.txt","r");
00799 if (nreal==10) fpt = myopen("input_data/hybrid_func2_M_D10.txt","r");
00800 if (nreal==30) fpt = myopen("input_data/hybrid_func2_M_D30.txt","r");
00801 if (nreal==50) fpt = myopen("input_data/hybrid_func2_M_D50.txt","r");
00802 for (i=0; i<nfunc; i++)
00803 {
00804 for (j=0; j<nreal; j++)
00805 {
00806 for (k=0; k<nreal; k++)
00807 {
00808 fscanf(fpt,"%Lf",&l[i][j][k]);
00809
00810 }
00811 do
00812 {
00813 fscanf(fpt,"%c",&c);
00814 }
00815 while (c!='\n');
00816 }
00817
00818 }
00819 for (i=0; i<nreal; i++)
00820 {
00821 o[nfunc-1][i] = 0.0;
00822 }
00823 sigma[0] = 1.0;
00824 sigma[1] = 2.0;
00825 sigma[2] = 1.5;
00826 sigma[3] = 1.5;
00827 sigma[4] = 1.0;
00828 sigma[5] = 1.0;
00829 sigma[6] = 1.5;
00830 sigma[7] = 1.5;
00831 sigma[8] = 2.0;
00832 sigma[9] = 2.0;
00833 lambda[0] = 5.0/16.0;
00834 lambda[1] = 5.0/32.0;
00835 lambda[2] = 2.0;
00836 lambda[3] = 1.0;
00837 lambda[4] = 1.0/10.0;
00838 lambda[5] = 1.0/20.0;
00839 lambda[6] = 20.0;
00840 lambda[7] = 10.0;
00841 lambda[8] = 1.0/6.0;
00842 lambda[9] = 1.0/12.0;
00843 global_bias = 10.0;
00844 return;
00845 }
00846
00847 void initialize_f19()
00848 {
00849 int i, j, k;
00850 FILE *fpt;
00851 char c;
00852 fpt = myopen("input_data/hybrid_func2_data.txt","r");
00853 if (fpt==NULL)
00854 {
00855 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00856 exit(0);
00857 }
00858 for (i=0; i<nfunc; i++)
00859 {
00860 for (j=0; j<nreal; j++)
00861 {
00862 fscanf(fpt,"%Lf",&o[i][j]);
00863
00864 }
00865 do
00866 {
00867 fscanf(fpt,"%c",&c);
00868 }
00869 while (c!='\n');
00870
00871 }
00872 fclose(fpt);
00873
00877 for (j = 0; j < nreal; j++) {
00878 o[9][j] = 0.0;
00879 }
00880
00881 if (nreal==2) fpt = myopen("input_data/hybrid_func2_M_D2.txt","r");
00882 if (nreal==10) fpt = myopen("input_data/hybrid_func2_M_D10.txt","r");
00883 if (nreal==30) fpt = myopen("input_data/hybrid_func2_M_D30.txt","r");
00884 if (nreal==50) fpt = myopen("input_data/hybrid_func2_M_D50.txt","r");
00885 for (i=0; i<nfunc; i++)
00886 {
00887 for (j=0; j<nreal; j++)
00888 {
00889 for (k=0; k<nreal; k++)
00890 {
00891 fscanf(fpt,"%Lf",&l[i][j][k]);
00892
00893 }
00894 do
00895 {
00896 fscanf(fpt,"%c",&c);
00897 }
00898 while (c!='\n');
00899 }
00900
00901 }
00902 for (i=0; i<nreal; i++)
00903 {
00904 o[nfunc-1][i] = 0.0;
00905 }
00906 sigma[0] = 0.1;
00907 sigma[1] = 2.0;
00908 sigma[2] = 1.5;
00909 sigma[3] = 1.5;
00910 sigma[4] = 1.0;
00911 sigma[5] = 1.0;
00912 sigma[6] = 1.5;
00913 sigma[7] = 1.5;
00914 sigma[8] = 2.0;
00915 sigma[9] = 2.0;
00916 lambda[0] = 0.5/32.0;
00917 lambda[1] = 5.0/32.0;
00918 lambda[2] = 2.0;
00919 lambda[3] = 1.0;
00920 lambda[4] = 1.0/10.0;
00921 lambda[5] = 1.0/20.0;
00922 lambda[6] = 20.0;
00923 lambda[7] = 10.0;
00924 lambda[8] = 1.0/6.0;
00925 lambda[9] = 1.0/12.0;
00926 global_bias = 10.0;
00927 return;
00928 }
00929
00930 void initialize_f20()
00931 {
00932 int i, j, k;
00933 int index;
00934 FILE *fpt;
00935 char c;
00936 fpt = myopen("input_data/hybrid_func2_data.txt","r");
00937 if (fpt==NULL)
00938 {
00939 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
00940 exit(0);
00941 }
00942 for (i=0; i<nfunc; i++)
00943 {
00944 for (j=0; j<nreal; j++)
00945 {
00946 fscanf(fpt,"%Lf",&o[i][j]);
00947
00948 }
00949 do
00950 {
00951 fscanf(fpt,"%c",&c);
00952 }
00953 while (c!='\n');
00954
00955 }
00956 fclose(fpt);
00957
00961 for (j = 0; j < nreal; j++) {
00962 o[9][j] = 0.0;
00963 }
00964
00965 index = nreal/2;
00966 for (i=1; i<=index; i++)
00967 {
00968 o[0][2*i-1] = 5.0;
00969 }
00970 if (nreal==2) fpt = myopen("input_data/hybrid_func2_M_D2.txt","r");
00971 if (nreal==10) fpt = myopen("input_data/hybrid_func2_M_D10.txt","r");
00972 if (nreal==30) fpt = myopen("input_data/hybrid_func2_M_D30.txt","r");
00973 if (nreal==50) fpt = myopen("input_data/hybrid_func2_M_D50.txt","r");
00974 for (i=0; i<nfunc; i++)
00975 {
00976 for (j=0; j<nreal; j++)
00977 {
00978 for (k=0; k<nreal; k++)
00979 {
00980 fscanf(fpt,"%Lf",&l[i][j][k]);
00981
00982 }
00983 do
00984 {
00985 fscanf(fpt,"%c",&c);
00986 }
00987 while (c!='\n');
00988 }
00989
00990 }
00991 for (i=0; i<nreal; i++)
00992 {
00993 o[nfunc-1][i] = 0.0;
00994 }
00995 sigma[0] = 1.0;
00996 sigma[1] = 2.0;
00997 sigma[2] = 1.5;
00998 sigma[3] = 1.5;
00999 sigma[4] = 1.0;
01000 sigma[5] = 1.0;
01001 sigma[6] = 1.5;
01002 sigma[7] = 1.5;
01003 sigma[8] = 2.0;
01004 sigma[9] = 2.0;
01005 lambda[0] = 5.0/16.0;
01006 lambda[1] = 5.0/32.0;
01007 lambda[2] = 2.0;
01008 lambda[3] = 1.0;
01009 lambda[4] = 1.0/10.0;
01010 lambda[5] = 1.0/20.0;
01011 lambda[6] = 20.0;
01012 lambda[7] = 10.0;
01013 lambda[8] = 1.0/6.0;
01014 lambda[9] = 1.0/12.0;
01015 global_bias = 10.0;
01016 return;
01017 }
01018
01019 void initialize_f21()
01020 {
01021 int i, j, k;
01022 FILE *fpt;
01023 char c;
01024 fpt = myopen("input_data/hybrid_func3_data.txt","r");
01025 if (fpt==NULL)
01026 {
01027 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
01028 exit(0);
01029 }
01030 for (i=0; i<nfunc; i++)
01031 {
01032 for (j=0; j<nreal; j++)
01033 {
01034 fscanf(fpt,"%Lf",&o[i][j]);
01035
01036 }
01037 do
01038 {
01039 fscanf(fpt,"%c",&c);
01040 }
01041 while (c!='\n');
01042
01043 }
01044 fclose(fpt);
01045 if (nreal==2) fpt = myopen("input_data/hybrid_func3_M_D2.txt","r");
01046 if (nreal==10) fpt = myopen("input_data/hybrid_func3_M_D10.txt","r");
01047 if (nreal==30) fpt = myopen("input_data/hybrid_func3_M_D30.txt","r");
01048 if (nreal==50) fpt = myopen("input_data/hybrid_func3_M_D50.txt","r");
01049 for (i=0; i<nfunc; i++)
01050 {
01051 for (j=0; j<nreal; j++)
01052 {
01053 for (k=0; k<nreal; k++)
01054 {
01055 fscanf(fpt,"%Lf",&l[i][j][k]);
01056
01057 }
01058 do
01059 {
01060 fscanf(fpt,"%c",&c);
01061 }
01062 while (c!='\n');
01063 }
01064
01065 }
01066 sigma[0] = 1.0;
01067 sigma[1] = 1.0;
01068 sigma[2] = 1.0;
01069 sigma[3] = 1.0;
01070 sigma[4] = 1.0;
01071 sigma[5] = 2.0;
01072 sigma[6] = 2.0;
01073 sigma[7] = 2.0;
01074 sigma[8] = 2.0;
01075 sigma[9] = 2.0;
01076 lambda[0] = 1.0/4.0;
01077 lambda[1] = 1.0/20.0;
01078 lambda[2] = 5.0;
01079 lambda[3] = 1.0;
01080 lambda[4] = 5.0;
01081 lambda[5] = 1.0;
01082 lambda[6] = 50.0;
01083 lambda[7] = 10.0;
01084 lambda[8] = 1.0/8.0;
01085 lambda[9] = 1.0/40.0;
01086 global_bias = 360.0;
01087 return;
01088 }
01089
01090 void initialize_f22()
01091 {
01092 int i, j, k;
01093 FILE *fpt;
01094 char c;
01095 fpt = myopen("input_data/hybrid_func3_data.txt","r");
01096 if (fpt==NULL)
01097 {
01098 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
01099 exit(0);
01100 }
01101 for (i=0; i<nfunc; i++)
01102 {
01103 for (j=0; j<nreal; j++)
01104 {
01105 fscanf(fpt,"%Lf",&o[i][j]);
01106
01107 }
01108 do
01109 {
01110 fscanf(fpt,"%c",&c);
01111 }
01112 while (c!='\n');
01113
01114 }
01115 fclose(fpt);
01116 if (nreal==2) fpt = myopen("input_data/hybrid_func3_HM_D2.txt","r");
01117 if (nreal==10) fpt = myopen("input_data/hybrid_func3_HM_D10.txt","r");
01118 if (nreal==30) fpt = myopen("input_data/hybrid_func3_HM_D30.txt","r");
01119 if (nreal==50) fpt = myopen("input_data/hybrid_func3_HM_D50.txt","r");
01120 for (i=0; i<nfunc; i++)
01121 {
01122 for (j=0; j<nreal; j++)
01123 {
01124 for (k=0; k<nreal; k++)
01125 {
01126 fscanf(fpt,"%Lf",&l[i][j][k]);
01127
01128 }
01129 do
01130 {
01131 fscanf(fpt,"%c",&c);
01132 }
01133 while (c!='\n');
01134 }
01135
01136 }
01137 sigma[0] = 1.0;
01138 sigma[1] = 1.0;
01139 sigma[2] = 1.0;
01140 sigma[3] = 1.0;
01141 sigma[4] = 1.0;
01142 sigma[5] = 2.0;
01143 sigma[6] = 2.0;
01144 sigma[7] = 2.0;
01145 sigma[8] = 2.0;
01146 sigma[9] = 2.0;
01147 lambda[0] = 1.0/4.0;
01148 lambda[1] = 1.0/20.0;
01149 lambda[2] = 5.0;
01150 lambda[3] = 1.0;
01151 lambda[4] = 5.0;
01152 lambda[5] = 1.0;
01153 lambda[6] = 50.0;
01154 lambda[7] = 10.0;
01155 lambda[8] = 1.0/8.0;
01156 lambda[9] = 1.0/40.0;
01157 global_bias = 360.0;
01158 return;
01159 }
01160
01161 void initialize_f23()
01162 {
01163 int i, j, k;
01164 FILE *fpt;
01165 char c;
01166 fpt = myopen("input_data/hybrid_func3_data.txt","r");
01167 if (fpt==NULL)
01168 {
01169 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
01170 exit(0);
01171 }
01172 for (i=0; i<nfunc; i++)
01173 {
01174 for (j=0; j<nreal; j++)
01175 {
01176 fscanf(fpt,"%Lf",&o[i][j]);
01177
01178 }
01179 do
01180 {
01181 fscanf(fpt,"%c",&c);
01182 }
01183 while (c!='\n');
01184
01185 }
01186 fclose(fpt);
01187 if (nreal==2) fpt = myopen("input_data/hybrid_func3_M_D2.txt","r");
01188 if (nreal==10) fpt = myopen("input_data/hybrid_func3_M_D10.txt","r");
01189 if (nreal==30) fpt = myopen("input_data/hybrid_func3_M_D30.txt","r");
01190 if (nreal==50) fpt = myopen("input_data/hybrid_func3_M_D50.txt","r");
01191 for (i=0; i<nfunc; i++)
01192 {
01193 for (j=0; j<nreal; j++)
01194 {
01195 for (k=0; k<nreal; k++)
01196 {
01197 fscanf(fpt,"%Lf",&l[i][j][k]);
01198
01199 }
01200 do
01201 {
01202 fscanf(fpt,"%c",&c);
01203
01204 }
01205 while (c!='\n');
01206 }
01207
01208 }
01209 sigma[0] = 1.0;
01210 sigma[1] = 1.0;
01211 sigma[2] = 1.0;
01212 sigma[3] = 1.0;
01213 sigma[4] = 1.0;
01214 sigma[5] = 2.0;
01215 sigma[6] = 2.0;
01216 sigma[7] = 2.0;
01217 sigma[8] = 2.0;
01218 sigma[9] = 2.0;
01219 lambda[0] = 1.0/4.0;
01220 lambda[1] = 1.0/20.0;
01221 lambda[2] = 5.0;
01222 lambda[3] = 1.0;
01223 lambda[4] = 5.0;
01224 lambda[5] = 1.0;
01225 lambda[6] = 50.0;
01226 lambda[7] = 10.0;
01227 lambda[8] = 1.0/8.0;
01228 lambda[9] = 1.0/40.0;
01229 global_bias = 360.0;
01230 return;
01231 }
01232
01233 void initialize_f24()
01234 {
01235 int i, j, k;
01236 FILE *fpt;
01237 char c;
01238 fpt = myopen("input_data/hybrid_func4_data.txt","r");
01239 if (fpt==NULL)
01240 {
01241 fprintf(stderr,"\n Error: Cannot open input file for reading \n");
01242 exit(0);
01243 }
01244 for (i=0; i<nfunc; i++)
01245 {
01246 for (j=0; j<nreal; j++)
01247 {
01248 fscanf(fpt,"%Lf",&o[i][j]);
01249
01250 }
01251 do
01252 {
01253 fscanf(fpt,"%c",&c);
01254 }
01255 while (c!='\n');
01256
01257 }
01258 fclose(fpt);
01259 if (nreal==2) fpt = myopen("input_data/hybrid_func4_M_D2.txt","r");
01260 if (nreal==10) fpt = myopen("input_data/hybrid_func4_M_D10.txt","r");
01261 if (nreal==30) fpt = myopen("input_data/hybrid_func4_M_D30.txt","r");
01262 if (nreal==50) fpt = myopen("input_data/hybrid_func4_M_D50.txt","r");
01263 for (i=0; i<nfunc; i++)
01264 {
01265 for (j=0; j<nreal; j++)
01266 {
01267 for (k=0; k<nreal; k++)
01268 {
01269 fscanf(fpt,"%Lf",&l[i][j][k]);
01270
01271 }
01272 do
01273 {
01274 fscanf(fpt,"%c",&c);
01275 }
01276 while (c!='\n');
01277 }
01278
01279 }
01280 for (i=0; i<10; i++)
01281 {
01282 sigma[i] = 2.0;
01283 }
01284 lambda[0] = 10.0;
01285 lambda[1] = 1.0/4.0;
01286 lambda[2] = 1.0;
01287 lambda[3] = 5.0/32.0;
01288 lambda[4] = 1.0;
01289 lambda[5] = 1.0/20.0;
01290 lambda[6] = 1.0/10.0;
01291 lambda[7] = 1.0;
01292 lambda[8] = 1.0/20.0;
01293 lambda[9] = 1.0/20.0;
01294 global_bias = 260.0;
01295 return;
01296 }
01297
01298 void initialize_f25()
01299 {
01300 initialize_f24();
01301 }
01302
01303 void initialize(void) {
01304 int num = nfunc;
01305
01306 if (num == 1) {
01307 initialize_f1();
01308 }
01309 else if (num == 2) {
01310 initialize_f2();
01311 }
01312 else if (num == 3) {
01313 initialize_f3();
01314 }
01315 else if (num == 4) {
01316 initialize_f4();
01317 }
01318 else if (num == 5) {
01319 initialize_f5();
01320 }
01321 else if (num == 6) {
01322 initialize_f6();
01323 }
01324 else if (num == 7) {
01325 initialize_f7();
01326 }
01327 else if (num == 8) {
01328 initialize_f8();
01329 }
01330 else if (num == 9) {
01331 initialize_f9();
01332 }
01333 else if (num == 10) {
01334 initialize_f10();
01335 }
01336 else if (num == 11) {
01337 initialize_f11();
01338 }
01339 else if (num == 12) {
01340 initialize_f12();
01341 }
01342 else if (num == 13) {
01343 initialize_f13();
01344 }
01345 else if (num == 14) {
01346 initialize_f14();
01347 }
01348 else if (num == 15) {
01349 initialize_f15();
01350 calc_benchmark_norm_f15();
01351
01352 }
01353 else if (num == 16) {
01354 initialize_f16();
01355 calc_benchmark_norm_f16();
01356 }
01357 else if (num == 17) {
01358 initialize_f17();
01359 calc_benchmark_norm_f17();
01360 }
01361 else if (num == 18) {
01362 initialize_f18();
01363 calc_benchmark_norm_f18();
01364 }
01365 else if (num == 19) {
01366 initialize_f19();
01367 calc_benchmark_norm_f19();
01368 }
01369 else if (num == 20) {
01370 initialize_f20();
01371 calc_benchmark_norm_f20();
01372 }
01373 else if (num == 21) {
01374 initialize_f21();
01375 calc_benchmark_norm_f21();
01376 }
01377 else if (num == 22) {
01378 initialize_f22();
01379 calc_benchmark_norm_f22();
01380 }
01381 else if (num == 23) {
01382 initialize_f23();
01383 calc_benchmark_norm_f23();
01384 }
01385 else if (num == 24) {
01386 initialize_f24();
01387 calc_benchmark_norm_f24();
01388 }
01389 else if (num == 25) {
01390 initialize_f25();
01391 calc_benchmark_norm_f25();
01392 }
01393 else {
01394 printf("Error: num %d no válido\n", num);
01395 exit(1);
01396 }
01397
01398 }