• Aucun résultat trouvé

Comme nous l'avons évoqué dans l'introduction, le problèmeOrdo peut être résolu en temps et espace polynomial par couplage maximum dans le graphe complément lorsque k = 2 (voir la proposition 1.3). Toutefois, les algorithmes de couplage maximum dans un graphe quelconque sont diciles à mettre en ÷uvre et leur temps d'exécution est plus que quadratique en le nombre de sommets du graphe [122]. C'est pourquoi la recherche d'algo-rithmes à la fois simples et ecaces, dédiés à certaines classes de graphes, reste d'actualité.

A notre connaissance, deux algorithmes seulement ont été proposés pour la résolution du problème2-Ordorestreint à la classe des graphes d'intervalles. Le premier apparaîtrait dans un manuscript de M.G. Andrews et D.T. Lee, encore jamais publié à ce jour. Cet algorithme, qui est brièvement évoqué dans [3], considère une représentation par intervalles en entrée et eectue un balayage du plan pour construire en O(nlogn) une solution optimale, et ce même si les extrémités des intervalles sont déjà triées en entrée. Le second, toujours de type

1. Une partie de ces résultats apparaît dans [65] (en anglais).

25

26 Chapitre 2. Exclusion mutuelle par un graphe d'intervalles géométrique, apparaît dans le papier plus récent d'Andrews et al. [3]. Ceux-ci donnent un algorithme récursif parallèle qui requiert un temps O(log3n) sur une architecture PRAM EREW à O(n/log2n) processeurs (se reporter à [28, p. 675715] pour une introduction à l'algorithmique parallèle). La version séquentielle de leur algorithme s'exécute en temps O(nlogn), mais les auteurs arment que sa complexité peut être abaissée à O(n) si les extrémités des intervalles sont triées en entrée. Malgré cela, leur algorithme récursif reste dicile à implanter et la preuve de sa validité est longue et fastidieuse.

Dans cette section, nous présentons un nouvel algorithme fondé sur des concepts issus de la théorie des graphes. Notre algorithme est simple, incrémentiel et la preuve de sa correction est courte. Nous montrons que cet algorithme s'exécute en temps et espace O(n) si une représentation par intervalles ordonnée lui est fournie en entrée. Rappelons à ce propos que l'ordre déni par les extrémités gauches (resp. droites) croissantes des intervalles est noté <g (resp. <d). Comme celui d'Andrews et al. [3], notre algorithme utilise comme routine un algorithme de couplage maximum dans les graphes bipartis convexes. Un graphe biparti B = (X, Y, E) est Y-convexe s'il existe un ordre linéaire sur les sommets de Y tel que les sommets adjacents à tout sommet de X apparaissent consécutivement dans cette ordre. Nous nous appuierons sur un résultat de Steiner et Yeomans [147] qui établit qu'un couplage maximum dans un graphe biparti convexe peut être calculé en temps O(|X|) et espaceO(|Y|)si pour chaque sommet deX, l'intervalle des sommets adjacents à celui-ci dans Y est donné en entrée. Nous reviendrons en détail sur le problème du couplage maximum dans les graphes bipartis convexes dans la section suivante.

Principe et validité de l'algorithme

Nous travaillons ici sur une représentation par intervalles ouverts plutôt que sur le graphe d'intervalles lui-même. Nous conserverons cependant le vocabulaire de la théorie des graphes lorsque nous manipulerons ces intervalles. Ainsi, un stable est un ensemble d'intervalles deux-à-deux disjoints et une clique est un ensemble d'intervalles se chevauchant deux-deux-à-deux. Une coloration d'un ensemble d'intervalles correspond à une partition de cet ensemble en stables.

Par analogie au problème de couplage, nous dirons que deux intervalles peuvent être couplés lorsqu'ils sont disjoints. Un ensemble d'intervalles pouvant être couplés par paire sera appelé couplage.

Considérons un ensemble I = {I1, . . . , In} d'intervalles et une partition minimum S = {S1, . . . , Sχ(I)} de I en stables. Voici les quelques assertions sur lesquelles repose l'algo-rithme.

Lemme 2.1 Si un stable Su ∈ S ne contient qu'un seul intervalle, alors ce dernier appar-tient à toute clique maximum de I.

Preuve. Comme ω(I) =χ(I), toute clique maximum doit contenir un et un seul intervalle provenant de chaque stable deS. Si l'unique intervalle deSu n'appartient pas à une clique

maximum de I, nous obtenons alors une contradiction. ⊓⊔

Lemme 2.2 (Petit lemme de découpage) Si chaque stable de S contient plus de deux intervalles et que n, le nombre d'intervalles dans I, est pair, alorsχ(I,2) =n/2.

2.1 Un nouvel algorithme linéaire pour k= 2 27 Preuve. Nous montrons que les stables peuvent être, de manière imagée, découpés en exactement n/2 paires d'intervalles disjoints.

Soit deux stables Su, Sv ∈ S de taille impaire et supérieure à trois. Nous montrons qu'il est toujours possible de coupler deux intervalles, l'un provenant de Su et l'autre de Sv, de manière à redénir deux nouveaux stables de taille paire et supérieure à deux. Soit Ia, Ib ∈Su et Ic, Id∈Sv tel queIa≺Ib etIc ≺Id. Si Ia etId sont disjoints, alors ceux-ci forment le couplage désiré. Dans le cas contraire, nous armons qu'il en est de même pour Ib et Ic. En eet, Ia et Id se chevauchant, nous avons que g(Id) d(Ia). En utilisant les inégalités d(Ic)≤g(Id)etd(Ia)≤g(Ib), nous obtenons alorsd(Ic)≤g(Ib).

Pour conclure, la construction suivante établit le lemme. Puisquen est pair, le nombre de stables de taille impaire est nécessairement pair lui aussi. Grâce à la propriété démontrée précédemment, nous pouvons redénir deux par deux les stables de taille impaire en stables de taille paire, tout en exhibant des couples d'intervalles disjoints. Finalement, les stables restants, maintenant tous de taille paire, admettent une partition triviale en paires

d'inter-valles disjoints. ⊓⊔

Proposition 2.1 Si le nombre ϑ(I) de stables ne contenant qu'un seul intervalle dans S est aussi petit que possible, alors l'égalité χ(I,2) =(n+ϑ(I))/2 est satisfaite.

Preuve. La proposition est établie à l'aide des deux lemmes précédents. Le premier lemme impose que χ(I,2) ≥ ⌈(n−ϑ(I))/2+ϑ(I), puisqu'au moins ϑ(I) intervalles de I ne peuvent être couplés. Après avoir extrait ces derniers, le second lemme nous permet alors d'obtenir un couplage parfait parmi les n−ϑ(I)intervalles restants (moins un si ce nombre

est impair). ⊓⊔

D'après la proposition précédente, le problème 2-Ordo se réduit donc ici à déterminer une coloration de l'ensemble I tel que le nombre de stables de taille un soit le plus petit possible. En accord avec le lemme 2.1, ce nouveau problème peut être résolu en calculant un couplage maximum Mc (d'intervalles disjoints) entre les intervalles d'une clique maxi-mumC ∈ I et le reste des intervalles. En eet, une fois ce couplage obtenu, une procédure Compléter-Stables minimisera ϑ(I) en ajoutant à chaque stable de taille un Su = {Ii} un intervalle Ij ∈Sv si le couple(Ii, Ij) appartient à Mc. De là, une solution optimale au problème 2-Ordo s'obtiendra simplement à l'aide de la preuve constructive du petit lemme de découpage. Voici une description des étapes majeures de l'algorithme.

Algorithme 2-Ordo-Intervalles ;

Entrée : un ensemble d'intervallesI={I1, . . . , In};

Sortie : une solution optimaleMau problème 2-Ordo pour I; Début ;

étape 1 :

calculer une coloration minimumS={S1, . . . , Sχ(I)}deI;

si tous les stables deS ont une taille au plus deux alors aller à l'étape 3 ; si tous les stables deS ont une taille au moins deux alors aller à l'étape 3 ; étape 2 :

calculer une clique maximumC={c1, . . . , cχ(I)}deI;

28 Chapitre 2. Exclusion mutuelle par un graphe d'intervalles construire le graphe bipartiBc= (X, Y, E)avec :

.X=C etY =I \C;

.E={(Ii, Ij)|Ii C, Ij∈ I \Cet IiIj=∅}; calculer un couplage maximumMc dansBc; S ←Compléter-Stables(S,Mc) ;

étape 3 : M ← ∅;

pour chaque stableSu∈ S de taille un faire retirerSudeS et l'ajouter à M;

si le nombre d'intervalles restants dansS est impair alors

retirer un intervalle de n'importe quel stable de taille impaire et l'ajouter àM; calculer un couplage parfait d'intervalles disjoints dansS et l'ajouter àM;

retourner M; Fin ;

Dans la partie suivante, nous analysons la complexité de cet algorithme. Nous montrons en particulier qu'il peut s'exécuter en temps et espace linéaire, si la représentation par intervalles fournie en entrée est ordonnée.

Complexité de l'algorithme

Nous admettrons posséder en entrée de l'algorithme une représentationI ={I1, . . . , In} par intervalles, munie de ses deux ordres <g et <d. Ceux-ci nous permettront notamment d'obtenir en temps O(n) la liste desn intervalles ordonnés selon<g ou <d.

La complexité de l'étape 1 est dominée par la complexité du calcul d'une coloration minimum de I. Ce calcul peut être eectué en temps et espace O(n) lorsque les ordres <g

et <d sont donnés en entrée [80] (voir aussi l'algorithme Coloration-Intervalles, p. 44).

À présent, étudions la complexité de l'étape 2 qui repose essentiellement sur la propriété suivante.

Lemme 2.3 Le graphe biparti Bc = (X, Y, E) estY-convexe.

Preuve. Rappelons que l'ensembleXcorrespond à une clique maximumC ∈ Iet l'ensemble Y au reste des intervalles, c'est-à-dire àI\C. Ce dernier se subdivise en deux sous-ensembles complémentairesIg etId, respectivement l'ensemble des intervalles se trouvant à gauche de la cliqueC et l'ensemble des intervalles se trouvant à droite de la cliqueC (un intervalle ne peut pas appartenir à l'un et à l'autre sans appartenir à la clique). Après avoir ordonné Id

selon <g etIg selon <d, nous obtenons un ordre <surY. À présent, pour chaquecu ∈C, posons au = min{i|cu Ii et Ii ∈ Id} et bu = min{i|Ii cu et Ii ∈ Ig}. Il est alors aisé de vérier que pour tout i ∈ {au, . . . , bu}, les intervalle cu et Ii sont disjoints (voir la gure 2.1). En conséquence, le graphe bipartiBc estY-convexe. ⊓⊔ Le graphe bipartiBcétant convexe, le couplage maximumMcpeut être obtenu en temps O(n) par l'algorithme de Steiner et Yeomans [147]. Leur algorithme demande en entrée la représentation suivante du graphe Bc : l'ordre linéaire sur Y et pour chaque u X,

2.1 Un nouvel algorithme linéaire pour k= 2 29

<d

<g

cjC g(cj)

Id

Ig

bj

d(cj)

aj

Figure 2.1 La preuve du lemme 2.3.

les deux valeurs au et bu. Voici comment nous procédons pour calculer ecacement cette représentation. Une clique maximum peut être exhibée en temps et espace O(n), si les intervalles sont triés [81] (voir aussi l'algorithme Clique-Intervalles, p. 45). Cette clique maximum, notée C={c1, . . . , cχ(I)}, est dénie telle quecu corresponde à l'intervalle deC appartenant au stable Su ∈ S. Ensuite, l'ordre <surY (tel que nous l'avons déni dans le lemme précédent) s'obtient en temps O(n) à l'aide des ordres <g et<d. Enn, les indices au sont déterminés par un balayage linéaire de l'ensemble Idordonné selon<g, à condition que les intervalles de C soient, eux, ordonnés selon <d (dans ce cas, nous aurons en eet au1 ≤au pour toutu= 2, . . . , χ(I)). Bien entendu, les indices bu peuvent être déterminés de façon symétrique en parcourant l'ensemble Ig en temps linéaire, ce qui complète la construction du graphe biparti Bc.

Pour clore l'analyse de l'étape 2, voici une implantation de la procédure Compléter-Stables dont le temps d'exécution est linéaire. Nous supposons que la taille de chaque stable peut être obtenue enO(1), de même que pour un intervalle, l'indice du stable auquel il appartient. Mc peut être considéré comme un tableau dans lequel est stocké enul'indice de l'intervalle deI \C couplé àcu ∈C (ou bien zéro si celui-ci n'est pas couplé).

Algorithme Compléter-Stables ;

Entrée : une coloration minimumS deI, un couplage maximumMc deBc; Sortie : une coloration minimumS avecϑ(I)minimum ;

Début ; S ← ∅;

pour chaque stableSu∈ S faire

siSu est de taille un alorsS← S∪ {Su}; tant queS ̸= faire

S← S\ {Su};

soitil'indice stocké enudansMc; sii̸= 0 alors

soitv l'indice du stable auquelIi appartient ;

30 Chapitre 2. Exclusion mutuelle par un graphe d'intervalles

SvSv\ {Ii}, SuSu∪ {Ii};

siSv est de taille un alorsS← S∪ {Sv}; retourner S;

Fin ;

Enn, l'étape 3 peut elle aussi être implantée en tempsO(n). En particulier, la preuve du petit lemme 2.2 de découpage fournit un algorithme linéaire simple pour calculer un couplage parfait d'intervalles disjoints dansS, celui-ci ne contenant alors plus que des stables de taille au moins deux et un nombre pair d'intervalles. L'espace utilisé tout au long de l'algorithme ne dépassant jamaisO(n)(y compris durant l'exécution de la procédure de Steiner et Yeomans [147]), nous tenons le résultat suivant.

Théorème 2.1 L'algorithme 2-Ordo-Intervalles retourne en temps et espace O(n) une solution optimale au problème 2-Ordo pour un ensemble I de n intervalles, étant donnés en entrée les ordres <g et <d sur I.

Puisqu'une représentation par intervalles ordonnée (selon <d ou <g) peut être calculée en temps et espace linéaire à partir d'un graphe d'intervalles ou de son complément [82], nous obtenons les corollaires suivants.

Corollaire 2.1 Le problème Ordo peut être résolu en temps et espace linéaire pour les graphes d'intervalles lorsque k= 2.

Corollaire 2.2 Le problème du couplage maximum peut être résolu en temps et espace li-néaire pour les compléments de graphes d'intervalles.