00001 #ifndef SMS3D_ 00002 #define SMS3D_ 00003 00004 #include "NSGA_II.h" 00005 00006 extern "C" 00007 { 00008 #include "hv.h" 00009 } 00010 00013 class SMSEMOA_3D:virtual public NSGA_II 00014 { 00015 public: 00016 SMSEMOA_3D(bool dpSelection_, bool steadyState_, unsigned n_f__ = 3); 00017 virtual ~SMSEMOA_3D() {} 00018 00019 protected: 00020 bool steadyState; 00021 double reference[3]; 00022 map<int, vector<double> > normF; 00023 00025 void frontSort(vector<int>& currFront, vector<Individual*>& Q, vector<int>& direction); 00026 00028 void normalize(vector<int>& currFront, int frontSize, vector<Individual*>& Q, vector<int>& direction); 00029 }; 00030 00031 #endif 00032