Probleme – L'arbre de décision, et pourquoi aucun tri ne fera mieux que
Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 10 — Arbres
Énoncé
Un algorithme qui trie en ne faisant que des comparaisons se représente par un arbre binaire : chaque nœud interne est une comparaison, chaque feuille une permutation rendue.
- Montrer qu'un arbre binaire non vide de hauteur a au plus feuilles.
- Combien de feuilles l'arbre de décision d'un tri de éléments doit-il avoir ?
- En déduire une borne inférieure sur le nombre de comparaisons dans le pire cas.
- Calculer cette borne pour et , et la comparer au tri fusion.
Corrigé
1. Au plus feuilles. <details class="group my-6 border border-gray-300 rounded-2xl bg-black/[0.03] overflow-hidden transition-all duration-300"><summary style="color:#1e3a8a" class="flex items-center justify-between p-4 cursor-pointer text-xs font-bold select-none"><div class="flex items-center"><i class="fa-solid fa-graduation-cap mr-2"></i>Démonstration</div><span class="transition-transform group-open:rotate-180"><i class="fa-solid fa-chevron-down"></i></span></summary><div style="color:#1d4ed8" class="force-blue p-4 pt-0 border-t border-gray-200 bg-black/[0.02] leading-relaxed font-sans text-xs select-text"> Par induction structurelle sur l'arbre non vide , en notant son nombre de feuilles.
Cas — une feuille, : .
Cas avec au moins un fils non vide. Si les deux le sont, , puisque . Si un seul l'est, disons , alors .
Autrement dit, : un arbre à beaucoup de feuilles est nécessairement haut, et c'est tout ce dont on a besoin.
2. Il faut au moins feuilles. L'algorithme reçoit éléments dans un ordre inconnu et doit rendre l'une des permutations possibles. Deux entrées demandant des permutations différentes ne peuvent pas aboutir à la même feuille : la feuille détermine entièrement ce que l'algorithme rend. Chacune des permutations doit donc être atteinte par au moins une feuille, d'où .
3. La borne inférieure. La hauteur de l'arbre de décision est le nombre de comparaisons dans le pire cas — c'est la plus longue branche. Les deux questions précédentes donnent
Et par la formule de Stirling, , donc
Aucun algorithme de tri par comparaisons ne peut faire mieux, quelle que soit son ingéniosité. Le tri fusion, en , est donc optimal à une constante près — et c'est ce théorème qui le dit.
4. Les chiffres, calculés.
| borne | tri fusion, pire cas | |||
|---|---|---|---|---|
Pour : sept comparaisons au minimum, et le tri fusion en fait huit. Un algorithme atteignant sept existe — celui de Ford et Johnson — ce qui montre que la borne est atteinte pour cette valeur.
Pour , la borne est et le tri fusion en fait . L'écart reste petit, et il est logarithmique en , jamais d'un ordre de grandeur.
Trois mises en garde, et elles sont le vrai contenu du problème.
Un. La borne ne dit rien des tris qui ne comparent pas. Un tri par comptage ou par base ne fait aucune comparaison : il indexe. Il trie entiers de en , donc en temps linéaire quand . Il ne contredit pas le théorème : il sort de ses hypothèses. Repérer l'hypothèse qu'un algorithme viole est le réflexe à acquérir devant toute borne inférieure.
Deux. La borne porte sur le pire cas. Un algorithme peut faire moins de comparaisons sur des entrées favorables : le tri par insertion en fait sur une liste déjà triée (chapitre chap:induction). L'arbre de décision a alors une branche courte — il n'a pas moins de feuilles pour autant.
Trois. C'est un résultat sur les arbres, pas sur les tris. Le raisonnement se transporte tel quel : toute procédure qui doit distinguer cas en posant des questions binaires demande questions dans le pire cas. Recherche dichotomique, pesées de pièces, jeu des vingt questions — la même inégalité , et la seule chose qui change est le compte des feuilles.
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.