Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Support de cours : Introduction à l’OptimisationCombinatoire
Viet Hung [email protected]
UPEC - Master ScTIC 0
Littérature
1. M. Gondran et M. Minoux. Graphes and algorithmes. Eyrolles. 1995.
2. W.J. Cook, W.H. Cunningham, W.R. Pulleyblank et A. Schrijver.Combinatorial Optimization. John Wiley & Son. 1998.
3. T.H. Cormen, C.E. Leiserson et R.L. Rivest. Introduction àl’algorithmique. Dunod. 2002.
UPEC - Master ScTIC 1
Définition des graphes
Un graphe orienté G = [X ,U ] est déterminé par :
• un ensemble X dont les éléments sont appelés des sommets ou desnoeuds.
• et un ensemble U dont les éléments u ∈U sont des couples ordonnésde sommets appelés des arcs.
On notera souvent que |X |= n et |U |= m.Les sommets sont numérotés i = 1, . . . ,n.Si u = (i, j) est un arc de G, i est l’extrémité initiale de u et j l’extrémitéterminale de u.Les arcs de G sont parfois numérotés u1,u2, . . . ,um.
UPEC - Master ScTIC 2
Exemple de graphe
1
2 3
4
5 6
u1
u2
u4
u5u7
u6
u3
u8
G = (X ,U) avec X = {1,2,3,4,5,6} etU = {u1 ≡ (1,2),u2 ≡ (2,3),u3 ≡ (3,1),u4 ≡ (1,4),u5 ≡ (5,4),u6 ≡ (5,6),u7 ≡(4,6),u8 ≡ (4,4)}.
Un arc u≡ (i, i) dont les extrémités coïncident est appelé une boucle. Dansl’exemple l’arc u8 ≡ (4,4) est une boucle.
UPEC - Master ScTIC 3
Un p-graphe est un graphe dans lequel il n’existe jamais plus de p arcsde la forme (i, j) ∀i et ∀ j). Dans l’exemple, G est 1-graphe.
UPEC - Master ScTIC 4
Graphes et applications multivoques
Soit (i, j) un arc de G, j est appelé successeur de i et i est appeléprédécesseur de j.
L’ensemble des successeurs d’un sommet i ∈ X est noté : Γ(i). Γ estappelée une application multivoque car à tout élément de X , elle faitcorrespondre une partie de X .
L’ensemble des prédécesseurs de i ∈ X peut alors être noté : Γ−1(i), oùΓ−1 est l’application (multivoque) réciproque de Γ.
Dans l’exemple précédent : Γ(1) = {2,4},Γ(2) = {3},Γ(3) = {1},Γ(4) ={4,6},Γ(5) = {4,6} et Γ(6) = /0.
UPEC - Master ScTIC 5
Graphes non orientés
Dans certains cas, on ne s’intéresse pas à l’orientation des arcs, c.à.d.on ne distingue plus les deux extrémités d’un arc. On s’intéressesimplement à l’existence ou à la non-existence d’un (ou plusieurs) arc(s)entre deux sommets. Tout arc (i, j) ∈ U devient un couple {i, j} non-ordonné qui est appelé l’arête {i, j}. Le graphe G devient non orienté.
1
2 3
4
5 6
u1
u2
u4
u5u7
u6
u3
u8
U = {u1 ≡ {1,2},u2 ≡ {2,3},u3 ≡ {3,1},u4 ≡ {1,4},u5 ≡ {5,4},u6 ≡ {5,6},u7 ≡{4,6},u8 ≡ {4,4}}.
UPEC - Master ScTIC 6
Un graphe non-orienté est dit simple s’il est sans boucle et s’il n’y ajamais plus d’une arête entre deux sommets quelconques. Le grapheG dans l’exemple n’est pas simple.
UPEC - Master ScTIC 7
Quelques notions
Arcs adjacents. Arêtes adjacentes2 arcs (arêtes) sont adjacents s’ils ont au moins 1 extrémité commune.
Degrés et demi-degrés d’un sommetLe demi-degré extérieur du sommet i, noté d+
G(i) est le nombre d’arcsayant i comme extrémité initiale.Le demi-degré intérieur du sommet i, noté d−G(i) est le nombre d’arcsayant i comme extrémité terminale.Le degré du sommet i, noté dG(i), est défini par dG(i) = d+
G(i)+d−G(i).
Arcs incidents (arêtes incidentes) à un sous-ens. A⊂ X . Cocycle.ω+(A)= ens. des arcs ayant leur extrémité initiale dans A, et leur extrémitéterminale dans A = X \A.ω−(A)= ens. des arcs ayant leur extrémités terminale dans A, et leur
UPEC - Master ScTIC 8
extrémité initiale dans A = X \A.L’ensemble des arcs ω(A) t.q. ω(A) = ω+(A)∪ω−(A) forme un cocycle.
UPEC - Master ScTIC 9
Sous-graphe induit, graphe partiel induit, sous-graphepartiel
Sous-graphe induit par un sous-ensemble de sommetsSoit A⊂ X , le sous-graphe induit par A est le graphe GA dont les sommetssont les éléments de A et dont les arcs sont les arcs de G ayant leurs deuxextrémités dans A.
Graphe partiel induit par un sous-ensemble de arcsSoit V ⊂ U , le graphe partiel induit par V est le graphe ayant le mêmeensemble X de sommets que G, et dont les arcs sont les arcs de V .
Sous-graphe partielSoient A⊂ X et V ⊂U , le sous-graphe partiel induit par A et V est le graphepartiel de GA induit par V .
UPEC - Master ScTIC 10
Chaîne. Chaîne élémentaire. Cycle. Cycle élémentaire
Une chaîne de longueur q est une séquence de q arêtes distinctes :
Q = {u1,u2, . . . ,uq}telle que chaque arête ur de la séquence (2 ≤ r ≤ q− 1) ait une extrémitécommune avec l’arête ur−1 et l’autre extrémité commune avec l’arête ur+1.L’extrémité i de u1 non commune à u2, et l’extrémité j de uq non communeà uq−1 sont appelées les extrémités de la chaîne Q.
Une chaîne élémentaire est une chaîne telle qu’en la parcourant, on nerencontre pas deux fois le même sommet.Dans le cas d’un graphe simple, une chaîne de longeur q est parfaitementdéfinie par la succession des sommets qu’elle rencontre : {i0, i1, . . . , iq}.
UPEC - Master ScTIC 11
Un cycle est une chaîne dont les extrémités coïncident.Un cycle élémentaire est un cycle dont tous les sommets sont de degré2.
UPEC - Master ScTIC 12
Chemin. Chemin élémentaire. Circuit. Circuit élémentaire
Un chemin de longueur q est une séquence de q arcs distincts :
P = {u1,u2, . . . ,uq}avec : u1 = (i0, i1), u2 = (i1, i2), . . . , uq = (iq−1, iq).Le sommet i0 est l’extrémité initiale du chemin P ; le sommet iq estl’extrémité terminale du chemin P.
Un chemin élémentaire est un chemin tel qu’en la parcourant, on nerencontre pas deux fois le même sommet.Dans le cas d’un 1-graphe, un chemin peut être décrit, de façonéquivalent, par la succession des sommets qu’il rencontre (dans l’ordre): {i0, i1, . . . , iq}.
UPEC - Master ScTIC 13
Un circuit est un chemin dont les extrémités coïncident.Un circuit élémentaire est un circuit dont tous les sommets sont de degré2.
UPEC - Master ScTIC 14
Représentations des graphes (en machine)
Soit G = (X ,U) avec |X |= n et |U |= m. Dans le cas où les arcs (arêtes) deG sont pondéré(e)s par un vecteur l ∈ Rm, notons L = max{le|e ∈U}.
1. Matrice d’adjacence.Taille de donnée (G non-pondéré) : n2.Taille de donnée (G pondéré) : n2× log2 L.
2. Liste des cocycles ω+(i) ou ω(i).Taille de donnée (G non-pondéré) : O(m).Taille de donnée (G pondéré) : O(m)× log2L.
Graphes denses : m≈ O(n2). Graphes creux : m≈ O(n).Les algorithmes dont la complexité est polynomiale en fonction
UPEC - Master ScTIC 15
d’uniquement m et/ou n sont dits fortement polynomiaux.Si un algorithme est polynomial en fonction de m et/ou n et aussi de L, ilest dit faiblement polynomial.
UPEC - Master ScTIC 16
Problème du plus court chemin
Soit G = (X ,U) un graphe orienté, les arcs de G sont pondérés par unvecteur l ∈ Rm. Pour u ∈U , l(u) est appelé longueur de l’arc u.
Le problème du plus court chemin entre deux sommets i et j sera detrouver un chemin µ(i, j) de i à j dont la longueur totale :
l(µ) = ∑u∈µ(i, j)
l(u) soit minimum.
On rencontre beaucoup d’applications de ce problème dans de nombreuxdomaine, e.g., transport, distribution, routage d’informations dans lesréseaux (Internet(protocole OSPF), téléphonique...).
La longueur l(u) peut être interprétée comme un coût de transport sur
UPEC - Master ScTIC 17
l’arc u, comme les dépenses de construction correspondant à l’arc u,comme le temps nécessaire pour parcourir l’arc u, etc.
UPEC - Master ScTIC 18
Problème du plus court chemin - Exemple concret
Considérons le projet de construction d’une autoroute entre les villesA et K. Les arcs représentent les différents tronçons possibles del’autoroute. Chaque arc est valué par le coût total de réalisation dutronçon correspondant.
A
B
C
D
E
F
G
H
I
J
K
8
5
7 4
2
6
4
2
54
4
2
4
24 4
5
4
Le recherche de l’autoroute dont le coût total de construction estminimum, revient à chercher le chemin de longueur minimale de A à Kdans le graphe ci-dessus.
UPEC - Master ScTIC 19
Conditions d’existence du plus court chemin
Considérons un chemin de i à j comprenant un circuit ω.
ij
k
ij
kµ
ω
µ′
Soit µ′ le chemin associé à µ mais n’empruntant pas le circuit ω.On a l(µ) = l(µ′)+ l(ω).
Si l(ω) < 0, il n’existe pas de plus court chemin de i à j (on peut utiliserune infinité de fois le circuit ω.
Si l(ω) ≥ 0, alors l(µ′) ≤ l(µ) ⇒ on restreint la recherche du plus court
UPEC - Master ScTIC 20
chemin aux chemins élémentaires.
On va se restreindre dans la suite à des graphes sans circuit négatifs.
UPEC - Master ScTIC 21
Algorithmes de résolution
Les algorithmes de résolution seront différents suivant les propriétés dugraphe :
• l(u)≥ 0 pour tout u ∈U , (algo. Dijkstra)
• l(u) = 1 pour tout u ∈U ,
• G et l(u) quelconques,
• G sans circuit
UPEC - Master ScTIC 22
Algorithmes de résolution (suite)
et suivant le problème considéré :
• recherche du plus court chemin d’un sommet à un autre,
• recherche du plus court chemin d’un sommet à tous les autres,
• recherche du plus court chemin entre tous les couples de sommets.
Ces algorithmes sont tous polynomiaux mais la rapidité dépendrabeaucoup de la structure de données utilisée pour représenter desgraphes et des files de priorités.
UPEC - Master ScTIC 23
“de 1 à j” est algorithmiquement identique à “de 1 à tous”
Soit P = {1, . . . , i, j} le plus court chemin du sommet 1 au sommet j :
1ji
P
P′
Soit P′ le chemin extrait de P de 1 à i, on a la proposition suivant :
Proposition 1. Le chemin P′ est nécessairement le plus court chemin dusommet 1 au sommet i.
Preuve : Supposons le contraire et soit P′′ le plus court chemin de 1 à i,le chemin composé de P′′ et l’arc (i, j) est un chemin de 1 à j et commel(P′′)< l(P′), ce chemin est plus court que P. Contradiction. �
Pour trouver le plus court chemin de 1 à j, on doit connaître donc les plus
UPEC - Master ScTIC 24
courts chemins de 1 à tous les sommets appartenant à Γ−1(i). CommeΓ−1(i) peut être égal à X \{ j}, les deux problèmes sont algorithmiquementidentiques.
UPEC - Master ScTIC 25
Plus courts chemins du sommet 1 à tous les autres
Soit G1 le graphe partiel de G induit par l’ensemble des arcs des cheminsles plus courts du sommet 1 à tous les autres sommets.
Proposition 2. G1 est une arborescence dont la racine est le sommet 1.
Preuve : Les 3 propriétés suivantes de G1 sont facilement démontrées :
• G1 est sans circuit,
• G1 est connexe,
• Γ−1G1(1) = /0 et |Γ−1
G1(i)|= 1 pour tout i ∈ X \{1}.
G1 est donc une arborescence dont la racine est le sommet 1, i.e., unparcours du graphe G à partir du sommet 1. �
UPEC - Master ScTIC 26
Condition d’optimalité
Soient π(1),π(2), . . . ,π(n) les longueurs des chemins quelconquesrespectivement de 1 à 1, de 1 à 2, . . . , et de 1 à n.
Théorème 1. La condition nécessaire et suffisante pour que ces valeurssoient la longueur des plus courts chemins sont comme suit :
1. π(1) = 0 et
2. π( j) = mini∈Γ−1G ( j)(π(i)+ l((i, j))).
Preuve : Voir au tableau. �
UPEC - Master ScTIC 27
Premier algorithme : Algorithme de Ford
Posons π ∈ Rn un vecteur dont les composantes sont π(1),π(2), . . . ,π(n).π est dit réalisable si ses composantes satisfont les conditions duThéorème 1.
Idée de l’algorithme :
1. Commencer par des valeurs de π(i),∀i∈X \{1} qui sont des estimationsexcessives (bornes supérieures) de la longueur du plus court cheminde 1 à i.
2. Tant que π n’est pas réalisable :Pour un arc (i, j) tel que π( j) > π(i) + l((i, j)) (cet arc est alors dit“incorrect”), posons π( j) = π(i)+ l((i, j)).
UPEC - Master ScTIC 28
Algorithme de Ford: Précisions
Les bornes supérieures au Pas 1:
• Pour tout i ∈ ΓG(1), π(i) = l((1, i)).
• Pour tout j ∈ X \ΓG(1), π(i) = +∞.
Identification du plus court chemin de 1 à j :Soit p(i) le sommet qui précède i dans le chemin, i.e. p(i) est le père de idans l’arborescence des plus courts chemins.
• Au Pas 1, p(i) = 1 si i ∈ ΓG(1) et p(i) =−1 sinon.
• Si un arc “incorrect” (i, j) est corrigé au Pas 2, posons p( j) = i.
UPEC - Master ScTIC 29
A la fin de l’algorithme, le plus court chemin de 1 à j sera{1, . . . , p(p( j)), p( j), j}.
UPEC - Master ScTIC 30
Algorithme de Ford: l’invariant de la boucle
Proposition 3. À la fin de n’importe quelle itération lors de l’exécutionde l’algorithme de Ford on a :
1. si π(i) 6=+∞, alors π(i) est la longueur d’un chemin élémentaire de 1 à i,
2. si p(i) 6=−1, alors p définit un chemin élémentaire de 1 à i de longueurau plus π(i).
Preuve : On montre 1. par récurrence sur le nombre d’itérations d.Cas de base (d=0) : Si π(i) 6= +∞, π(i) = l((1, i)) la longueur du cheminélémentaire de 1 à i qui contient seulement l’arc (1, i).Supposons que 1. est vrai pour d = b, on montre que 1. est aussi vraipour d = b+1.
UPEC - Master ScTIC 31
Supposons le contraire, il existe donc 2 sommets i et j tels que l’arc(i, j) est “incorrect” au début de l’itération b + 1 c.à.d, on fait πb+1( j) =πb(i)+ l((i, j)) et p( j) = i et ceci introduit un circuit C.
UPEC - Master ScTIC 32
Algorithme de Ford: l’invariant de la boucle (suite)
Par hypothèse de récurrence, π( j) a été mis à jour lors d’une itérationantérieure a (a < b), sa valeur est πa( j).Au cours de l’algorithme, π( j) ne peut être que diminué, on a doncπb+1( j)< πa( j).
itération a
itération b+1 itération b
Cj
i
1
On a πb+1( j) = πb(i)+ l((i, j)) = πa( j)+ l(C). Comme G ne possède pas decircuit négatif, l(C)≥ 0. On en déduit que πb+1( j)> πa( j). Contradiction.
Avec le même type de raisonnement, on montre facilement 2. �
UPEC - Master ScTIC 33
Algorithme de Ford: terminaison et validité
Théorème 2. L’algorithme de Ford se termine après un nombre finid’itérations. À la terminaison, p définit le plus court chemin de 1 à i pourtout i ∈ X \{1}.
Preuve : Il y a un nombre fini de chemins élémentaire dans G. Donc,d’après Proposition 3 il y a un nombre fini de valeurs possbiles pour π(i).Comme à chaque itération, la valeur d’une des composantes de π diminue(et aucune autre valeur augmente), l’algorithme se termine.
À la terminaison, pour tout i ∈ X \ {1}, p définit un chemin élémentairede 1 à i de longueur ≤ π(i). Or π est réalisable et d’après Théorème 1,aucun chemin de 1 à i peut avoir une longueur plus grande que π(i). �
UPEC - Master ScTIC 34
Algorithme de Ford: Complexité
La performance de l’algorithme Ford dépend beaucoup de l’ordre danslequel les arcs sont corrigés au Pas 2.Si l(i) est entier pour tout i ∈ X , soit L = max(l(i)|i ∈ X). La longueurmaximale d’un chemin élémentaire dans G est donc égale à (n−1)×L. Laplus grande valeur finie possible pour π(i) pour i ∈ X est donc également(n−1)×L.À chaque étape de l’algorithme Ford, il y a un π(i) (i ∈ X \{1}) qui décroîtau moins 1.Au pire, on exécute donc le Pas 2 de l’algorithme Ford (n− 1)2× (L+ 1)fois. La correction d’un arc se fait en O(1).La complexité de l’algorithme Ford est donc O(n2×L)⇒ l’algorithme Fordest faiblement polynomial.
UPEC - Master ScTIC 35
Algorithme de Bellman-Ford: Fortement polynomial
Soit P = {e1,e2, . . . ,ek} un chemin de k arcs dans G.Soit S une séquence d’arcs qui sont corrigés au Pas 2 de l’algorithmeFord et supposons pour les arcs de P que er << es dans S si 1≤ r < s≤ k.On dit que P est S-compatible.
Observation : A la terminaison de l’algorithme Ford, on a π(i)≤ c(P) pourtout i ∈ X et pour tout chemin P de 1 à i qui est S-compatible.
Idée : Soient O1, . . . , On−1 les ordres quelconques sur les arcs de G.Soit S la séquence O1, . . . ,On−1, on peut observer que tous les cheminsélémentaires dans G sont S-compatibles.
On a |Or| = m pour tout 1 ≤ r ≤ n− 1, si on applique S comme séquenced’arcs dans l’algorithme Ford, on exécute au plus m(n−1) fois le Pas 2⇒
UPEC - Master ScTIC 36
fortement polynomial.
UPEC - Master ScTIC 37
Algorithme de Bellman-Ford : modification de l’algo. Ford
Initialisation π et p et poser k=0;tant que k < n et π n’est pas encore réalisable faire
k=k+1 ;pour i ∈ X faire
si (i, j) est “incorrect” alorsCorriger (i, j)
finfin
fin
Quand l’algorithme exécute les 3 dernières instructions sur le sommet i,on dit que i est “balayé”.
UPEC - Master ScTIC 38
Longueurs non-négatives : Algorithme de Dijkstra
Quand l(i)≥ 0 pour tout i≥ 0, on peut modifier la boucle “Tant que” pourque chaque sommet i soit “balayé” au plus 1 fois.
Idées :
1. On balaye une seule fois pour un sommet de X \ {1}, on fait doncseulement n−1 itérations.
2. À chaque itération on choisit un sommet i parmi les sommets quine sont pas encore balayés tel que π(i) soit minimum. On balaye lesommet i.
UPEC - Master ScTIC 39
Algorithme de Dijkstra
Initialiser π, p;Poser S = X \{1} ;tant que S 6= /0 faire
Choisir i ∈ S avec π(i) minimum ;Enlever i de S;“Balayer” i.
fin
Choisir i ∈ S avec p(i) minimum se fait en O(n), la complexité est doncO(m+n2).Une amélioration serait de représenter S par un tas de Fibonacci, on peutobtenir dans ce cas la complexité de O(m+n log(n)).
UPEC - Master ScTIC 40
Algorithme de Dijkstra : validité
L’invariant de la boucle “Tant que” est le suivant :
Proposition 4. Soit i le sommet choisi à l’itération k alors p définit déjà leplus court chemin de 1 à i.
Preuve : Supposons le contraire.Soit P le plus court chemin de 1 à i qui est différent de celui défini par p.Soit Sk l’état de S à l’itération k. Par construction, π(i) = min{π( j) | j ∈ Sk}.Divisons P en deux parties : P1 la partie commençante du chemin allantde 1 à h où h est le premier sommet de Sk rencontré et P2 le reste duchemin. On a l(P1) ≥ π(h) ≥ π(i) et l(P2) est non-négative ⇒ l(P) ≥ π(i).Contradiction. �
UPEC - Master ScTIC 41
Problème de l’arbre couvrant de poids minimum
Soit G = (X ,U) un graphe non-orienté pondéré par un vecteur l ∈ RU . Unarbre A = (XA,UA) de G est un sous-graphe de G (i.e. XA ⊆ X et UA ⊆U) telque :
• A est connexe.
• A est sans cycle.
Une forêt F = (XF,UF) de G est simplement un sous-graphe sans cycle deG. F est donc une collection d’arbres disjoints de G.
Un arbre est dit couvrant si XA = X .
UPEC - Master ScTIC 42
Le problème de l’Arbre Couvrant de poids Minimum (ACM) s’agit detrouver un arbre couvrant A de G t.q. l(A) = ∑u∈UA
l(u) soit minimum.
UPEC - Master ScTIC 43
Arbre couvrant de poids minimum : Observation
B
A′ \B
u′
A\B
u
u′
l(u) n’est pas minimum
l(u′) minimum.
A
B = (XB,UB)
pour ω(XB).
A′(l(A′)< l(A))
Un sous-ensemble d’arêtes V est dit extensible à un ACM si V est contenudans l’ensemble des arêtes d’un ACM.L’ensemble vide est un ensemble extensible.
Théorème 3. Soit V \U et V est extensible à un ACM, and u est unearête de longueur minimum d’un certain cocycle C t.q. C∩V = /0. Alors,l’ensemble V ∪{u} est extensible à un ACM.
UPEC - Master ScTIC 44
Preuve du Théorème 3
Preuve : Soit A = (X ,UA) un ACM t.q. V ⊂ UA. Si u ∈ UA, il n’y a rien àdémontrer, on suppose donc que u /∈UA. Soit µ une chaîne dans A dontles deux extrémité sont i et j où u = {i, j}. Considérons le graphe partielG′ de G induit par U \C, comme C est un cocycle, G′ n’est pas connexe. Enparticuler i et j sont déconnectés. Donc il y a une arête u′ de µ appartenantà C. Comme l(u′) ≥ l(u) et donc A′ = (X ,UA \ {u′}∪{u}) est aussi un ACM.Comme V ∩C = /0, donc u′ /∈V , on en déduit que V ∪{u} est extensible à unACM. �
Idée algorithmique :Partant d’un ensemble extensible V (le plus simple est l’ensemble vide),tant qu’il existe un cocycle C t.q. C ∩V = /0, ajoutons u à V où u =argmin(l(e)|e ∈C).
UPEC - Master ScTIC 45
Tous les algorithmes partent de l’ensemble vide, c’est le choix du cocycleC qui les distingue.
UPEC - Master ScTIC 46
Algorithme de Prim
À l’initialisation l’algorithme de Prim part d’un ensemble d’extensible àun ACM V qui est vide et un abre A = (Y,V ) où Y contient uniquement unsommet i quelconque. Le cocycle choisi à chaque itération est toujoursω(Y ) et lorsqu’on ajoute l’arête u = {i, j} ∈ ω(Y ) à V avec i ∈ Y et j ∈ X \Y ,on ajoute aussi j à Y .
V = /0, Y = {1} ;tant que Y 6= X faire
Recherche l’arête {i, j} de longueur minimum dans ω(Y ) avec i ∈ Y ;V =V ∪{i, j}, Y = Y ∪{ j};
fin
Complexité : La plus simple manière d’effectuer la recherche de l’arête delongueur minimum de ω(Y ) est de faire un parcours des arêtes de ω(Y ).
UPEC - Master ScTIC 47
Au pire ça se fait en O(m). Il y a n itérations, la complexité est donc O(mn).Avec les améliorations nécessaires de la recherche de l’arête minimum,la complexité peut être ramenée à O(n2).
UPEC - Master ScTIC 48
Algorithme de Kruskal
À l’initialisation l’algorithme de Kruskal part d’un ensemble d’extensibleà un ACM V qui est vide et une forêt F =(Y,V ) où Y =X . À chaque itération,le cocycle C choisi est le cocycle dont l’arête de longueur minimum est laplus petite parmi celles des cocycles D t.q. D∩V = /0.
Ordonner U comme {u1,u2, . . . ,um} où l(u1)≤ l(u2)≤ . . .≤ l(um) ;V = /0, Y = X ;pour r=1 to m faire
si les deux extrémités de ur sont dans des arbres différents de F alorsV =V ∪{ur}
finfin
Complexité : Ordonner U peut se faire en O(m logm).
UPEC - Master ScTIC 49
Vérifier la condition de “Si” peut se faire en log(n). La complexité de laboucle “Pour” est donc O(m logn).Complexité totale : O(m logm).
UPEC - Master ScTIC 50
Algorithmes de Prim et de Kruskal : L’invariant
Les deux l’invariant suivant des deux algorithmes sont facilementdémontrer à l’aide du Théorème 3.
L’invariant de l’algorithme Prim : À chaque itération de l’algorithme, Aest un arbre et V est extensible à un ACM.
L’invariant de l’algorithme Kruskal : À chaque itération de l’algorithme,F est une forêt et V est extensible à un ACM.
UPEC - Master ScTIC 51