licence d informatique algorithmique des graphes n.
Skip this Video
Loading SlideShow in 5 Seconds..
Licence d’informatique Algorithmique des graphes PowerPoint Presentation
Download Presentation
Licence d’informatique Algorithmique des graphes

play fullscreen
1 / 61
Download Presentation

Licence d’informatique Algorithmique des graphes - PowerPoint PPT Presentation

fabian
95 Views
Download Presentation

Licence d’informatique Algorithmique des graphes

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Licence d’informatiqueAlgorithmique 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 Gsi x = you 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 Gsi c’est un arc de Get siy est descendant de x dans G

  4. g k l g k l f f a c a c e e d b d b Graphe G* = (*(a) , a ) Exemple i h j

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

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

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

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

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

  10. Algorithme général d’exploration Invariant : 3 états possibles pour chaque sommet y : 1) Il n’est pas (encore?) visité (donc aucun des arcs qui y aboutissent non plus) 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)

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

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

  13. Algorithme général d’exploration 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))

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

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

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

  17. dehors terminé visité en_attente STATUT DES SOMMETS ET DES ARCS i g k l f h a c e j d b

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

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

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

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

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

  23. Algorithme général d’exploration 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 Terminaison A chaque étape, le nombre d’arcs non visités doit décroître

  24. soit z un successeur de y tel que (y,z) est non visité; visiter l’arc (y,z); Algorithme général d’exploration PROGRESSION: soit y un sommet d’état en_attente ; Si z est dehors (* non visité *) alors(* visiter y *) si z a des successeurs alors z devient en_attente sinon z devient terminé fsi (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 (sommet) après visite d’ un arc (y,z), z n’est pas dehors

  25. Algorithme général d’exploration 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); Si z est dehors (* non visité *) alors si z a des successeurs alors z devient en_attente sinon z devient terminé fsi; si tous les arcs issus de y sont visités alors y devient terminé (init) un sommet visité ne repasse jamais dehors

  26. dehors déjà en_attente terminé visité en_attente STATUT DES SOMMETS ET DES ARCS en_attente i g k l f h a c e j d b

  27. dehors visité en_attente dehors STATUT DES SOMMETS ET DES ARCS terminé en_attente Encore des arcs à visiter? NON i g k l terminé f h a c en_attente e j d b

  28. vrai initialement 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); Si z est dehors (* non visité *) alors si z a des successeurs alors z devient en_attente sinon z devient terminé fsi ; si tous les arcs issus de y sont visités alors y devient terminé Par induction : vrai chaque fois qu’un sommet devient ou terminé en_attente

  29. vrai initialement 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); Si z est dehors (* non visité *) alors si z a des successeurs alors z devient en_attente sinon z devient terminé fsi ; si tous les arcs issus de y sont visités alors y devient terminé Par induction : 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érerl’ensemble A avec la structure de données adéquate : La FILE PAPS Premier Arrivé Premier Sorti

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

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

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

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

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

  37. LARGEUR D’ABORD : LA FILE z1 z2 z3 y Une étape de l ’algorithme : sens de déplacement 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);

  38. a i g k l FILE a f h c e j d b

  39. l c e i g k FILE a c e l f a h j d b

  40. l c e i g k FILE a c e l f e l b a h j d b

  41. l c e i g k FILE a c e l f e l b a h l b d f j d b

  42. l c e i g k FILE a c e l f e l b a h l b d f bd f h k j d b

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

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

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

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

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

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

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

  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 »