![](//s1.studylibfr.com/store/data-gzf/49e62634200a73723859047085a1f403/1/007664584.htmlex.zip/bg5.jpg)
Analyse d’algorithmes 2001 EXERCICES SUR L’APPROCHE VORACE 5
2me cas: les pièces de 10 sont sous-utilisées, c’est-à-dire : x1 + 5x5 ≥ 10 et x10 < n10.
On peut alors remplacer 10 sous en pièces de 1 et 5 par 1 pièce de 10, obtenant ainsi une
meilleure solution réalisable, ce qui conduit encore à une contradiction.
3me cas: les pièces de 25 sont sous-utilisées, c’est-à-dire : x1 + 5x5 + 10x10 ≥ 25 et x25 < n25.
Si x5 > 0, on peut choisir une pièce de 5 et d’autres pièces de 1, 5, 10 totalisant 20 sous, et
remplacer le tout par une pièce de 25, obtenant une meilleure solution, d’où contradiction.
Si x5 = 0, comme n5 > 0 par hypothèse, x1 < 5 d’après (1), soit 0 ≤ x1 ≤ 4. Cela implique
10x10 ≥ 25 – x1 , ou x10 ≥ 3. On peut alors remplacer 3 pièces de 10 par une pièce de 25 et une pièce
de 5, obtenant une solution meilleure, d’où contradiction.
b) S’il y a des pièces de 12, prendre par exemple x = 20.
- solution optimale : 10, 10 (2 pièces);
- solution selon l’algorithme vorace : 12, 5, 1, 1, 1. (5 pièces).
c) S’il n’y a pas de pièces de 5 (n5 = 0), prendre par exemple x = 30.
- solution optimale : 10, 10, 10 (3 pièces);
- solution selon l’algorithme vorace : 25, 1, 1, 1, 1, 1 (6 pièces).
Exercice 3 (ancien problème 3.2.5)
L’algorithme prend au moins un temps dans Ω(n2), ne serait-ce que pour lire la matrice des
distances. Mais on peut construire la liste des arêtes en un temps dans O(n2) puis utiliser le même
algorithme que d’habitude. Le temps requis est donc dans O(max (n2, a logn)).
Exercice 4 (ancien problème 3.2.6)
Nous allons montrer par induction sur le nombre de sommets dans B que, à chaque sortie de la
boucle TANT QUE, les arêtes de T forment un ensemble prometteur.
C’est évidemment vrai lorsque B contient un seul sommet.
Supposons que c’est vrai à l'entrée dans la boucle et montrons que cela implique que c’est vrai à
la sortie. Si c’est vrai en entrant, alors l’arête e = {u,v} que l’on ajoute possède l’une de ses
extrémités dans B et l’autre dans N – B , c’est-à-dire rejoint B, et aucune autre arête de T ne rejoint
B (toutes les arêtes de T ont leurs deux extrémités dans B). De plus, e est l’arête de coût minimal
parmi celles qui rejoignent B. Donc, par la propriété 3.2.1, T ∪ {e} forme un ensemble prometteur.
Note. - “T est un ensemble prometteur” est un invariant de la boucle TANT QUE. La démonstra-
tion revient à affirmer successivement les 4 assertions correspondantes.
Exercice 5
1º On doit préférer l’algorithme de Kruskal lorsque le nombre d’arêtes est petit par rapport à n2.
2º Il n’est pas nécessairement toujours préférable: cela dépend de la constante cachée. Par contre, il
sera préférable pour n suffisamment grand.