Vous êtes sur la page 1sur 7

1 2

Algorithmes gloutons, Optimisation Combinatoire : problème abstrait


programmation dynamique
Entrée : E ensemble ni, valuation v:E !R +
, famille F 2 E

 Méthodes: algorithmes gloutons et matroïdes, programmation Sortie : F 2 F maximisant


dynamique X
 Problèmes: Arbre ouvrant maximum, Plus ourts hemins à partir f 2 F
v (f ):

d'un sommet, Plus ourts hemins entre tous les sommets, Nombres de
Fibona i Remarque : Le plus souvent, F est lose par passage aux
 Algorithmes: Kruskal, Dijkstra, Roy-Warshall sous-ensembles.

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551

3 4

L'algorithme glouton général Graphes : dénitions


1. Trier les éléments de E par valuations dé roissantes : Graphe G = (V; E ) : V sommets, E arêtes = paires de sommets.
hemin = suite d'arêtes
v (e1 )  v (e2 ) : : :  v (en )
f g f g
e1 = x1 ; x2 ; e2 = x2 ; x3 ; : : : ep = xp ; xp+1 f g
y le : hemin tel que x1 = x p+1

2. Initialisation : F ; hemin élémentaire : ne passe pas deux fois par le même sommet
3. Pour i allant de 1 à n faire Si F [ fe g 2 F Alors F F [ fe g
i i
Graphe onnexe : toute paire de sommets est reliée par un hemin.
Remarque : L'algorithme glouton ne mar he pas toujours ! Arbre : graphe onnexe sans y le.

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551
5 6

Arbres : lemme fondamental


Arbres ouvrants
Pour un graphe G ayant n sommets, les propriétés suivantes sont
équivalentes : Notations
1. G est un arbre  G = (V; E ), jV j = n, jE j = m
2. G est onnexe minimal  (V; T ) arbre ouvrant de G
3. G est sans y le maximal
Propriétés
4. G est onnexe et a n arêtes
1
1. jT j = n 1
5. G est sans y le et a n 1 arêtes
2. Chaque arête e qui n'est pas dans T rée un y le C unique ave T .
e

6. Toute paire de sommets de G est reliée par un unique hemin

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551

7 8

Arbre ouvrant de poids maximum

G graphe onnexe où haque arête e a un poids p(e).


But: arbre ouvrant de poids total maximum
Problème d'optimisation ombinatoire ave :
F = parties de E sans y le
Algorithme de Kruskal
1. Classer les arêtes par poids dé roissants : p(e1 )  p(e2 ) : : :  p(en )

2. Initialisation: T ;
3. Pour i allant de 1 à n faire Si T [ fe g n'a pas de y le Alors
i

T T [ fe g
i

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551
9 10

Preuve de validité
Preuve du théorème
Lemme
Soient T et U deux arbres ouvrants de G, soit a 2 U; 2
a = T, alors il
existe b 2 T tel que U a + b soit un arbre ouvrant.
 Soient T l'arbre obtenu par l'algo glouton U un arbre de poids
maximal tel que jT \ U j soit maximum
De plus b peut être hoisi dans le y le formé par des arêtes de T et a.
Théorème
 Par l'absurde. Si T =6 U : soit e 2 T n U ...
L'algorithme de Kruskal onstruit l'arbre ouvrant de poids maximum

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551

11 12

Théorème général
= )
 Soient F et G donnés, jGj > jF j. On dénit v par:
L'algorithme glouton général donne une solution optimale quelle que soit
la fon tion v si et seulement si :
Si F et G sont deux ensembles de F tels que G a plus d'éléments que F ,
alors il existe un élément x de G n F tel que F [ fxg 2 F .
 On vérie: v(G)  v(F ). Glouton =) F 0  F , F 0 6= F .

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551
13 14

Matroïdes

F 2 E
forme un matroïde si les trois onditions suivantes sont
(= satisfaites :

 Soit F obtenu par l'algo glouton, G appartenant à F , optimal et tel 1.F 6= ;.


que jF \ Gj maximum ; si F = 6 G, soit e 2 G n F , e premier élément 2. Si F 2 F et G  F alors G 2 F
(par ordre de v dé roissant)...
3. Si F; G 2 F et jGj > jF j alors 9x 2 G n F tel que F [ fxg 2 F
Les éléments de F sont appelés les ensembles indépendants du matroïde.
Exemples : Arêtes sans y le d'un graphe, ve teurs libres d'un espa e
ve toriel

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551

15 16

3
x2 x3

Plus ourt hemin à partir d'un sommet


2

Entrée : graphe orienté aux ar s valués et un sommet x0 1


2

Sortie : pour haque sommet x : la longueur du plus ourt hemin de 3

x0 à x, et la suite des sommets onstituant e plus ourt hemin


x1 x4
Stru ture de données : 4

 d[x℄ longueur du hemin de x à x 0


2

 pere[x℄ sommet qui pré ède x sur le hemin de x 0 àx 4


6 2
x5

Cal ul du hemin à partir de la stru ture de données : 1

hemin(x0 ; x)= hemin(x0 ,père(x)) (père(x),x)


x7 x6
1

Figure 1: Cal ul de plus ourts hemins

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551
17 18

Algorithme de Dijkstra
Initialisation : Relaxer l'ar (y; z )
A ;
d[x0 ℄ 0
d[x℄ 1 pour x 6= x 0
Si d[y ℄ > d[x℄ + `(x; y )

Tant que A=V 6 : Alors


Soit y l'élément de V n A ave d[y℄ minimum d[y ℄ d[x℄ + `(x; y )
A A [ fy g père[y ℄ x
Pour tout z voisin de y , relaxer l'ar (y; z ).

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551

19 20

Algorithme de Dijkstra : omplexité


Algorithme de Dijkstra : analyse
Stru ture de données pour V n A: Ensemble ave valeurs d[x℄. Opérations:
Invariant : d[y℄ représente la longueur d'un hemin de x0 à x. 1. Trouver et supprimer l'élément de plus petite valeur
Invariant : Si y 2 A, alors d[y℄ est la longueur du plus ourt hemin de
2. diminuer la valeur d'un élément
x0 à y , et pour tout voisin z de y , on a onsidéré le plus ourt hemin de
x0 à z qui se termine par l'ar (y; z ). Tas : es opérations on oût O(log n).
Complexité : O(n + m log n).

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551
21 22

Plus ourts hemins entre tous les sommets 2

Soit Æ (x; y ) la longueur du plus ourt hemin entre x et y qui soit 2


k
3 1
omposé d'au plus k ar s. 1
But : al uler Æ (x; y) pour tout x, y. 4
n

0 7 2 5
Dénition ré ursive :
1
( 4 1
0 si x=y 2 4
Æ0 (x; y ) =
1 sinon
Æk (x; y ) = minz :(x;z )2E (`(x; z ) + Æk 1 (z; y )): 1

Implantation : Tableau Æ[k; x; y℄. Figure 2: Tous les hemins

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551

23 24

Suite de Fibona i
Algorithme de Roy-Warshall Dénition ré ursive : f0 = f1 = 1,fn = fn 1 + fn 2 .
Implantation en ré ursif : omplexité exponentielle.
Pour k allant de 1 à n 1
Pour i allant de 1 à n
Pour j allant de 1 à n
Si Æ [i; j ℄ > Æ [i; k ℄ + Æ [k; j ℄
Alors Æ [i; j ℄ Æ [i; k ℄ + Æ [k; i℄

Implantation en itératif : tableau f [0 : : : n℄, omplexité polynomiale.

Claire Kenyon Majeure Info INF 551 Claire Kenyon Majeure Info INF 551
25

Quand peut-on utiliser la programmation dynamique ?

1. 9 un ordre partiel sur les problèmes tel que :


 on sait résoudre le problèmes minimaux
 tout problème P non minimal se résoud au moyen de solutions de
ertains problèmes P 0, ave P0 < P

2. Le al ul pour P à partir des solutions pour les P 0 se fait en temps


polynomial en jP j.
3. Le nombre total de sous-problèmes, jfP 0 jP 0 < P gj, est polynomial
en jP j.

Claire Kenyon Majeure Info INF 551