Le modèle des graphes
Cours · informatique (MP2I/MPI), chapitre 13 · MP2I et MPI · le début du chapitre, la suite sur Adloun
13.1 Un modèle, et presque tout devient un graphe
Le programme range les graphes parmi les « structures de données relationnelles », et le mot est juste : là où l'arbre impose une hiérarchie, le graphe ne dit rien de plus que « ces objets sont reliés ». C'est cette pauvreté qui fait sa portée.
Il demande de « mettre en avant des applications importantes et si possible modernes : réseau de transport, graphe du web, réseaux sociaux, bio-informatique », et de « préciser autant que possible la taille typique de tels graphes ». Ces ordres de grandeur ne sont pas anecdotiques — ils décident de l'algorithme qu'on a le droit d'écrire.
| Graphe | Sommets | Arcs | Ce qu'un donnerait |
|---|---|---|---|
| Métro d'une ville | instantané | ||
| Réseau routier français | opérations : des jours | ||
| Graphe du web | inconcevable | ||
| Réseau social mondial | inconcevable |
Sur un graphe de sommets, un algorithme en est inutilisable, et un algorithme en tourne en quelques secondes. C'est pourquoi la représentation choisie — matrice ou listes — n'est pas un détail d'écriture : elle change la complexité de tout ce qu'on bâtira dessus.
13.2 Définitions
Un graphe est la donnée d'un ensemble fini de sommets (ou nœuds) et d'un ensemble de liens.
- Si les liens sont des couples ordonnés, on parle d'arcs et le graphe est orienté.
- Si ce sont des paires non ordonnées, on parle d'arêtes et le graphe est non orienté.
On note et . Une boucle est un arc ou une arête d'un sommet vers lui-même. Le programme précise : « on n'évoque pas les multi-arcs » — entre deux sommets, il y a au plus un lien dans chaque sens.
Dans un graphe non orienté, le degré est le nombre d'arêtes incidentes à . Dans un graphe orienté, le programme fixe les notations :
Dans un graphe non orienté, . Dans un graphe orienté, .
Démonstration
Chaque arête est comptée une fois dans et une fois dans : la somme des degrés compte donc chaque arête deux fois. Chaque arc , lui, est compté une seule fois dans et une seule dans .
Un chemin de à est une suite de sommets où chaque est un arc (ou une arête). Sa longueur est , le nombre d'arcs — et non de sommets.
Un cycle est un chemin de longueur non nulle dont l'origine et l'extrémité coïncident. Dans un graphe non orienté, on exige de plus qu'il n'emprunte pas deux fois la même arête, faute de quoi tout aller-retour serait un cycle.
Exercices du chapitre
- Sept sommets de degré trois corrigé
- Un arbre a exactement arêtes corrigé
- Tout graphe orienté acyclique possède une source corrigé
- Les puissances de la matrice comptent les chemins corrigé
- Problème — Un graphe pour un problème qui n'en a pas l'air corrigé
- Problème — Du tableau rectangulaire au tableau de départs corrigé