• Aucun résultat trouvé

TP5calcul des plus courts cheminsalgorithme de Dijkstra

N/A
N/A
Protected

Academic year: 2022

Partager "TP5calcul des plus courts cheminsalgorithme de Dijkstra"

Copied!
1
0
0

Texte intégral

(1)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

TP5

calcul des plus courts chemins algorithme de Dijkstra

Vous disposez dans le fichier Dijkstra.java des bases sur lesquellesécrire le calcul des plus courts chemins de Dijkstra.

Ce programme génère et affiche un graphe construit de façon aléatoire. Le nombre de sommets du graphe doit être passé en paramètre au programme.

Attention, utilisez un nombre important de de sommets afin qu'il existe des chemins du sommet 1 à tous les autres.

Ce programme est constitué de la façon suivante :

- la classe Pt décrit les sommets du graphe par des coordonnées x et y afin de pouvoir tracer les arcs entre deux sommets,

- la classe LP permet de construire des listes de points (liste d'objets de la classe Pt). Les méthodes disponibles sont :

- cons pour l'ajout en tête,

- isempty pour tester si une liste est vide,

- head et tail pour les accès à la tête et à la queue de liste

- une méthode de tri par fusion (mergesort) est aussi disponible avec les méthodes pairs, impairs et fusion qu'elle utilise.

- la classe LI permet de construire des listes d'entiers. Les méthodes disponibles sont : - cons pour l'ajout en tête,

- isempty pour tester si une liste est vide,

- head et tail pour les accès à la tête et à la queue de liste,

- length et printlist permettent de calculer la longueur et d'afficher la liste,

- une méthode iaj permet la génération d'une liste contenant tous les entiers entre deux entiers donnés, - une méthode enlever permet de supprimer un entier donné de la liste.

- la classe Arc permet de définir un successeur pour une implémentation du graphe par tableau de listes,

- la classe LA permet de travailler avec des listes de successeurs (liste d'objets de la classe Arc). Les méthodes disponibles sont :

- cons pour l'ajout en tête,

- isempty pour tester si une liste est vide,

- head et tail pour les accès à la tête et à la queue de liste - printlist permet d'afficher la liste.

- la classe Dijkstra contient les champs nécessaires à la construction et à l'affichage du graphe et des PCC. Vous devez compléter cette classe par le calcul des PCC.

int max=5000; // nombre maximum de sommets du graphe LI ensA; // ensemble A décrit par une liste d'entiers

LA [] tabarcs=new LA[max]; // graphe décrit par tableau delistes de successeurs double [] dist=new double[max]; // distance de chaque sommet au sommet 1 par le PCC int [] pred=new int[max]; // predecesseur immédiat de chaque sommet dans le PCC boolean fin=false; // tous les PCC sont calculés (dist et pred sont à jour) int width, height; // dimensions de la fenêtre graphique

Pt [] tabpts; // tableau des points pour placer les sommets

Vous devez tester ce programme tel qu'il vous est fourni puis le compléter afin de calculer et tracer les PCC. Les deux graphiques fournis correspondent à l'affichage initial du programme et à celui que vous devez obtenir (dans les deux cas, le nombre d esommets du graphe est 4000).

TP5-1-

Références

Documents relatifs

Étape 1 : à partir de la ville A, 3 villes sont accessibles, B, C, et E qui se voient donc affectées des poids respectifs de 85, 217, 173, tandis que les autres villes sont

◦ Le critère qui nous intéresse est : la distance d’un point à l’arrivée. - L’information n’est pas contenu dans

Alors que, dans le monde entier, on travaille à l’éradication de la polio, ne tenons pas pour acquis les outils les plus puissants pour la prévention que

Rappeler à quelle condition, si un graphe orienté valué G = (S, A, w) contient des arcs de poids négatif, il existe un plus court chemin entre deux sommets x et y de S.. Montrer

Pour l'algorithme, nous avons besoin d'un tableau d , les valeurs des elements d i seront la longueur du plus court chemin entre le sommet racine et le sommet i1. Initialement, tous

Il faut donc apprendre aux jeunes apprenants à lire sans effort pour qu’il acquière l’habitude de lire, car la lecture est la clef d’un bon apprentissage,

b) Sur un tas binaire, écrivez l'algorithme d'un traitement récursif propMax(i) permettant d'assurer qu'à partir de l'indice i chaque élément du tableau est

En effet, quand le noeud ayant le poids le plus faible sera le noeud d'arrivée, cela voudra dire que l'on a trouvé le chemin le plus court pour y aller en partant du noeud de