Sorting signed permutations by reversals, revisited

  • Authors:
  • Haim Kaplan;Elad Verbin

  • Affiliations:
  • School of Computer Science, Tel Aviv University, Tel Aviv, Israel;School of Computer Science, Tel Aviv University, Tel Aviv, Israel

  • Venue:
  • Journal of Computer and System Sciences - Special issue on bioinformatics II
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The problem of sorting signed permutations by reversals (SBR) is a fundamental problem in computational molecular biology. The goal is, given a signed permutation, to find a shortest sequence of reversals that transforms it into the positive identity permutation, where a reversal is the operation of taking a segment of the permutation, reversing it, and flipping the signs of its elements. In this paper we describe a randomized algorithm for SBR. The algorithm tries to sort the permutation by repeatedly performing a random oriented reversal. This process is in fact a random walk on the graph where permutations are the nodes and an arc from @p to @p^' corresponds to an oriented reversal that transforms @p to @p^'. We show that if this random walk stops at the identity permutation, then we have found a shortest sequence. We give empirical evidence that this process indeed succeeds with high probability on a random permutation. To implement our algorithm we describe a data structure to maintain a permutation, that allows to draw an oriented reversal uniformly at random, and perform it in sub-linear time. With this data structure we can implement the random walk in O(n^3^/^2logn) time, thus obtaining an algorithm for SBR that almost always runs in sub-quadratic time. The data structures we present may also be of independent interest for developing other algorithms for SBR, and for other problems. Finally, we present the first efficient parallel algorithm for SBR. We obtain this result by developing a fast implementation of the recent algorithm of Bergeron (Proceedings of CPM, 2001, pp. 106-117) for sorting signed permutations by reversals that is parallelizable. Our implementation runs in O(n^2logn) time on a regular RAM, and in O(nlogn) time on a PRAM using n processors.