#ifndef PERMUTATION_H #define PERMUTATION_H #include // permutation with fixpoint pi[0]=0 class permutation { public: permutation(int size); // initialize to identity void transpose(int i, int j); void random(); int operator[](int i); // return the image of i (i and its image 0-based) bool check(); // check invariant : sigma[0] = 0 and it is a permutation int get_size(); friend permutation permutation_crossover(permutation &a, permutation &b); protected: int size; std::vector sigma; // sigma[i] is the image of i }; permutation permutation_crossover(permutation &a, permutation &b); #endif // PERMUTATION_H