Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements

Théorie des graphes.
Licence pro MPCQ : Cours
Dans cette partie Graphes Eulériens.

Introduction à l’Algorithmique
1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.
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.
Cours de graphes Les plus courts chemins,
Modélisation par le concept de graphe
Mise à Niveau en Recherche Opérationnelle
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
Journées Graphes & Algorithmes, Novembre 2006, Orléans
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chap. 1 INTRODUCTION Beaucoup de problèmes de la vie courante, tels la gestion de réseaux de communication ou l'ordonnancement de tâches, correspondent.
IN302 – Chapitre 3 Plus courts chemins. Existence De à : pas de chemin pas de plus court chemin.
Chapitre VIII. Introduction aux graphes
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.

Les structures de données arborescentes
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
Pr ZEGOUR Djamel Eddine
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-10541
Structures de données IFT-2000
Structures de données IFT-2000





1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Algorithmes d ’approximation
Recherche Opérationnelle
Recherche Opérationnelle
Optimisation de GRAPHES
- GRAPHES - Composantes et types
Titre : Implémentation des éléments finis en Matlab
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
Introduction aux problèmes d'ordonnancement sans temps-morts.
326 UMLV Méthodes de classement destinées à de grandes masses de données Applicables à des fichiers séquentiels Complexité : évaluée surtout en nombre.

Pour le chemin le plus court pour tous les couples
Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK.

201 UMLV  Type « dictionnaire » sous-ensembles finis de E (ordonné) avec les opérations : Ens_vide :  Ens Ajouter : Ens x Elément  Ens Enlever.

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
On cherche le plus court chemin de E à S sur le graphe suivant :
Tutorat 7 - Introduction au Routage et OSPF
Algorithmes Branch & Bound
Le problème central de l’ordonnancement (les plus longs chemins)
Licence Informatique Algorithmique des graphes
Powerpoint Templates Page 1 Powerpoint Templates BE Graphe : Algorithme de Dijsktra Distribution d’un algorithme Jeudi 7 mai 2012 RULLIER Anthony.
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
Projet Théorie des graphes
UMLV ã Plus courts chemins Toutes paires d'états
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