Adloun

Probleme – Accessibilité, puissances booléennes et fermeture transitive

Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 13 — Le modèle des graphes

Énoncé

Corrigé

On travaille dans l'algèbre booléenne : les coefficients valent ou , la somme est le « ou » et le produit le « et ». Le produit matriciel s'écrit alors

et il vaut exactement quand il existe un reliant à par les deux relations.

1. Ce que compte . La matrice décrit la relation « ou », c'est-à-dire « on va de à en au plus un arc ». Par récurrence immédiate sur :

Le est ce qui transforme « exactement » en « au plus » : il autorise à rester sur place.

2. La fermeture transitive. Dans un graphe à sommets, si est accessible depuis , il l'est par un chemin élémentaire — sans sommet répété : en excisant la portion entre deux passages par un même sommet, on raccourcit sans changer les extrémités. Un tel chemin a au plus arcs. Donc

est exactement la matrice d'accessibilité, ou fermeture transitive (et réflexive) de .

Complexité. Calculée naïvement, produits à chacun : . Par exponentiation rapide — on calcule , puis son carré, etc. —, il suffit de produits, soit . On peut faire mieux : l'algorithme de Floyd-Warshall (chapitre chap:parcours) obtient la même matrice en sans logarithme, et le chapitre note que c'est justement l'algorithme « en lien avec la représentation par matrice d'adjacence ».

3. La comparaison avec les parcours. Lancer un parcours depuis chaque sommet coûte fois , soit .

tempsmémoire
puissances booléennes
Floyd-Warshall
parcours sur listes

Sur un graphe creux, les parcours gagnent nettement : avec , ils coûtent contre . Sur un graphe dense, , les deux valent et la matrice l'emporte par sa constante — le produit matriciel est une boucle serrée sur de la mémoire contiguë, là où le parcours suit des pointeurs.

Il reste que le résultat occupe dans les deux cas : la fermeture transitive d'un graphe creux n'est pas creuse. Sur le réseau routier français, elle occuperait les téraoctets calculés plus haut. On ne calcule donc jamais la fermeture transitive d'un grand graphe : on répond aux questions d'accessibilité une par une, par un parcours en .

4. La vérification. Mesuré sur le graphe du chapitre, :

On lit que tout est accessible depuis ; que le sommet n'atteint que lui-même — c'est un puits ; et que la diagonale est la seule partie symétrique, ce qui traduit l'absence de cycle. Vérifié par un parcours en largeur depuis chacun des quatre sommets : les deux matrices sont identiques, case par case.

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.