Les puissances de la matrice comptent les chemins
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 13 — Le modèle des graphes
Énoncé
Le chapitre affirme que le coefficient de compte les chemins de longueur de à .
- Le vérifier sur le graphe du chapitre en calculant , , .
- Que signifie ?
- Pour un graphe non orienté, que valent les coefficients diagonaux de , et que compte ?
Corrigé
1. Avec la matrice du chapitre (, , , ), mesuré :
On lit : il y a exactement un chemin de longueur de à , à savoir . Et : le chemin . Vérifié indépendamment par énumération de tous les chemins.
2. signifie qu'il n'existe aucun chemin de longueur . Ici : le plus long chemin du graphe a trois arcs.
Et c'est un critère d'acyclicité. Si le graphe contenait un cycle, on pourrait le parcourir autant de fois qu'on veut, donc il existerait des chemins de toute longueur, et aucune puissance de ne serait nulle. Réciproquement, dans un graphe sans circuit à sommets, un chemin ne peut répéter aucun sommet, donc sa longueur est au plus : . D'où
Un graphe orienté est acyclique si et seulement si sa matrice d'adjacence est nilpotente — un fait algébrique pour un fait combinatoire, et l'un des plus jolis ponts entre les deux.
3. Le cas non orienté. La matrice est alors symétrique, et
La diagonale de est la suite des degrés : un aller-retour est un chemin de longueur , et il y en a autant que de voisins. Mesuré sur un graphe à sommets et arêtes : degrés , diagonale de identique, et somme .
Pour , un coefficient diagonal compte les chemins fermés de longueur partant de : ce sont exactement les triangles passant par , chacun compté deux fois — une par sens de parcours. En sommant sur , chaque triangle est de plus compté trois fois, une par sommet de départ. Donc
Mesuré : , donc triangles — et l'énumération directe donne bien et .
Ce que cela coûte, et pourquoi on ne fait pas toujours ainsi. Compter les triangles par demande deux produits matriciels, soit — et de mémoire, donc impraticable sur un graphe creux de sommets. Le parcours des listes d'adjacence les compte en , ce qui est bien meilleur dès que le graphe est creux. Une formule élégante n'est pas un algorithme, et le choix de la représentation continue de décider — c'est la remarque du chapitre sur Dijkstra et Floyd-Warshall.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.