1 Licence d’informatique Algorithmique des graphes Exploration de la descendance d’un sommet Utilisation de ce document strictement réservée aux étudiants.

Slides:



Advertisements
Présentations similaires
Comparaison de deux algorithmes d’approximation
Advertisements

Théorie des graphes.
Explorer un espace d’états
3. Logique et mathématiques De la logique aux mathématiques.
Algorithmes et structures de données avancés
12/07/2006C2i Métiers de la Santé - Année universitaire 2006/2007 Tous droits réservés. 10pt Logo de votre Université => Champs référentiel couvert 20.
C2i Métiers de la Santé - Année universitaire 2007/ Tous droits réservés. Chapitre 0 : 30 pt normal Titre cours 44 pt gras Professeur Prénom NOM.

COURS DE MATHEMATIQUES DISCRETES SM
Modélisation par le concept de graphe
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
Bloc1 : Théorie des graphes et problèmes d’ordonnancement
Métrologie pour lInternet. Jean-Loup Guillaume Journées Franciliennes de Recherche Opérationnelle.
Définition : ordonnancement o Lordonnancement répartit lensemble des fonctions dans des étapes de contrôle en vérifiant un ensemble de contraintes. o lenchaînement.
LES GRAPHES.
Didactique des Sciences de l'Ingénieur
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.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
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.
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
Heuristiques A. Introduction B. Recherche d ’une branche
Théorie des graphes Un peu de vocabulaire.
Etude dune bibliothèque: Permutations sur les listes.
Recherche de chemins de coût minimal avec l’algorithme A
Algorithme de Bellman-Ford
Structures de données IFT-2000
Rappels de logique des prédicats du 1er ordre


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
Optimisation dans les réseaux
Recherche Opérationnelle
Atelier de formation : MAT optimisation II (les graphes).
Pour le chemin le plus court pour tous les couples
Exploration systématique de graphes
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.
On cherche le plus court chemin de E à S sur le graphe suivant :
Mathématiques Discrètes
Algorithmique et programmation (1)‏
Algorithmes sur les sons
Algorithmes Branch & Bound
Le problème central de l’ordonnancement (les plus longs chemins)
Licence Informatique Algorithmique des graphes
LE FLOT MAXIMAL et LA COUPE MINIMALE
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Droit d’auteur et Projet technologique en ST2S
Les Fonctions et leurs propriétés.
Modèles Mathématiques et représentation discrètes pour la description des images couleur Luc Brun.
1 Licence d’informatique Algorithmique des graphes Cours 7 : Graphes valués Chemins de valeur optimale Algorithme de Bellmann-Kalaba Utilisation de ce.
Licence d’informatique Algorithmique des graphes
Web sémantique est pratique documentaire
Exploration systématique de graphes
1 Licence d’informatique Algorithmique des graphes Utilisation de ce document strictement réservée aux étudiants de l ’IFSIC dans le cadre de leur formation.
Abdelkader Heni FUNDP Syntaxe et sémantique Abdelkader Heni FUNDP
Licence d’Informatique Algorithmique des graphes
Algorithme de DIJKSTRA
Systèmes formels 1. Définition d'un SF Morphologie Théorie propre
Aide mémoire Il existe une droite et une seule qui passe par deux points distincts.
Projet Théorie des graphes
© Promaintech Novaxa – Tous droits d’utilisation réservés Intervalles de confiance Introduction à la statistique industrielle.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Cycle, Cocycle, Arbre et Arborescence
IFT 615 – Intelligence artificielle Recherche heuristique
UMLV ã Plus courts chemins Toutes paires d'états
Transcription de la présentation:

1 Licence d’informatique Algorithmique des graphes Exploration de la descendance d’un sommet Utilisation de ce document strictement réservée aux étudiants de l ’IFSIC dans le cadre de leur formation. Reproduction ou diffusion en dehors de l ’IFSIC strictement interdite sauf autorisation expresse de l’ auteur.

2 Explorer la descendance d’un sommet Donnée : un graphe G, et un sommet x de ce graphe Résultat : la descendance de x dans le graphe G Qu’est-ce que c’est ? Définition : le sommet y est descendant de x dans G si x = y ou si il existe un chemin de G, allant de x à y

3 Explorer la descendance d’un sommet Donnée : un graphe G, et un sommet x de ce graphe Résultat : la descendance de x dans le graphe G Mais aussi : Définition : l ’arc (y, z) appartient à la descendance de x dans G si c’est un arc de G et si y est descendant de x dans G

4 i j h gk e l b ca d f gk e l b ca d f Graphe G * = (  * (a),  a ) Exemple

5 Principe général d’exploration : visites visité(y) : le sommet y a été visité (par l’exploration) visité(y,z) : l’arc (y, z) a été visité (par l’exploration) Prédicats : Axiomes : (le sommet initial x est visité a priori) (seul un arc du graphe peut être visité et son origine doit être visitée) (un sommet z est visité ssi au moins un arc vers z est visité)

6 Principe général d’exploration : visites visité(x) (axiome init) Etat initial : But (Etat final) : (arc) aprèsd' donc,et

7 Algorithme général d’exploration Invariant : 3 états possibles pour chaque sommet y : 1) Il n’est pas (encore?) visité

8 Invariant : 3 états possibles pour chaque sommet y : 1) Il n’est pas (encore?) visité (donc aucun des arcs qui y aboutissent non plus) Algorithme général d’exploration

9 Invariant : 3 états possibles pour chaque sommet y : 1) Il n’est pas (encore?) visité 2) Il est déjà visité, et ses arcs sortants ne sont pas encore tous visités (la réciproque de cet axiome n’est pas vraie) (donc aucun des arcs qui y aboutissent non plus) Algorithme général d’exploration

10 Invariant : 3 états possibles pour chaque sommet y : 1) Il n’est pas (encore?) visité 2) Il est déjà visité, et ses arcs sortants ne sont pas encore tous visités 3) Il est déjà visité, et ses arcs sortants sont tous visités (donc tous ses successeurs sont aussi visités) (donc aucun des arcs qui y aboutissent non plus) Algorithme général d’exploration

11 Invariant : 3 états possibles pour chaque sommet y : 1) Il n’est pas (encore?) visité 2) Il est déjà visité, et ses arcs sortants ne sont pas encore tous visités 3) Il est déjà visité, et ses arcs sortants sont tous visités (donc tous ses successeurs sont aussi visités) (donc aucun des arcs qui y aboutissent non plus) dehors en_attente terminé Algorithme général d’exploration

12 Invariant : 2 états possibles pour chaque arc (y,z) : 1) Il n’est pas (encore?) visité Algorithme général d’exploration

13 Invariant : 2 états possibles pour chaque arc (y,z) : 1) Il n’est pas (encore?) visité 2) Il est déjà visité (donc son origine y et son extrémité z aussi - axiomes (sommet) et (arc)) Algorithme général d’exploration

14 Invariant : L’ensemble des sommets du graphe se répartit en : L’ensemble des arcs du graphe se répartit en : Algorithme général d’exploration

15 Invariant : L’ensemble des sommets du graphe se répartit en : Propriétés : (seuls les sommets descendants de x peuvent être visités) Algorithme général d’exploration

16 Invariant : Propriétés : (seuls les sommets descendants de x peuvent être visités) L ’ensemble des arcs du graphe se répartit en : (seuls les arcs de la descendance de x peuvent être visités) Algorithme général d’exploration

17 STATUT DES SOMMETS ET DES ARCS i j h gk e l b ca d f dehors en_attente terminé visité

18 ARRET : état final de l’exploration : Par définition : Algorithme général d’exploration

19 ARRET : état final de l ’exploration : C’est-à-dire tout y visité est terminé Algorithme général d’exploration

20 ARRET : état final de l’exploration : Réciproquement : Donc : Algorithme général d’exploration

21 ARRET : état final de l’exploration : Réciproquement : Algorithme général d’exploration

22 INIT : Algorithme général d’exploration état initial de l’exploration : visité(x) V <-  ; si x a des successeurs alors T <-  ; A <- {x}; sinon T <- {x}; A <-  fsi ; D <- tous les sommets sauf x

23 PROGRESSION: Maintien des axiomes (init) un sommet visité ne repasse jamais dehors (sommet) après visite d’un arc (y,z), z n’est pas dehors (arc) la visite d’un arc (y,z) n’est possible que si y est en_attente A chaque étape, le nombre d’arcs non visités doit décroître Terminaison Algorithme général d’exploration

24 PROGRESSION: (arc) la visite d’un arc (y,z) n’est possible que si y est en_attente A chaque étape, le nombre d’arcs non visités doit décroître soit y un sommet d’état en_attente ; soit z un successeur de y tel que (y,z) est non visité; visiter l’arc (y,z); (sommet) après visite d’ un arc (y,z), z n’est pas dehors Si z est dehors (* non visité *) alors (* visiter y *) si z a des successeurs alors z devient en_attente sinon z devient terminé fsi Algorithme général d’exploration

25 Si z est dehors (* non visité *) alors si z a des successeurs alors z devient en_attente sinon z devient terminé fsi; PROGRESSION: soit y un sommet d’état en_attente ; soit z un successeur de y tel que (y,z) est non visité; Visiter l’arc (y,z); (init) un sommet visité ne repasse jamais dehors si tous les arcs issus de y sont visités alors y devient terminé Algorithme général d’exploration

26 STATUT DES SOMMETS ET DES ARCS i j h gk e l b ca d f dehors en_attente terminé visité en_attente déjà en_attente

27 STATUT DES SOMMETS ET DES ARCS i j h gk e l b ca d f dehors en_attente terminé visité dehors en_attente Encore des arcs à visiter? NON en_attente terminé

28 Si z est dehors (* non visité *) alors si z a des successeurs alors z devient en_attente sinon z devient terminé si tous les arcs issus de y sont visités alors y devient terminé Maintien des propriétés invariantes: soit y un sommet d’état en_attente ; soit z un successeur de y tel que (y,z) est non visité; Visiter l’arc (y,z); fsi ; Par induction :vrai initialement vrai chaque fois qu’un sommet devient en_attente ou terminé

29 si tous les arcs issus de y sont visités alors y devient terminé Si z est dehors (* non visité *) alors si z a des successeurs alors z devient en_attente sinon z devient terminé Maintien des propriétés invariantes: soit y un sommet d ’état en_attente ; soit z un successeur de y tel que (y,z) est non visité; Visiter l ’arc (y,z); fsi ; Par induction :vrai initialement vrai chaque fois qu’un arc devient visité

30 Stratégies particulières On particularise l’algorithme général en spécifiant le sommet en_attente à partir duquel on poursuit l’exploration Deux exemples : LARGEUR : choisir le sommet « le plus ancien » PROFONDEUR : choisir le sommet « le plus récent »

31 LARGEUR D’ABORD : LA FILE Comment repérer le sommet en_attente « le plus ancien »? Gérer l’ensemble A avec la structure de données adéquate : La FILE Premier Arrivé Premier Sorti PAPS

32 LARGEUR D’ABORD : LA FILE La FILE mettre_en_file(v) sens de déplacement va

33 LARGEUR D’ABORD : LA FILE La FILE mettre_en_file(v) sens de déplacement v x  ôter_de_file a x

34 x LARGEUR D’ABORD : LA FILE La FILE mettre_en_file(v) sens de déplacement v x  ôter_de_file a

35 LARGEUR D’ABORD : LA FILE La FILE mettre_en_file(v) sens de déplacement v x  ôter_de_file f  créer b  filevide

36 LARGEUR D’ABORD : LA FILE sens de déplacement Sommet en tête sélectionné : devient terminé ; Une étape de l ’algorithme : y

37 LARGEUR D’ABORD : LA FILE sens de déplacement z1z1 Sommet en tête sélectionné : devient terminé ; tous ses arcs sortants sont visités ; ses successeurs encore dehors deviennent en_attente (ils rentrent dans la file); Une étape de l ’algorithme : yz2z2 z3z3

38 a i j h gk e l b c d f FILE a

39 i j h gk b e l c d f FILE a c e l a

40 i j h gk b e l c d f FILE a c e l a e l b

41 i j h gk b e l c d f FILE a c e l a e l b l b d f

42 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k

43 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k Déjà visité d f h k

44 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k d f h k Pas de successeur f h k

45 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k d f h k f h k Déjà visité h k g

46 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k d f h k f h k h k g Déjà visité k g

47 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k d f h k f h k h k g Sommets déjà visités k g g

48 i j h gk b e l c d f FILE a c e l a e l b l b d f b d f h k d f h k f h k h k g déjà visité k g g 

49 i j g h k b e l c d f aa d f h k g ARBORESCENCE D’EXPLORATION EN LARGEUR DISTANCE 1 DISTANCE 2 DISTANCE 3

50 Stratégies particulières On particularise l ’algorithme général en spécifiant le sommet en_attente à partir duquel on poursuit l’exploration Deux exemples : LARGEUR : choisir le sommet « le plus ancien » PROFONDEUR : choisir le sommet « le plus récent »

51 PROFONDEUR D’ABORD : LA PILE Comment repérer le sommet en_attente « le plus récent » ? Gérer l ’ensemble A avec la structure de données adéquate : La PILE Dernier Arrivé Premier Sorti DAPS

52 La PILE empiler(v) v w PROFONDEUR D’ABORD : LA PILE

53 La PILE empiler(v) v w PROFONDEUR D’ABORD : LA PILE dépiler

54 La PILE empiler(v) w PROFONDEUR D’ABORD : LA PILE dépiler x  sommet_pile x w

55 La PILE empiler(v) w PROFONDEUR D’ABORD : LA PILE dépiler x  sommet_pile p  créer b  pilevide

56 y PROFONDEUR D’ABORD : LA PILE Une étape de l ’algorithme : Sommet en tête sélectionné ; Choix d’un arc sortant (y,z) non encore visité ; Visite de l ’arc (y,z) ; Si z est dehors alors il devient en_attente : empiler(z) ; z

57 y PROFONDEUR D’ABORD : LA PILE Une étape de l’algorithme : Sommet en tête sélectionné ; Choix d’un arc sortant (y,z) non encore visité ; Si tous les arcs sortants de y sont visités, y devient terminé ; (dépiler)

58 PROFONDEUR D’ABORD : LA PILE Une étape de l’algorithme : Sommet en tête sélectionné ; Choix d’un arc sortant (y,z) non encore visité ; Si tous les arcs sortants de y sont visités, y devient terminé ; (dépiler) IL FAUT DONC ATTACHER A CHAQUE SOMMET en_attente L’ENSEMBLE DES ARCS A VISITER

59 aa i j h gk e l b c d f PILE a a c a c b a c b e a c b e d a c b e a c b e f a c b e f g a c b e f g k a c b e f g k l a c b e f g k l h a c b e f g k l a c b e f g k a c b e f g a c b e f a c b e a c b a c a 

60 i j h b c f aa c b e d f g k l h ARBORESCENCE D’EXPLORATION EN PROFONDEUR

61 Comparaison des deux stratégies Algorithme simple (pas de mémorisation des arcs à visiter) Arborescence des chemins les plus courts (en terme de nombre d’arcs) LARGEUR : PROFONDEUR : Algorithme plus compliqué (mémorisation des arcs à visiter) Arborescence de chemins longs (en terme de nombre d’arcs) Tout état de la pile est un chemin : possibilité de « greffer » sur le parcours des calculs sur les chemins Les états de la file ne sont pas des chemins : pas de calculs sur les chemins lors du parcours