Adloun

informatique (MP2I/MPI) · Chapitre 24 · Exercice de TD

Problème — Kosaraju : pourquoi le second parcours ne déborde pas

Composantes fortement connexes et couplages · niveau 3 (difficile)

Énoncé

Le chapitre admet l'essentiel de la correction. On la démontre ici.

Pour une composante , on note le maximum des dates de fin de traitement de ses sommets lors du premier parcours.

  • Montrer que si le quotient a un arc , alors .
  • En déduire que le sommet de plus grande date de fin appartient à une composante source.
  • Conclure par récurrence que l'algorithme est correct.
  • Quelle est la complexité, et que rend-on de plus ?

Corrigé de la question 1

1. Soit un arc dans le quotient. Deux cas, selon celle des deux composantes que le parcours rencontre en premier.

Cas 1 : le parcours entre d'abord dans , en un sommet . Comme , tous les sommets de sont accessibles depuis ; comme aucun d'eux n'a encore été vu, la descente depuis les visitera tous et les terminera avant de terminer — c'est la propriété d'imbrication des appels récursifs. Donc .

Cas 2 : le parcours entre d'abord dans , en un sommet . Alors aucun sommet de n'est accessible depuis : sinon il y aurait un chemin de vers , et avec l'arc un cycle dans le quotient, qui est acyclique. La descente depuis termine donc tous les sommets de sans toucher à , et car sera visitée plus tard.

Dans les deux cas . Autrement dit, trier les composantes par décroissant est un tri topologique du quotient — c'est la propriété mesurée à l'exercice « Dérouler Kosaraju ».

Question 2 : comment l'IA t'aide

2. En déduire que le sommet de plus grande date de fin appartient à une composante source.

Élève

Le sommet de plus grande date de fin est la racine d'un appel de plus haut niveau du premier parcours. J'en déduis qu'aucun sommet du graphe ne mène à , mais j'ai un doute.

IA

Ton doute est justifié : sommet par sommet, c'est faux, puisque dans sa propre composante d'autres sommets mènent à . Raisonne au niveau du quotient : que peux-tu dire de , pour la composante de ?

Élève

est au moins la date de fin de , qui est la plus grande de toutes ; donc est maximal parmi les composantes.

IA

Suppose qu'une composante ait un arc vers dans le quotient : que te donne la question 1 sur , et en quoi est-ce incompatible avec ce que tu viens d'établir ?

L'IA ne donne pas la réponse : elle pose la question qui fait avancer. À toi de continuer.

Continue cet exercice avec l'IA

Reprends la question 2 là où le dialogue s'arrête, puis la suite de l'exercice.

Continuer avec l'IA — gratuit, sans inscription

Gratuit, sans inscription. L'IA te guide pas à pas, sans te donner la réponse.

Le cours du chapitre · Tous les exercices du chapitre

Continuer avec l'IA, gratuit →