• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/permutation/Permutation.h

00001 #ifndef PERMUTATION_H_
00002 #define PERMUTATION_H_
00003 
00004 #include "PermutationCrsPMX.h"
00005 #include "PermutationMutToggle.h"
00006 #include "PermutationMutIns.h"
00007 #include "PermutationMutInv.h"
00008 #include "PermutationCrsPBX.h"
00009 #include "PermutationCrsOX.h"
00010 #include "PermutationCrsCOSA.h"
00011 #include "PermutationCrsCyclic.h"
00012 #include "PermutationCrsCyclic2.h"
00013 #include "PermutationCrsOBX.h"
00014 #include "PermutationCrsULX.h"
00015 #include "PermutationCrsOX2.h"
00016 #include "PermutationCrsOPX.h"
00017 #include "PermutationCrsSPX.h"
00018 #include "PermutationCrsDPX.h"
00019 #include "PermutationCrsUPMX.h"
00020 
00021 
00022 #include "../Genotype.h"
00023 
00024 
00025 namespace Permutation
00026 {
00027 
00037 class Permutation: public Genotype {
00038 protected:
00039     uint size_; 
00040 public:
00041     typedef std::vector<int> var;
00042     var variables;
00043 
00044     Permutation () {name_ = "Permutation";}
00045 
00046     uint getSize()  
00047     {   return size_;   }
00048 
00049     bool initialize (StateP state);
00050 
00051     void registerParameters(StateP state);
00052 
00053     Permutation* copy()
00054     {
00055         Permutation *newObject = new Permutation(*this);
00056         return newObject;
00057     }
00058 
00059     std::vector<CrossoverOpP> getCrossoverOp()
00060     {
00061         std::vector<CrossoverOpP> crx;
00062         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsPMX));
00063         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsPBX));
00064         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsOX));
00065         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsCOSA));
00066         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsCyclic));
00067         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsCyclic2));
00068         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsOBX));
00069         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsULX));
00070         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsOX2));
00071         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsOPX));
00072         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsSPX));
00073         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsDPX));
00074         crx.push_back(static_cast<CrossoverOpP> (new PermutationCrsUPMX));
00075         return crx;
00076     }
00077 
00078     std::vector<MutationOpP> getMutationOp()
00079     {
00080         std::vector<MutationOpP> mut;
00081         mut.push_back(static_cast<MutationOpP> (new PermutationMutToggle));
00082         mut.push_back(static_cast<MutationOpP> (new PermutationMutIns));
00083         mut.push_back(static_cast<MutationOpP> (new PermutationMutInv));
00084         return mut;
00085 
00086     }
00087 
00088     void write(XMLNode&);
00089     void read(XMLNode&);
00090 };
00091 }
00092 
00093 typedef boost::shared_ptr<Permutation::Permutation> PermutationP;
00094 #endif

Generated on Tue Nov 4 2014 13:04:31 for ECF by  doxygen 1.7.1