160 likes | 270 Views
RULLIER Anthony. Jeudi 7 mai 2012. BE Graphe : Algorithme de Dijsktra Distribution d’un algorithme. Powerpoint Templates. Compte rendu des différents algorithmes en local. Structures remarquables utilisées :. BinaryHeap instantié en Label[*].
E N D
RULLIER Anthony Jeudi 7 mai 2012 BE Graphe : Algorithme de Dijsktra Distribution d’un algorithme Powerpoint Templates
Structures remarquables utilisées : BinaryHeapinstantié en Label[*] HashTable instancié en Label[*] et utilisée dans Pcc[*] Augmente grandement la vitesse des données car une table de Hachage performante pour la gestion de données en grande quantité
Résultats Expérimentaux (temps) Superposition du A* star et du Dijkstra seul
Résultats Expérimentaux (distance) Superposition du A* star et du Dijkstra seul
Résultats Expérimentaux (distance) Superposition du A* star et du Dijkstra seul
Limites et améliorations : Sur certains chemins les algorithmes Dijsktra temps et distance sont plus rapides que les algorithmes Dijkstra Star temps et distance On remarque que ces cas particuliers apparaissent pour des chemins ou le nombre de nœuds insérés dans le tas est deux fois ou plus pour l’algorithme Star par rapport a l’algorithme simple. Utiliser une table de hachage dans le tas à la place de l’utiliser dans le Pcc.
Partie Distribuée (données) : Algorithme maitre ->HashTable indexée par les nœuds frontaliers et instanciée par leurs coup de toutes les zones ->Différentes adresses de communication avec les esclaves -> Cout final Algorithmes Esclaves ->Structures habituelles (BinaryHeap, …) du Dijkstra Standard, avec ajout de l’information sur la zone du successeur ->HashTable des nœuds frontaliers Classe de communications ->Création de classes d’envoie d’informations (coût du nœud zone de succession, nœud de départ de recherche…) ->Communication via le proxy (cf. BE AIPS)
Initialisation de l’algorithme : Initialisation des informations des HashTable dans Algorithme Maitre avec tous les nœuds frontaliers et leur cout infini. Création des Algorithmes Esclaves au nombre des différentes cartes Initialisation des esclaves : tous les nœuds de la carte ont un cout infini. On remplit également la HacheTable nœuds frontaliers. L’esclave de la carte ou le sommet de départ se trouve initialise le cout de ce dernier Début de l’Algorithme
L’algorithme Esclave effectue le Dijkstra Standard Lorsqu’il rencontre un successeurs dans une autre zone, il calcul le coup éventuel puis demande le cout de ce nœud au maître et attend. Si le cout renvoyé par l’esclave est plus petit que le cout dans la HashTable du Maitre alors M.A.J de ce cout dans cette dernière et dans la table frontalière de l’esclave. Le maitre donne l’ordre a l’Esclave continue son travail Lorsque le nœud minimal dans le tas de l’Esclave est celui d’une autre zone, envoie d’un message à Maitre. Maitre passe la main à Esclave de cette nouvelle zone Lorsque le zone d’arrivée est marqué, renvoie du coût à l’algorithme maitre
BE INTEGRATION : Creation des classes SendData et ReceveData DatagramSocket ByteArrayOutputStream ObjectOutputStream / / ObjectInputStream DatagramPacket Maitre Etc… Esclave n°1 Esclave n°2