Produit zig-zag de graphes

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Zigzag (homonymie).

En théorie des graphes, le produit zig-zag de graphes est une opération sur des graphes réguliers. Le produit de deux graphes G et H, noté G \circ H, prend en arguments un grand graphe G et un petit graphe H et produit un graphe qui hérite approximativement de la taille du grand graphe et du degré du petit. Une propriété importante du produit zig-zag est que si H est un bon graphe expanseur, alors le taux d'expansion du graphe résultat G \circ H est seulement un peu moins bon que le taux d'expansion de G.

De manière informelle, le produit zig-zag G \circ H[1] remplace chaque sommet de G par une copie de H (un « nuage », cloud en anglais) et relie les sommets en trois étapes : une première (le zig) à l'intérieur du nuage, suivi d'une deuxième entre deux nuages, et enfin une troisième (le zag) à l'intérieur du nuage d'arrivée.

Le produit zig-zag a été introduit par Omer Reingold, Salil Vadhan et Avi Wigderson en 2002[2] et a été utilisé pour la construction explicite d'expanseurs et d'extracteurs de degré constant. Les auteurs ont obtenu le prix Gödel pour ce travail[3]. Ultérieurement le produit zig-zag a été employé en théorie de complexité pour prouver que les classes de complexité SL (espace logarithmique symétrique) et L (espace logarithmique) coïncident[4].

Définitions[modifier | modifier le code]

Les graphes considérés ici sont non orientés et réguliers. De plus, le degré du premier correspond au nombre de sommets du second.

Définition simplifiée[modifier | modifier le code]

En suivant l'exposé des auteurs[2], on présente d'abord une version simplifiée de la définition du produit zig-zag. Dans cette définition, on se restreint aux graphes réguliers de degré D qui possèdent une coloration des arêtes avec seulement D couleurs[5]. Dans une telle coloration, deux arêtes incidentes en un même sommet sont toujours de couleur différente.

Soient G un graphe D-régulier (régulier de degré D) sur un ensemble de N sommets et H un graphe d-régulier sur un ensemble de D sommets. On note que l'entier D est à la fois le degré de G, le nombre de couleurs de G et le nombre de sommets de H : on colore de façon arbitraire les sommets de H avec ces D couleurs.

On procède par ainsi pour obtenir le produit zig-zag des graphes G et H, noté G\circ H[1] :

  • Chaque sommet de G est remplacé par une copie du graphe H, son « nuage ».
  • Deux sommets v et w dans le graphe résultant sont liés lorsqu'il deux sommets a et b tels que :
    • v et a sont liés dans H (le zig) ;
    • a et b sont de même couleur et font partie de nuages issus de sommets qui sont liés dans G ;
    • b et w sont liés dans H (le zag).

Le graphe résultant :

  • possède N . D sommets, puisqu'on remplace chacun des N sommets de G par D sommets de H ;
  • est de degré d^2, puisque, depuis un sommet donné, il y a d possibilités pour le zig, une seule possibilité pour le trajet intermédiaire, et à nouveau d possibilités pour le zag.

Application de rotation[modifier | modifier le code]

Dans le cas général, on ne suppose pas qu'une coloration avec D couleurs existe.

On considère ici que les arêtes issues d'un sommet sont numérotées ; de plus, pour un graphe à N sommets, on identifie ses sommets à l'ensemble des entiers de 1 à N, et on le note [N]. Un couple (v,i) d'entiers peut être employé pour désigner la ie arête sortant du sommet v.

Soit G un graphe D-régulier (régulier de degré D). L’application de rotation

\mathrm{Rot}_G :  [N]\times[D]\to[N]\times[D]

est l'application définie comme suit :

\mathrm{Rot}_{G}(v,i)=(w,j)

si la ie arête sortant de v mène à w et la je arête sortant de w mène à v, autrement dit si l'arête [v,w] est la ie arête sortant de v et la je arête sortant de w.

L'application de rotation remplace et généralise la coloration de la définition précédente. Si une coloration avec D couleurs existe, alors on peut s'arranger pour numéroter chaque sommet de telle façon que i=j.

Il résulte de la définition que \mathrm{Rot}_G est une bijection, et de plus que \mathrm{Rot}_G \circ \mathrm{Rot}_G est l'application identité. En d'autres termes, \mathrm{Rot}_G est une involution.

Définition du produit zig-zag[modifier | modifier le code]

Principe du produit zig-zag dans le cas général.

Soit G un graphe D-régulier sur l'ensemble de sommets [N] et d'application de rotation \mathrm{Rot}_G, et soit H un graphe d-régulier sur l'ensemble de sommets [D] et d'application de rotation \mathrm{Rot}_H.

Le produit zig-zag G \circ H est le graphe d^{2}-régulier dont l'ensemble des sommets est [N] \times [D] et dont l'application de rotation \mathrm{Rot}_{G \circ H} est définie par

\mathrm{Rot}_{G \circ H}((v,a),(i,j)) = ((w,b),(j',i'))

((w,b),(j',i')) sont construits successivement en posant

  1. (a',i') = \mathrm{Rot}_{H} (a,i), le zig
  2. (w,b')=\mathrm{Rot}_{G}(v,a'),
  3. (b,j')=\mathrm{Rot}_{H}(b',j), le zag.

Les sommets du graphe G \circ H sont des couples (v,a) de [N] \times [D]. Les arêtes de ce graphe portent des couples d'étiquettes (i,j) du graphe d-régulier, correspondant aux deux décisions à prendre en partant d'un sommet donné.

Ici encore, le graphe produit comporte N . D sommets et est d^{2}-régulier.

Propriétés[modifier | modifier le code]

Réduction du degré[modifier | modifier le code]

Par définition, le produit zig-zag transforme un graphe D-régulier G en un nouveau graphe qui est d^{2}-régulier. Ainsi, si le degré de G est nettement plus grand que celui de H, le produit zig-zag réduit le degré de G.

Préservation du trou spectral[modifier | modifier le code]

Le taux d'expansion d'un graphe peut être mesuré par son trou spectral, qui est la différence entre la plus grande et la deuxième plus grande valeur propre de sa matrice d'adjacence. Une propriété importante du produit zig-zag est qu'il préserve le trou spectral, en ce sens que si H est un graphe expanseur « assez bon » (avec un grand trou spectral), alors le taux d'expansion du produit zig-zag est proche de celui du graphe original G.

Formellement, appelons graphe de type (N,D,\lambda) un graphe D-régulier sur N sommets dont la deuxième valeur propre est majorée en valeur absolue par \lambda. Soient G_{1} et G_{2} des graphes de type (N_{1},D_{1},\lambda_{1}) et (D_{1},D_{2},\lambda_{2}) respectivement. Alors G_1 \circ G_2 est de type

(N_{1}\cdot D_{1},D_{2}^{2},f(\lambda_{1},\lambda_{2})),

avec f(\lambda_{1},\lambda_{2})<\lambda_{1}+\lambda_{2}+\lambda_{2}^{2}.

Préservation de la connexité[modifier | modifier le code]

Le produit zig-zag G \circ H opère séparément sur chaque composante connexe de G. Plus formellement, soient G un graphe D-régulier sur l'ensemble de sommets [N] et H un graphe d-régulier sur l'ensemble [D] de sommets. Si S\subseteq[N] est une composante connexe de G, alors on a G|_{S} \circ H=G\circ H|_{S\times D}, où G|_{S} est le sous-graphe de G induit par S (c'est-à-dire le graphe sur S qui contient les arêtes de G dont les deux extrémités sont dans S).

Applications[modifier | modifier le code]

Construction d'un expanseur de degré constant[modifier | modifier le code]

Dans leur article de 2002[2], Reingold, Vadhan, et Wigderson donnent une construction combinatoire explicite et simple de graphes expanseurs de degré constant. La construction est itérative. La bloc de base est un expanseur unique de taille fixe. À chaque itération, le produit zig-zag sert à construire un autre graphe dont la taille augmente, mais dont le degré et le taux d'expansion restent inchangés. Ce processus peut être répété et donne des expanseurs de taille arbitrairement grande.

Solution du problème de connexité en espace logarithmique[modifier | modifier le code]

En 2008[4], Reingold présente un algorithme qui résout le problème dit de la st-connexité en espace logarithmique. Il s'agit du problème de déterminer si, dans un graphe non orienté, deux sommets s et t donnés sont dans la même composante connexe. L'algorithme repose de manière essentielle sur le produit zig-zag.

De manière informelle, pour résoudre le problème de la st-connexité en espace logarithmique, le graphe d'entrée est transformé, en utilisant une combinaison d'exponentiations et de produits zig-zag, en un graphe régulier de degré constant avec un diamètre logarithmique. L'élévation à la puissance accroît le taux d'expansion (et donc réduit le diamètre) au prix de l'accroissement du degré, et le produit zig-zag est utilisé pour réduire le degré tout en préservant le taux d'expansion.

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • Omer Reingold, Luca Trevisan et Salil Vadhan, « Pseudorandom walks on regular digraphs and the RL vs. L problem », dans Proc. 38th ACM Symposium on Theory of Computing Proc. (STOC),‎ 2006 (lien DOI?), p. 457–466.

Articles connexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. a et b Les auteurs utilisent une notation plus compliquée que l'on ne peut pas reproduire dans le Latex disponible sur Wikipédia.
  2. a, b et c Omer Reingold, Salil Vadhan et Wigderson, « Entropy waves, the zig-zag graph product, and new constant-degree expanders », Annals of Mathematics, vol. 155, no 1,‎ 2002, p. 157–187 (liens DOI? et JSTOR?).
  3. Page du prix Gödel 2009.
  4. a et b Omer Reingold, « Undirected connectivity in log-space », Journal of the ACM, vol. 55, no 4,‎ 2008, p. 1–24 (lien DOI?).
  5. Cela exclut par exemple les graphes cycles dont le nombre de sommets est impair, qui sont 2-réguliers mais nécessitent 3 couleurs.