UMLV ã Plus courts chemins Toutes paires d'états

Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements

Théorie des graphes.

UMLV 1 Problème G = (S, A) graphe (orienté) Calculer H = (S, B) où B est la clôture réflexive et transitive de A. Note : (s,t) B ssi il existe un chemin.
Heuristiques A. Introduction B. Recherche d ’une branche
Algorithme de Bellman-Ford




Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK.
Licence Informatique Algorithmique des graphes
1 Licence d’informatique Algorithmique des graphes Exploration de la descendance d’un sommet Utilisation de ce document strictement réservée aux étudiants.

Structures de données IFT-2000
CSI2510 Structures de données et algorithmes Plus court chemin
1 A. Cornuéjols Introduction à l’intelligence artificielle Introduction à l’Intelligence Artificielle (Cours n°2) Recherche non informée dans les graphes.
© 2006 Les Éditions de la Chenelière inc., La gestion dynamique: concepts, méthodes et applications, 4 e édition1/14 Chapitre 4 : Le gestionnaire en tant.
Université de Nantes CHORD Vincent Trève. Introduction ● Problématique – Comment accéder efficacement aux données réparties sur un système pair à pair?
Le triangle. 2 SOMMAIRE Définition Triangles particuliers Propriétés d'un triangle isocèle Propriétés d'un triangle équilatéral Construction d'un triangle.
7. Problème de flot à coût minimum. 7.1 Graphes, graphes orientés, réseaux Un graphe G =(V, E) est constitué d’un ensemble non vide fini de sommets V.
II Circuits dans un graphe Une chaine est une liste ordonnée de sommets où deux sommets voisins de la liste sont des sommets adjacents du graphe.
Cours COMPOSANTES DES VECTEURS Dimitri Zuchowski et Marc-Élie Lapointe.
II Opérations avec des vecteurs
Un Algorithme , c'est Quoi ?
Algorithme et programmation
CCNP Routage Chapitre 4 - Questionnaire N°1
Estimer un ordre de grandeur.
Algorithmique AU El harchaoui noureddine
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap5: Les méthodes de résolution exactes.
Master Réseaux et Systèmes Distribués (RSD)
Stratégies de résolution de problèmes (RP) en mathématique
IFT 615 – Intelligence artificielle Recherche heuristique
Recherche plus court Chemin par A*
2°9 lycée Beauregard à Montbrison
Pr ZEGOUR Djamel Eddine
Plan Introduction Parcours de Graphe Optimisation et Graphes
VI. Tri par tas (Heap sort)
Créez votre entreprise Partie 4
Université Abou Bakr Belkaid Faculté des Sciences Département d’informatique Algorithmique Avancée et Complexité Chap7: Les méthodes de résolution exactes.
UMLV ã Arbres de recherche AVL
Exercice 6 : Les sommets de ce graphe sont des équipes, et les arêtes des matchs d’un tournoi. Combien de matchs devra disputer chaque équipe ? Combien.
Activités mentales rapides Bilan sur le cours
Information, Communication, Calcul
Plan Introduction Parcours de Graphe Optimisation et Graphes
3g2 Théorème de Thales cours mathalecran d'après
PROGRAMMATION ET ENSEIGNEMENT
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste 09/11/2018.
Chapitre 2 L’O-R-C-D.
Ruoqi He & Chia-Man Hung
Ä A B C D E F µ Un problème de Tournée (ou du Voyageur de commerce) consiste à chercher le meilleur trajet pour visiter.
Plan Introduction Parcours de Graphe Optimisation et Graphes
Cycle, Cocycle, Arbre et Arborescence
B.Shishedjiev - Informatique
NOMBRES ENTIERS NÉGATIFS
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
[Nom du projet] [Nom du présentateur]
Rapport sur le projet [Nom du projet]
GRAFCET à séquence unique
CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.
GRAFCET à séquence unique
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
IN302 – Chapitre 3 Plus courts chemins.
Arbres et arborescences
CALCUL RAPIDE sur les nombres entiers
Combien de fois un nombre est contenu dans un autre
Mathématiques – Calcul mental
Calculer le complément à 100
Calculer le complément du dixième à l’unité
Transcription de la présentation:

UMLV ã Plus courts chemins Toutes paires d'états (algorithme de Warshall O(card S3) ) algorithme de Floyd O(card S3) Chemins de même origine (ou même destination) (selon les hypothèses) algorithme de Dijkstra O(card S2) ou O(card S + card A.log card S) algorithme de Bellman-Ford O(card A.card S)

s d c b a 3 5 1 8 4 9 s d c b a 3 5 1 UMLV ã Problème Graphe valué : G = (S, A, v) avec valuation v : A  R Source du graphe : s Î S Problème : pour tout t Î S calculer d(s, t) = min { v(c) ; c chemin de s à t }  {+} Exemple Coûts  s d c b a 3 5 1 8 4 9 s d c b a 3 5 1

dont les branches sont des chemins de coût minimal UMLV ã Arbres de plus courts chemins Arbres de racine s dont les branches sont des chemins de coût minimal s d c b a 3 5 1 8 4 9 s d c b a 3 5 1 8 4 9

le graphe n’a pas de circuit de coût < 0 accessible depuis s UMLV ã Existence Proposition pour tout t Î S d(s, t) > -¥ ssi le graphe n’a pas de circuit de coût < 0 accessible depuis s s d c b a 3 5 1 -3

Propriété 1 : G = (S, A, v) Propriété 2 : G = (S, A, v) UMLV ã Propriétés de base Propriété 1 : G = (S, A, v) soit c un plus court chemin de p à r dont l’avant-dernier sommet est q Alors d(p, r) = d(p, q) + v(q, r) Propriété 2 : G = (S, A, v) soit c un chemin de p à r Alors d(p, r) £ d(p, q) + v(q, r) p r q

Calcul des d(s,t) par approximations successives UMLV ã Relaxation Calcul des d(s,t) par approximations successives t Î S d(t) = estimation de d(s, t) (t) = prédécesseur de t : avant-dernier sommet d’un chemin de s à t ayant pour coût d(t) Initialisation de d et  INIT pour chaque t Î S faire { d(t)   ; (t)  nil; } d(s)  0; Relaxation de l ’arc (q, r) RELAX(q, r) si d(q) + v(q, r) < d(r) alors { d(r)  d(q) + v(q, r) ; (r)  q ; } s r q d(r) d(q)

Proposition : UMLV ã Relaxation (suite) la propriété « pour tout t Î S d(t) ³ d(s, t) » est un invariant de relax Preuve par induction sur le nombre d ’exécution de relax

UMLV ã Algorithme de Dijkstra Condition : v(p, q) ³ 0 pour tout arc (p, q) début INIT; Q ¬ S ; tant que Q ¹ Æ faire { q ¬ MINd (Q) ; Q ¬ Q - {q} ; pour chaque r successeur de q faire RELAX(q, r) ; } fin Algorithme glouton (séquentiel)

s d c b a 3 5 1  s d c b a 3 5 1  Q = { s, a, b, c, d } (s) = nil UMLV ã Exemple s d c b a 3 5 1  s d c b a 3 5 1  Q = { s, a, b, c, d } (s) = nil (a) = nil (b) = nil (c) = nil (d) = nil Q = { a, b, c, d } (s) = nil (a) = s (b) = nil (c) = s (d) = nil

s d c b a 3 5 1  s d c b a 3 5 1 8 4  Q = { a, b, c, d } (s) = nil UMLV ã Exemple (suite) s d c b a 3 5 1  s d c b a 3 5 1 8 4  Q = { a, b, c, d } (s) = nil (a) = s (b) = nil (c) = s (d) = nil Q = { b, c, d } (s) = nil (a) = s (b) = a (c) = a (d) = nil

s d c b a 3 5 1 8 4  s d c b a 3 5 1 8 4 9 Q = { b, c, d } (s) = nil UMLV ã Exemple (suite) s d c b a 3 5 1 8 4  s d c b a 3 5 1 8 4 9 Q = { b, c, d } (s) = nil (a) = s (b) = a (c) = a (d) = nil Q = { b, d } (s) = nil (a) = s (b) = a (c) = a (d) = c

s d c b a 3 5 1 8 4 9 s d c b a Q = { b, d }, Q = { d } puis Q =  UMLV ã Exemple (suite) s d c b a 3 5 1 8 4 9 s d c b a Q = { b, d }, Q = { d } puis Q =  (s) = nil (a) = s (b) = a (c) = a (d) = c

UMLV ã Implémentation Par matrice d'adjacence temps global O(card S2) Par listes de successeurs Q : file de priorité (tas) card S opérations MINd : O(card S.log card S) card A opérations RELAX : O(card A.log card S) temps global O((card S+card A).log card S)

UMLV ã Algorithme de Bellman-Ford Aucune condition : pour tout arc (p, q), v(p, q) Î R début INIT; Q ¬ S ; répéter card S-1 fois pour chaque (q, r) Î A faire RELAX(q, r) ; si d(q) + v(q, r) < d(r) alors retour « cycle de coût négatif » sinon retour « coûts calculés » fin Temps : O(card S.card A)

Étape 1 relaxation de tous les arcs dans l’ordre : UMLV ã Exemple 1 s d c b a 3 5 1 -3  s d c b a 3 5 1 -3 6 4 9 Étape 1 relaxation de tous les arcs dans l’ordre : (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s)

Étape 2 relaxation de tous les arcs dans l’ordre : UMLV ã Exemple 1 (suite) s d c b a 3 5 1 -3 6 4 9 s d c b a 3 5 1 -3 4 7 Étape 2 relaxation de tous les arcs dans l’ordre : (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s)

Étape 3 relaxation de tous les arcs dans l’ordre : UMLV ã Exemple 1 (suite) s d c b a 3 5 1 -3 4 7 s d c b a 3 5 1 -3 2 4 Étape 3 relaxation de tous les arcs dans l’ordre : (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s)

Étape 4 relaxation de tous les arcs dans l’ordre : UMLV ã Exemple 1 (suite) s d c b a 3 5 1 -3 2 4 s d c b a 3 5 1 -3 4 Étape 4 relaxation de tous les arcs dans l’ordre : (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s) reduction possible : cycle de coût négatif

Étape 1 relaxation de tous les arcs dans l’ordre : UMLV ã Exemple 2 s d c b a 3 5 -3 1 -1  s d c b a 3 5 -3 1 -1 8 4 7 Étape 1 relaxation de tous les arcs dans l’ordre : (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s)

Étape 2 relaxation de tous les arcs dans l’ordre : UMLV ã Exemple 2 (suite) s d c b a 3 5 -3 1 -1 8 4 7 s d c b a 3 5 -3 1 -1 8 4 7 Étape 2 relaxation de tous les arcs dans l’ordre : (s,a) (s,c) (a,b) (a,c) (b,d) (c,a) (c,b) (c,d) (d,b) (d,s) pas de réduction possible : coûts corrects

UMLV ã Graphes acycliques Aucune condition : pour tout arc (p, q), v(p, q) Î R Calcul après ordre topologique début INIT; pour chaque q Î S en ordre topologique faire pour chaque r successeur de q faire RELAX(q, r) ; fin Temps : O(card S + card A) chaque sommet et chaque arc est examiné une fois

s d c b a 3 5 -1 -6 -3 Ordre topologique c, s, a, b, d -1 5 -3 s d c b UMLV ã Exemple s d c b a 3 5 -1 -6 -3 Ordre topologique c, s, a, b, d -1 5 -3 s d c b a 3 -6

-1 5 -3 s d c b a 3 -6  -1 5 -3 s d c b a 3 -6  Examen de c -3 3  UMLV ã Calcul des coûts -1 5 -3 s d c b a 3 -6  -1 5 -3 s d c b a 3 -6  Examen de c -3 3  -1 5 s d c b a -6 Examen de s

-3 3  -1 5 s d c b a -6 Examen de a -4 3  -1 5 -3 s d c b a -6 UMLV ã Calcul des coûts (suite) -3 3  -1 5 s d c b a -6 Examen de a -4 3  -1 5 -3 s d c b a -6 Examen de b Examen de d inutile