Example #1
0
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();
}
Example #2
0
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);
}
Example #3
0
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;
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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();
}
Example #7
0
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);
}
Example #8
0
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);
}
Example #9
0
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();
}
Example #10
0
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);
}
Example #11
0
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();
}
Example #12
0
File: FSzu.cpp Project: dcshen/OFEC
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);
}
Example #13
0
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;

 }