Jusqu'ici, nous avons vu des données en ligne - tableaux, listes chaînées, piles et files d'attente organisent les éléments en séquence. Mais le monde réel n'est pas linéaire. Les arbres généalogiques se ramifient. Les réseaux sociaux forment des toiles. Les cartes routières créent des itinéraires interconnectés.
Les arbres et les graphes capturent ces relations, et ils sont au cœur des techniques les plus puissantes de l'IA.
Un arbre est une structure où chaque élément (appelé nœud) peut avoir des nœuds enfants, formant une hiérarchie. Un nœud spécial en haut s'appelle la racine, et les nœuds sans enfants sont les feuilles.
CEO
/ \
CTO CFO
/ \ \
Dev1 Dev2 Accountant
Un arbre binaire limite chaque nœud à deux enfants maximum - un enfant gauche et un enfant droit. Cette simple contrainte permet des algorithmes puissants.
8
/ \
3 10
/ \ \
1 6 14
Un BST ajoute une règle : pour chaque nœud, toutes les valeurs du sous-arbre gauche sont plus petites, et celles du sous-arbre droit sont plus grandes.
Sign in to join the discussion
La recherche est rapide - à chaque nœud, on sait s'il faut aller à gauche ou à droite :
Find 6 in the BST above:
Start at 8 → 6 < 8, go left
At 3 → 6 > 3, go right
At 6 → Found it!
Complexité : O(log n) pour un arbre équilibré - la même magie logarithmique que la recherche binaire sur un tableau trié.
Dans un BST équilibré avec 1 000 000 de nœuds, combien de comparaisons sont nécessaires pour trouver une valeur ?
Un graphe généralise les arbres en supprimant la contrainte hiérarchique. Il se compose de nœuds (ou sommets) et d'arêtes (connexions entre nœuds). Les arêtes peuvent être :
Social network (undirected):
Alice - Bob - Charlie
\ |
Diana - Eve
Road map (weighted, directed):
London →(2h)→ Birmingham →(1.5h)→ Manchester
Le graphe social de Facebook contient plus de 3 milliards de nœuds (utilisateurs) et des centaines de milliards d'arêtes (amitiés). Les algorithmes de graphes déterminent votre fil d'actualité, vos suggestions d'amis et le ciblage publicitaire.
L'un des modèles d'IA les plus interprétables est l'arbre de décision. Il pose une série de questions oui/non pour classifier les données :
Is temperature > 30°C?
├── Yes: Is humidity > 70%?
│ ├── Yes: "Don't play tennis"
│ └── No: "Play tennis"
└── No: Is it windy?
├── Yes: "Don't play tennis"
└── No: "Play tennis"
Les arbres de décision sont populaires car les humains peuvent les lire - crucial en santé, finance et droit où l'explicabilité compte.
Un hôpital utilise une IA pour prédire le risque patient. Les régulateurs exigent que l'IA explique ses décisions. Pourquoi un arbre de décision pourrait-il être préféré à un réseau de neurones profond, même si ce dernier est légèrement plus précis ?
Une forêt aléatoire construit des centaines d'arbres de décision, chacun entraîné sur un sous-ensemble légèrement différent, puis fait un vote. Cette approche d'ensemble est plus précise et robuste qu'un seul arbre.
Un graphe de connaissances stocke des faits sous forme de relations : (London) --[capital_of]--> (United Kingdom). Le Knowledge Graph de Google alimente les panneaux d'information dans les résultats de recherche.
Netflix, Spotify et Amazon modélisent utilisateurs et produits comme un graphe. Si A et B ont aimé X et Y, et que A a aussi aimé Z, le graphe suggère Z à B - c'est le filtrage collaboratif.
Pourquoi les graphes sont-ils meilleurs que de simples listes pour modéliser les réseaux sociaux ?
Le DFS explore aussi loin que possible le long d'un chemin avant de revenir en arrière.
A → B → D → E → C → F
Le DFS utilise une pile (via la récursion ou explicitement). Idéal pour : résoudre des labyrinthes, détecter des cycles, tri topologique.
Le BFS explore tous les voisins au niveau courant avant d'aller plus profond - comme des ondulations dans l'eau.
A → B → C → D → E → F
Le BFS utilise une file d'attente. Idéal pour : plus court chemin (graphe non pondéré), degrés de séparation, crawling web.
Remarquez comment les piles et files d'attente de la leçon précédente se connectent au parcours d'arbres et graphes ? Le DFS utilise une pile ; le BFS utilise une file d'attente. Les structures de données s'appuient les unes sur les autres.
Vous voulez trouver le chemin le plus court entre deux villes sur une carte où toutes les routes ont la même longueur. Quel parcours utiliser ?
Les plateformes de médias sociaux mesurent les « degrés de séparation ». Quel algorithme de parcours trouverait efficacement le nombre minimal de sauts entre deux utilisateurs ?
L'algorithme PageRank de Google - la percée originale qui a rendu Google dominant - modélise le web comme un graphe. L'importance d'une page est déterminée par le nombre de pages importantes qui la référencent. C'est essentiellement une marche aléatoire sur un graphe.