Top Banner
Support de cours : Introduction à l’Optimisation Combinatoire Viet Hung Nguyen [email protected] UPEC - Master ScTIC 0
52

Support de cours : Introduction à l’Optimisation Combinatoire

Jun 18, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Support de cours : Introduction à l’Optimisation Combinatoire

Support de cours : Introduction à l’OptimisationCombinatoire

Viet Hung [email protected]

UPEC - Master ScTIC 0

Page 2: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 3: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 4: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 5: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 6: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 7: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 8: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 9: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 10: Support de cours : Introduction à l’Optimisation Combinatoire

extrémité initiale dans A = X \A.L’ensemble des arcs ω(A) t.q. ω(A) = ω+(A)∪ω−(A) forme un cocycle.

UPEC - Master ScTIC 9

Page 11: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 12: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 13: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 14: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 15: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 16: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 17: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 18: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 19: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 20: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 21: Support de cours : Introduction à l’Optimisation Combinatoire

Conditions d’existence du plus court chemin

Considérons un chemin de i à j comprenant un circuit ω.

ij

k

ij

ω

µ′

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

Page 22: Support de cours : Introduction à l’Optimisation Combinatoire

chemin aux chemins élémentaires.

On va se restreindre dans la suite à des graphes sans circuit négatifs.

UPEC - Master ScTIC 21

Page 23: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 24: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 25: Support de cours : Introduction à l’Optimisation Combinatoire

“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

Page 26: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 27: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 28: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 29: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 30: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 31: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 32: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 33: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 34: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 35: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 36: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 37: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 38: Support de cours : Introduction à l’Optimisation Combinatoire

fortement polynomial.

UPEC - Master ScTIC 37

Page 39: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 40: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 41: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 42: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 43: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 44: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 45: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 46: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 47: Support de cours : Introduction à l’Optimisation Combinatoire

Tous les algorithmes partent de l’ensemble vide, c’est le choix du cocycleC qui les distingue.

UPEC - Master ScTIC 46

Page 48: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 49: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 50: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 51: Support de cours : Introduction à l’Optimisation Combinatoire

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

Page 52: Support de cours : Introduction à l’Optimisation Combinatoire

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