title: Largeur arborescente
text: # Largeur arborescente
  
  En théorie des graphes et en informatique théorique, la largeur arborescente ou largeur d'arbre d'un graphe (treewidth en anglais) est un nombre qui, intuitivement, mesure s'il est proche d'un arbre. Elle peut être définie de plusieurs manières, notamment en utilisant la décomposition arborescente.
  
  Souvent, un problème algorithmique facile sur les arbres est en fait facile pour les graphes qui ressemblent à des arbres. Ainsi, ce paramètre est souvent utilisé en algorithmique de graphes, notamment pour les schémas d'approximation polynomiaux et complexité paramétrée. Dans beaucoup d'applications, les graphes ont des largeurs arborescentes petites, comme par exemple les réseaux sociaux.
  
  ## Définition
  
  ### Avec la décomposition arborescente
  
  **Définition d'une décomposition arborescente**
  
  Informellement, étant donné un graphe non orienté $G$, une décomposition arborescente de $G$ est un arbre $T$ dont les nœuds sont annotés par des sous-ensembles de sommets de $G$, qui vérifient les conditions suivantes :
  
  * chaque sommet de $G$ apparaît dans l'étiquette d'un nœud de $T$ ;
  * pour toute arête $\{v,w\}$ de $G$, il existe un nœud de $T$ dont l'étiquette contient $v$ et $w$ ;
  * pour tout sommet $v$ de $G$, les nœuds de l'arbre qui contiennent $v$ forment un sous-arbre connexe de $T$.
  
  Formellement, étant donné un graphe non orienté $G=(V,E)$, une décomposition arborescente de $G$ est un couple $(T,\lambda )$ où $T$ est un arbre, et $\lambda$ est une fonction associant à chaque nœud $t$ de $T$ un sous-ensemble $\lambda (t)\subseteq V$, qui vérifie les conditions suivantes :
  
  * Pour tout sommet $v\in V$, il existe un nœud $t$ de l'arbre $T$ tel que $v\in \lambda (t)$. Cette condition revient à imposer que l'union $\bigcup _{t\in T}\lambda (t)$ soit égale à $V$.
  * Pour toute arête $\{v,w\}\in E$, il existe un nœud $t$ de $T$ tel que $\{v,w\}\subseteq \lambda (t)$.
  * Pour tout sommet $v\in V$, les nœuds $\{t\in T\mid v\in \lambda (t)\}$ forment un sous-arbre connexe de $T$. Cette condition revient à imposer que, pour tous nœuds $t$ et $t'$ de $T$ qui contiennent un même sommet $v$ (c'est-à-dire $v\in \lambda (t)$ et $v\in \lambda (t')$), tous les nœuds $t''$ de $T$ sur l'unique chaîne simple entre $t$ et $t'$ satisfont également $v\in \lambda (t'')$.
  
  Tout graphe a au moins une décomposition arborescente, par exemple celle où l'arbre $T$ a un seul sommet $t$ et où $\lambda (t)=V$. Dans ce cas, tous les sommets et les arêtes du graphe sont couvertes dans $\lambda (t)$, et la condition sur les chemins est trivialement satisfaite. Cependant, cette décomposition n'est pas unique. Plus généralement, tout graphe $G=(V,E)$ admet une infinité de décompositions arborescentes : on peut par exemple choisir n'importe quel arbre $T$, et définir $\lambda$ par $\lambda (t)=V$ pour tout nœud $t$.
  
  **Définition de la largeur arborescente**
  
  La largeur arborescente d'une décomposition arborescente $(T,\lambda )$ est le cardinal de la plus grande étiquette moins un. Formellement, il s'agit de $\left(\max _{t\in T}\left|\lambda (t)\right|\right)-1$. Dans l'exemple de la figure, toutes les étiquettes sont de cardinal 3, donc la largeur arborescente de cette décomposition arborescente est 2. La largeur arborescente (treewidth) d'un graphe G est le minimum de la largeur arborescente parmi toutes les décompositions arborescentes de ce graphe.
  
  Si l'on considère une décomposition arborescente triviale où les nœuds sont étiquetés par l'ensemble $V$ de tous les sommets du graphe, on constate que tout graphe avec $n$ sommets a une largeur arborescente de $n-1$ au plus. En revanche, si $G$ est un arbre, si on construit $T$ en suivant la structure de $G$, on peut obtenir une décomposition arborescente de $G$ où chaque étiquette contient exactement deux éléments, donc de largeur 1.
  
  ### Via les triangulations
  
  Pour tout graphe $H$, on note $\omega (H)$ l'ordre de la plus grande clique de $H$. La largeur arborescente d'un graphe $G$ est la plus petite valeur prise par $\omega (H)-1$, parmi toutes les triangulations $H$ de $G$.
  
  ## Exemples
  
  Les arbres ont largeur d'arbre 1. La clique de taille n a largeur d'arbre n-1. La grille carrée de taille n a une largeur d'arbre égale à n.
  
  ## Aspects algorithmiques
  
  ### Calcul de la largeur arborescente
  
  Le calcul de la largeur arborescente est NP-difficile. Néanmoins, si $k$ est fixé, il existe un algorithme linéaire pour déterminer si la largeur arborescente d'un graphe est $k$. La dépendance en $k$ du temps d'exécution de l'algorithme est cependant exponentielle. Pour certaines classes particulières de graphes, calculer la largeur arborescente se fait en temps polynomial (arbres, graphes triangulés, etc.).
  
  ### Utilisations en algorithmique
  
  De nombreux problèmes de graphes NP-difficiles dans le cas général peuvent être résolus en temps polynomial si on se restreint aux graphes de largeur arborescente bornée. C'est donc un bon paramètre pour la complexité paramétrée. Si le problème est exprimable en logique monadique du second ordre, le théorème de Courcelle énonce qu'il peut alors être résolu en temps linéaire (mais la constante est une tour d'exponentielles en $k$ qui rend l'algorithme inapplicable en général).
  
  Par exemple, le problème du stable maximum pour des graphes planaires peut-être résolu en temps polynomial pour une largeur arborescente bornée (on prend alors cette largeur comme une constante), ce qui permet d'obtenir un schéma d'approximation en temps polynomial quand on ne contraint pas la largeur.
  
  ### Liens avec les graphes triangulés
  
  Le concept de décomposition arborescente a un lien très fort avec les graphes triangulés. Premièrement, la largeur arborescente d'un graphe triangulé H est égale à la taille $\chi (H)$ de sa plus grande clique moins un. Deuxièmement, la valeur $\chi (H)$ peut être calculée à l'aide d'un algorithme linéaire si le graphe H est triangulé. Dans la littérature de recherche opérationnelle, les algorithmes de calcul de la largeur arborescente d'un graphe G cherchent souvent à déterminer le graphe triangulé H de plus petite valeur $\chi (H)$ qui contient G.
  
  ## Paramètres de graphes associés
  
  La largeur arborescente peut-être reliée à d'autres paramètres de graphes, comme la dégénérescence ou le roncier.
  
  Une variante pour les graphes orientés a été définie, elle vaut zéro sur les graphes orientés acycliques.
  
  