Algorithmique I : Laboratoire 4

publicité
Algorithmique I : Laboratoire 4
1. Soit le graphe suivant :
En partant du sommet A (si nécessaire), montrer comment fonctionne :
a) L’algorithme de PRIM.
b) L’algorithme de KRUSKALL.
2. Soit le graphe orienté suivant :
En supposant que la source est le sommet {1}, montrer le fonctionnement de
l’algorithme de Dijkstra pour trouver les chemins les plus courts ainsi que leurs
longueurs respectives de la source vers les autres sommets.
3. On a un nombre illimité de coupons de 1$, 4$ et 5$. En utilisant le nombre
minimal de coupons, il faut faire un total de X$ où X est une valeur donnée du
problème :
a) Écrire un algorithme vorace pour résoudre ce problème et expliquer son
fonctionnement. Montrer un exemple pour lequel cet algorithme ne trouve
pas la solution optimale (i.e. : n’utilise pas le nombre minimal de coupons).
b) Prouver que 1$, 2$ et 5$ est un agencement de coupons pour lequel
l’algorithme donné en classe est optimal.
4. Faire l’algorithme suboptimal vu en classe (colorier dans l’ordre croissant des
nœuds) sur le graphe suivant :
a) Est-ce que le nombre de couleurs est optimal ? Si oui, prouver, sinon, donner
un contre-exemple.
b) Quel est le nombre minimal de couleurs nécessaires pour colorier ce graphe
? Prouvez-le.
5. Voici la matrice de la longueur des chemins d’un graphe complet. Tracer
l’algorithme suboptimal du commis voyageur et donner le chemin résultant, ainsi
que sa longueur :
A
B
C
D
E
F
G
A
∞
270
20
17
14
27
305
B
C
D
E
F
G
∞
9
36
10
15
31
∞
3
21
24
29
∞
5
6
50
∞
47
11
∞
9
∞
Est-ce que le cycle Hamiltonien est le cycle le plus court possible ? Justifier.
Téléchargement