void FHimmenblau::initialize(){ setDisAccuracy(0.5); setAccuracy(1.e-4); m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(4); // 1 gopt+3 lopt CodeVReal x(m_numDim,1); x.m_x[0]=3.0;x.m_x[1]=2.0; evaluate_(x,false); m_globalOpt[0].data()=x; x.m_x[0]=3.58149;x.m_x[1]=-1.8208 ; evaluate_(x,false); m_globalOpt[1].data()=x; x.m_x[0]=-2.78706 ;x.m_x[1]=3.1282 ; evaluate_(x,false); m_globalOpt[2].data()=x; x.m_x[0]=-3.76343;x.m_x[1]=-3.26605; evaluate_(x,false); m_globalOpt[3].data()=x; m_originalGlobalOpt=m_globalOpt; addProTag(MMP); setObjSet(); }
void FSix_humpCamelBack::initialize(){ vector<double> lower, upper; upper.push_back (1.9); upper.push_back (1.1); lower.push_back (-1.9); lower.push_back (-1.1); setSearchRange(lower,upper); setAccuracy(1.e-4); setDisAccuracy(0.1); m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(6);// 2gopt+ 4 lopt CodeVReal x(m_numDim,1); x.m_x[0]=-0.089842; x.m_x[1]=0.712656 ; x.m_obj[0]=-1.0316; m_globalOpt[0].data()=x; x.m_x[0]=0.089842; x.m_x[1]=-0.712656 ; m_globalOpt[1].data()=x; x.m_x[0]=-1.70361;x.m_x[1]=0.796084; x.m_obj[0]=-0.21546; m_globalOpt[2].data()=x; x.m_x[0]=1.70361;x.m_x[1]=-0.796084; x.m_obj[0]=-0.21546; m_globalOpt[3].data()=x; x.m_x[0]=-1.6071;x.m_x[1]=-0.56865; x.m_obj[0]=2.10425; m_globalOpt[4].data()=x; x.m_x[0]=1.6071;x.m_x[1]=0.56865; x.m_obj[0]=2.10425; m_globalOpt[5].data()=x; m_originalGlobalOpt=m_globalOpt; addProTag(MMP); }
void FShaffer::initialize(){ setAccuracy(1.e-6); setDisAccuracy(0.1); setOptType(MAX_OPT); m_globalOpt.setFlagLocTrue(); m_originalGlobalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(1); m_originalGlobalOpt.setNumOpts(1); CodeVReal x(m_numDim,1); x.m_x[0]=0.0;x.m_x[1]=0.0; x.m_obj[0]=0.9999; m_globalOpt[0].data()=m_originalGlobalOpt[0].data()=x; }
void FValleys::initialize(){ setOptType(MAX_OPT); setAccuracy(1.e-4); setDisAccuracy(0.5); m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(2); //1 gopt + 1 lopt CodeVReal x(m_numDim,1); x.m_x[0]=1.69714;x.m_x[1]=0.0; x.m_obj[0]=4.8168; m_globalOpt[0].data()=x; x.m_x[0]=-1.44446;x.m_x[1]=0.0; x.m_obj[0]=3.2460; m_globalOpt[1].data()=x; m_originalGlobalOpt=m_globalOpt; addProTag(MMP); }
void MovingPeak::initialize(){ int i=0; setAccuracy(0.1); setDisAccuracy(0.2); setSearchRange(0,100); setOptType(MAX_OPT); m_globalOpt.setRecordFlag(false); updateTimeLinkage(); for ( i=0; i< m_numPeaks; i++) for ( int j=0;j<m_numDim; j++){ mpp_peak[i][j] = 100.0*Global::msp_global->mp_uniformPro->Next(); mpp_prevMovement[i][j] = Global::msp_global->mp_uniformPro->Next()-0.5; } if (m_standardHeight <= 0.0){ for ( i=0; i< m_numPeaks; i++) mp_height[i]=(m_maxHeight-m_minHeight)*Global::msp_global->mp_uniformPro->Next()+m_minHeight; }else{ for (i=0; i< m_numPeaks; i++) mp_height[i]= m_standardHeight; } if (m_standardWidth <= 0.0){ for (i=0; i< m_numPeaks; i++) mp_width[i]= (m_maxWidth-m_minWidth)*Global::msp_global->mp_uniformPro->Next()+m_minWidth; }else{ for (i=0; i< m_numPeaks; i++) mp_width[i]= m_standardWidth; } calculateGlobalOptima(); /*for (i=0; i< m_numPeaks; i++) { mp_heightOrder[i]=i; mp_found[i]=false; } vector<int> idx(m_numPeaks); gQuickSort(mp_height,m_numPeaks,idx); copy(idx.begin(),idx.end(),mp_heightOrder); gAmendSortedOrder<double*>(mp_height,mp_heightOrder,mp_amendedHeightOrder,m_numPeaks);*/ for ( i=0; i< m_numPeaks; i++) mp_isTracked[i]=0; for (i=0;i<m_numPeaks; i++) copy(mpp_peak[i],mpp_peak[i]+m_numDim,mpp_prePeak[i]); copy(mp_height,mp_height+m_numPeaks,mp_preHeight); copy(mp_width,mp_width+m_numPeaks,mp_preWidth); //calculateAssociateRadius(); m_peakQaulity=0; addProTag(MMP); }
void FBraninRCOS::initialize(){ setOptType(MIN_OPT); setDisAccuracy(1.0); setAccuracy(1.e-5); m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(3); CodeVReal x(m_numDim,1); x.m_x[0]=-OFEC_PI;x.m_x[1]=12.275; x.m_obj[0]=0.397887; evaluate_(x,false); m_globalOpt[0].data()=x; x.m_x[0]=OFEC_PI;x.m_x[1]=2.275; m_globalOpt[1].data()=x; x.m_x[0]=9.42478;x.m_x[1]=2.475; m_globalOpt[2].data()=x; m_originalGlobalOpt=m_globalOpt; addProTag(MMP); setObjSet(); }
void HybridComp::initialize(){ m_originalGlobalOpt.flagGloObj()=false; m_originalGlobalOpt.flagLoc()=false; if(IS_PROBLEM_NAME(m_id,"FUN_Com")||IS_PROBLEM_NAME(m_id,"FUN_R_Com")){ setUpFCom(); }else if(IS_PROBLEM_NAME(m_id,"FUN_Com_CEC05")||IS_PROBLEM_NAME(m_id,"FUN_H_Com_CEC05")||IS_PROBLEM_NAME(m_id,"FUN_H_Com_Noisy_CEC05")){ SetUpFCom_CEC05(); }else if(IS_PROBLEM_NAME(m_id,"FUN_RH_Com_CEC05")||IS_PROBLEM_NAME(m_id,"FUN_RH_Com_NarrowBasin_CEC05")||\ IS_PROBLEM_NAME(m_id,"FUN_RH_Com_Bound_CEC05")){ SetUpFRH_Com_CEC05(); }else if(IS_PROBLEM_NAME(m_id,"FUN_RH_Com_F21_CEC05")||IS_PROBLEM_NAME(m_id,"FUN_RH_Com_HighConNumMatrix_F22_CEC05")||\ IS_PROBLEM_NAME(m_id,"FUN_Noncont_RH_Com_F23_CEC05")){ SetUpFRH001_Com_CEC05(); }else if(IS_PROBLEM_NAME(m_id,"FUN_RH_Com_F24_CEC05")||IS_PROBLEM_NAME(m_id,"FUN_RH_Com_noBounds_F25_CEC05")){ SetUpFRH002_Com_CEC05(); }else { throw myException("Error: please check the problem ID@HybridComp::initialize"); } loadTranslation(); loadRotation(); CodeVReal x(m_numDim,m_numObj); for(int i=0;i<m_numFuncs;i++){ for(int j=0;j<m_numDim;j++){ // calculate the estimate max value of funciton i x[j]=m_searchRange[j].m_upper; x[j]/=mp_stretchSeverity[i]; } mpp_f[i]->BenchmarkFunction::evaluate_(x,false); mp_fmax[i]=x.m_obj[0]; } vector<double> v(m_numDim,0); m_globalOpt.setNumOpts(1); setGlobalOpt(0,&v,mpp_f[0]->getTranslation()); setAccuracy(1.0e-3); setDisAccuracy(0.1); }
void FWaves::initialize(){ setOptType(MAX_OPT); setDisAccuracy(0.15); setAccuracy(1.e-3); m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(10); //one global optimum+9 local optimum ifstream in; stringstream ss; ss<<Global::g_arg[param_workingDir]<<"Problem/FunctionOpt/Data/"<<m_name<<"_Opt_"<<m_numDim<<"Dim.txt"; in.open(ss.str().c_str()); if(!in) throw myException("cannot open data file@FShubert::initialize()"); for(int i=0;i<10;++i){ double x0,x1,obj; in>>x0>>x1>>obj; m_globalOpt[i].data().m_x[0]=x0; m_globalOpt[i].data().m_x[1]=x1; m_globalOpt[i].data().m_obj[0]=obj; } in.close(); m_originalGlobalOpt=m_globalOpt; addProTag(MMP); }
void FMAX_global1::initialize(){ m_OptMode[0]=MAX_OPT; m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(5); //5 gopt setDisAccuracy(0.1); setAccuracy(1.e-5); CodeVReal x(1,1); x.m_x[0]=0.5; x.m_obj[0]=1.; m_globalOpt[0].data()=x; x.m_x[0]=0.1; m_globalOpt[1].data()=x; x.m_x[0]=0.3; m_globalOpt[2].data()=x; x.m_x[0]=0.7; m_globalOpt[3].data()=x; x.m_x[0]=0.9; m_globalOpt[4].data()=x; m_originalGlobalOpt=m_globalOpt; addProTag(MMP); setObjSet(); }
void FModified_Rastrigin::initialize(){ // note m_k[0]=3;m_k[1]=4; setDisAccuracy(0.1); setAccuracy(1.e-5); m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(12); //production of m_ki ifstream in; stringstream ss; ss<<Global::g_arg[param_workingDir]<<"Problem/FunctionOpt/Data/"<<m_name<<"_Opt_"<<m_numDim<<"D.txt"; in.open(ss.str().c_str()); if(in.fail()){ throw myException("cannot open data file@FModified_Rastrigin::initialize()"); } for(int i=0;i<12;++i){ double x0,x1; in>>x0>>x1; m_globalOpt[i].data().m_x[0]=x0; m_globalOpt[i].data().m_x[1]=x1; m_globalOpt[i].data().m_obj[0]=2.0; } in.close(); m_originalGlobalOpt=m_globalOpt; addProTag(MMP); }
void FMAX_global4::initialize(){ m_OptMode[0]=MAX_OPT; m_globalOpt.setFlagLocTrue(); m_globalOpt.setNumOpts(5); //1 gopt + 4 lopt setDisAccuracy(0.1); setAccuracy(1.e-5); CodeVReal x(1,1); x.m_x[0]=0.0796998; x.m_obj[0]=1.; m_globalOpt[0].data()=x; x.m_x[0]=0.930153; x.m_obj[0]=0.25161; m_globalOpt[1].data()=x; x.m_x[0]=0.246279; x.m_obj[0]=0.94868; m_globalOpt[2].data()=x; x.m_x[0]=0.679166; x.m_obj[0]=0.50411; m_globalOpt[3].data()=x; x.m_x[0]=0.449496; x.m_obj[0]=0.77081; m_globalOpt[4].data()=x; m_originalGlobalOpt=m_globalOpt; addProTag(MMP); setObjSet(); }
void FSzu::initialize(){ setOptType(MIN_OPT); m_originalGlobalOpt.setNumOpts(1); vector<vector<double>> gobj; if(m_numDim==2){ gobj.push_back(vector<double>(1,-156.66)); }else if(m_numDim==3) { gobj.push_back(vector<double>(1,-235.0)); }else if(m_numDim==4) { gobj.push_back(vector<double>(1,-313.33)); }else if(m_numDim==5) { gobj.push_back(vector<double>(1,-391.66)); }else if(m_numDim==6) { gobj.push_back(vector<double>(1,-469.99)); }else if(m_numDim==7) { gobj.push_back(vector<double>(1,-548.33)); }else if(m_numDim==8) { gobj.push_back(vector<double>(1,-626.66)); }else if(m_numDim==9) { gobj.push_back(vector<double>(1,-704.99)); } if(m_numDim>=2&&m_numDim<=9){ m_originalGlobalOpt.setGloObj(gobj); m_originalGlobalOpt.flagGloObj()=true; m_originalGlobalOpt.flagLoc()=false; } else{ m_originalGlobalOpt.flagGloObj()=false; m_originalGlobalOpt.flagLoc()=false; } m_globalOpt=m_originalGlobalOpt; setDisAccuracy(0.1); setAccuracy(1.e-2); }
void CompositionDBG::initialize(const ChangeType rT, const ComDBGFuncID rF,double const rChangingRatio,const bool rFlagDimChange, const bool rFlagNumPeakChange, const int peakNumChangeMode,const bool flagNoise, const bool flagTimelinkage){ RealDBG::initialize(rT,rFlagDimChange,rFlagNumPeakChange,peakNumChangeMode,flagNoise,flagTimelinkage); setOptType(MIN_OPT); setNumberofChanges(rChangingRatio); if(!ms_funID.get()) ms_funID.reset(new ComDBGFuncID()); *CompositionDBG::ms_funID=rF; setAccuracy(1.0); setDisAccuracy(0.1); m_globalOpt.setFlagLocTrue(); ProblemTag *basic_fun=new ProblemTag[m_numPeaks]; switch(*CompositionDBG::ms_funID){ case COMDBG_SPHERE: for(int i=0;i<m_numPeaks;i++) basic_fun[i]=Sphere; break; case COMDBG_RASTRIGIN: for(int i=0;i<m_numPeaks;i++) basic_fun[i]=Rastrigin; break; case COMDBG_GRIEWANK: for(int i=0;i<m_numPeaks;i++) basic_fun[i]=Griewank; break; case COMDBG_ACKLEY: for(int i=0;i<m_numPeaks;i++) basic_fun[i]=Ackley; break; case COMDBG_HYBRID: basic_fun[0]=Sphere; basic_fun[5]=Sphere; basic_fun[1]=Rastrigin; basic_fun[6]=Rastrigin; basic_fun[2]=Weierstrass; basic_fun[7]=Weierstrass; basic_fun[3]=Griewank; basic_fun[8]=Griewank; basic_fun[4]=Ackley; basic_fun[9]=Ackley; for(int i=10;i<m_numPeaks;i++) basic_fun[i]=Sphere; break; } setBasicFunction(basic_fun); delete []basic_fun; basic_fun=0; double *t=new double[m_numPeaks]; for(int i=0;i<m_numPeaks;i++)t[i]=1.; setCovergeSevrity(t); setStretchSeverity(); setRotationMatrix(); Matrix m(m_numDim,1); double *gene=new double[m_numDim]; for(int i=0;i<m_numPeaks;i++){ for(int j=0;j<m_numDim;j++){ // calculate the estimate max value of funciton i gene[j]=m_searchRange[j].m_upper; gene[j]/=mp_stretchSeverity[i]; } m.setDataRow(gene,m_numDim); m*=mp_rotationMatrix[i]; copy(m[0].begin(),m[0].end(),gene); correctSolution(mp_comFunction[i],gene); mp_fmax[i]=selectFun(mp_comFunction[i],gene); if(mp_fmax[i]==0) throw myException("the estimation max value must be greater not equal to 0@CompositionDBG::initialize"); } calculateGlobalOptima(); updateTimeLinkage(); delete [] t; delete [] gene; t=0; gene=0; }