Método de Akra–Bazzi

Em ciência da computação, o método de Akra–Bazzi, ou teorema Akra–Bazzi, é utilizado para analisar o comportamento assintótico de recorrências que aparecem na análise de algoritmos de divisão e conquista onde o sub-problemas têm substancialmente diferentes tamanhos. É uma generalização do teorema mestre para recorrências de divisão e conquista, que assume que os sub-problemas possuem o mesmo tamanho. O método recebe o nome dos matemáticos Mohamad Akra e Louay Bazzi[1].

Formulação editar

O método de Akra–Bazzi aplica-se a fórmulas de recorrência da forma[1]

 

As condições para o uso são:

  • foram fornecidos casos base suficientes
  •    são constantes para todo  
  •   para todo  
  •   para todo  
  •  , onde  é uma constante e   denota a notação Grande-O.
  •   para todo  
  •   é uma constante

O comportamento assintótico de   é encontrado determinando o valor de   no qual   e substituindo esse valor na equação[2]

 

Intuitivamente,   representa uma pequena perturbação no índice de  . Observando que   e que o valor absoluto de   está sempre entre   e  ,   pode ser usado para ignorar a função piso no índice. Da mesma forma, também se pode ignorar a função de teto. Por exemplo,   e  , conforme o teorema de Akra–Bazzi, têm o mesmo comportamento assintótico.

Exemplo editar

Suponha que   é definido como 1 para números inteiros   e   para inteiros  . Na aplicação do método de Akra–Bazzi, o primeiro passo é encontrar o valor de   tal que  . Nesse exemplo,  . Então, usando a fórmula, o comportamento assintótico pode ser determinado da seguinte forma[3]:

 

Significado editar

O método de Akra–Bazzi é mais útil do que a maioria de outras técnicas para a determinação do comportamento assintótico, pois cobre uma ampla variedade de casos. A sua principal aplicação é a aproximação do tempo de execução de muitos algoritmos de divisão e conquista. Por exemplo, no merge sort, o número de comparações necessárias, no pior caso, que é aproximadamente proporcional ao seu tempo de execução, é dado recursivamente como   e

 

para inteiros   e, portanto, pode ser calculado usando o método de Akra–Bazzi, onde obtém-se  .

Referências editar

  1. a b «On the solution of linear recurrence equations». Computational Optimization and Applications. 10 – via Springer Link 
  2. «Proof and application on few examples» (PDF) 
  3. Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford. Introduction to Algorithms. [S.l.: s.n.] ISBN 978-0262033848 

Ver também editar

Ligações externas editar

O Método de Akra-Bazzi na Resolução de Equações de Recorrência