Licence d’Informatique (L3)
SIN5U1TL – Algorithmique avancée
Devoir n°2 – Arbre Couvrant Minimal
Arbre Couvrant Minimal et Ultramétriques
Etant donné un graphe G=(S,A), non orienté, pondéré et connexe, on appelle « arbre couvrant » de G un graphe
partiel de G qui soit un arbre. Un arbre couvrant minimal (ACM), pour le graphe G, est un « arbre couvrant » dont la
somme des poids des arêtes est minimale sur l’ensemble des « arbres couvrants ».
On a étudié en cours deux algorithmes permettant d’obtenir cet arbre couvrant minimal : l’algorithme de Prim et
l’algorithme de Kruskal.
La notion d’ultramétrique a été étudiée en TD (TD n°5) : elle se différencie d’une métrique au niveau de la propriété
« d’inégalité triangulaire » ( δ(x,z) ≤ Max ( δ(x,y) , δ(y,z) ) au lieu de d(x,z) ≤ d(x,y) + d(y,z) pour une métrique). Une
ultramétrique permet, d’une certaine manière, de quantifier « la difficulté, depuis un point, à atteindre un autre », en
ayant la possibilité d’utiliser tous les chemins possibles.
Travail demandé
"1. Algorithmes de Prim et Kruskal
On demande de programmer ces deux algorithmes et de visualiser les résultats sous forme graphique (aucune
préconisation n’est faite sur ce point, mais vous pouvez utiliser certains outils qui ont été développés par d’autres
enseignants, par exemple). A titre d’illustration (pour visualiser le résultat obtenu par vos programmes), un graphe
peut être défini « à la main » (dans un fichier texte) avec nombre (limité) de sommets et une liste d’arêtes pondérées
(en nombre limité également).
"2. Algorithmes de Prim et Kruskal améliorés
La structure de tas (pour l’algorithme de Prim) et la méthode dite d’ « Union – Find » (pour l’algorithme de Kruskal)
permettent d’améliorer les performances de ces deux algorithmes.
On demande de programmer ces deux versions « améliorées »
"3. ACM sur un graphe complet associé à un nuage de points
Etant donné un ensemble de points dans le plan (nous appellerons « nuage de points » cet ensemble), nous pouvons
définir un graphe non orienté, pondéré et connexe dont les sommets sont ces points et dont les arêtes joignent tous
les sommets deux à deux, avec pour poids la distance entre les sommets correspondants. On obtient ainsi un graphe
complet.
Nous tirerons aléatoirement des points dans un domaine donné et nous ne conserverons que les points situés à une
distance supérieure à un seuil donné des autres points. Calculer et visualiser l’ACM associé à ce graphe.
"4. Ultramétrique sur un nuage de points
Utiliser cet ACM pour évaluer la distance entre deux quelconques de ces points (au sens de l’ultramétrique définie
comme étant le minimum sur tous les chemins possibles de la distance maximum entre deux point d’un tel chemin).