
2
rithme en O(n2α(n)), ou α(n)est l’inverse de la fonc-
tion de Ackermann.
– Kaplan, Shamir et Tarjan (1997) ont trouv´
e un algo-
rithme en O(n2)que nous allons ´
etudier ci-apr`
es.
ALGORITHME DE KAPLAN ET AL.
L’algorithme de Kaplan, Shamir et Tarjan [KST97] est une
´
el´
egante am´
elioration des m´
ethodes pr´
ec´
edentes. L’objectif
n’est pas ici d’en faire une analyse d´
etaill´
ee mais de tenter
d’en d´
egager les points les plus saillants. Pour ce faire, nous
suivrons globalement le mˆ
eme plan que celui de l’article.
NOTATIONS ET D ´
EFINITIONS PR ´
ELIMINAIRES
Nous consid´
erons comme acquises les notions de points de
rupture et d’adjacences. Le nombre de points de rupture
d’une permutation est not´
eb(π). De toute ´
evidence un ren-
versement ρ(i, j)agit sur les paires (πi−1, πi)et (πj, πj+1).
Graphe des points de rupture
Le graphe de points de rupture B(π)d’une permutation
`
a n entiers πest un graphe aux arrˆ
etes color´
ees comprenant
n+2 entiers car on ajoute 0et n+1 aux deux extr´
emit´
es. On
relie les noeuds dans l’ordre donn´
e par πavec des arrˆ
etes
noires et les noeuds dans l’ordre donn´
e par l’idendit´
e par
des arrˆ
etes grises. On d´
efinit alors une transformation udes
permutations avec signe vers les permutations sans signe.
Chaque noeud positif xest remplac´
e par les deux noeuds
2x−1et 2xtandis que chaque noeud n´
egatif −xse voit sub-
stituer 2xet 2x−1. Il y a d`
es lors une unique d´
ecomposition
de B(π)en cycles dans lesquels alternent les arrˆ
etes grises
et noires. On pose c(π)le nombre de cycles de B(π). Le tri
par renversement de πest ´
equivalent au tri par renverse-
ment de u(π)en utilisant des renversements pairs (de la
forme ρ(i, j)avec i impair et j pair) et il s’agit d`
es lors d’abor-
der ce probl`
eme.
Il est possible de classer les effets sur le nombre de cycles
et de points de rupture des diff´
erentes op´
erations de renver-
sement. Nous ne les d´
etaillons pas ici, notons simplement
qu’un certain nombre d’op´
erations sont qualifi´
ees de propres
Une arrˆ
ete grise est orient´ee si un renversement sur cette
arrˆ
ete est propre, sinon elle ne l’est pas.
Graphe de recouvrement
Le graphe de recouvrement d’une permutation π, not´
e
OV (π)est le graphe de recouvrement d’intervalles des
arrˆ
etes grises de B(π). L’ensemble des sommets d’OV (π)
correspond `
a l’ensemble des arrˆ
etes grises de B(π)et
deux sommets sont connect´
es si leurs arrˆ
etes associ´
ees se
croisent. Une composante connexe d’OV (π)qui contient
une arrˆ
ete orient´
ee est nomm´
ecomposante orient´ee, elle est
nomm´
ee composante non-orient´ee dans le cas contraire.
Soit X un ensemble d’arrˆ
etes grises de B(π),min(X) =
min{i|(πi, πj)∈X},max(X) = max{j|(πi, πj)∈X}. Les
auteurs d´
emontrent alors le lemme suivant : si M est un en-
semble d’arrˆ
etes grises de B(π)qui correspond `
a une com-
posante connexe d’OV (π)alors min(M)est pair et max(M)
est impair. Ceci conduit au corollaire suivant : les compo-
santes connexes d’OV (π)correspondent `
a l’ensemble des
arrˆ
etes grises constituant chaque cycle. Cela permet de
d´
emontrer que la partition impos´
ee par les composantes
connexes d’OV (π)sur l’ensemble des arrˆ
etes grises est iden-
tique `
a celle impos´
ee dans les travaux de Pevzner et Han-
nenhalli.
Obstacles
Informellement les obstacles sont des composantes
connexes qui ne contiennent pas d’autres composantes
connexes. La d´
efinition propos´
e dans l’article est plus simple
que celle d’Hannenhalli et Pevzner. Les obstacles peuvent
ˆ
etre identifi´
es en alignant sur un cercle les arrˆ
etes grises
intervenant dans les composantes non-orient´
ees de OV (π).
Notons h(π)le nombre d’obstacles de la permutation π. Han-
nenhalli et Pevzner ont d´
emontr´
e que pour une permutation
π,d(π) = b(π)−c(π) + h(π)ou d(π) = b(π)−c(π) + h(π) + 1.
ALGORITHME Etant donn´
e une permutation πavec
h(π)>0, il est possible d’effectuer t=ph(π)/2qrenver-
sements afin de transformer πen π0tel que h(π0) = 0 et
d(π0) = d(π)−t. C’est ce que fait l’algorithme d`
es lors
qu’OV (π)pr´
esente des composantes non-orient´
ees. D`
es lors,
OV (π0)n’a que des composantes orient´
ees. Il est possible de
supprimer les obstacles d’une permutation en O(nα(n)).Un
renversement qui ne cr´
ee pas d’obstacle est d´
enomm´
eren-
versement s ˆur. Il existe toujours un tel renversement dans
le voisinage d’une arrˆ
ete grise orient´
ee. Il s’agit donc d’utili-
ser un algorithme efficace permettant de trouver un renver-
sement s ˆ
ur d’une permutation ayant au moins une arrˆ
ete
grise orient´
ee. Cela peut se faire en O(n). Enfin il convient
d’it´
erer en trouvant `
a chaque it´
eration un renversement s ˆ
ur
et de l’effectuer tant que OV (π)n’est pas vide. Cela nous
donne comme complexit´
e finale du O(rn +nα(n)) avec r le
nombre de renversement n´
ecessaire au tri de π0.
En pratique l’algorithme prend en entr´
ee une s´
equence
π0de nnombres sign´
es et construit la permutation π=
u(π0). Ensuite tout l’algorithme travaille sur πet π−1qui
sont maintenues `
a jour durant l’ex´
ecution.
Elimination des composantes orient´
ees
Posons N(e)l’ensemble des voisins de e dans OV (π),
ON(e)le sous-ensemble de N(e)contenant des arrˆ
etes
orient´
ees et UN (e)le sous-ensemble des arrˆ
etes non-
orient´
ees. Les auteurs prouvent que si un sommet orient´
e
eexiste dans OV (π)alors il existe un sommet orient´
ef∈
ON(e)tel que r(f)est propre et s ˆ
ur. Ils proposent un al-
gorithme permettant de trouver un renversement propre et
sˆ
ur dans une permutation qui contient au moins une arrˆ
ete
orient´
ee. Pour ce faire ils introduisent la notion de clique
joyeuse, nous renvoyons `
a l’article pour sa d´
efinition for-
melle. Ils d´
emontrent que dans une clique joyeuse il existe
un sommet d´
efinissant un renversement propre et s ˆ
ur.
Les auteurs proposent donc un algorithme permettant
de trouver une clique joyeuse dans un temps proportionnel
au nombre de sommets orient´
es travers´
es. Ils d´
emontrent la
validit´
e de l’algorithme par un classique invariant de boucle.
Une fois la clique joyeuse trouv´
ee par cette m´
ethode, il
convient de trouver le sommet de la clique qui a le maximum
de voisins non-orient´
es. Nous renvoyons ´
egalement `
a l’ar-
ticle pour les d´
etails de cette algorithme dont la complexit´
e
est proportionnelle `
a la taille de la clique `
a traiter auquel
s’ajoute le nombre de sommets non-orient´
es dans OV (π)soit
donc au final O(n).
Suppression des obstacles