Résolution d'équations de récurrence contenant deux appels de récursivité

15

J'essaie de trouver un lié pour l'équation de récurrence suivante:Θ

T(n)=2T(n/2)+T(n/3)+2n2+5n+42

Je pense que le théorème principal est inapproprié en raison de la quantité différente de sous-problèmes et de divisions. Les arbres de récursivité ne fonctionnent pas non plus car il n'y a pas de ou plutôt de T (0) .T ( 0 )T(1)T(0)

Laura
la source
5
Si vous avez une récurrence de cette forme, il DOIT y avoir un cas de base, disons T(n)42 pour tout n<100 . Sinon, alors rien ne dit ce que la récurrence résoudra: peut-être T(n)=2m pour tout n<100 , où m est la taille du problème d'origine! (imaginez une récursivité qui finit par comparer le nombre constant de tout ce que vous récursiez à tous les sous-ensembles des éléments originaux) En d'autres termes: aucun cas de base n'implique pas assez d'informations pour résoudre la récurrence.
Alex ten Brink

Réponses:

15

Oui, les arbres récursifs fonctionnent toujours! Peu importe que le cas de base se produise à T(0) ou T(1) ou T(2) ou même T(10100) . Peu importe également la valeur réelle du cas de base; quelle que soit cette valeur, c'est une constante.

Vu à travers de grosses lunettes Theta, la récidive est T(n)=2T(n/2)+T(n/3)+n2 .

  • La racine de l'arbre de récursivité a la valeur n2 .

  • La racine a trois enfants, avec les valeurs (n/2)2 , (n/2)2 et (n/3)2 . Ainsi, la valeur totale de tous les enfants est (11/18)n2 .

  • Contrôle de santé mentale: la racine a neuf petits-enfants: quatre avec une valeur , quatre avec une valeur et un avec une valeur . La somme de ces valeurs est . ( n / 6 ) 2 ( n / 9 ) 2 ( onze / 18 ) 2 n 2(n/4)2(n/6)2(n/9)2(11/18)2n2

  • Une preuve d'induction simple implique que pour tout entier , les nœuds au niveau ont une valeur totale .3 ( 11 / dix-huit ) n 203(11/18)n2

  • Les sommes de niveau forment une série géométrique descendante, donc seul le plus grand terme compte.=0

  • Nous concluons que .T(n)=Θ(n2)

JeffE
la source
14

Vous pouvez utiliser la méthode Akra-Bazzi plus générale .

Dans votre cas, nous aurions besoin de trouver tel quep

12p1+13p=1

(ce qui donne )p1.364

et nous avons ensuite

T(x)=Θ(xp+xp1xt1pdt)=Θ(x2)

Notez que vous n'avez pas vraiment besoin de résoudre pour . Tout ce que vous devez savoir, c'est que .1 < p < 2p1<p<2

Une méthode plus simple serait de définir et d'essayer de prouver que est borné.g ( x )T(x)=x2g(x)g(x)

Aryabhata
la source
14

Soit un raccourci pour le côté droit de la récurrence. Nous trouvons une limite inférieure et supérieure pour en utilisant :f T ( n / 3 ) T ( n / 2 )f(n)=2T(n/2)+T(n/3)+2n2+5n+42fT(n/3)T(n/2)

3T(n/3)+2n2+5n+42f(n)3T(n/2)+2n2+5n+42

Si nous utilisons le resp. Inférieur borne supérieure comme côté droit de la récurrence, nous obtenons dans les deux cas par le théorème maître. Ainsi, est borné d'en haut par et d'en bas par ou, de manière équivalente, .T(n)Θ(n2)T(n)O(n2)Ω(n2)T(n)Θ(n2)


  1. Pour une preuve complète, vous devez prouver que est une fonction croissante.T
Raphael
la source
Continuons cette discussion par chat
Raphael
1
Cette astuce ne fonctionnera pas pour des récurrences similaires, comme , qui peuvent être résolues avec des arbres de récursivité. (Mais même les arbres de récursivité ne fonctionneront pas pour , ce qui peut être résolu avec Akra-Bazzi.)T(n)=2T(n/2)+3T(n/3)+n2T(n)=2T(n/2)+4T(n/3)+n2
JeffE