I RÈNE C HARON -F OURNIER A NNE G ERMA
O LIVIER H UDRY
Utilisation des scores dans des méthodes exactes déterminant les ordres médians de tournois
Mathématiques et sciences humaines, tome 119 (1992), p. 53-74
<http://www.numdam.org/item?id=MSH_1992__119__53_0>
© Centre d’analyse et de mathématiques sociales de l’EHESS, 1992, tous droits réservés.
L’accès aux archives de la revue « Mathématiques et sciences humaines » (http://
msh.revues.org/) implique l’accord avec les conditions générales d’utilisation (http://www.
numdam.org/conditions). Toute utilisation commerciale ou impression systématique est consti- tutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte- nir la présente mention de copyright.
Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques
http://www.numdam.org/
UTILISATION DES SCORES DANS DES
MÉTHODES
EXACTESDÉTERMINANT
LES ORDRES
MÉDIANS
DE TOURNOISIrène
CHARON-FOURNIER,
Anne GERMA et Olivier HUDRY 1RÉSUMÉ -
Dans cet article, nous utilisons un paramètre 03C3(T)défini
à partir des scores d’un tournoi T pour déterminer les ordres médians de T. Ce paramètre évalue unéloignement
entre le tournoi T et les tournoistransitifs
ayant le même nombre de sommets.Appelant
i(T) le nombre minimum d’arcs à inverser pour rendre Ttransitif,
et n le nombre de sommets de T, nous proposons d’abord deuxalgorithmes
linéaires en n calculant i(T)et un ordre médian de T pour les tournois T tels que 03C3(T) soit
égal
à 1 ou 2. Puis nous donnons des résultatsexpérimentaux
sur l’utilisation de 03C3(T) dans une méthode arborescente parséparation
et évaluation progressive ("Branch and Bound") déterminant, pour tout tournoi T, i(T) et les ordres médians de T.same number
of
vertices.Calling
i(T) the minimum numberof
arcs that it is necessary to reverse to make T transitive, and n the numberof
verticesof
T, wegive first
two linear (in n)algorithms
to compute i(T) and amedian order
of T for
T such that 03C3(T) is equal to 1 or 2. Then we give experimental results on the useof
03C3(T)in a Branch and Bound method
designed
to compute i(T) and the median ordersof T.
1. INTRODUCTION
Un tournoi
Tn
d’ordre n est ungraphe
orientécomplet antisymétrique
à n sommets : entre toutepaire
de sommets distincts i etj,
il existe un et un seul des deux arcs(i, j)
ou(j, i).
Le score si d’un sommet i est ledemi-degré
extérieur dei,
c’est-à-dire le nombre d’arcsayant
i pourorigine.
Le vecteur-score d’un tournoiTn
est le vecteur ordonné(sl,
s2, ...,sn),
les sommetsétant numérotés de
façon
à avoirs2 _
... ~ sn. H.G. Landau[6]
a donné une conditionnécessaire et suffisante pour
qu’un
vecteur(sl,
s2, ...,sn)
soit le vecteur-score d’un tournoiTn (pour
les définitions et les résultats debase,
voir J.W. Moon[7]).
THÉORÈME
1.(H.G. Landau) : (si,
s2,... , sn)
avecS2 ~
... sn est le vecteur-scored’un tournoi si et seulement si
En
particulier,
le vecteur-score du tournoi transitif est le vecteur(0, 1,..., n-1).
Dans
[3],
nous avons étudié certainespropriétés
duparamètre a(T)
défini pour tout tournoi T de lafaçon
suivante.DEFINITION 1. Soit s =
(s 1,
s2, ...,sn)
le vecteur-score d’un tournoiT ;
on pose alors1 Ecole Nationale
Supérieure
des Télécommunications, 46 rue Barrault, 75634 Paris Cedex 13 France.Ce
paramètre
évalue unéloignement
entre le tournoi T et les tournois transitifs ayant le même nombre de sommets. Enparticulier, 6(T)
vaut 0 si et seulement si T est transitif. Leparamètre a(T)
fournit des indications sur leproblème
de P. Slater([9]).
Celui-ci consiste àdéterminer,
dans un tournoi Tdonné,
un ensemble minimum d’arcs dont l’inversion rend T transitif(cet
ensemble minimum n’est d’ailleurs pas nécessairementunique).
DÉFINITION
2. Soit T un tournoi. Onappelle
"indice de Slater" de T et on notei(T)
le nombreminimum d’arcs à inverser dans T pour rendre T transitif.
L’indice de Slater
i(T) correspond
à la mesure d’une distance entre le tournoi T etl’ensemble des tournois transitifs sur les sommets de T
([2]).
Le tournoi transitif obtenu en inversant cesi(T)
arcs estcaractéristique
d’un ordretotal, appelé
"ordre médian" de T([2]).
L’ordre médian de T est donc un ordre à distance minimum de T. Nous
parlerons plus
loin de"distance" entre un ordre total
(quelconque)
0 et un tournoi T : ils’agira
du nombre d’arcs à inverser dans T pour obtenir 0. Pourplus
decommodité,
un tournoi transitif sera confonduavec l’ordre total
qui
lui estsous-jacent.
Nous allons d’abord nous
intéresser,
dans les deuxpremières parties,
à lacomplexité
duproblème
de Slater pour les tournois T vérifianta(T)
E{ 1, 2 } .
La dernièrepartie
est consacréeà l’utilisation du
paramètre
dans une méthode arborescente pour la résolution duproblème
de
Slater ;
nous montrons, àpartir
de résultatsexpérimentaux,
que saprise
encompte
dans la fonction d’évaluation de cette méthodepermet
d’accélérer considérablement la recherche d’un ordre médian d’untournoi,
etd’envisager
de déterminer la valeur exacte dei(T)
pour des tournoispossédant davantage
de sommets.2.
COMPLEXITÉ
DU PROBLEME DE SLATER POUR 6 = 1Nous avons
rappelé plus
haut enquoi
consiste leproblème
de P. Slater([9]).
D.H.Younger ([12])
a établi une formulationéquivalente
de ceproblème :
déterminer un ensemble minimum d’arcs d’un tournoi T dont la destruction dans T donne ungraphe
sans circuit("Feedback
arcset
problem").
Les effortsjusqu’à présent entrepris
n’ont paspermis
d’établir si ceproblème
admet un
algorithme
de résolutionpolynomial,
ou s’il est NP-difficile... Notonscependant
queplusieurs problèmes proches
de celui-ci sont NP-difficiles. Ainsi leproblème
du "Feedback arcset" est NP-difficile si on considère l’ensemble des
graphes antisymétriques (non
nécessairement
complets) [5].
Demême,
dans un tournoivalué,
la détermination d’un ensemble d’arcs depoids
minimum dont l’inversion transforme le tournoi en un tournoi transitif constitue unproblème
NP-difficile(voir
parexemple [11]).
Dans cette
partie,
nous donnons unalgorithme
linéairepermettant
de déterminer l’indice de Slater ainsiqu’un
ordre médian de tout tournoi T tel quea(T) égale
1. Pourcela,
noussupposerons que les sommets de T sont numérotés selon l’ordre croissant des scores. Nous
aurons besoin de
plus
du résultat suivant :Lemme 2.. Soit T un tournoi dont les sommets sont numérotés selon l’ordre croissant des
scores. Le nombre d’arcs
ayant
leurorigine
dans{xl,
x2, ...,xp}
et leur extrémité dans{xp+1,
xp+2, ..., xn }
est inférieur ouégal
à6(T)
pour tout p.Preuve. Voir
[3]. · THÉORÈME
3. La détermination de l’indice de Slater et d’un ordre médian d’un tournoi T à nsommets et de
paramètre 6(T)
= 1 est linéaire en n.Preuve . On suppose les sommets
(xi, ..., Xn 1 rangés
par ordre croissant des scores. La valeur de a étant1,
la suite de scores est du type(0, 1,
...,j-3, j-2, j, j, j+1,..., k-3, k-2, k-2, k, k+1,..., n-3, n-2, n-1).
On suppose les sommets classés de telle sorte que l’arc entrexj
et(touts
deux de scorej)
aille dexj+i
versxj.
L’allure de T est illustrée par lafigure 1,
danslaquelle
tous les arcs manquants sont orientés de la droite vers lagauche.
Figure
1Pour rendre T
transitif,
il est nécessaire et suffisant de rendre transitif le sous-toumoi T’engendré
par{ xj+2, xj+3, ..., xn },
lui-même deparamètre a(T’) _ 1,
et de détruire les circuitsqui
peuvent encore subsisteraprès
cetteopération. Or,
si onappelle
xr le fils dexj
d’indice rsupérieur à j (d’après
le lemme2,
si xrexiste,
il estunique)
dansT,
les circuitsqui subsistent,
par
exemple
le circuit(xj,xr,xj+ 1),
passent tous nécessairement par l’arc(xj,xr),
et onpeut
donctous les détruire en inversant l’arc
(xj,xr),
de sorte quei(T)
=1(T’)+ 1 .
On propose alors pour déterminer l’indice de Slater et un ordre médian de Tl’algorithme
décritci-dessous, qui
utilisela structure de données suivante :
- les sommets de T sont numérotés par
1, 2, ...,
n ;- A est un tableau de
longueur
n contenant ladescription
de T :Av] indique
le sommet d’indicer dominé par le sommet
d’indice j
avec r> j,
si un tel sommetexiste ;
- X est un tableau contenant les sommets
rangés
par scorescroissants ;
- S est un tableau de
longueur
n tel queS[j]
= score deXO] ;
- Y est un tableau de
longueur
nqui contient,
à la fin de l’exécution del’algorithme,
lessommets de T
rangés
selon un ordre médian.ALGORITHME 1
Le lemme 2 permet de conclure que la structure de T est entièrement contenue dans A : tous les
arcs ayant le
sommet j
pourorigine
sont orientés vers des sommets d’indiceplus petit,
sauf auplus
un arc pourchaque j ;
c’estprécisément
cet arcqu’indique A[j].
On déduit immédiatementque la
complexité
del’algorithme
est linéaire en n.Remarques
1.
L’hypothèse, simplificatrice,
selonlaquelle
les sommets sontdéjà rangés
par scores croissants n’est pasindispensable.
Au momentd’acquérir
lesdonnées,
c’est-à-dire ce que contientA,
on peut aisément tenir àjour
les tableaux X et S pourqu’il
en soitainsi, après
avoirinitialisé X et S de la
façon
suivante :X[j] := j et S j] := j-1. o(T) valant 1,
la mise àjour
due àl’acquisition
dechaque
arc(j, A[j])
peut alors être effectuée à l’aide d’un nombre constantd’opérations,
etl’algorithme
reste ainsi linéaire.2. Il est facile d’autre part
d’adapter
cetalgorithme
pour la détermination de tous les ordres médians d’un tournoi T deparamètre 6(T)
= 1. En effetsi,
lors d’uneitération,
l’indice r eststrictement
supérieur à j+2,
seule l’inversion de(X[j], X[r])
permet de détruire tous les circuitpassant par X[j] ;
au contraire si r estégal à j+2,
chacun des trois arcs(X[j], X[j+2]), (Xjj+1], X[j])
et(X[j+2], X[j+lJ)
peut être inversé pour constituer un ordre médian. Pour obtenir tousles ordres
médians,
il suffit doncd’envisager
successivement chacune de ces trois inversions(mais
dans ce cas,l’algorithme
n’est bien sûrplus
nécessairementpolynomial, puisqu’il
peut alors y avoir un nombreexponentiel
d’ordresmédians).
3.
COMPLEXITÉ
DUPROBLÈME
DE SLATER POUR 6 = 2Nous nous intéressons maintenant au cas des tournois T tels que
6(T)
= 2. Nous allonsmontrer que la détermination de l’indice de Slater de tout tournoi T tel que
cr(T)
= 2 restelinéaire en n
(théorème 11). Auparavant,
nousrappelons
un résultat dû à R.Remage
et W.A.Thompson (lemme 4), puis
nous établissons six lemmes(lemmes
5 à10)
dont découlera lethéorème 11. Pour
cela,
nous supposerons encore dans toute cettepartie
que les sommets de T sont numérotés selon l’ordre croissant des scores.Notations. Nous utiliserons les notations suivantes : on note
[x, T]
la distance minimum de T à l’ensemble des tournois transitifs dont x est le sommet de score 0(on
dira aussi un tournoi finissant parx),
et[ { x,y } , T]
la distance minimum de T à l’ensemble des tournois transitifs dont{ x, y }
sontglobalement
les sommets de scores 0 et 1(on
dira aussi un tournoi finissant par x et y, ou finissant par{ x, y } ).
Lemme 4.
(R. Remage
et W.A.Thompson, 1966) :
Soit T un tournoi et OM un ordre médiande T. Si x et y sont deux sommets consécutifs dans
OM,
l’orientation de l’arc entre x et y est la même dans OM que dans T.Preuve. Voir
[8].
Ce lemmeexprime
le fait que les arcs entre deux sommets consécutifs d’un ordre médianquelconque
constituent un chemin hamiltonien de T.Lemme 5 . Etant donné un tournoi T d’indice de Slater
i(T)
alors- étant donné un sommet a de score 1 de
T,
il existe un tournoi transitif à distancei(T)
oui(T)+1
de T finissant par a :[a, T]
_i(T)+1 ;
- étant donné un sommet b de score 2 de
T,
il existe un tournoi transitif à distancei(T), i(T)+1
ou
i(T)+2
de T finissant par b :[b, T] i(T)+2 ;
- étant donnés deux sommets a et b de scores
respectifs
1 et2,
il existe un tournoi transitif à distance auplus i(T)+2
de T finissant par{ a,b } : i(T) ~ [ { a,b } , T] ~ i(T)+2.
Preuve. Soit T’ = T -
{ a } .
L’indice de Slater de T’ est auplus i(T) :
tout ordre médian de Tduquel
on ôte le sommet a donne un ordre total à distance auplus i(T)
de T’. Pour rendre T’transitif,
il suffit donc d’inverser auplus i(T)
arcs. On inverse deplus
dans Tl’unique
arc issude a. Le tournoi obtenu est
transitif,
finit par a, et est à distance auplus i(T)+1
de T. D’autre part, par définition dei(T),
il faut bien inverser au moinsi(T)
arcs de T pour obtenir un ordre total finissant par a. D’où le résultat pour lapremière proposition
du lemme 5.La preuve est exactement la même pour b
(cette
fois oninverse,
d’une part les arcs nécessaires dansT-{b},
d’autre part les deux arcsd’origine b).
Elle est en fait encoresemblable pour
{ a,b } :
eneffet,
les deux sommets a et b étant liés par un arc(puisque
ce sontdeux sommets d’un
tournoi),
il "sort" deux arcs de{ a,b },
et il suffit d’inverser ces deux arcsainsi que les
i(T- { a,b } ) _ i(T)
arcs dont l’inversion rend transitifT- { a,b }
pour obtenir un tournoi transitif finissant par{ a,b } . Remarquons
que, dans ce dernier cas, on n’inverse pasl’arc entre a et b.
Lemme 6 . Soit T un
tournoi,
a et b deux sommets de scoresrespectifs
1 et 2 de T. Si on a[ { a,b } ,T]
=i(T)+2 alors,
si on pose T’ =T- { a,b }, i(T)
=i(T’).
Deplus :
l’arc entre a et b vanécessairement de b vers a, il existe un sommet x de T dominé par a et
b,
et tout ordre médian de T finit par ... > b > a > x(c’est-à-dire
que x est dominé par tous les autres sommets, a partous les sommets sauf x, et b par tous les sommets sauf x et
a).
Preuve. On a clairement
i(T’) _ i(T) _ i(T’)+2. Or, d’après l’hypothèse
du lemme6,
pourmettre
{ a,b }
à la fin d’un ordre à distance minimale deT,
il fauti(T)+2
inversions d’arcs et,d’après
la preuve du lemme5,
il suffit dei(T’)+2
inversions. Ceci prouve quei(T)
=i(T’).
Soit
OM(T)
un ordre médian de T. Sa trace sur T’ est bien sûr un ordre deT’ et, puisque i(T)=i(T’),
c’est un ordre médian de T’. Les arcs à inverser pour obtenirOM(T)
ne sont doncincidents ni à a ni à b
qui
de ce fait conservent dansOM(T)
les scoresqu’ils
avaient dans T.Supposons
que a domineb,
et soit y un fils de b dansT ; après
avoir renduT’ transitif,
il restele circuit
(a,b,y),
et on ne peut pas avoiri(T)
=i(T’) ;
donc b domine a. Soit x le fils de a dans T et y le fils de b autre que a. Si on avait x # y,après
inversion desi(T)
arcsrequis
pour obtenirOM(T),
il subsisterait le circuit(b,a,x).
On a donc x = y, et Tpossède
les arcs(b, a), (b, x), (a, x)
et aucun autre arc dont a ou b seraitl’origine. Puisque
les arcsadjacents
à a et bne sont pas
inversés,
seul x est, dansOM(T),
dominé par a, seuls x et a sont dominés parb,
etceci achève la preuve du lemme.
Lemme 7.
Supposons qu’un
sommet a de score minimum dans T ait pour score1,
etappelons
x
l’unique
sommet dominé par a. Soit T’ =T-{a}. L’égalité i(T) = i(T’)
est vraie si etseulement s’il existe un ordre médian de T’ finissant par x.
Preuve.
D’après
le lemme5,
on adéjà i(T’) _ i(T) 1(T’)+1 .
S’il existe un ordre médian de T’finissant par x, on en
déduit,
sans inverser d’arcsupplémentaire,
un ordre médian de T finissant par ... > a > x, et donci(T)
=i(T’). Réciproquement,
sii(T)
=i(T’),
la trace sur T’d’un ordre médian de T est un ordre de
T’,
et,puisqu’il
utilise dans ce cas auplus i(T’) inversions,
c’est un ordre médian de T’. Ceciimplique
que, pour obtenir un ordre médian deT,
on n’inverse pas d’arc incident à a : seul x est et reste dominé par a. L’ordre médian finit donc par ... > a > x, et sa trace sur T’ est un ordre médian de T’ finissant par x.Lemme 8. Soit T un tournoi vérifiant
a(T)
= 2. Le vecteur-score de T commence alors par01, 02, 1113, 11224, 1123, 1124, 113,
1222 ou1223,
et contient auplus
un scorenul,
auplus
trois scores
égaux
à 1 et auplus
trois scoreségaux
à 2.Preuve. Laissée au
lecteur.
Lemme 9. Soit T un tournoi ne
possédant
aucun sommet de score nul mais deux sommets x ety de score 1 tels que x domine y. Alors il existe un ordre médian de T finissant par x > y.
Preuve. Soit OM un ordre médian de T finissant par y.
D’après
le lemme4,
x n’étant pas à la fin deOM,
x doitprécéder
dans OM un sommet z tel que(x,z)
soit un arc de T. Ceci n’estpossible
que si z = y : tout ordre médian finissant par y finit par x > y.Supposons
maintenant que OM finisse par z # y.Appelons
t le sommet dominé par y dans T.D’après
le lemme4,
yprécède
t immédiatement dans OM. Celui-ci est donc de la forme OM= ... > y > t > (... ) > z,
avec k sommets entre t et z(k > 0).
Alors il est facile de voir que l’ordre 0 obtenu àpartir
de OM enrejetant
y à la dernièreposition
et en nechangeant
pas lereste
permet
d’économiser k > 0 inversions par rapport à OM. Cet ordre est donc médian lui-même,
et finissant par z > y ; ceci n’estpossible
que si z = xd’après
cequi précède,
et 0convient. + Lemme 10 . Il existe un
algorithme,
linéaire en n,qui
détermine l’indice de Slater d’un tournoi d’ordre n et deparamètre a :9 2,
etqui
calcule lesquantités [x,T], [y,T]
et[ { x,y } ,T]
pour toutsommet x de score 1
(s’il
enexiste)
et tout sommet y de score 2(s’il
enexiste),
Preuve. Nous allons montrer que
l’algorithme
2 donnéplus
bas convient. Cetalgorithme
estrécursif. Sa
partie
récursive nes’applique qu’à
n assezgrand (par exemple
n >5) ;
pour npetit (par exemple
n ~5),
on peut supposerqu’on applique
une autreprocédure,
non décriteici, qui
calcule la distance entre le tournoi T
auquel
onapplique l’algorithme
et tout ordre total définisur les sommets de T.
L’algorithme consiste,
àpartir
d’un tournoiT,
àsupprimer
de T un certain sommet de score0, 1
ou 2 pour obtenir un tournoi T’ tel que6(T’)
soit inférieur ouégal
à2 ; puis,
enappliquant l’algorithme
àT’,
on détermine la valeur dei(T’)
et desquantités [x’, T’], [y’, T’]
et[ { x’,y’ } , T’]
pour tout sommet x’ de score 1 dans T’(s’il
enexiste)
et tout sommety’
de score2 dans T’
(s’il
enexiste) ;
la connaissance de ces valeurs permet alors de calculer lesquantités homologues
dans T. Ladescription
et la preuve del’algorithme
se font cas par cas, suivant les valeurs desplus petits
scores de T.L’algorithme
2 utilise les notations suivantes :-
X[j] désigne
lejième
sommet de T selon l’ordre des scorescroissants ;
-
S[j] représente
le score deX[j].
ALGORITHME 2
Si n
~5, appliquer
uneprocédure particulière qui
calcule la distance entre T et tout ordretotal ;
sinon, faire :
. pour tous les sommets c de score
2, faire
(* il y en a au moins un *)[c, TJ : = [c, T’J
+1;
-fin
du pour;* fin
dusi;
-fin
dusi;
- si
Sjl J
= 1 etSj2J
=1,
alorsfaire
(* les deux plus petits scores valent 1 *)* si
S[ 3 J = 1,
alorsfaire
~ (* les trois plus petits scores valent 1, *) (* et il n’y a pas de score égal à 2 *)~ a : =
X jl J;
(* a est de score 1 et domine un sommet de score 1 *) T’ := T-[a];
. appliquer l’algorithme
àT’;
. i(T) := i(T’)
+1;
. pour les trois sommets x de score
1, faire [x, TI i(T);
(* y compris [a, TI *). fin
du pour;*fin
dusi;
* si
Sj3J
=2, alors faire
(* le vecteur-score commence par 112... *)~ a : = celui des deux sommets
X jl)
ouX j2J qui
dominel’autre;
(* a de score 1 *)~ b : = l’autre de ces deux sommets (* b de score 1 *)
C
X j3J;
(* c de score 2 ; c domine a *). T’:=
T- [aj;
(* b et c de score 1 dans T’ *). appliquer l’algorithme
àT’;
. i(T) := [b, T’J;
. ja, TJ : = i(T’)+1;
’ jb, TJ := i(T);
. pour tous les sommets c de score
2, faire ily en
a 1 ou 2 *) si c domineb, alors faire [c, TJ : = i(T’)+2;
sinon
[c, T J : = i(T’)+1;
fin
du si;j f a, cj, TJ := [c, T’1+1;
jf b, cl, TJ : = i(T’)+1;
-fin
du pour;* ftn
dusi;
* si
Sj3J
=3, alors faire
(* le vecteur-score commence nécessairement par 1133... *). a := celui des deux sommets
X jl J
ouX j2J qui
dominel’autre;
(~ a de score 1 *) . b := l’autre de ces deux sommets; (* b de score 1 *)~ T’ : = T - ~aJ;
(* b et c de score 1 dans T’ *). appliquer l’algorithme
àT’;
. i(T) : = [b, T’J;
. f a, TI i(T’)+1;
. (b, TJ := i(T);
*fin
dusi;
- fin
dusi;
(* le cas sj3J > 3 est impossible *)- si = 1 et
S j2 J
=2,
alorsfaire
(* le vecteur-score commence nécessairement par 122... *)* a := XII];
(* a de score 1* si a domine un sommet de score 2
qui
lui-même domine un autre sommet de score2, alors faire
. b := le sommet dominé par a; (* b de score 2 dans T *)
. c := un sommet de score 2 dominé par
b;
(* il peut y avoir deux tels sommets *) . T’ := T -ja};
(* b de score 2 dans T’et c de score 1 dans T’ *). appliquer l’algorithme
àT’;
. appliquer l’algorithme
àT’;
. si
[b, T’J
=i(T’),
alorsfaire i(T) : = i(T’);
. sinon
faire i(T j : = i(T’)
+1;
-fin
dusi;
~ ja, TI i(T’)
+1;
~ jb, TI [b, T’J;
~ jc, TI T’J
+1;
TI [b, T’J;
[(a,cj, TI [c, T’J
+1;
. si
S j4J
=2, alors faire
(* le vecteur-score commence par 1222... *), d : _ (* d de score 2 dans T et 1 dans T’ *) si b domine
d, alors faire [d, TI T’J
+1;
sinon faire
(* b est dominé par d *)- si
[b, T’J
=i(T’)
alorsfaire [d, TI i(T)
+2;
-
sinon faire [d, TJ : = i(T)
+1;
-fin
dusi;
fin
dusi;
TI := [d, T’J
+1;
-fin
dusi;
*fin
dusi;
* si le sommet dominé par a est de score strictement
supérieur
à2, alors faire
. si
8[4]
=2, alors faire
(* le vecteur-score commence par 1222... *) T’ := T --[aj;
appliquer l’algorithme
àT’;
i(T) : = i(T’)
+1 ; [a, TJ : = i(T);
pour les trois sommets x de score
2, faire
-
lx, TI:= i(T) + 1;
-
x}~ Tl : = i(T);
fin
du pour;~ sinon faire
(* le vecteur-score commence par 1223... *) b : = celui des sommets de score 2qui
dominel’autre;
c : = l’autre de ces deux sommets;
T’ := T -
{b~;
(* dans T’, a est de score 1 et c de score 2 *)appliquer l’algorithme
àT’;
si
i(T’)
=T’J, alors faire i(T) := i(T’);
sinon faire i(T) := i(T’ j
+1;
du
si;
si
i(T’)
=T’J
oui(T’)
=T’J
+1, alors faire [a, TJ : = i(T);
sinon faire [a, TJ : = i(T)
+1;
(* i(T’) _ ({a,c}, T’J + 2 *)fin
dusi;
[b, TI := i(T’)
+2;
[a, Tl + 1;
[(a,c], TI
=[fa,cj, Tl;
.si
[(a,c], T’J
=i(T’)
ouT’J
=i(T’)
+1, alors faire [c, TI
=i(T) +1 ; sinon, faire [c, TI
=i(T)
+2;
du
si;
-fin
dusi;
*fin du si;
* si a domine un sommet de score 2
qui
ne domine aucun autre sommet de score2,
alorsfaire
(* ceci entraîne que le vecteur-score commence par 1223... *)~ c : = le sommet
dominé par
a;~ b : = l’autre sommet de score
2 ;
(* b domine c *)’r;=r2013~/
. appliquer l’algorithme
àT’;
~ si
T’J
=i(T’), alors faire i(T) : = i(T’);
[a,T] : = i (T) + 1 ;
.
sinon faire
irT) : = i(T’)
+1;
. fin
dusi;
Ic, TI
[(a, bj, TI : =[a, T’]
+1;
~ l~a~ c~~ r7 .’=
*fin
dusi;
-fin
du si.Le lemme 8 montre que tous les cas sont
envisagés
parl’algorithme
2.Complexité
del’algorithme
On suppose que le tournoi T est
codé,
comme pourl’algorithme 1, uniquement
à l’aide des arcsorientés d’un sommet de faible score vers un sommet de score
plus
élevé : àchaque
sommet x,on associe l’ensemble
E(x)
des(au plus deux)
sommets dominés par x et de scoreplus élevé,
eton
place
ces ensembles dans un tableau A selon l’ordre croissant des scores. Le lemme 2montre que le
codage
de T est linéaire en n.De
plus
le passage d’un tournoi T à un tournoi T’ = T -{ x }
où x est un sommet de T descore
0, 1
ou 2 peut se faire en temps constant. Eneffet,
il est nécessaire et suffisant d’ôter de A l’ensembleE(x),
de retirer x des ensemblesE(y)
où ilapparaissait,
et de faire en sorte que le tableau A’ résultant soittoujours
ordonné selon les scores croissants. Lapremière opération
consiste en fait à décaler "à droite" les cases de A associées à des sommets de score inférieur ou
égal
à celui de x pour écraser la case associée à x,puis
àignorer
définitivement lapremière
casede
A ;
le score de x étant0, 1
ou2,
un teldécalage
se fait en un temps constant. La deuxièmeopération peut
aussi être trivialement effectuée en untemps
constant : seuls les sommets descore inférieur ou
égal
à celui de x sont concernés...Quant
à la troisième(tri
deA’),
elle n’estfinalement pas
plus complexe.
Lasuppression
de x provoque une diminution d’une unité desscores de tous les sommets, sauf de ceux contenus dans
E(x) :
il y en a auplus
deux. Cecirevient,
à une constante additiveprès (égale,
à une itérationquelconque
del’algorithme,
aunombre de sommets retirés
depuis
le début decelui-ci),
à augmenter d’une unité les scores des éléments deE(x).
La formeparticulière
des vecteurs-scorecompatibles
avec 2 fait que les éléments deE(x)
nepeuvent
sedéplacer
"à droite" que d’un nombre borné depositions.
Parconséquent
la mise àjour
du tableau A’ peut se faire en un temps constant, et permet en outre de connaître immédiatement les scores des sommets restants(à
une constante additiveprès).
D’autre
part
le lemme 8 montre que toutes les boucles dutype "pour"
sont exécutées unnombre borné
(par 3)
de fois.Enfin, l’algorithme appliqué
à un tournoi à n sommets ne nécessite sa propreapplication
àun tournoi à n-1 sommets
qu’une
seule fois. Il est clair alors quel’algorithme
2 est linéaire enn : si on
appelle f(n)
le nombred’opérations
nécessaires pour détermineri(T)
pour un tournoi T à n sommets(et
deparamètre 2),
on a alorsf(n) f(n-1)
+K,
où K est uneconstante ; d’où la
complexité
annoncée.Preuve de
l’algorithme
Montrons maintenant que
l’algorithme
2 calcule bien cequ’il
faut.Cinq
cas seprésentent,
ledernier étant lui-même subdivisé en quatre sous-cas.
1)
Leplus petit
score de T est 0Soit a
l’unique
sommet de score 0. Posons T’ = T -f a} ;
on a évidemmenti(T)
=i(T’).
Il resteà
déterminer,
pour tout sommet x de score 1 et tout sommet y de score 2 lesquantités [x, T], [y, T]
et[~x,y}, T].
Nous détaillons ici un des deux cas, l’étude(triviale)
de l’autre étant laissée au lecteur.Nous supposons ici
qu’aucun
sommet n’est de score 1.D’après
le lemme8,
il y a alors aumoins un sommet de score 2. Soit c un tel sommet ; le score de c dans T’ vaut 1. En
appliquant l’algorithme
àT’,
on connaît[c, T’],
c’est-à-dire le nombre minimum d’arcs à inverser dans T’pour transformer T’ en un tournoi transitif finissant par c. Pour transformer T en un tournoi transitif finissant par c, il faut
inverser,
d’unepart
l’arc(c,a),
d’autre part assez d’arcs pour que, en oubliant le sommet a, on obtienne un tournoi transitif finissant par c, et ces arcs sont, biensûr,
distincts de(c,a) :
d’où[c, T] >
1 +[c, T’]. Réciproquement,
en inversant[c, T’]
arcs, on sait construire un tournoi transitif sur les sommets de T’ finissant par c ; en inversant de
plus
l’arc(c,a),
on transforme T en un tournoi transitif finissant par c à l’aide de[c, T’]
+ 1inversions. D’où finalement
[c,T] = [c,T’]+l.
2)
La suite des scores commence par 1 1 1D’après
le lemme8,
iln’y
a pas dans ce cas de scoreégal
à 2. Les trois sommets de score 1jouent
des rôlessymétriques
et forment unéircuit qui
est une composante fortement connexe dutournoi
(voir figure 2,
danslaquelle
les traits gras résument tous les arcsmanquants).
Figure
2Soit a un sommet de score 1. Posons T’ = T -
{ a }
et T" = T -{ a, b, c } .
Il est clair que l’on ai(T’)
=i(T")
eti(T)
=i(T")
+ 1 =i(T’)
+ 1. Deplus
il est trivial de constaterqu’il
existedes ordres médians de T finissant par a, b ou c, ce
qui
montre la relation[x, T]
=i(T)
pourx E
{a, b, c}.
3)
La suite des scores commence par 112Soit a le sommet de score 1
qui
dominel’autre,
et bcelui-ci ; appelons
aussi c un sommet descore 2
(d’après
le lemme8,
il y a 1 ou 2 sommets de score2)
et x le sommet dominé par b(x
étant éventuellement un sommet de score
2).
Posons T’ = T -{ a } ;
b et c sont de score 1 dansT’