Département d’Informatique
Master Big Data Analytics & Smart Systems
Realisé par : Encadré par :
Salma Largo Pr.Meknassi
Khalid El masry
Année universitaire : 2016/2017
SALMA LARGO & KHALID ELMASRY Page 2
Introduction :
Un problème de plus court chemin est un problème algorithmique de la théorie des
graphes. L'objectif est de calculer un chemin entre des sommets d'un graphe qui
minimise ou maximise une certaine fonction.
Il existe de nombreuses variantes de ce problème. On suppose donné un graphe fini,
orienté ou non selon les cas ; de plus, chaque arc ou arête possède une valeur qui peut
être un poids ou une longueur. Un chemin le plus court entre deux nœuds donnés est un
chemin qui minimise la somme des valeurs des arcs traversés. Pour calculer un plus court
chemin, il existe de nombreux algorithmes, selon la nature des valeurs et d'éventuelles
contraintes supplémentaires. Dans de nombreux cas, il existe des algorithmes
de complexité en temps polynomiale, comme l'algorithme de Dijkstra dans des graphes
avec poids positifs. En revanche, lorsqu'on ajoute des contraintes supplémentaires
comme des fenêtres de temps, le problème peut devenir NP-difficile.
L'exemple d'application le plus courant est de trouver le trajet le plus court entre deux
agglomérations. Ce problème d'apparence simple, puisqu'il s'agit simplement
d'additionner les distances kilométriques, devient plus compliqué si on veut en déduire
le temps de parcours : l'intensité du trafic, le temps de traversée des agglomérations,
sont des contraintes additionnelles. La recherche de chemin, ou pathfinding, est au
contraire un problème de l'intelligence artificielle qui se rattache à la planification. Il
consiste à trouver comment se déplacer dans un environnement entre un point de départ
et un point d'arrivée en prenant en compte différentes contraintes. Il devient un
problème complexe lorsque l'on cherche à prendre en compte diverses contraintes
additionnelles (exécution en temps réel, présence d'incertitudes, contrainte de
ressources, environnement évolutif, etc.).
Définition du problème :
On peut s'intéresser à la recherche d'un plus court chemin dans un graphe :
1 - entre deux sommets donnés
2 - d'un sommet à tous les autres
3 - entre tous les couples de sommets
Le problème 2 n'est pas plus difficile à résoudre que le problème 1 et le problème 3
peut être résolu par application du problème 2 à tous les sommets. On s'intéresse donc
au problème 2.
SALMA LARGO & KHALID ELMASRY Page 3
Solutions :
Algorithme de Dijkstra :
En théorie des graphes, l'algorithme de Dijkstra (prononcer [dɛj.kstra]) sert à résoudre
le problème du plus court chemin. Il permet, par exemple, de déterminer un plus court
chemin pour se rendre d'une ville à une autre connaissant le réseau routier d'une région.
Plus précisément, il calcule des plus courts chemins à partir d'une source dans un graphe
orienté pondéré par des réels positifs. On peut aussi l'utiliser pour calculer un plus
court chemin entre une source et un sommet d'arrivée.
Algorithme :
Algorithme de Roy-Floyd-Warshall :
L'algorithme de Floyd-Warshall (parfois appelé algorithme de Roy-Floyd-Warshall car
décrit par Bernard Roy en 19591) est un algorithme pour déterminer les distances
des plus courts chemins entre toutes les paires de sommets dans un graphe orienté et
pondéré, en temps cubique en le nombre de sommets.
L'algorithme de Floyd-Warshall prend en entrée un graphe orienté et valué, décrit par
une matrice d'adjacence donnant le poids d'un arc lorsqu'il existe et la valeur oo sinon.
Le poids d'un chemin entre deux sommets est la somme des poids sur les arcs
constituant ce chemin. Les arcs du graphe peuvent avoir des poids négatifs, mais le
graphe ne doit pas posséder de circuit de poids strictement négatif. L'algorithme
calcule, pour chaque paire de sommets, le poids minimal parmi tous les chemins entre
ces deux sommets.
Algorithme :
SALMA LARGO & KHALID ELMASRY Page 4
Réferences :
https://fr.wikipedia.org/wiki/Algorithme_de_Floyd-Warshall
http://ressources.aunege.fr/nuxeo/site/esupversions/2b1c56b6-109d-488a-94a3-
3ea525f8beef/ModAidDec/cours/l3/l3.pdf
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !