Texte du Devoir

publicité
Année Universitaire 2016/2017
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).
Conditions du devoir
Les devoirs sont impérativement effectués en binôme (si le nombre total d’étudiants est impair, l’un d’eux – et un seul
– pourra être seul, mais il n’y aura pas de groupe de trois). Il serait souhaitable que les binômes du Devoir n°1 soient
reconduits.
Il est formellement interdit copier des « bouts de code » sur Internet ou sur ce qu’ont fait d’autres étudiants.
Le travail à remettre sera constitué d’un rapport et d’un programme :
-
-
Le rapport sera en format pdf, d’une taille de quatre à cinq pages, et il donnera des indications sur la
structuration du programme, les raisons des choix effectués, les difficultés rencontrées, éventuellement des
résultats (mais pas une description de l’algorithme ni des « bouts de code »).
Le programme sera dans un langage de programmation au choix mais après agrément du professeur (C, C++,
Java, Python ont été les langages choisis) ; il y aura a priori un seul fichier pour le programme mais s’il y en a
deux ou trois (pas plus), ce n’est pas gênant (il faudrait quand même essayer de regrouper le tout dans la
mesure du possible).
Tous ces documents doivent m’être adressés par mail (adresse e-mail : [email protected]) au plus tard le
mardi 29 novembre à midi. Le mail doit m’être envoyé par l’un des deux étudiants du binôme et l’autre étudiant doit
être en copie du message. Les fichiers (rapport, programmes) doivent apparaître comme autant de pièces jointes : il
ne doit absolument pas y avoir de dossier compressé en document attaché. Dans tous les cas, je vous renverrai un
message (rapidement) pour vous dire que j’ai bien reçu vos documents. Si vous n’avez pas reçu cet accusé de
réception de la part, c’est que votre mail ne m’est pas parvenu … vérifiez donc bien à avoir reçu cet accusé de
réception.
Pour éviter tout problème, je vous conseille de me faire parvenir ces documents dès le lundi soir ou le mardi en tout
début de matinée.
er
Le surlendemain, jeudi 1 décembre, de 15h à 17h, aura lieu la présentation des devoirs :
-
Ne seront autorisés à présenter leur devoir que ceux qui m’auront adressé leurs documents dans les
conditions énoncées précédemment
Chaque binôme disposera de 5mn (pas plus) : pensez donc à me montrer ce qui est pertinent, …
Téléchargement