Relations de récurrence
Les relations de récurrence expriment le temps d'exécution d'un algorithme récursif en fonction de son temps d'exécution sur des entrées plus petites ; leur résolution permet d'obtenir les bornes asymptotiques sous forme fermée utilisées pour analyser les algorithmes de type diviser pour régner et d'autres algorithmes récursifs.
Definition
Une relation de récurrence est une équation qui définit la valeur d'une fonction pour une entrée donnée en fonction de ses valeurs pour des entrées plus petites ; dans l'analyse des algorithmes, elle exprime le coût d'un algorithme sur une entrée de taille n en fonction de son coût sur des sous-problèmes plus petits.
Scope
Ce sujet couvre la formulation et la résolution des récurrences rencontrées dans l'analyse des algorithmes : la méthode de substitution, la méthode de l'arbre de récursion et le théorème maître pour les récurrences de type diviser pour régner de la forme T(n) = aT(n/b) + f(n). Il explique comment chaque algorithme récursif induit une récurrence et comment traduire cette récurrence en une borne en grand-Thêta. Il exclut la notation asymptotique elle-même, qui est traitée séparément, ainsi que les méthodes de fonctions génératrices combinatoires issues des mathématiques discrètes.
Core questions
- Comment un algorithme récursif donne-t-il lieu à une récurrence pour son temps d'exécution ?
- Comment la méthode de substitution est-elle utilisée pour prouver et vérifier une solution supposée ?
- Comment la méthode de l'arbre de récursion révèle-t-elle le travail total effectué à travers les niveaux de récursion ?
- Quand le théorème maître s'applique-t-il, et que signifient ses trois cas ?
- Comment les récurrences qui ne correspondent pas à la forme du théorème maître sont-elles traitées ?
Key concepts
- relation de récurrence
- méthode de substitution
- méthode de l'arbre de récursion
- théorème maître
- récurrence diviser pour régner
- cas de base et cas récursif
- solution sous forme fermée
- méthode d'Akra-Bazzi
Key theories
- Théorème maître
- Pour les récurrences de type diviser pour régner T(n) = aT(n/b) + f(n), le théorème maître donne la solution asymptotique en comparant f(n) à n élevé à la puissance log en base b de a, couvrant les trois cas où les feuilles, la racine ou les niveaux équilibrés dominent.
- Méthodes de l'arbre de récursion et de substitution
- La méthode de l'arbre de récursion somme le travail effectué à chaque niveau de récursion pour suggérer une borne, que la méthode de substitution prouve ensuite rigoureusement par induction ; ensemble, elles traitent les récurrences qui dépassent le champ d'application du théorème maître.
Clinical relevance
La résolution des récurrences est la voie standard pour déterminer le temps d'exécution des algorithmes récursifs, du tri fusion (mergesort) et du tri rapide (quicksort) à la multiplication rapide et à de nombreux programmes dynamiques. Les ingénieurs et les chercheurs utilisent couramment le théorème maître pour dériver et justifier les affirmations de complexité asymptotique associées à de tels algorithmes.
History
L'analyse des récurrences des algorithmes a été systématisée dans The Art of Computer Programming de Knuth. Le théorème maître est devenu un pilier des manuels grâce au CLRS, et la méthode d'Akra-Bazzi (1998) l'a généralisé à une classe plus large de récurrences de type diviser pour régner avec des divisions inégales.
Key figures
- Donald Knuth
- Mohamad Akra
- Louay Bazzi
Related topics
Seminal works
- cormen2009
- knuth1997vol1
Frequently asked questions
- Quand puis-je utiliser le théorème maître ?
- Le théorème maître s'applique aux récurrences de la forme T(n) = aT(n/b) + f(n) avec a >= 1 et b > 1, où chaque niveau divise le problème en a sous-problèmes de taille n/b. Les récurrences avec des divisions inégales, des tailles de sous-problèmes variables ou des coûts de combinaison non polynomiaux peuvent nécessiter l'utilisation des méthodes de l'arbre de récursion, de substitution ou d'Akra-Bazzi à la place.
- Pourquoi la récurrence du tri fusion (mergesort) donne-t-elle O(n log n) ?
- Le tri fusion (mergesort) donne T(n) = 2T(n/2) + O(n) : deux sous-problèmes de demi-taille plus une fusion linéaire. Ici, le travail par niveau est le même sur tous les log n niveaux de l'arbre de récursion, donc le total est n fois log n, ce que le théorème maître confirme comme Thêta(n log n).