Avant tout, récupérez le fichier graphestp2.tar.gz et décompressez-le :
gunzip graphestp2.tar.gz tar xvf graphestp2.tar rm graphestp2.tar cd GraphesTp2; lsCette archive contient des programmes en langage C pour manipuler des graphes, la documentation de ces programmes se trouve ici :
Rappel du premier TP : description des structures de données utilisée pour représenter un graphe sous la forme Γ (application successeurs). Pensez également à vous référer à la documentation du code source, en particulier :
L'image ci-dessus à gauche (source CERN) est extraite d'une photographie de chambre à bulles. A droite, l'image a été seuillée pour détecter les régions les plus claires (image bs0). Le fichier bs0.list contient les coordonnées des barycentres de ces régions (la première ligne du fichier indique le nombre de points). Deux autres images sont à votre disposition : bs1 et bs2, dont les fichiers de coordonnées sont respectivement bs1.list et bs2.list. Notre but dans ce TP est de reconstituer au mieux les trajectoires des particules (ensembles de points plus ou moins alignés) en négligeant les points isolés.
Pour vous aider, voici un programme qui lit un fichier de points, construit un graphe vide (sommets seulement, pas d'arcs) dont les sommets correspondent aux points contenus dans le fichier, et permet la visualisation de ce graphe en générant un fichier PostScript. Les coordonnées des sommets sont stockées dans les champs x et y de la structure graphe.
(1) : G est un graphe antisymétrique si pour tout sommet x et pour tout sommet y de G, [ (x,y) arc de G ] implique [ (y,x) non arc de G ].
(2) : G est un graphe sans boucle (ou antiréflexif) si pour tout sommet x de G, (x,x) n'est pas un arc de G.
Proposez (sans l'implémenter) une méthode pour trouver la valeur exacte de dmin pour un ensemble quelconque de points. Complexité de la méthode ?
Note : Le tri ne s'effectue pas sur les valeurs du tableau v_arcs de la structure graphe, sinon les poids des arcs ne correspondraient plus aux données des tableaux tete et queue. La fonction TriRapideStochastique effectue le tri dans un tableau auxiliaire, qui sert d'index aux données du tableau v_arcs.
On se propose de redéfinir la nature des poids associés aux arcs, de façon à favoriser la sélection des arcs qui non seulement sont courts, mais sont également alignés avec des arcs adjacents. De plus, cette définition devra être relativement simple à implémenter.
Proposez plusieurs idées, confrontez-les avec celles de vos voisins et soumettez-les au professeur responsable du TP. Retenez la meilleure et implémentez-la. Résultat ?