00001 #ifndef SMS2D_MIES
00002 #define SMS2D_MIES
00003
00004 #include "NSGAII_MIES.h"
00007 class SMSEMOA_2D_MIES:virtual public NSGAII_MIES
00008 {
00009 public:
00010 SMSEMOA_2D_MIES(unsigned n_r_, unsigned n_z_, unsigned n_d_, unsigned n_sigma_r_, unsigned n_sigma_z_, unsigned n_prob_, unsigned n_f_,
00011 unsigned mu_, unsigned rho_, unsigned kappa_, unsigned lambda_,
00012 vector<double>& lBound_r_, vector<double>& uBound_r_, vector<int>& lBound_z_, vector<int>& uBound_z_,
00013 vector<int>& lBound_d_, vector<int>& uBound_d_, double prob_min_, double prob_max_,
00014 bool disRec_r_, bool disRec_z_, bool disRec_sigma_r_, bool disRec_sigma_z_, bool disRec_prob_,
00015 bool selfAdaptation_, vector<int>& direction_,
00016 unsigned evaluations_, vector<double>& optimalF_,
00017 double initialSigma_r_, double initialSigma_z_, double initialProb_,
00018 ifstream* initialPopFile_, int randomSeed_, bool feedback_,
00019 unsigned timeOutValue_,
00020 unsigned selectDimension_, vector<unsigned>& selectFunction_)
00021 :NSGAII_MIES(n_r_, n_z_, n_d_, n_sigma_r_, n_sigma_z_, n_prob_, n_f_,
00022 mu_, rho_, kappa_, lambda_,
00023 lBound_r_, uBound_r_, lBound_z_, uBound_z_,
00024 lBound_d_, uBound_d_, prob_min_, prob_max_,
00025 disRec_r_, disRec_z_, disRec_sigma_r_, disRec_sigma_z_, disRec_prob_,
00026 selfAdaptation_, direction_,
00027 evaluations_, optimalF_, initialSigma_r_, initialSigma_z_, initialProb_,
00028 initialPopFile_, randomSeed_, feedback_, timeOutValue_,
00029 selectDimension_, selectFunction_)
00030 {
00031 if (selectDimension_ != 2)
00032 {
00033 cerr << "Compiled with SMS-EMOA 2D selection, but selectDimension is " << selectDimension_ << "D! Exiting." << endl;
00034 exit(1);
00035 }
00036 #ifdef DP
00037 dpSelection = true;
00038 #endif
00039 }
00040 virtual ~SMSEMOA_2D_MIES() {}
00041
00042 protected:
00044 void frontSort(vector<int>& currFront, vector<Individual*>& Q, vector<int>& direction);
00045 };
00046
00047 #endif