• Aucun résultat trouvé

L’orientation locale et l’automate correspondant

Nous d´ecrivons d’abord notre algorithme calculant l’orientation locale du graphe. Cet algorithme est principalement bas´e sur le codage d’un arbre couvrant du graphe en choi-sissant les petits num´eros de port pour les arˆetes de l’arbre couvrant.

Ensuite, nous pr´esentons un automate de Mealy `a trois ´etats qui explore l’arbre cou-vrant construit (plus quelques arˆetes additionnelles) `a la mani`ere d’un parcours en pro-fondeur d’abord (DFS).

Nous concluons cette section en prouvant que notre algorithme et l’automate corres-pondant sont corrects.

7.2. L’ORIENTATION LOCALE ET L’AUTOMATE CORRESPONDANT 139

7.2.1 Algorithme calculant l’orientation locale

Soit G = (V, E) un graphe. Consid´erons un arbre couvrant T de G. Soit F ⊆ E

l’ensemble des arˆetes de T. Pour tout sommetv ∈V, on poseFv l’ensemble des arˆetes de

F incidentes `a v.

D´efinition 28 Une orientation locale des arˆetes du graphe Gest compatible avec l’arbre couvrant T = (V, F) si et seulement si :

– pour toute arˆete e ∈ E, au moins l’un de ses deux num´eros de port est 0 si et seulement si e∈F ;

– pour tout sommetv ∈V, les arˆetes dansFv ont leur num´ero de port de0`a|F(v)|−1. Une orientation locale de G est dite arbre-orient´ee s’il existe un arbre couvrant T de G

tel que l’orientation locale est compatible avec T.

Notre algorithme, appel´e Petits-Ports, construit des orientations locales qui sont arbre-orient´ees. Pour fixer les id´ees, l’algorithme utilise l’orientation locale suivante.

Algorithme Petits-Ports :

1. Prendre un arbre couvrant enracin´eT deG. Soit r sa racine.

2. Pour tout sommet v 6= r, affecter le num´ero de port 0 `a l’arˆete de T allant en direction de la racine. En r, affecter le num´ero de port 0 `a une arˆete arbitraire de

Fr.

3. Pour tout sommetv deG, affecter arbitrairement les num´eros de port de 1 `a|Fv| −1 aux arˆetes restantes de Fv, s’il y en a.

4. Finalement, affecter arbitrairement les num´eros de port de |Fv|`a dv −1 aux arˆetes auxquelles aucun num´ero de port n’a encore ´et´e affect´e, s’il en reste.

Cette orientation locale est clairement compatible avec T.

Remarque 7.1 Petits-Ports est tr`es simple puisqu’il ne requiert que le calcul d’un arbre couvrant pour fixer l’orientation locale. De plus, de nombreuses applications uti-lisent un arbre couvrant comme structure sous-jacente et dans ce cas, Petits-Ports

peut l’utiliser sans surcoˆut. Les performances et la simplicit´e de Petits-Ports doivent ˆetre compar´ees `a celles de l’algorithme pr´esent´e dans [DJSS05]. Petits-Portss’ex´ecute en temps O(m) tandis que l’algorithme dans [DJSS05] s’ex´ecute en temps O(n3).

Remarque 7.2 Consid´erons un graphe G et une orientation locale arbre-orient´ee de G. Il existe un unique arbre couvrant T de G tel que cette orientation locale soit compatible avec T. Pr´ecis´ement,T est l’arbre compos´e des n−1 arˆetes de G ayant au moins un de leurs deux num´eros de port ´egal `a 0. De plus, il existe exactement deux racines possibles pour T telles que l’orientation locale puisse ˆetre obtenue par l’ex´ecution de l’algorithme

Petits-Ports avec cet arbre enracin´e. Ces deux racines sont les deux extr´emit´es de

140 CHAPITRE 7. ORIENTATIONS LOCALES POUR L’EXPLORATION

7.2.2 Description de l’automate

Notre automate explorant les graphes munis d’une orientation locale arbre-orient´ee est not´e A et a trois ´etats : N (pour Normal), T (pour Test), et R (pour Retour). La fonction de transition/sortie δ de l’automate est d´efinie comme suit. Ici d repr´esente le degr´e du sommet courant, et i le port d’entr´ee (´eventuellement ´egal `a ⊥).

δ(N, i, d) = (N,0) if i=d (T, i+ 1) if i6=d δ(T, i, d) =    (N,0) if i= 0 andd = 1 (T, i+ 1) if i= 0 andd 6= 1 (R, i) if i6= 0 δ(R, i, d) = (N,0)

Intuitivement, l’automate traverse une arˆete dans l’´etat N quand il sait que l’arˆete appartient `a l’arbre couvrant, dans l’´etat T quand il ne sait pas encore, et dans l’´etat R

quand il sait que l’arˆete n’appartient pas `a l’arbre couvrant.

7.2.3 Preuve

Th´eor`eme 7.1 Soit G un graphe de taille n, avec une orientation locale arbre-orient´ee. Consid´erons l’automate A en un sommet quelconque, provenant d’une arˆete quelconque (ou du sommet), et ´etant dans un ´etat quelconque. Apr`es au plus deux ´etapes, l’automate entre dans un chemin ferm´e P et l’explore pour toujours. De plus, P est de longueur au plus 4n−2 et contient tous les sommets de G.

Preuve. Soit G un graphe arbitraire et n son nombre de sommets. Supposons que son orientation locale est compatible avec un certain arbre couvrant T de G. Nous ´etudions d’abord le comportement p´eriodique de l’automate, et ensuite le r´egime transitoire initial. Soit v un sommet arbitraire de G, et soit e son arˆete incidente de num´ero de port 0. La suppression de edans T a pour r´esultat deux composantes connexes (des sous-arbres). Soit T la composante contenant v. Finalement, soit n le nombre de sommets deT.

Assertion Si l’automate A entre dans v par le port 0 dans un ´etat diff´erent de R, alors il finit par quitter v par le port 0 dans l’´etat N. De plus, entre ces deux ´ev´enements, l’automate explore tous les sommets de T en au plus 4n−2 ´etapes, et ne quitte aucun sommet hors de T par le port 0 durant ces ´etapes.

Nous prouvons cette propri´et´e par induction sur la hauteur h de T enracin´e en v, c’est-`a-dire sur l’excentricit´e de v dans T. Le cas h= 0 correspond `av feuille deT. Si v

est aussi une feuille dans G, l’automate quitte imm´ediatement v par le port 0 dans l’´etat

N et la propri´et´e est prouv´ee. Nous supposons donc que deg(v) > 1. Par hypoth`ese de l’assertion, l’automate arrive en v dans l’´etatT ou N. Dans les deux cas, il transite dans l’´etat T, et traverse l’arˆete e de num´ero de port 1.V est une feuille deT et commee est dans T, e ne l’est pas. Donc le num´ero de port de e `a l’autre extr´emit´e n’est pas ´egal

7.2. L’ORIENTATION LOCALE ET L’AUTOMATE CORRESPONDANT 141 `a 0. L’automate revient donc en v dans l’´etat R, et finalement quittev par le port 0 apr`es 4·1−2 = 2 ´etapes, ce qui prouve la base de la r´ecurrence.

Consid´erons maintenant le cas h > 0. Soit d le degr´e de v. Nous avons d 6= 1 parce que v est incident `a e et que la hauteur de T est strictement positive. Pour i ≥ 1, soit

vi le sommet `a l’autre extr´emit´e de l’arˆete ei de num´ero de port i en v. Si ei est dans T, alors soit Ti la composante connexe de T \ {ei} contenant vi. Finalement, soit p le plus grand num´ero de port d’une arˆete de T incidente `a v. On a p ≥ 1 parce que v n’est pas une feuille de v. Par hypoth`ese de r´ecurrence, l’automate entre en v dans l’´etat T ou N. Dans les deux cas, il transite dans l’´etat T, et traverse l’arˆete e1 de num´ero de port 1. Supposons que l’automate quitte v par le port i dans l’´etat T, avec 1≤ i ≤p. Il atteint le sommet vi. Par hypoth`ese de r´ecurrence surh, l’automate finit par revenir depuis vi en

v par le porti dev, dans l’´etatN, apr`es au plus 4ni−2 ´etapes. (Notons que lors de ce parcours, l’automate a pu avoir visit´e des sommets hors de Ti mais il n’a jamais quitt´e ces sommets par le port 0.) Si i6=d−1, l’automate quitte v par le port i+ 1 dans l’´etat

T. Donc l’automate explore successivement les sous-arbres Ti.

Sip=d−1, l’automate quitte finalement v par le port 0 dans l’´etatN apr`es avoir fini l’exploration de Tp. Si p < d, l’automate sort par l’arˆete ep+1 dans l’´etat T. Puisque ep+1

n’appartient pas `a l’arbreT, le num´ero de port deep+1 `a son autre extr´emit´e n’est pas ´egal `a 0. L’automate revient donc en v dans l’´etat R et quitte finalementv par le port 0 dans l’´etat N. Dans les deux cas, il reste `a borner le nombre d’´etapes. L’automate a travers´e

Pp

i=1(4ni−2) = 4(n−1)−2(p−1) arˆetes durant l’exploration des sous-arbresTi. Il a aussi travers´e deux fois chaque arˆete ei, 1≤i≤p. Finalement, il faut rajouter ´eventuellement deux travers´ees d’arˆetes suppl´ementaires (sip < d−1). En r´esum´e, le nombre de travers´ees d’arˆetes, et donc d’´etapes, est au plus 4(n−1)−2(p−1) + 2(p−1) + 2 = 4n−2. Ceci conclut la preuve de l’assertion.

Nous utilisons maintenant l’assertion pr´ec´edente pour d´ecrire le chemin ferm´e que l’automate parcourt p´eriodiquement. Il existe une unique arˆete e = {v, v} ayant ses deux num´eros de port ´egaux `a 0. Supposons que l’automate arrive env par l’arˆeteedans l’´etatN. Par application de l’assertion, l’automate explore le sous-arbre deT\{e}enracin´e en v, revient en v et traverse l’arˆete evers v dans l’´etatN. Par une nouvelle application de l’assertion, l’automate explore le sous-arbre de T \ {e} enracin´e en v, revient en v et traverse l’arˆete e vers v dans l’´etat N. En cons´equence, l’automate parcourt un chemin ferm´e P de longueur au plus 4n−2, visitant tous les sommets de T, et donc deG.

Il reste `a prouver que l’automate commence `a suivre P apr`es au plus deux ´etapes. L’automate est plac´e en un sommet quelconque, provenant d’une arˆete quelconque (ou du sommet), et ´etant dans un ´etat quelconque. Par d´efinition de la fonction de transition de l’automate, trois cas sont possibles :

– Cas 1 : l’automate quitte le sommet courant par le port 0 dans l’´etat N. Cela implique que l’automate commence `a suivre imm´ediatement le chemin ferm´eP. – Cas 2 : l’automate quitte le sommet courant dans l’´etat R. La prochaine travers´ee

d’arˆete est alors le long de l’arˆete de num´ero de port 0, dans l’´etat N. Cela implique que l’automate commence `a suivre le chemin ferm´eP lors de la deuxi`eme ´etape. – Cas 3 : l’automate quitte le sommet courant par l’arˆetee de num´ero de port i, avec

142 CHAPITRE 7. ORIENTATIONS LOCALES POUR L’EXPLORATION

i≥1, dans l’´etatT. Supposons que, soiteest dansT, soit eest l’arˆete ayant le plus petit num´ero de port qui n’est pas dansT. Dans ce cas, cette travers´ee d’arˆetes est dans le chemin ferm´e P. Si ce n’est pas le cas, alors le num´ero de port j `a l’autre extr´emit´e u de l’arˆete e n’est pas ´egal `a 0 car e n’est pas dans T. Donc l’automate transite dans l’´etat R en u, et revient en v par e. Ensuite, il quitte v par le port 0 dans l’´etat N. Cette derni`ere travers´ee d’arˆete est dans P.

Finalement, dans tous les cas, l’automate commence `a suivre le chemin ferm´eP apr`es au

plus deux ´etapes.