Arbres

Explorer les propriétés et l'intérêt de l'arbre.

Définition

Un arbre est un graphe $T = (V, E)$ qui est :

Par exemple, seul le graphe du milieu est un arbre parmi les 3 graphes ci-dessous :

graphe A graphe B graphe C
graphe connexe mais contient des cycles graphe connexe et sans cycle graphe sans cycle mais pas connexe

Finissons cette partie par une définissions filant la métaphore botaniste :

Définition

Un graphe dont chaque partie connexe est un arbre est appelée une forêt.

Les définitions précédentes concernaient les graphes, il existe un pendant pour les graphes orientés, les arborescences :

Définition

Une arborescence est un graphe orienté $G = (V, E)$ tel que :

  • si $xy \in E$ alors $yx \notin E$
  • le graphe $T = (V, E')$ tel que $xy \in E'$ si et seulement si $xy \in E$ ou $yx \in E$ est un arbre
  • tel qu'il existe un sommet $r$, appelé racine tel que pour tout $x \in V$ il existe un chemin allant de $r$ à $x$ dans $G$.

On a parfois envie que les chemin ailles vers la racine plutôt qu'en partent et a pour ça la notion d'arbre dirigé enraciné :

Définition

Un arbre dirigé enraciné en $r$ (on dit aussi arbre dirigé planté en $r$) est un graphe orienté $G = (V, E)$ si et seulement le graphe $G' = (V, E')$ tel que $xy \in E'$ si et seulement si $yx \in E$ est une arborescence de racine $r$.

Ainsi le graphe de gauche est un arbre, celui du milieu une arborescence avec le sommet rouge en racine et celui de droite un arbre dirigé enraciné en le sommet rouge :

arbre et arborescence

Propriétés fondamentales

Nous allons montrer ici 5 propriétés équivalentes permettant de caractériser un arbre. Les propriétés sont intéressantes et la façon de les prouver également :

Théorème

Les cinq propositions suivantes sont équivalentes :

  1. $G=(V, E)$ est un arbre
  2. $G=(V, E)$ est connexe et $\vert E \vert = \vert V \vert - 1$
  3. $G=(V, E)$ est sans cycle et $\vert E \vert = \vert V \vert - 1$
  4. $G=(V, E)$ est sans cycle et l'ajout d'une arête quelconque crée un cycle
  5. $G=(V, E)$ est connexe et la suppression d'une arête quelconque le déconnecte

preuve

  • $1 \Rightarrow 2$ : par définition
  • $2 \Rightarrow 3$ : S'il existait un cycle, on pourrait en enlever une arête et $G$ resterait connexe. Or on a vu que tout graphe connexe possède au moins $\vert V \vert - 1$ arêtes ce qui apporte une contradiction
  • $3 \Rightarrow 4$ On a vu que tout graphe sans cycle possède au plus $\vert V \vert - 1$ arêtes
  • $4 \Rightarrow 5$ Si le graphe n'était pas connexe, on pourrait ajouter une arête reliant deux de ses composantes connexes sans rajouter de cycle
  • $5 \Rightarrow 1$ Si le graphe possédait un cycle, on pourrait supprimer une arête de ce cycle sans déconnecter le graphe

Ces équivalences nous permettent de trouver un algorithme efficace pour savoir si un graphe est un arbre. Trouvez le :

Montrez que la proposition précédente permet de créer un algorithme en $\mathcal{O}(\vert V \vert)$ pour savoir si un graphe $G=(V, E)$ est un arbre.

solution

On commence par vérifier que le graphe a $\vert V \vert -1$ arêtes. Si c'est le cas, on utilise l'algorithme de recherche des composantes connexes qui est en $\mathcal{O}(\vert E \vert)$, donc en $\mathcal{O}(\vert V \vert)$ dans notre cas pour vérifier qu'il n'y a bien qu'une composante connexe.

Le théorème précédent est important car il montre l'optimalité d'un arbre : c'est le graphe avec un nombre minimum d'arête qui est connexe. C'est pourquoi cette structure est très utilisé dans les problèmes de réseaux réels. Cette optimalité vient avec un coût puisque si une arête casse, on déconnecte le graphe.

De plus, cette optimalité minimale fait que nombre de problèmes compliqués (voir NP-complets) deviennent facile (polynomial et souvent linéaire) sur les arbres.

Théorème

Les trois propositions suivantes sont équivalentes :

  1. $G=(V, E)$ est une arborescence de racine $r$
  2. $G=(V, E)$ est sans circuit et il existe un sommet $r$ pour lequel $\delta^{-}(r) = 0$ et $\delta^{-}(x) = 1$ pour tout autre sommet
  3. $G=(V, E)$ est connexe et il existe un sommet $r$ pour lequel $\delta^{-}(r) = 0$ et $\delta^{-}(x) = 1$ pour tout autre sommet

preuve

TBD (mais clair)

Sommets et feuilles

Définition

Une feuille d'un arbre $T = (V, E)$ est un sommet de degré 1. Un sommet interne est un sommet de degré strictement supérieur à 1.

Définition

Une feuille d'une arborescence $T = (V, E)$ est un sommet de degré sortant 0. Un sommet interne est un sommet de degré sortant strictement supérieur à 0.

Commençons par une propriété sympathique des feuilles d'un arbre :

Proposition

Tout arbre avec 3 sommets ou plus possède toujours :

  • au moins 2 feuilles
  • au moins un sommet interne.

preuve

Comme un arbre est connexe, tout sommet a un degré supérieur ou égal à 1. S'il y avait 1 feuille ou moins, on aurait $\sum\delta(x) \geq 2(n-1) + 1 = 2n-1$. Or $\sum\delta(x) = 2\vert E \vert = 2n-2$, ce qui est impossible.

Enfin, si un arbre ne possédait que des feuilles, on aurait $\sum\delta(x) = n = 2\vert E \vert = 2n-2$, ce qui n'est possible que pour $n=2$.

Pour se familiariser avec les feuilles, commençons par résoudre l'exercice suivant :

Montrez que si $T = (V, E)$ est un arbre tel que tout sommet interne est de degré 3 (on appelle ces arbres ternaire) alors si $p$ est le nombre de ses feuilles et $q$ le nombre de ses sommets internes on a :

  • $p = q + 2$
  • $\vert V \vert = 2p-2$
  • $\vert E \vert = 2p-3$

solution

Si on note $p$ le nombre de feuilles et $q$ le nombre de sommets intérieur, on a : $\vert V \vert = p + q = \vert E \vert +1 $. De là si $p = q + 2$ on a bien $\vert V \vert = 2p-2$ et $\vert E \vert = 2p-3$.

Comme la somme des degrés $p + 3q$ vaut 2 fois le nombre d'arête, donc $\vert E \vert = 1/2 \cdot (p+3q) = p + q - 1$. On a alors $2(p+q-1) = p+3q$, ce qui donne $p = q + 2$ et termine la preuve.

Un des principal intérêt des feuilles est que cela permet d'associer aux arbres un schéma d'élimination aux arbres. Commençons par un petit exercice pour le voir :

Montrez que si $T = (V, E)$ est un arbre et $x\in V$ une de ses feuilles, alors $T\backslash \{x\}$ est un arbre.

solution

Comme $x$ est une feuille de $T$ :

  • $T\backslash \{x\}$ est connexe,
  • $T\backslash \{x\}$ à $\vert V \vert - 2$ arêtes

C'est donc un arbre.

Et que se passe-t-il si on supprime un sommet interne ?

Montrez que si $T = (V, E)$ est un arbre et $x\in V$ un de ses sommets internes, alors $T\backslash \{x\}$ est une forêt avec $\delta_T(x) > 1$ parties connexes.

solution

Comme le degré d'un sommet interne est strictement plus grand que 1, $T\backslash \{x\}$ ne peut pas être connexe (il n'a pas assez d'arête) mais chaque composante connexe ne peut avoir de cycles (sinon $T$ en aurait) : ce sont des arbres.

Le même raisonnement implique que supprimer une arête d'un arbre produit une forêt de 2 arbres. Comme on en supprime $\delta(x)$, on produit $\delta(x)$ composantes connexes (on supprime itérativement les arêtes $xy$ de la composante connexe contenant $x$).

Les deux exercices précédents nous permettent de conclure sur l'existence des ordres d'effeuillage pur tout arbre :

Définition

Pour tout arbre $T = (V, E)$, les ordres $x_1, \dots, x_n$ de ses sommets tels que $T \backslash \{x_1, x_2, \dots x_i\}$ est un arbre pour tout $1\leq i < \vert V \vert$ sont appelées ordre d'effeuillage.

Les ordre d'effeuillage permettent tout un tas de raisonnements par récurrence et sont a la base de nombre d'algorithmes d'arbres car ils préserve la structure de l'arbre.

Terminons cette partie par un petit exercice utilisant les feuilles et les ordres d'effeuillages.

Montrez que si $T = (V, E)$ est un arbre et $x$ un sommet :

  • tout parcours DFS en partant de $x$ est un effeuillage de $T$,
  • les ensembles $S(x, y) = \{z | y \text{ est sur le chemin entre }x \text{ et } z\}$ sont des intervalles.

corrigé

Un DFS sur un arbre va s'arrêter aux feuilles. De plus il est clair que l'ordre produit par une DFS à partir de $x$ va placer les éléments de $S(x, y)$ avant $y$ en un bloc : lorsque le DFS passe par $y$ la première fois tous les éléments suivant placés dans l'ordre jusqu'à l'ajout de $y$ seront dans $S(x, y)$.

On en déduit que :

  • en supprimant tous les sommets avant $y$ dans l'ordre du DFS, $y$ est une feuille,
  • si $z, z' \in S(x, y)$, alors tout l'intervalle $[z, z']$ est dans $S(x, y)$

Chemins et arbres

Proposition

Un graphe est un arbre si et seulement si quels que soient deux sommets $x$ et $y$, il n'existe qu'un seul chemin entre $x$ et $y$.

preuve

Le graphe est connexe.

S'il existait 2 chemins distincts pour aller de $x$ à $y$ on se placerait au premier élément distinct et au premier élément en commun après celui-ci et on aurait un cycle.

Corollaire

Pour une arborescence de racine $r$, pour chaque sommet $x$ il existe un unique chemin allant $r$ à $x$.

preuve

TBD : clair car le graphe associé est un arbre.

Enfin terminons cette partie par un petit exercice structurel qui introduit la notion de médiane dans les arbres :

Montrez que si $T = (V, E)$ est un arbre et $x$, $y$ et $z$ trois sommets. Il existe un unique sommet qui est à la fois sur le chemin entre $x$ et $y$, le chemin entre $x$ et $z$ et sur le chemin entre $y$ et $z$.

corrigé

Se déduit de l'unicité des chemins. Considérant les chemins :

  • $x = u_0 \dots u_k = y$
  • $z = v_0 \dots v_l = z$

Si $u_i = v_j$ alors $u_i \dots u_k = v_j \dots v_l$ car sinon, comme $u_k = v_l - y$ il existerait un cycle dans l'arbre. Le plus petit indice $i$ et $j$ tel que $u_i = v_j$ est aussi sur le chemin entre $x$ et $z$ et on est dans la situation ci-dessous ($t$ pouvant être égal à $x$, $y$ ou $z$) :

médiane

Et $t$ est bien l'unique intersection des 3 chemins.

Cette notion d'intersection de chemins se généralise dans un type de graphes particulier appelé graphes médians. Leshypercubes en sont des exemples.

Encodage

TBD écrire propre

Codage par parant pour les arborescence se dérive en un codage pour les arbre en choisissant une racine ($T[r] = r$ pour celle là)