La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "1 Licence d’informatique Algorithmique des graphes Exploration de la descendance d’un sommet Utilisation de ce document strictement réservée aux étudiants."— Transcription de la présentation:

1 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 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 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 4 i j h gk e l b ca d f gk e l b ca d f Graphe G * = (  * (a),  a ) Exemple

5 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 6 Principe général d’exploration : visites visité(x) (axiome init) Etat initial : But (Etat final) : (arc) aprèsd' donc,et

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

8 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 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 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 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 12 Invariant : 2 états possibles pour chaque arc (y,z) : 1) Il n’est pas (encore?) visité Algorithme général d’exploration

13 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 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 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 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 17 STATUT DES SOMMETS ET DES ARCS i j h gk e l b ca d f dehors en_attente terminé visité

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

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

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

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

22 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 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 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 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 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 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 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 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 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 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 32 LARGEUR D’ABORD : LA FILE La FILE mettre_en_file(v) sens de déplacement va

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

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

35 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 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 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 38 a i j h gk e l b c d f FILE a

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

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

41 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 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 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 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 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 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 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 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 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 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 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 52 La PILE empiler(v) v w PROFONDEUR D’ABORD : LA PILE

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

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

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

56 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 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 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 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 60 i j h b c f aa c b e d f g k l h ARBORESCENCE D’EXPLORATION EN PROFONDEUR

61 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


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

Présentations similaires


Annonces Google