}
double Zipper::score(const SortAction& sa, const GeneOrder& go){
- return 1;
+ const ReverseAction* ra = dynamic_cast<const ReverseAction*>(&sa.impl());
+
+ if (ra){
+ return 1.0/(((ra->j()-ra->i())/static_cast<double>(go.size()))+1.0);
+ }
+ return -1;
}
const char* Zipper::name(){
return "Zipper";