Skip to content

Cours : Arbres et graphes

Un graphe est une structure de données fondamentale en informatique, modélisant des relations binaires entre des entités.

Un graphe non orienté GG est un couple G=(V,E)G = (V, E) où :

  • VV est un ensemble fini dont les éléments sont appelés sommets (ou vertices).
  • EE est un ensemble de paires de sommets distincts, appelés arêtes (ou edges). On note usuellement ∣V∣=n|V| = n et ∣E∣=m|E| = m.

Un graphe orienté GG est un couple G=(V,A)G = (V, A) où :

  • VV est l’ensemble des sommets.
  • AA est un ensemble de couples de sommets, appelés arcs (ou directed edges). Un arc (u,v)(u, v) est orienté de uu (source) vers vv (but).
  • Adjacence : Deux sommets uu et vv sont adjacents s’il existe une arête {u,v}\{u, v\} (ou un arc (u,v)(u, v)).
  • Degré : Dans un graphe non orienté, le degré d’un sommet uu, noté deg(u)\text{deg}(u), est le nombre de sommets adjacents à uu. Dans un graphe orienté, on distingue le demi-degré intérieur deg−(u)\text{deg}^-(u) (nombre d’arcs entrant en uu) et le demi-degré extérieur deg+(u)\text{deg}^+(u) (nombre d’arcs sortants de uu).
  • Chemin : Une suite de sommets (v0,v1,…,vk)(v_0, v_1, \dots, v_k) telle que pour tout i∈{0,…,k−1}i \in \{0, \dots, k-1\}, (vi,vi+1)∈E(v_i, v_{i+1}) \in E (ou AA). La longueur du chemin est kk.
  • Cycle : Un chemin dont l’origine et l’extrémité coïncident (v0=vkv_0 = v_k) avec k≥1k \ge 1.
  • Arbre non orienté : Un graphe non orienté, connexe et acyclique.
  • Arbre enraciné : Un arbre non orienté muni d’un sommet distingué appelé racine. Cela induit une relation d’ordre partiel (parent/enfant, ancêtre/descendant).
  • Arbre bb-aire / Arbre binaire : Un arbre enraciné où chaque sommet possède au plus bb enfants (exactement 2 pour un arbre binaire strict).

📐 2. Théorèmes fondamentaux & Démonstrations clés

Section titled “📐 2. Théorèmes fondamentaux & Démonstrations clés”

Théorème 1 : Lemme des poignées de mains (Handshaking Lemma)

Section titled “Théorème 1 : Lemme des poignées de mains (Handshaking Lemma)”

Énoncé : Soit G=(V,E)G = (V, E) un graphe non orienté. La somme des degrés de tous les sommets est égale au double du nombre d’arêtes : ∑u∈Vdeg(u)=2m\sum_{u \in V} \text{deg}(u) = 2m

Démonstration : Chaque arête {u,v}\{u, v\} relie exactement deux sommets uu et vv. Par conséquent, lors du calcul de la somme des degrés, chaque arête est comptée exactement deux fois : une fois dans le degré de uu et une fois dans le degré de vv. ■\blacksquare Corollaire: * Dans tout graphe, le nombre de sommets de degré impair est pair.


Théorème 2 : Caractérisations des arbres

Section titled “Théorème 2 : Caractérisations des arbres”

Énoncé : Soit G=(V,E)G = (V, E) un graphe non orienté fini à nn sommets (n≥1n \ge 1). Les propositions suivantes sont équivalentes :

  1. GG est un arbre (connexe et acyclique).
  2. GG est acyclique et possède n−1n-1 arêtes.
  3. GG est connexe et possède n−1n-1 arêtes.
  4. GG est connexe, et toute arête est un isthme (sa suppression déconnecte le graphe).
  5. GG est acyclique, et l’ajout d’une arête entre deux sommets non adjacents crée un unique cycle.
  6. Il existe un unique chemin simple entre toute paire de sommets distincts.

Démonstrations partielles (Implication 1  ⟹  21 \implies 2) : Par récurrence sur le nombre de sommets nn.

  • Initialisation (n=1n = 1) : Un arbre à 1 sommet possède 0 arête (1−1=01-1 = 0) et aucun cycle. La propriété est vraie.
  • Hérédité : Soit n≥1n \ge 1 tel que tout arbre à nn sommets a n−1n-1 arêtes et est acyclique. Soit TT un arbre à n+1n+1 sommets. Un arbre possède au moins une feuille (sommet de degré 1, car le graphe est fini, connexe et acyclique). Soit vv une feuille de TT et uu son unique voisin. Considérons le graphe T′=T∖{v}T' = T \setminus \{v\}.
    • T′T' est connexe (la suppression d’une feuille et de son arête incidente ne déconnecte pas le reste du graphe).
    • T′T' est acyclique (car TT l’est). Donc T′T' est un arbre à nn sommets. Par hypothèse de récurrence, T′T' possède n−1n-1 arêtes. Le graphe TT est obtenu en ajoutant le sommet vv et l’arête {u,v}\{u, v\} à T′T'. Ainsi, TT possède (n−1)+1=n(n-1) + 1 = n arêtes, ce qui correspond à (n+1)−1(n+1) - 1. ■\blacksquare

💡 3. Méthodes classiques de résolution

Section titled “💡 3. Méthodes classiques de résolution”
  1. Matrice d’adjacence :
    • Matrice MM de taille n×nn \times n où M[i][j]=1M[i][j] = 1 s’il y a une arête (ou un arc) entre ii et jj (0 sinon).
    • Complexité spatiale : Θ(n2)\Theta(n^2).
    • Complexité pour tester l’adjacence : O(1)O(1).
  2. Listes d’adjacence :
    • Un tableau (ou une table de hachage) de taille nn où la case ii contient la liste chaînée des voisins du sommet ii.
    • Complexité spatiale : Θ(n+m)\Theta(n + m).
    • Complexité pour tester l’adjacence : O(deg(u))O(\text{deg}(u)) dans le pire des cas.
  • Parcours en largeur (BFS - Breadth-First Search) :
    • Utilise une file (FIFO).
    • Permet de trouver les plus courts chemins dans un graphe non pondéré.
  • Parcours en profondeur (DFS - Depth-First Search) :
    • Utilise une pile (LIFO) ou la récursivité.
    • Permet de détecter des cycles, de calculer les composantes connexes, ou d’effectuer un tri topologique (sur les DAG : Directed Acyclic Graphs).

  1. Oubli de la connexité dans la caractérisation des arbres : Un graphe acyclique à nn sommets et n−1n-1 arêtes est nécessairement un arbre (car la connexité en découle). Cependant, un graphe à n−1n-1 arêtes et sans cycle n’est pas forcément connexe si nn est mal interprété, mais avec ∣E∣=∣V∣−1|E| = |V|-1 et l’acyclicité, la connexité est mathématiquement garantie. Attention toutefois : un graphe quelconque sans cycle et à m=nm = n arêtes n’est pas un arbre (il contient au moins une composante connexe unicyclique).
  2. Complexité des parcours sur les représentations : Parcourir tous les voisins d’un sommet en utilisant une matrice d’adjacence prend un temps O(n)O(n), car il faut parcourir toute la ligne de la matrice. En revanche, cela prend O(deg(u))O(\text{deg}(u)) avec des listes d’adjacence. Utiliser la matrice d’adjacence pour un algorithme de parcours (BFS/DFS) mène à une complexité temporelle de O(n2)O(n^2) au lieu de O(n+m)O(n + m).
  3. Puits et sources dans les graphes orientés : Ne pas confondre un sommet de degré sortant nul (puits) dans un graphe orienté avec une feuille d’un arbre. Un sommet isolé n’est pas nécessairement une feuille.
  4. Terminaison des parcours en présence de cycles : Dans un graphe général (non arborescent), l’oubli d’un tableau/ensemble de marquage des sommets visités (marche ou visite) lors d’un DFS ou BFS mène à une boucle infinie.