Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parGuy Mauger Modifié depuis plus de 9 années
1
Parcours, fouilles et vagues Franck Petit LaRIA Université de Picardie Jules Verne, Amiens Franck.Petit@u-picardie.fr
2
Franck Petit Parcours, Fouilles et Vagues Graphes n Abstraction de problèmes u Théorie de jeux u Ordonnancement de tâches u Logique (SATisfiabilité) u Plus cours chemin d'un point à un autre n Abstraction de situation "concrètes" u Réseaux de transport (ferré, routier, avions, gaz...) u Circuits électriques u Réseaux d'ordinateurs Parcours, Fouilles
3
Franck Petit Parcours, Fouilles et Vagues Parcours, Fouilles n Parcours en profondeur n Parcours en largeur n But : Exploration du graphe en vue de... u trouver une solution (jeux, ordonnancement...) u détecter une particularité structurelle du graphe (point d'articulation, isthme, circuit, cycle hamiltonien...) u construction d'arbre couvrant Et les systèmes distribués...
4
Franck Petit Parcours, Fouilles et Vagues Système Distribué
5
Franck Petit Parcours, Fouilles et Vagues Système Distribué Applications parallèles et distribuées dans les réseaux d'ordinateurs Logiciel (système d'exploitation) distribué de gestion du réseau Problème de contrôle des ressources
6
Franck Petit Parcours, Fouilles et Vagues Système Distribué n Diffusion d'information, routage, protocoles de communication n Désignation (Election) d'un leader n Partage de ressource (Exclusion Mutuelle) n Arbre couvrant, algorithme de recherche de point sensible n Synchronisation n Détection d'étreinte fatale, détection de terminaison n Protocole d'initialisation n Calcul parallèle (Tri distribué, calcul massif, etc), grilles... Vagues Fouilles
7
Franck Petit Parcours, Fouilles et Vagues Plan Parcours en profondeur Parcours en largeurVagues, auto-stabilisation et stabilisation instantanée Systèmes Distribués et auto- stabilisation
8
Franck Petit Parcours, Fouilles et Vagues Définition graphe n Graphe simple * G = ( V, E ) n Graphes non orientés n Connexe * sans boucle, une seule arête entre deux sommets
9
Franck Petit Parcours, Fouilles et Vagues Définition Système Distribué n Système distribué SD = ( P, C ) n Liens de communication bidirectionnels n Réseau connexe
10
Franck Petit Parcours, Fouilles et Vagues Définition Système Distribué n Communications par échange de message
11
Franck Petit Parcours, Fouilles et Vagues Performances des Système Distribué n Complexité en taille de la mémoire requise ( Mesurée en "nombre d'états par processeur") n Complexité en Temps n Tolérance aux fautes (ou pannes)
12
Franck Petit Parcours, Fouilles et Vagues n Algorithme due à Trémaux (1818-1895) Rapporter par Edouard Lucas (1842-1891), dans"Récréations Mathématiques", Vol. 1, Gauthier Villars, Paris, 1882 Chapitre 1 : Les traversées, les ponts, les labyrinthes, les reines, le solitaire, la numération, le baguenaudier, la taquin. n But de Trémaux : Résoudre le problème de la sortie d'un labyrinthe n Tarjan. Depth First Search and Linear Graph Algorithms, SIAM Journal of Computing 1, (1972), 146--160 Parcours en profondeur Plan
13
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en . r Arborescence de Trémaux * Un sommet v est marqué si il existe u, voisin de v, tel que u v.
14
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
15
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
16
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
17
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
18
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
19
Franck Petit Parcours, Fouilles et Vagues ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en . Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v * Un sommet v est marqué si il existe u, voisin de v, tel que u v.
20
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
21
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
22
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
23
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
24
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
25
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
26
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
27
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
28
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v u * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
29
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
30
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
31
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux vv v v vv v v vv v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
32
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
33
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux vv vv * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
34
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r r Arborescence de Trémaux v v vv v * Un sommet v est marqué si il existe u, voisin de v, tel que u v. ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en .
35
Franck Petit Parcours, Fouilles et Vagues n Utilité dans le domaine des graphes u Recherche des points d'articulation u Recherche des composantes (fortement) connexes (graphes orientés) u Tri topologique (graphes orienté, sans circuit) u... Parcours en profondeur Et les systèmes distribués...
36
Franck Petit Parcours, Fouilles et Vagues n Utilité dans le domaine des systèmes distribués u Recherche des points d'articulation u Exclusion mutuelle u Construction d'arbre couvrant u Algorithmes de Routage u D'une façon plus générale, tout ce qui nécessite un algorithme à vague... Parcours en profondeur Séquentiel Et comment fait-on un parcours profondeur dans un système distribué ?
37
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur ¶A partir d'une racine r, faire v := r ·Si tous les voisins de v sont marqués *, alors aller en . ¸Choisir un voisin non marqué * u, orienter l'arête u v de u vers v (u v), faire v := u puis aller en . ¹Si tous les arcs reliées à v sont orientées vers v, alors c'est terminé, sinon choisir le voisin u de v tel que v u, faire v := u, puis aller en . * Un sommet v est marqué si il existe u, voisin de v, tel que u v.
38
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur La racine r : "Je décide de faire un parcours en profondeur!" FilsCourant := l L Envoyer jeton J à FilsCourant. Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués Envoyer J à FilsCourant. sinonEnvoyer J à l Constantes:L: ensemble de liens Variables: Père, FilsCourant: lien, initialement ; Marqués : Ensembles de liens, initialement
39
Franck Petit Parcours, Fouilles et Vagues Parcours en profondeur La racine r : "Je décide de faire un parcours en profondeur!" FilsCourant := l L \ Marqués (un lien (voisin) non marqué l) Envoyer jeton J à FilsCourant. r
40
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P
41
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P
42
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P
43
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P
44
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P
45
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P
46
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P
47
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P
48
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués:= Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P
49
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P P
50
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P P
51
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
52
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
53
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
54
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
55
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
56
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
57
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
58
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
59
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
60
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
61
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP
62
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P
63
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P
64
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P
65
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P
66
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P
67
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P P P
68
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P P P
69
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P P P
70
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P P P
71
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P P P
72
Franck Petit Parcours, Fouilles et Vagues Pour tous:A la réception de J, sur un lien l faire Si Marqués = (c'est la première fois je reçois J), alors Père := l. Marqués := Marqués {l} Si Marqués = L alors Si Père = (je suis la racine) alors C'est Terminé! sinon Envoyer J à mon Père sinonSi l = FilsCourant ou l = Père alorsFilsCourant := l L \ Marqués, Envoyer J à FilsCourant. sinonEnvoyer J à l Parcours en profondeur r P P P P P P P PP P P P P P P P P
73
Franck Petit Parcours, Fouilles et Vagues n Complexité u Complexité en nombre d'étapes : F Graphe : 2(n-1) m étapes (nombre d'arcs de l'arbre couvrant) F Systèmes Distribués : 2m étapes (nombre d'arêtes du graphe) n Complexités comparables... Parcours en profondeur
74
Franck Petit Parcours, Fouilles et Vagues Plan Parcours en largeur n Algorithme due à ??? n Utilité moins évidente dans le domaine des graphes.... u Stratégie de résolution dans la théorie des jeux (algorithme de retour en arrière, Branch and Bound...) u SAT
75
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶A partir d'une racine r, nommer r "0" ·Si tous les sommets sont nommés, alors c'est terminé. ¸Pour tout sommet v adjacent à au moins un sommet nommé, Nommer v par "le min de ses voisins nommés" +1 ¸Aller en . r Premier Algorithme 0 1 1 1 1
76
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶A partir d'une racine r, nommer r "0" ·Si tous les sommets sont nommés, alors c'est terminé. ¸Pour tout sommet v adjacent à au moins un sommet nommé, Nommer v par "le min de ses voisins nommés" +1 ¸Aller en . r Premier Algorithme 0 1 1 1 1 2 2 22 2 2
77
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶A partir d'une racine r, nommer r "0" ·Si tous les sommets sont nommés, alors c'est terminé. ¸Pour tout sommet v adjacent à au moins un sommet nommé, Nommer v par "le min de ses voisins nommés" +1 ¸Aller en . r Premier Algorithme 0 1 1 1 1 2 2 22 2 2 3 333 3
78
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶A partir d'une racine r, nommer r "0" ·Si tous les sommets sont nommés, alors c'est terminé. ¸Pour tout sommet v adjacent à au moins un sommet nommé, Nommer v par "le min de ses voisins nommés" +1 ¸Aller en . r Premier Algorithme 0 1 1 1 1 2 2 22 2 2 3 333 34
79
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶A partir d'une racine r, nommer r "0" ·Si tous les sommets sont nommés, alors c'est terminé. ¸Pour tout sommet v adjacent à au moins un sommet nommé, Nommer v par "le min de ses voisins nommés" +1 ¸Aller en . r Premier Algorithme 0 1 1 1 1 2 2 22 2 2 3 333 34 5
80
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶A partir d'une racine r, nommer r "0" ·Si tous les sommets sont nommés, alors c'est terminé. ¸Pour tout sommet v adjacent à au moins un sommet nommé, Nommer v par "le min de ses voisins nommés" +1 ¸Aller en . r 0 1 1 1 1 2 2 22 2 2 3 333 34 5 Premier Algorithme
81
Franck Petit Parcours, Fouilles et Vagues n Permet de fixer une profondeur maximum F Graphe infini (résolution de problème, SAT...) n Arbre de hauteur minimale n Permet de calculer le plus cours chemin d'un sommet à la racine n Offre la possibilité d'avoir un "arbre" couvrant à plusieurs pères (DAG: Directed Acyclic Graph) Intérêt du premier algorithme
82
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶Tant qu'il existe un sommet non marqué *, Pour tout voisin u d'un sommet marqué * v, choisir un des voisins marqué * v' de u et orienter l'arête u v' de u vers v' fin pour fin tant que ·C'est terminé. r * Un sommet v est marqué si v = r ou si il existe u, voisin de v, tel que u v Deuxième Algorithme
83
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶Tant qu'il existe un sommet non marqué *, Pour tout voisin u d'un sommet marqué * v, choisir un des voisins marqué * v' de u et orienter l'arête u v' de u vers v' fin pour fin tant que ·C'est terminé. r * Un sommet v est marqué si v = r ou si il existe u, voisin de v, tel que u v Deuxième Algorithme
84
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶Tant qu'il existe un sommet non marqué *, Pour tout voisin u d'un sommet marqué * v, choisir un des voisins marqué * v' de u et orienter l'arête u v' de u vers v' fin pour fin tant que ·C'est terminé. r * Un sommet v est marqué si v = r ou si il existe u, voisin de v, tel que u v Deuxième Algorithme
85
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶Tant qu'il existe un sommet non marqué *, Pour tout voisin u d'un sommet marqué * v, choisir un des voisins marqué * v' de u et orienter l'arête u v' de u vers v' fin pour fin tant que ·C'est terminé. r * Un sommet v est marqué si v = r ou si il existe u, voisin de v, tel que u v Deuxième Algorithme
86
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶Tant qu'il existe un sommet non marqué *, Pour tout voisin u d'un sommet marqué * v, choisir un des voisins marqué * v' de u et orienter l'arête u v' de u vers v' fin pour fin tant que ·C'est terminé. r * Un sommet v est marqué si v = r ou si il existe u, voisin de v, tel que u v Deuxième Algorithme
87
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur ¶Tant qu'il existe un sommet non marqué *, Pour tout voisin u d'un sommet marqué * v, choisir un des voisins marqué * v' de u et orienter l'arête u v' de u vers v' fin pour fin tant que ·C'est terminé. r * Un sommet v est marqué si v = r ou si il existe u, voisin de v, tel que u v Deuxième Algorithme
88
Franck Petit Parcours, Fouilles et Vagues n Arbre de hauteur minimale n Permet de calculer le plus cours chemin d'un sommet à la racine n Calcul un arbre couvrant unique (pas de DAG) n Utilise moins de ressources mémoires... Intérêt du second algorithme Systèmes Distribués n De plus, les deux algorithmes sont fondamentalement parallèles alors que le parcours en profondeur est fondamentalement séquentiel
89
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur La racine r : "Je décide de faire un parcours en largeur!" Pour tout l L, Envoyer m à l Constantes:L: ensemble de liens Variables: Père : lien, initialement ; Marqués, Fils: Ensembles de liens, initialement A la réception de m, sur un lien l faire Marqués := Marqués {l} Si Marqués = L alors C'est Terminé! finsi
90
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur Constantes:L: ensemble de liens Variables: Père : lien, initialement ; Marqués, Fils: Ensembles de liens, initialement Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinon Marqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi
91
Franck Petit Parcours, Fouilles et Vagues La racine r : "Je décide de faire un parcours en largeur!" Pour tout l L, Envoyer m à l Parcours en largeur r Une exécution "idéale"...
92
Franck Petit Parcours, Fouilles et Vagues Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi Parcours en largeur r Une exécution "idéale"... P P P P
93
Franck Petit Parcours, Fouilles et Vagues Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi Parcours en largeur r Une exécution "idéale"... P P P P P P P P P P
94
Franck Petit Parcours, Fouilles et Vagues Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi Parcours en largeur r Une exécution "idéale"... P P P P P P P P P P P P P P P
95
Franck Petit Parcours, Fouilles et Vagues Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi Parcours en largeur r Une exécution "idéale"... P P P P P P P P P P P P P P P P
96
Franck Petit Parcours, Fouilles et Vagues Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi Parcours en largeur r Une exécution "idéale"... P P P P P P P P P P P P P P P P P
97
Franck Petit Parcours, Fouilles et Vagues La racine r : "Je décide de faire un parcours en largeur!" Pour tout l L, Envoyer m à l Parcours en largeur r Ceci est un canal lent! Ceci est un canal rapide! Ceci est aussi un canal lent !
98
Franck Petit Parcours, Fouilles et Vagues Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi Parcours en largeur r Ceci est un processeur rapide! P
99
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r P P Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi
100
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r P PP Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi
101
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r P PP P Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi
102
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r P PP P P Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi
103
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r P PP P P PP Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi
104
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r P PP P P P P P C'est fichu... :-( (sniff!) Pour tout p r:A la réception de m, sur un lien l faire Si Marqués = (c'est la première fois je reçois m), alorsPère := l, Marqués := Marqués {l} Si Marqués = L alorsEnvoyer m à mon Père sinonPour tout l L \ Marqués, Envoyer m à l sinonMarqués := Marqués {l} Si Marqués = L alors Envoyer m à mon Père finsi finsi
105
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur Propagation of Information with Feedback (Propagation d'information avec Retour) Chang [1982] - Segall [1983] n Utilise au mieux les capacités et le parallélisme du réseau n Assez "mauvais" pour construire un arbre couvrant (mécanisme dynamique) Et si on veut vraiment un arbre en largeur... n On vient d'inventer le PIF!
106
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r n Synchroniseur d'Awerbush [1985] "Est-tu mon Fils ?"
107
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r n Synchroniseur d'Awerbush [1985] "Est-tu mon Fils ?" Oui!Non! "Est-ce que tu prolonges ?" P P P P
108
Franck Petit Parcours, Fouilles et Vagues Parcours en largeur r n Synchroniseur d'Awerbush [1985] "Est-tu mon Fils ?" Oui!Non! "Est-ce que tu prolonges ?" P P P P P P P P P etc.
109
Franck Petit Parcours, Fouilles et Vagues n Complexité en nombre d'étapes : u Graphe : O(D) u Systèmes Distribués : F O(D) pour le PIF F O(D²) pour l'arbre couvrant en largeur Parcours en largeur
110
Franck Petit Parcours, Fouilles et Vagues Plan Parcours en profondeur Parcours en largeurSystèmes Distribués et auto- stabilisation
111
Franck Petit Parcours, Fouilles et Vagues Performances des Système Distribué n Complexité en taille de la mémoire requise ( Mesurée en "nombre d'états par processeur") n Complexité en Temps n Tolérance aux fautes (ou pannes) Self-Stabilization
112
Franck Petit Parcours, Fouilles et Vagues Quel que soit son état initial, le système est sûr d’atteindre par lui-même un état légitime en un nombre fini d’étapes. Dijkstra 1974 Messages incorrects dans les canaux Valeurs incorrectes dans les variables Auto-stabilisation
113
Franck Petit Parcours, Fouilles et Vagues Quel que soit son état initial, le système est sûr d’atteindre par lui-même un état légitime en un nombre fini d’étapes. Dijkstra 1974 Perturbation correct Phase de stabilisation Auto-stabilisation
114
Franck Petit Parcours, Fouilles et Vagues p Modèle à états
115
Franck Petit Parcours, Fouilles et Vagues Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent top p = TR1 : (vp (vp =vg)=vg) v p :=v g 1 p top TR2 : (v p vg)vg) v p :=v g gd g g g g g g gd d d d d d d Anneau à jeton
116
Franck Petit Parcours, Fouilles et Vagues Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent TR1 TR2 top TR2 TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g Auto-stabilisant ? Anneau à jeton
117
Franck Petit Parcours, Fouilles et Vagues top TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
118
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
119
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
120
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g TR2 Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
121
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g TR2 Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
122
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g TR2 Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
123
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g TR2 Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
124
Franck Petit Parcours, Fouilles et Vagues top TR1 TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g TR2 Anneau à jeton Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent
125
Franck Petit Parcours, Fouilles et Vagues Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent top TR2 p = top TR1 : (v p =v g ) v p :=v g 1 p top TR2 : (v p v g ) v p :=v g TR2 Idem configuration initiale Anneau à jeton
126
Franck Petit Parcours, Fouilles et Vagues top p = TR1 : (vp (vp =vg)=vg) v p :=v g k 1 p top TR2 : (v p vg)vg) v p :=v g 7 5 28 3 1 4 6 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
127
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 2 5 53 1 4 6 7 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
128
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 5 51 4 6 7 2 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
129
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 5 54 6 7 2 5 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
130
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 5 56 7 2 5 5 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
131
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 5 57 2 5 5 5 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
132
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 5 52 5 5 5 5 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
133
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 5 55 5 5 5 5 TR1 Valeur de k ? Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
134
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 6 1 71 2 3 4 5 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
135
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 7 2 12 3 4 5 6 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
136
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 1 3 23 4 5 6 7 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
137
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 2 4 34 5 6 7 1 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
138
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 3 5 45 6 7 1 2 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
139
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 4 6 56 7 1 2 3 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
140
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 5 7 67 1 2 3 4 TR2 TR1 TR2 Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
141
Franck Petit Parcours, Fouilles et Vagues top p = top TR1 : (v p =v g ) v p :=v g k 1 p top TR2 : (v p v g ) v p :=v g 6 8 71 2 3 4 5 TR2 Temps de Stabilisation : O(n) Spécification Sûreté : Au plus un jeton dans le système Vivacité : Chaque processeur obtient le jeton infiniment souvent Anneau à jeton
142
Franck Petit Parcours, Fouilles et Vagues Bottom Top Middle [Dijkstra 74] BT BottomTopMiddle
143
Franck Petit Parcours, Fouilles et Vagues Bottom Top Middle [Dijkstra 74] BT BottomTopMiddle
144
Franck Petit Parcours, Fouilles et Vagues Plan Parcours en profondeur Parcours en largeurVagues, auto-stabilisation et stabilisation instantanée Systèmes Distribués et auto- stabilisation
145
Franck Petit Parcours, Fouilles et Vagues Plan Parcours en profondeur Parcours en largeurVagues, auto-stabilisation et stabilisation instantanée Systèmes Distribués et auto- stabilisation
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.