Systèmes Mul,-‐Agents
(2010-‐2011)
Part 3: Le plus court chemin dans un
graphe
Plan
• Le problème du plus court chemin
• L’algorithme de Dijkstra
• L’algorithme de fourmis
Problème du plus court chemin
• Etant donné
– Un graphe non orienté pondéré: G = (S, A, w) – Une foncLon de pondéraLon w: A-‐>R+
– Le poids du chemin p = <v0, v1, …,vk>
• w(p) = la somme des poids des arêtes qui le consLtuent
• But
– Rechercher un plus court chemin à origine unique – Rechercher un plus court chemin pour un couple
donné – etc
Algorithme de Dijkstra
• Algorithme de Dijkstra
– Un algorithme glouton pour résoudre le problème du plus court chemin à origine unique
• ApplicaLons
– Le protocole open shortest path first sur l’internet – Le protocole IS-‐IS
– etc
Algorithme de Dijkstra
Entrée:
-‐ G = (S, A, w) -‐ s est l’origine
SorLe: P est un arbre couvrant avec la racine s Var: -‐ L est une liste de sommets en candidat v
-‐ minDist[v] est la distance minimale d’un candidat v à parLr de s Debut
IniLaliser P et L
Tant que L n’est pas vide faire
Choisir un candidat v dont minDist[v] soit minimum Ajouter v dans P
Me^re à jour L Retourner P
Fin
Plus court chemin des fourmis
• Etant donné
– Un terrain où il y a une source de nourriture et une fourmilière, et une colonie des fourmis qui
exploreront ce terrain à la recherche de la nourriture
• But
– Déterminer le plus court chemin à parLr de la
fourmilière jusqu’à la nourriture grâce à l’interacLon des fourmis.
Algorithme de fourmis (un système mulL-‐agents)
• L’intelligence collecLve des fourmis
– Si nous considérons une fourmi individuellement, son espérance de vie est faible et son
comportement semble archaïque. Cependant, si nous considérons une fourmilière, le groupe de fourmis sera capable de prospérer dans son
environnement
Algorithme de fourmis (un système mulL-‐agents)
• Système mulL-‐agents = environnement + agents
• Environnement = terrain
– Un tableau à deux dimensions
– Chaque case du tableau conLent au moins les informaLons suivantes :
• L’éventuelle fourmi présente dans la case considérée
• Le niveau de phéromone dans la case
• La quanLté de nourriture dans la case
Algorithme de fourmis (un système mulL-‐agents)
• Agents = forumis
– L’aspect structurel :
• Les cases voisines: au plus 8
• L’orientaLon: au plus 8
• Le champ de vision: le nombre de cases voisines vues en prenant compte de son orientaLon, et l’interdicLon de demi-‐
tour
• La mémoire du chemin de retour
• La charge de la nourriture transportée
– L’aspect comportemental :
• Recherche de nourriture
• Retour à la fourmilière
Algorithme de fourmis (un système mulL-‐agents)
• Stratégies de déplacement
– Probabilités de direcLon :
• Sans phéromone : la probabilité de direcLon p1 est fixée
– Aléatoire
– Guidé par son orientaLon
• Avec phéromone : la probabilité de direcLon p2 peut être calculée comme :
– p2 = a * p1 + (1-‐a) * (ph/(somme de ph des cases possibles)) – a: un coefficient, 0<=a<=1
– ph : le niveau de phéromone dans une case possible