Arbres couvrants des arbres couvrants Guillaume Chapuy (CNRS – LIAFA – Université Paris 7) Philippe travail commun avec Biane (CNRS – IGM – Marne-La-Vallée ) Journées Aléa 2015, Luminy 1. Introduction (le matrix-tree theorem) Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) f.c. ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) NON f.c. ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) NON f.c. ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) NON f.c. ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) f.c. ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. • Pour nous: arbre couvrant = arbre couvrant enraciné et dirigé vers sa racine Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. • Pour nous: arbre couvrant = arbre couvrant enraciné et dirigé vers sa racine Degrés sortants 0 (racine) ou 1 (autres sommets) + racine accessible Graphes et arbres couvrants • Dans cet exposé les graphes seront dirigés. (cela inclut les graphes non dirigés) ∗ • Graphe fortement connexe: ∀ u, v sommets ∃ u −→ v chemin dirigé. • On dit que W ⊂ V est fortement connexe si le graphe induit GW est fortement connexe. • Pour nous: arbre couvrant = arbre couvrant enraciné et dirigé vers sa racine Degrés sortants 0 (racine) ou 1 (autres sommets) + racine accessible Poids, Laplacienne, et matrix tree theorem • Chaque arête e = (i, j) porte un poids xe = xi,j . Q • Le poids d’un arbre couvrant t est ρ(t) = e∈t we Poids, Laplacienne, et matrix tree theorem • Chaque arête e = (i, j) porte un poids xe = xi,j . Q • Le poids d’un arbre couvrant t est ρ(t) = e∈t we • Fonction de partition P Zv = ρ(t) t:a.c. racine v Poids, Laplacienne, et matrix tree theorem • Chaque arête e = (i, j) porte un poids xe = xi,j . Q • Le poids d’un arbre couvrant t est ρ(t) = e∈t we • Fonction de partition P Zv = ρ(t) t:a.c. racine v • Matrice Laplacienne Q - lignes et colonnes indexées par V 0 si v 6= w et vw 6∈ E Qvw = - définie par: xvw si v 6= w et vw ∈ E P − u6=v xvu si v = w { Note: P ligne =0 Poids, Laplacienne, et matrix tree theorem • Chaque arête e = (i, j) porte un poids xe = xi,j . Q • Le poids d’un arbre couvrant t est ρ(t) = e∈t we • Fonction de partition P Zv = ρ(t) t:a.c. racine v • Matrice Laplacienne Q - lignes et colonnes indexées par V 0 si v 6= w et vw 6∈ E Qvw = - définie par: xvw si v 6= w et vw ∈ E P − u6=v xvu si v = w { • Matrix-tree theorem: Zv = (−1)n−1 det Q v (i.e. Q où on a rayé la v ligne et la colonne indexées par V ) Note: P ligne =0 (plus: si on raye les lignes et colonnes indexées par W ⊂ V on obtient les forêts enracinées en V ) Poids, Laplacienne, et matrix tree theorem • Chaque arête e = (i, j) porte un poids xe = xi,j . Q • Le poids d’un arbre couvrant t est ρ(t) = e∈t we • Fonction de partition P Zv = ρ(t) t:a.c. racine v • Matrice Laplacienne Q - lignes et colonnes indexées par V 0 si v 6= w et vw 6∈ E Qvw = - définie par: xvw si v 6= w et vw ∈ E P − u6=v xvu si v = w { • Matrix-tree theorem: Zv = (−1)n−1 det Q v (i.e. Q où on a rayé la v ligne et la colonne indexées par V ) EXO: preuve combinatoire directe (en développant le déterminant comme P σ (σ)... Note: P ligne =0 (plus: si on raye les lignes et colonnes indexées par W ⊂ V on obtient les forêts enracinées en V ) Example: graphe complet • Prenons le graphe complet sur {1, 2, , . . . , n}. avec poids w ≡ 1. Q= (1−n) 1 1 (1−n) Qvw = 1 1 1 1 1 Z1 = (−1)n det 1 1 (1−n) = nn−2 (formule de Cayley) sur espace des vecteurs de somme nulle: −n sur orthogonal: 1 xvw si v 6= w et vw ∈ E − P u6=v xvu si v = w Zv = det 1 1 { 0 si v 6= w et vw 6∈ E Le graphe des arbres couvrants et le MCTT Le graphe T G (graphe des arbres couvrants) • Les sommets sont les arbres couvrants de G = (V, E). Le graphe T G (graphe des arbres couvrants) • Les sommets sont les arbres couvrants de G = (V, E). • Pour chaque arbre couvrant t on a degout (r) arêtes sortantes où r est la racine de t: t: xe e r un arbre couvrant de G t0 : une arête de TG un autre arbre couvrant de G Exemple ! x23 1 x31 2 x43 x34 3 4 Un graphe G avec 14 arbres couvrants Le graphe T G t: xe e t0 : une arête de T G r un arbre couvrant de G un autre arbre couvrant de G Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) t e1 ek dans le graphe T G r t a.c. de G e1 e2 ek e2 t: xe e r t0 : Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) u t e1 ek dans le graphe T G r t a.c. de G e1 e2 ek e2 t: xe e r t0 : Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) u t e1 ek dans le graphe T G r t a.c. de G e1 e2 ek e2 t: xe e r t0 : Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) u = (t − e1 ) ∪ eσ1 u eσ1 eσ1 t e1 ek dans le graphe T G r t a.c. de G e1 e2 ek e2 t: xe e r t0 : Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) u = (t − e1 ) ∪ eσ1 u eσ1 eσ2 eσk e1 ek t e1 e2 ek dans le graphe T G r t a.c. de G eσ1 e2 t: xe e r t0 : Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) u = (t − e1 ) ∪ eσ1 u eσ1 eσ2 eσk e1 ek t xe e r e1 e2 ek dans le graphe T G r t a.c. de G eσ1 t: e2 • La mesure ρ(t) := poids de t est une mesure invariante sur T G. i.e. ρR = 0 où R est la matrice Laplacienne du graphe t0 : Le graphe T G (graphe des arbres couvrants) – 2 • Le graphe T G est eulérien: il y a degout (r) arêtes qui sortent mais aussi degout (r) arêtes qui rentrent en chaque t (enraciné en r) u = (t − e1 ) ∪ eσ1 u eσ1 eσ1 eσ2 eσk e1 ek xe t0 : e r e1 e2 ek dans le graphe T G r t a.c. de G t t: e2 • La mesure ρ(t) := poids de t est une mesure invariante sur T G. i.e. ρR = 0 où R est la matrice Laplacienne du graphe P P ρ(u)xut − ρ(t) xtu (tout ce qui rentre moins tout ce qui sort) dém: ρR t = u→t = Pk i=1 t→u ρ(t)xei − ρ(t) Pk i=1 x ei = 0 Le graphe T G (graphe des arbres couvrants) – 3 • Interprétation probabiliste: supposons que pour tout i on a P j6=i xi,j = 1. On a donc une chaı̂ne de Markov à temps discret sur G (et sur T G) Alors la mesure sur T G donnée par t 7→ ρ(t) est une (la) mesure invariante de cette chaı̂ne de Markov. Le graphe T G (graphe des arbres couvrants) – 3 • Interprétation probabiliste: supposons que pour tout i on a P j6=i xi,j = 1. On a donc une chaı̂ne de Markov à temps discret sur G (et sur T G) Alors la mesure sur T G donnée par t 7→ ρ(t) est une (la) mesure invariante de cette chaı̂ne de Markov. • Remarque: La projection T G → G qui envoie un arbre sur sa racine est un morphisme de graphes, qui envoie la chaı̂ne sur T G sur la chaı̂ne sur G. TG proj. G Le graphe T G (graphe des arbres couvrants) – 3 • Interprétation probabiliste: supposons que pour tout i on a P j6=i xi,j = 1. On a donc une chaı̂ne de Markov à temps discret sur G (et sur T G) Alors la mesure sur T G donnée par t 7→ ρ(t) est une (la) mesure invariante de cette chaı̂ne de Markov. • Remarque: La projection T G → G qui envoie un arbre sur sa racine est un morphisme de graphes, qui envoie la chaı̂ne sur T G sur la chaı̂ne sur G. • On en déduit le Markov Chain Tree Theorem Si M est une chaı̂ne de Markov irréductible de graphe de transition G, alors sa mesure invariante est donnée par: P ρ(t), (v ∈ V ) Zv = t:a.c. racine v TG proj. G Le graphe T G (graphe des arbres couvrants) – 3 • Interprétation probabiliste: supposons que pour tout i on a P j6=i xi,j = 1. On a donc une chaı̂ne de Markov à temps discret sur G (et sur T G) Alors la mesure sur T G donnée par t 7→ ρ(t) est une (la) mesure invariante de cette chaı̂ne de Markov. • Remarque: La projection T G → G qui envoie un arbre sur sa racine est un morphisme de graphes, qui envoie la chaı̂ne sur T G sur la chaı̂ne sur G. • On en déduit le Markov Chain Tree Theorem TG proj. Si M est une chaı̂ne de Markov irréductible de graphe de transition G, alors sa mesure invariante est donnée par: P ρ(t), (v ∈ V ) Zv = t:a.c. racine v (remarque: cela donne une démonstration du Matrix-tree theorem! En effet: 1. par Perron-Frobenius on a “unicité” de la mesure invariante; 2. le déterminant du MT theorem donne une mesure invariante en développant le déterminant) G The B polynomial et notre résultat Les arbres couvrants du graphe des arbres couvrant (I) • On va regarder les arbres couvrants du graphe des arbres couvrants. X (arbres couvrants de T G enracinés en t a.c. de G) Soit Zt = ρ(T ) T a.c. de T G racine t Les arbres couvrants du graphe des arbres couvrant (I) • On va regarder les arbres couvrants du graphe des arbres couvrants. X (arbres couvrants de T G enracinés en t a.c. de G) Soit Zt = ρ(T ) T a.c. de T G racine t • Remarque Il existe un polynôme ΦG ∈ Z[(xe )e∈E ] tel que pour tout a.c. t de G: Zt = ρ(t) · ΦG Les arbres couvrants du graphe des arbres couvrant (I) • On va regarder les arbres couvrants du graphe des arbres couvrants. X (arbres couvrants de T G enracinés en t a.c. de G) Soit Zt = ρ(T ) T a.c. de T G racine t • Remarque Il existe un polynôme ΦG ∈ Z[(xe )e∈E ] tel que pour tout a.c. t de G: Zt = ρ(t) · ΦG • Exemple 1 t= u= 2 2 2 2 2 2 Zt = x2,3x3,1 x1,2 x2,1x2,3x3,1 + 2 x1,2 x2,1x2,3x3,1x3,2 + 16 termes Zu = x3,1x1,1 x1,2 x2,1x2,3x3,1 + 2 x1,2 x2,1x2,3x3,1x3,2 + 16 termes 2 3 mais en fait... Les arbres couvrants du graphe des arbres couvrant (I) • On va regarder les arbres couvrants du graphe des arbres couvrants. X (arbres couvrants de T G enracinés en t a.c. de G) Soit Zt = ρ(T ) T a.c. de T G racine t • Remarque Il existe un polynôme ΦG ∈ Z[(xe )e∈E ] tel que pour tout a.c. t de G: Zt = ρ(t) · ΦG • Exemple 1 t= u= 2 2 2 2 2 2 Zt = x2,3x3,1 x1,2 x2,1x2,3x3,1 + 2 x1,2 x2,1x2,3x3,1x3,2 + 16 termes Zu = x3,1x1,1 x1,2 x2,1x2,3x3,1 + 2 x1,2 x2,1x2,3x3,1x3,2 + 16 termes 2 3 mais en fait... Les arbres couvrants du graphe des arbres couvrant (I) • On va regarder les arbres couvrants du graphe des arbres couvrants. X (arbres couvrants de T G enracinés en t a.c. de G) Soit Zt = ρ(T ) T a.c. de T G racine t • Remarque Il existe un polynôme ΦG ∈ Z[(xe )e∈E ] tel que pour tout a.c. t de G: Zt = ρ(t) · ΦG • Exemple 1 t= u= 2 2 2 2 2 2 Zt = x2,3x3,1 x1,2 x2,1x2,3x3,1 + 2 x1,2 x2,1x2,3x3,1x3,2 + 16 termes Zu = x3,1x1,1 x1,2 x2,1x2,3x3,1 + 2 x1,2 x2,1x2,3x3,1x3,2 + 16 termes 2 3 mais en fait... Zt = x2,3x3,1 (x2,1x3,1 + x2,1x3,2 + x3,1x2,3) (x1,2x3,1 + x1,2x3,2 + x1,3x3,2) (x1,2x2,3 + x1,3x2,1 + x1,3x2,3) Notre résultat principal (1) • Théorème (Biane - GC - 2015) Le polynôme ΦG ∈ Z[(xe )e∈E ] est méga factorisé. Plus précisément on a: ΦG = Y (det QW )m(W ) W ⊂V propre,f.c. où QW : matrice Laplacienne de G où on garde lignes/colonnes indexées par W det(QW ): nombre (ou polynôme générateur) des forêts couvrantes de G dont les racines sont W c . m(W ) sont des entiers que je vais décrire mais qui restent mystérieux... • Exemple 1 ΦG = (x2,1 x3,1 + x2,1 x3,2 + x3,1 x2,3 ) (x1,2 x3,1 + x1,2 x3,2 + x1,3 x3,2 ) (x1,2 x2,3 + x1,3 x2,1 + x1,3 x2,3 ) ex: W = {1, 3} 2 3 m(W ) = 1 W c = {2} det(W c ) = (x1,2 x3,1 + x1,2 x3,2 + x1,3 x3,2 ) L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t 5 6 3 4 1 L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t 5 6 3 4 1 L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t 5 6 3 4 1 L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t 5 6 3 4 1 L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t 5 6 3 4 1 L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t → on a fini l’exploration (note: on n’a pas exploré tout le graphe) 5 6 3 4 1 L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t → on a fini l’exploration (note: on n’a pas exploré tout le graphe) 5 6 3 4 1 → on garde ψ(t) := {1, 3, 6} qui est fortement connexe L’algorithme pour calculer les multiplicités • Corollaire Le nombre d’arbres couvrants de T G enracinés en t est égal à: Y Zt = (forêts couvrantes de G enracinées en W c )m(W ) W ⊂V propre,f.c. • Définition algorithmique des nombres m(W ) Algorithme: entrée: un a.c. t de G sortie: un sous-ensemble ψ(t) = W ⊂ V fortement connexe parcours en largeur (en remontant les arêtes) où ne survivent que les sommets découverts via t 2 t → on a fini l’exploration (note: on n’a pas exploré tout le graphe) 5 6 3 4 1 → on garde ψ(t) := {1, 3, 6} qui est fortement connexe Définition-Lemme: m(W, w) = m(W ) = nb. d’arbres couvrants enracinés en w qui renvoient W On vient de voir m({1, 3, 6}) ≥ 1 Exemple: le graphe complet • On regarde le graphe dont les sommets sont les nn−1 arbres de Cayley enracinés. • Si on applique l’algo à un graphe de Cayley, on trouve W = 1-voisinage de la racine. Donc m(W ) = (k − 1)(n − 1)n−k−1 où k = |W |. (nombre de manière de compléter les n − k sommets restants par une forêt à k − 1 racines) Le nombre d’arbres couvrant de ce (gros) graphe est donc: n−1 Y n−k−1 n k−1 ( k )(k−1)(n−1) (n − k)n n=2 Exemple: le graphe complet • On regarde le graphe dont les sommets sont les nn−1 arbres de Cayley enracinés. • Si on applique l’algo à un graphe de Cayley, on trouve W = 1-voisinage de la racine. Donc m(W ) = (k − 1)(n − 1)n−k−1 où k = |W |. (nombre de manière de compléter les n − k sommets restants par une forêt à k − 1 racines) Le nombre d’arbres couvrant de ce (gros) graphe est donc: n−1 Y n−k−1 n k−1 ( k )(k−1)(n−1) (n − k)n n=2 • Exercice: prendre pour G le graphe bouquet: alors T G est (presque) le graphe de l’hypercube {0, 1}n . On retrouve la formule de Stanley pour les a.c. de l’hypercube: |T {0, 1}n| = n Y n i (2i)( ) i=1 (n pétales) Exemple: le graphe complet • On regarde le graphe dont les sommets sont les nn−1 arbres de Cayley enracinés. • Si on applique l’algo à un graphe de Cayley, on trouve W = 1-voisinage de la racine. Donc m(W ) = (k − 1)(n − 1)n−k−1 où k = |W |. (nombre de manière de compléter les n − k sommets restants par une forêt à k − 1 racines) Le nombre d’arbres couvrant de ce (gros) graphe est donc: n−1 Y n−k−1 n k−1 ( k )(k−1)(n−1) (n − k)n n=2 • Exercice: prendre pour G le graphe bouquet: alors T G est (presque) le graphe de l’hypercube {0, 1}n . On retrouve la formule de Stanley pour les a.c. de l’hypercube: |T {0, 1}n| = n Y n i (2i)( ) i=1 (n pétales) note: pas de bijection connue! Démonstration? • En fait c’est un peu compliqué... • Pour chaque W ⊂ V , pour chaque w ∈ W , pour chaque arbre qui contribue à m(W, w) on trouve une ”copie” de la matrice QW dans R. Merci!