#define __GENESORTER_H__
#include <vector>
-#include <tr1/memory>
class SortAction;
class GeneOrder;
+class Model;
/**
* Sorts genes
*/
class GeneSorter{
public:
- typedef std::tr1::shared_ptr<SortAction> ActionPointer;
- typedef std::vector<ActionPointer> ActionList;
+ typedef std::vector<SortAction> ActionList;
/**
* Takes a GeneOrder, finds the actions to transform it into a sorted
* permutation and returns the list with required actions.
*/
- ActionList sort(const GeneOrder& go1);
+ ActionList sort(const GeneOrder& go1, const Model& m);
/**
* Find the safe actions for this GeneOrder.
*/
ActionList safeActions(const GeneOrder& go1);
+ /**
+ * Calculates the score for an action given a gene order
+ */
+ size_t scoreAction(const GeneOrder& go, SortAction& sa);
+
~GeneSorter(){};
};