análise de algoritmos aula 10 - ufpr · an alise de algoritmos aula 10 prof. murilo v. g. da silva...
TRANSCRIPT
![Page 1: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/1.jpg)
Analise de AlgoritmosAula 10
Prof. Murilo V. G. da Silva
DINF/UFPR
(material da disciplina: Andre Guedes, Renato Carmo, Murilo da Silva)
![Page 2: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/2.jpg)
Multiplicacao Recursiva de Inteiros
Queremos multiplicar dois inteiros x e y de precisao arbitraria
Inicialmente vamos apresentar a intuicao do algoritmo sem muito formalismo
Para simplificar (e tornar clara a ideia central do algoritmo), suponha
Os dois numeros tem n bits, cada bit guardado em um no de uma lista
n e potencia de 2
Depois lidamos com as condicoes de contorno...
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 3: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/3.jpg)
Multiplicacao Recursiva de Inteiros
Queremos multiplicar dois inteiros x e y de precisao arbitraria
Inicialmente vamos apresentar a intuicao do algoritmo sem muito formalismo
Para simplificar (e tornar clara a ideia central do algoritmo), suponha
Os dois numeros tem n bits, cada bit guardado em um no de uma lista
n e potencia de 2
Depois lidamos com as condicoes de contorno...
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 4: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/4.jpg)
Multiplicacao Recursiva de Inteiros
Queremos multiplicar dois inteiros x e y de precisao arbitraria
Inicialmente vamos apresentar a intuicao do algoritmo sem muito formalismo
Para simplificar (e tornar clara a ideia central do algoritmo), suponha
Os dois numeros tem n bits, cada bit guardado em um no de uma lista
n e potencia de 2
Depois lidamos com as condicoes de contorno...
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 5: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/5.jpg)
Multiplicacao Recursiva de Inteiros
Queremos multiplicar dois inteiros x e y de precisao arbitraria
Inicialmente vamos apresentar a intuicao do algoritmo sem muito formalismo
Para simplificar (e tornar clara a ideia central do algoritmo), suponha
Os dois numeros tem n bits, cada bit guardado em um no de uma lista
n e potencia de 2
Depois lidamos com as condicoes de contorno...
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 6: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/6.jpg)
Multiplicacao Recursiva de Inteiros
Queremos multiplicar dois inteiros x e y de precisao arbitraria
Inicialmente vamos apresentar a intuicao do algoritmo sem muito formalismo
Para simplificar (e tornar clara a ideia central do algoritmo), suponha
Os dois numeros tem n bits, cada bit guardado em um no de uma lista
n e potencia de 2
Depois lidamos com as condicoes de contorno...
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 7: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/7.jpg)
Multiplicacao Recursiva de Inteiros
Dado x ∈ N, definimos
xL: os n2
bits mais a esquerda de x em binario
ou seja xn...x n2
xR: os n2
bits mais a direita de x em binario
ou seja, x n2
+1...x1
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 8: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/8.jpg)
Multiplicacao Recursiva de Inteiros
A funcao ShiftLeft(z, k)
Dado z, a representacao binaria de um inteiro junto com um outro inteiro k
A funcao ShiftLeft(z, k) retorna a representacao:
z(0 . . . 0︸ ︷︷ ︸k bits
)
Note: ShiftLeft(z, k) multiplica o o numero representado por z por 2k
Note: O tempo de execucao de ShiftLeft(z, k) e Θ(k)
Teorema: Soma em tempo linear
Sejam x , y dois numeros inteiros tais que a representacao binaria de ambos osnumeros tem n bits. Em particular, a listas que guardam ambos x e y tem n nos.Entao a soma x + y pode ser computada em tempo Θ(n).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 9: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/9.jpg)
Multiplicacao Recursiva de Inteiros
Com isso em mente, observe que:
x = 2n/2xL + xR, (1)
y = 2n/2yL + yR (2)
Usando (1), qual e o valor de xy? Veja abaixo
xy = (2n/2xL + xR)(2n/2yL + yR), (3)
= 2nxLyL + 2n/2(xLyR + xRyL) + xRyR (4)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 10: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/10.jpg)
Multiplicacao Recursiva de Inteiros
Com isso em mente, observe que:
x = 2n/2xL + xR, (1)
y = 2n/2yL + yR (2)
Usando (1), qual e o valor de xy?
Veja abaixo
xy = (2n/2xL + xR)(2n/2yL + yR), (3)
= 2nxLyL + 2n/2(xLyR + xRyL) + xRyR (4)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 11: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/11.jpg)
Multiplicacao Recursiva de Inteiros
Com isso em mente, observe que:
x = 2n/2xL + xR, (1)
y = 2n/2yL + yR (2)
Usando (1), qual e o valor de xy? Veja abaixo
xy = (2n/2xL + xR)(2n/2yL + yR), (3)
= 2nxLyL + 2n/2(xLyR + xRyL) + xRyR (4)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 12: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/12.jpg)
Multiplicacao Recursiva de Inteiros
Com isso em mente, observe que:
x = 2n/2xL + xR, (1)
y = 2n/2yL + yR (2)
Usando (1), qual e o valor de xy? Veja abaixo
xy = (2n/2xL + xR)(2n/2yL + yR), (3)
= 2nxLyL + 2n/2(xLyR + xRyL) + xRyR (4)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 13: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/13.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 14: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/14.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 15: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/15.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 16: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/16.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 17: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/17.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 18: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/18.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 19: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/19.jpg)
Multiplicacao Recursiva de Inteiros
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
Pela formula acima, para calcular xy , dependemos de quatro produtos:
xLyL
xLyR
xRyL
xRyR
Em seguida, combinamos isso somando tres termos:
(a) 2nxLyL
(b) 2n/2(xLyR + xRyL)
(c) xRyR
Portanto o custo para computar xy se resume ao custo de:
Quatro multiplicacoes xLyL, xLyL, xLyL, xLyL (todas com numeros de n2
bits)
Computar (a) usando ShiftLeft(xLyL, n)
Computar (b) fazendo uma soma usando um ShiftLeft no resultado.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 20: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/20.jpg)
Multiplicacao Recursiva de Inteiros
Observe que as ideias acima nos fornece diretamente o seguinte algoritmo de divisao econquista para multiplicar x por y :
Algoritmo 1: RecursiveMult(x , y) /*x , y sao inteiros de n bits */
Se n = 1z = x ∧ y
SenaozLL = RecursiveMult(xL, yL)zLR = RecursiveMult(xL, yL)zRL = RecursiveMult(xL, yL)zRR = RecursiveMult(xL, yL)z = Reconstroi(zLL, zLR, zRL, zRR)
Devolva z
Algoritmo 2: Reconstroi(zLL, zLR, zRL, zRR)
a = ShiftLeft(zLL, n)c = zLR + zRLb = ShifLeft(c, n
2)
z = a + b + zRRDevolva z
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 21: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/21.jpg)
Multiplicacao Recursiva de Inteiros
Observe que as ideias acima nos fornece diretamente o seguinte algoritmo de divisao econquista para multiplicar x por y :
Algoritmo 3: RecursiveMult(x , y) /*x , y sao inteiros de n bits */
Se n = 1z = x ∧ y
SenaozLL = RecursiveMult(xL, yL)zLR = RecursiveMult(xL, yL)zRL = RecursiveMult(xL, yL)zRR = RecursiveMult(xL, yL)z = Reconstroi(zLL, zLR, zRL, zRR)
Devolva z
Algoritmo 4: Reconstroi(zLL, zLR, zRL, zRR)
a = ShiftLeft(zLL, n)c = zLR + zRLb = ShifLeft(c, n
2)
z = a + b + zRRDevolva z
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 22: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/22.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Multiplicacao Recursiva e T (n) = 4T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e Θ(n2)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 23: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/23.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Multiplicacao Recursiva e T (n) = 4T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e Θ(n2)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 24: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/24.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Multiplicacao Recursiva e T (n) = 4T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e Θ(n2)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 25: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/25.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Multiplicacao Recursiva e T (n) = 4T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e
Θ(n2)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 26: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/26.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Multiplicacao Recursiva e T (n) = 4T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e Θ(n2)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 27: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/27.jpg)
Multiplicacao Recursiva de Inteiros
Reescrevendo xy :
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
= 2nxLyL + 2n/2[(xL + xR)(yL + yR)− xLyL − xRyR)] + xRyR (5)
Qual e a vantagem da Equacao (5)?Precisamos computar apenas tres produtos:
xLyL(xL + xR)(yL + yR)xRyR
E depois de uma operacao Reconstroi que depende apenas de operacoes de:
Soma
Subtracao
ShifLeft
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 28: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/28.jpg)
Multiplicacao Recursiva de Inteiros
Reescrevendo xy :
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
= 2nxLyL + 2n/2[(xL + xR)(yL + yR)− xLyL − xRyR)] + xRyR (5)
Qual e a vantagem da Equacao (5)?
Precisamos computar apenas tres produtos:
xLyL(xL + xR)(yL + yR)xRyR
E depois de uma operacao Reconstroi que depende apenas de operacoes de:
Soma
Subtracao
ShifLeft
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 29: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/29.jpg)
Multiplicacao Recursiva de Inteiros
Reescrevendo xy :
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
= 2nxLyL + 2n/2[(xL + xR)(yL + yR)− xLyL − xRyR)] + xRyR (5)
Qual e a vantagem da Equacao (5)?Precisamos computar apenas tres produtos:
xLyL(xL + xR)(yL + yR)xRyR
E depois de uma operacao Reconstroi que depende apenas de operacoes de:
Soma
Subtracao
ShifLeft
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 30: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/30.jpg)
Multiplicacao Recursiva de Inteiros
Reescrevendo xy :
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
= 2nxLyL + 2n/2[(xL + xR)(yL + yR)− xLyL − xRyR)] + xRyR (5)
Qual e a vantagem da Equacao (5)?Precisamos computar apenas tres produtos:
xLyL
(xL + xR)(yL + yR)xRyR
E depois de uma operacao Reconstroi que depende apenas de operacoes de:
Soma
Subtracao
ShifLeft
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 31: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/31.jpg)
Multiplicacao Recursiva de Inteiros
Reescrevendo xy :
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
= 2nxLyL + 2n/2[(xL + xR)(yL + yR)− xLyL − xRyR)] + xRyR (5)
Qual e a vantagem da Equacao (5)?Precisamos computar apenas tres produtos:
xLyL(xL + xR)(yL + yR)
xRyR
E depois de uma operacao Reconstroi que depende apenas de operacoes de:
Soma
Subtracao
ShifLeft
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 32: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/32.jpg)
Multiplicacao Recursiva de Inteiros
Reescrevendo xy :
xy = 2nxLyL + 2n/2(xLyR + xRyL) + xRyR
= 2nxLyL + 2n/2[(xL + xR)(yL + yR)− xLyL − xRyR)] + xRyR (5)
Qual e a vantagem da Equacao (5)?Precisamos computar apenas tres produtos:
xLyL(xL + xR)(yL + yR)xRyR
E depois de uma operacao Reconstroi que depende apenas de operacoes de:
Soma
Subtracao
ShifLeft
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 33: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/33.jpg)
Multiplicacao Recursiva de Inteiros
Algoritmo 5: Karatsuba(x , y) /*x , y sao inteiros de n bits */
Se n = 1z = x ∧ y
Senaoa′ = xL + xR
a′′ = yL + yR
zLL = RecursiveMult(xL, yL)a = RecursiveMult(a′, a′′)zRR = RecursiveMult(xL, yL)
z = ReconstroiKaratsuba(zLL, a, zRR)
Devolva z
Algoritmo 6: ReconstroiKaratsuba(zLL, a, zRR))
b = a− zLL − zRR
z ′ = ShifLeft(zLL, n)z ′′ = ShifLeft(b, n
2)
Devolva z ′ + z ′′ + zRR
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 34: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/34.jpg)
Multiplicacao Recursiva de Inteiros
Algoritmo 7: Karatsuba(x , y) /*x , y sao inteiros de n bits */
Se n = 1z = x ∧ y
Senaoa′ = xL + xR
a′′ = yL + yR
zLL = RecursiveMult(xL, yL)a = RecursiveMult(a′, a′′)zRR = RecursiveMult(xL, yL)
z = ReconstroiKaratsuba(zLL, a, zRR)
Devolva z
Algoritmo 8: ReconstroiKaratsuba(zLL, a, zRR))
b = a− zLL − zRR
z ′ = ShifLeft(zLL, n)z ′′ = ShifLeft(b, n
2)
Devolva z ′ + z ′′ + zRR
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 35: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/35.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e T (n) = Θ(nlg 3). Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 36: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/36.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e T (n) = Θ(nlg 3). Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 37: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/37.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e T (n) = Θ(nlg 3). Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 38: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/38.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e
T (n) = Θ(nlg 3). Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 39: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/39.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e T (n) = Θ(nlg 3).
Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 40: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/40.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e T (n) = Θ(nlg 3). Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 41: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/41.jpg)
Multiplicacao Recursiva de Inteiros
O custo total do Algoritmo de Karatsuba e T (n) = 3T ( n2
) +O(n).
Aplicando o Teorema Mestre:
“Teorema Mestre”
Sejam a ≥ 1, b > 1, T , f : N→ R tais que
T (n) = aT (n/b) + f (n),
entao
T (n) =
Θ(nlogb a), se f (n) = O(nlogb a−ε), para algum ε > 0,
Θ(nlogb a log n), se f (n) = Θ(nlogb a),
Θ(f (n)), se f (n) = Ω(nlogb a+ε), para algum ε > 0 e
af (n/b) < cf (n) assintoticamente para algum c < 1.
A complexidade de tempo e T (n) = Θ(nlg 3). Podemos dizer tambem que:
T (n) = Ω(n1.58)
T (n) = O(n1.59)
pois 1.58 < lg 3 < 1.59
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 42: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/42.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 43: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/43.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 44: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/44.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e,
x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 45: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/45.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 46: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/46.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 47: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/47.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 48: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/48.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 49: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/49.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao:
Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 50: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/50.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 51: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/51.jpg)
Tornando as coisas mais formais
Dada uma sequencia x = (xn−1, . . . , x0) ∈ 0, 1n,
x o inteiro representado por x em base 2
Isto e, x =
n−1∑i=0
2ixi .
Notacao para tamanho de x :
|(xn−1, . . . , x0)| = n.
Dado x ∈ N, denotamos por 〈x〉 qualquer sequencia sobre 0, 1 satisfazendo
〈x〉 = x .
Concatenacao: Dadas as sequencias x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0):
x · y = (xn−1, . . . , x0, ym−1, . . . , y0).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 52: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/52.jpg)
Tornando as coisas mais formais
Dados x , y ∈ N, denotamos por x × y o produto de x e y .
Multiplicacao de Inteiros (MI)
Entrada: Um par (x , y), onde x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0) saosequencias sobre 0, 1.Saıda: Uma sequencia z sobre 0, 1 tal que z = x × y
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 53: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/53.jpg)
Tornando as coisas mais formais
Dados x , y ∈ N, denotamos por x × y o produto de x e y .
Multiplicacao de Inteiros (MI)
Entrada: Um par (x , y), onde x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0) saosequencias sobre 0, 1.Saıda: Uma sequencia z sobre 0, 1 tal que z = x × y
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 54: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/54.jpg)
Tornando as coisas mais formais
Dados x , y ∈ N, denotamos por x × y o produto de x e y .
Multiplicacao de Inteiros (MI)
Entrada: Um par (x , y), onde x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0) saosequencias sobre 0, 1.
Saıda: Uma sequencia z sobre 0, 1 tal que z = x × y
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 55: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/55.jpg)
Tornando as coisas mais formais
Dados x , y ∈ N, denotamos por x × y o produto de x e y .
Multiplicacao de Inteiros (MI)
Entrada: Um par (x , y), onde x = (xn−1, . . . , x0) e y = (ym−1, . . . , y0) saosequencias sobre 0, 1.Saıda: Uma sequencia z sobre 0, 1 tal que z = x × y
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 56: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/56.jpg)
O Algoritmo do Ensino Fundamental
MultiplicaF (x , y)1 n ← max |x|, |y|2 acrescente 0s ao inıcio de x ou y ate que ambas tenham tamanho n3 r ← (0)4 Para i de 0 ate n − 15 Se yi 6= 06 r ← Soma(r, x)7 acrescente 0 ao final de x
8 Devolva r
Soma(x , y)Entrada : duas sequencias x e y sobre 0, 1.Saıda : uma sequencia r sobre 0, 1 satisfazendo r = x + y
1 n ← max |x|, |y|2 acrescente 0s ao inıcio de x ou y ate que ambas tenham tamanho n3 c ← 04 r ← ()5 Para i de 0 ate n − 16 acrescente (xi + yi + c) mod 2 ao inıcio de r7 c ← xi yi8 Se c 6= 09 acrescente c ao inıcio de r
10 Se r = ()11 acrescente 0 ao inıcio de r12 Devolva r
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 57: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/57.jpg)
O Algoritmo do Ensino Fundamental
MultiplicaF (x , y)1 n ← max |x|, |y|2 acrescente 0s ao inıcio de x ou y ate que ambas tenham tamanho n3 r ← (0)4 Para i de 0 ate n − 15 Se yi 6= 06 r ← Soma(r, x)7 acrescente 0 ao final de x
8 Devolva r
Soma(x , y)Entrada : duas sequencias x e y sobre 0, 1.Saıda : uma sequencia r sobre 0, 1 satisfazendo r = x + y
1 n ← max |x|, |y|2 acrescente 0s ao inıcio de x ou y ate que ambas tenham tamanho n3 c ← 04 r ← ()5 Para i de 0 ate n − 16 acrescente (xi + yi + c) mod 2 ao inıcio de r7 c ← xi yi8 Se c 6= 09 acrescente c ao inıcio de r
10 Se r = ()11 acrescente 0 ao inıcio de r12 Devolva r
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 58: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/58.jpg)
Quanto custa?
Teorema 44
O tempo de execucao de Soma(x , y) e Θ(n), onde n = max |x |, |y |.
Prova
A instrucao da linha 1 pode ser implementada com um algoritmo que percorre assequencias x e y para descobrir qual sequencia e mais longa. Isso toma tempo menoror igual a cn, para alguma constante c. Portanto esta linha executa em tempo Θ(n).
O laco principal (linhas 5 ate 7) contem duas instrucoes e cada uma delas e executadaem tempo constante. Como o laco e executado n vezes, o custo deste laco e2n = Θ(n).
Cada uma das demais instrucoes leva tempo constante, portanto as demais linhas doalgoritmo executam em tempo Θ(1). Portanto o tempo de execucao total doalgoritmo e Θ(n) + Θ(n) + Θ(1) = Θ(n).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 59: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/59.jpg)
Quanto custa?
Corolario 45
O tempo de execucao de pior caso de MultiplicaF (x , y) e Θ(n2), onden = max |x |, |y |.
Prova
O tempo de execucao do algoritmo e dominado assintoticamente pelo laco principal(linhas 4 ate 7). Neste laco a instrucao assintoticamente dominante e a instrucao dalinha 6, que tem custo Θ(n).
Como o laco executa n vezes, temos que o custo do algoritmo e nΘ(n) = Θ(n2).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 60: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/60.jpg)
E possıvel fazer melhor?
Teorema 46
Todo algoritmo para MI consome tempo Ω(n), onde n = max |x |, |y | para todainstancia (x , y) onde x 6= 0 6= y .
Prova
Dada uma instancia (x , y) do MI com x 6= 0 6= y , a resposta desta instancia sera umasequencia de tamanho pelo menos n = max |x |, |y |.
Corolario 47
O tempo de execucao de pior caso de qualquer algoritmo para MI e Ω(n), onden = max |x |, |y |.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 61: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/61.jpg)
E possıvel fazer melhor?
Teorema 46
Todo algoritmo para MI consome tempo Ω(n), onde n = max |x |, |y | para todainstancia (x , y) onde x 6= 0 6= y .
Prova
Dada uma instancia (x , y) do MI com x 6= 0 6= y , a resposta desta instancia sera umasequencia de tamanho pelo menos n = max |x |, |y |.
Corolario 47
O tempo de execucao de pior caso de qualquer algoritmo para MI e Ω(n), onden = max |x |, |y |.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 62: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/62.jpg)
E possıvel fazer melhor?
Teorema 46
Todo algoritmo para MI consome tempo Ω(n), onde n = max |x |, |y | para todainstancia (x , y) onde x 6= 0 6= y .
Prova
Dada uma instancia (x , y) do MI com x 6= 0 6= y , a resposta desta instancia sera umasequencia de tamanho pelo menos n = max |x |, |y |.
Corolario 47
O tempo de execucao de pior caso de qualquer algoritmo para MI e Ω(n), onden = max |x |, |y |.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 63: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/63.jpg)
Algoritmo Recursivo
Teorema 48
Dados x , y ∈ 0, 1∗, entao
x · y = 2|y| × x + y ,
Corolario 49
Dados x ∈ 0, 1∗ e n ∈ N,x · 0n = 2n × x .
Corolario 50
Dados x , y ∈ 0, 1∗ e n ∈ N, e possıvel computar⟨2|y| × x + y
⟩em tempo O(1), e
〈2n × x〉 em tempo Θ(n).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 64: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/64.jpg)
Algoritmo Recursivo
Teorema 48
Dados x , y ∈ 0, 1∗, entao
x · y = 2|y| × x + y ,
Corolario 49
Dados x ∈ 0, 1∗ e n ∈ N,x · 0n = 2n × x .
Corolario 50
Dados x , y ∈ 0, 1∗ e n ∈ N, e possıvel computar⟨2|y| × x + y
⟩em tempo O(1), e
〈2n × x〉 em tempo Θ(n).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 65: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/65.jpg)
Algoritmo Recursivo
Teorema 48
Dados x , y ∈ 0, 1∗, entao
x · y = 2|y| × x + y ,
Corolario 49
Dados x ∈ 0, 1∗ e n ∈ N,x · 0n = 2n × x .
Corolario 50
Dados x , y ∈ 0, 1∗ e n ∈ N, e possıvel computar⟨2|y| × x + y
⟩em tempo O(1), e
〈2n × x〉 em tempo Θ(n).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 66: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/66.jpg)
Algoritmo Recursivo
Teorema 48
Dados x , y ∈ 0, 1∗, entao
x · y = 2|y| × x + y ,
Corolario 49
Dados x ∈ 0, 1∗ e n ∈ N,x · 0n = 2n × x .
Corolario 50
Dados x , y ∈ 0, 1∗ e n ∈ N, e possıvel computar⟨2|y| × x + y
⟩em tempo O(1), e
〈2n × x〉 em tempo Θ(n).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 67: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/67.jpg)
Algoritmo Recursivo
Dado x ∈ 0, 1n, com n par, definimos
xL = (xn−1, . . . , xn/2)
xR = (xn/2−1, . . . , x0),
de forma que
x = xL · xR,
Pelo T.48, temos quex = 2n/2 × xL + xR.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 68: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/68.jpg)
Algoritmo Recursivo
Dado x ∈ 0, 1n, com n par, definimos
xL = (xn−1, . . . , xn/2)
xR = (xn/2−1, . . . , x0),
de forma que
x = xL · xR,
Pelo T.48, temos quex = 2n/2 × xL + xR.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 69: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/69.jpg)
Algoritmo Recursivo
Dado x ∈ 0, 1n, com n par, definimos
xL = (xn−1, . . . , xn/2)
xR = (xn/2−1, . . . , x0),
de forma que
x = xL · xR,
Pelo T.48, temos quex = 2n/2 × xL + xR.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 70: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/70.jpg)
Algoritmo Recursivo
Dado x ∈ 0, 1n, com n par, definimos
xL = (xn−1, . . . , xn/2)
xR = (xn/2−1, . . . , x0),
de forma que
x = xL · xR,
Pelo T.48, temos que
x = 2n/2 × xL + xR.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 71: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/71.jpg)
Algoritmo Recursivo
Dado x ∈ 0, 1n, com n par, definimos
xL = (xn−1, . . . , xn/2)
xR = (xn/2−1, . . . , x0),
de forma que
x = xL · xR,
Pelo T.48, temos quex = 2n/2 × xL + xR.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 72: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/72.jpg)
Algoritmo Recursivo
x × y = xL · xR × yL · yR
T.48= (2n/2 × xL + xR)(2n/2 × yL + yR),
= 2n/2 × xL × 2n/2 × yL + 2n/2 × xL × yR + xR × 2n/2 × yL + xR × yR
= (2n × xL × yL + xR × yR) + (2n/2 × (xL × yR + xR × yL) + 0n/2)
T.48= 〈xL · yL〉 〈xR · yR〉+ 〈xL × yR + xR × yL〉 · 0n/2
ou seja,
〈x × y〉 =⟨〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 0n/2
⟩.
Teorema 51
Dados n > 0 e x , y ∈ 0, 1n,
x × y =
x × y , se n = 1,
〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 · 0n/2, se n ≥ 2 e par,
(0) · x × (0) · y , se n ≥ 3 e ımpar.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 73: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/73.jpg)
Algoritmo Recursivo
x × y = xL · xR × yL · yR
T.48= (2n/2 × xL + xR)(2n/2 × yL + yR),
= 2n/2 × xL × 2n/2 × yL + 2n/2 × xL × yR + xR × 2n/2 × yL + xR × yR
= (2n × xL × yL + xR × yR) + (2n/2 × (xL × yR + xR × yL) + 0n/2)
T.48= 〈xL · yL〉 〈xR · yR〉+ 〈xL × yR + xR × yL〉 · 0n/2
ou seja,
〈x × y〉 =⟨〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 0n/2
⟩.
Teorema 51
Dados n > 0 e x , y ∈ 0, 1n,
x × y =
x × y , se n = 1,
〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 · 0n/2, se n ≥ 2 e par,
(0) · x × (0) · y , se n ≥ 3 e ımpar.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 74: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/74.jpg)
Algoritmo Recursivo
x × y = xL · xR × yL · yR
T.48= (2n/2 × xL + xR)(2n/2 × yL + yR),
= 2n/2 × xL × 2n/2 × yL + 2n/2 × xL × yR + xR × 2n/2 × yL + xR × yR
= (2n × xL × yL + xR × yR) + (2n/2 × (xL × yR + xR × yL) + 0n/2)
T.48= 〈xL · yL〉 〈xR · yR〉+ 〈xL × yR + xR × yL〉 · 0n/2
ou seja,
〈x × y〉 =⟨〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 0n/2
⟩.
Teorema 51
Dados n > 0 e x , y ∈ 0, 1n,
x × y =
x × y , se n = 1,
〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 · 0n/2, se n ≥ 2 e par,
(0) · x × (0) · y , se n ≥ 3 e ımpar.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 75: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/75.jpg)
Algoritmo Recursivo
x × y = xL · xR × yL · yR
T.48= (2n/2 × xL + xR)(2n/2 × yL + yR),
= 2n/2 × xL × 2n/2 × yL + 2n/2 × xL × yR + xR × 2n/2 × yL + xR × yR
= (2n × xL × yL + xR × yR) + (2n/2 × (xL × yR + xR × yL) + 0n/2)
T.48= 〈xL · yL〉 〈xR · yR〉+ 〈xL × yR + xR × yL〉 · 0n/2
ou seja,
〈x × y〉 =⟨〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 0n/2
⟩.
Teorema 51
Dados n > 0 e x , y ∈ 0, 1n,
x × y =
x × y , se n = 1,
〈xL × yL〉 〈xR × yR〉+ 〈xL × yR + xR × yL〉 · 0n/2, se n ≥ 2 e par,
(0) · x × (0) · y , se n ≥ 3 e ımpar.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 76: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/76.jpg)
Algoritmo Recursivo
Multiplica(x , y)Se n = 1
Devolva (x1 × y1)
n ← max |x|, |y|acrescente 0s ao inıcio de x ou y ate que ambas tenham tamanho nacrescente um 0 ao inıcio de x e de y /* para que nenhuma soma passe de tamanho n */n ← n + 1Se n e ımpar
acrescente um 0 ao inıcio de x e de yn ← n + 1
xL ← (xn−1, . . . , xn/2)
xR ← (xn/2−1, . . . , x0)
yL ← (yn−1, . . . , yn/2)
yR ← (yn/2−1, . . . , y0)
A← Multiplica(xL, yL)B ← Multiplica(xR, yR)C ← Multiplica(xL, yR)D ← Multiplica(xR, yL)
E ← A · BF ← Soma(C ,D) · Zero(n/2)r ← Soma(E , F )Devolva r
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 77: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/77.jpg)
Algoritmo Recursivo
Que problema resolve? MI.
Esta correto? T.51
Quanto custa? (proximo slide)
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 78: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/78.jpg)
Quanto custa
Teorema 52
O tempo de execucao de Multiplica(x , y) e Θ(n2) onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia de MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n) pois cada linha toma tempo O(n) e a execucaode Zero(n/2) toma tempo Ω(n).
Na notacao do T.43, temos entao T (n) = 4T(n2
)+ Θ(n), onde
a = 4,
b = 2,
f (n) = Θ(n),
Logo nlogb a = nlog2 4 = n2, e como f (n) = Ω(n2−1), entao (T.43)
T (n) = Θ(nlogb a) = Θ(n2).
E possıvel fazer melhor? Sim.
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 79: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/79.jpg)
Algoritmo de Karatsuba (1962)
Lema 53
Dados a, b, c, d ∈ R, e possıvel computar os valores de a× c, a× d + b × c e b × defetuando apenas tres multiplicacoes.
Prova
Sejam a, b, c, d ∈ R. Como
(a + b)× (c + d) = a× c + a× d + b × c + b × d ,
entaoa× d + b × c = (a + b)× (c + d)− a× c − b × d .
Folclore (nao esta claro se e verdade): Gauss (1777 –1855) usava este fato paradiminuir o numero de multiplicacoes entre numeros reais no computo deproduto de numeros complexos: (a + bi)(c + di) = ac − bd + (bc + ad)i
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 80: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/80.jpg)
Algoritmo de Karatsuba (1962)
Lema 53
Dados a, b, c, d ∈ R, e possıvel computar os valores de a× c, a× d + b × c e b × defetuando apenas tres multiplicacoes.
Prova
Sejam a, b, c, d ∈ R. Como
(a + b)× (c + d) = a× c + a× d + b × c + b × d ,
entaoa× d + b × c = (a + b)× (c + d)− a× c − b × d .
Folclore (nao esta claro se e verdade): Gauss (1777 –1855) usava este fato paradiminuir o numero de multiplicacoes entre numeros reais no computo deproduto de numeros complexos: (a + bi)(c + di) = ac − bd + (bc + ad)i
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 81: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/81.jpg)
Algoritmo de Karatsuba (1962)
Lema 53
Dados a, b, c, d ∈ R, e possıvel computar os valores de a× c, a× d + b × c e b × defetuando apenas tres multiplicacoes.
Prova
Sejam a, b, c, d ∈ R. Como
(a + b)× (c + d) = a× c + a× d + b × c + b × d ,
entaoa× d + b × c = (a + b)× (c + d)− a× c − b × d .
Folclore (nao esta claro se e verdade): Gauss (1777 –1855) usava este fato paradiminuir o numero de multiplicacoes entre numeros reais no computo deproduto de numeros complexos: (a + bi)(c + di) = ac − bd + (bc + ad)i
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 82: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/82.jpg)
Algoritmo de Karatsuba (1962)
Aplicando o Lema 53 ao termo
xL × yR + xR × yL
da recorrencia do Teorema 51 substitui-mo-lo por
(xL + xR)× (yL + yR)− xL × yL − xR × yR
Corolario 54
Dados n > 0 e x, y ∈ 0, 1n ,
x×y =
x × y, se n = 1,⟨xL × yL
⟩·⟨xR × yR
⟩+⟨
(xL + xR)× (yL + yR)− xL × yL − xR × yR⟩· 0n/2, se n ≥ 2 par
(0) · x × (0) · y, se n ≥ 3 ımpar
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 83: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/83.jpg)
Algoritmo de Karatsuba (1962)
Aplicando o Lema 53 ao termo
xL × yR + xR × yL
da recorrencia do Teorema 51 substitui-mo-lo por
(xL + xR)× (yL + yR)− xL × yL − xR × yR
Corolario 54
Dados n > 0 e x, y ∈ 0, 1n ,
x×y =
x × y, se n = 1,⟨xL × yL
⟩·⟨xR × yR
⟩+⟨
(xL + xR)× (yL + yR)− xL × yL − xR × yR⟩· 0n/2, se n ≥ 2 par
(0) · x × (0) · y, se n ≥ 3 ımpar
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 84: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/84.jpg)
Algoritmo de Karatsuba (1962)
Aplicando o Lema 53 ao termo
xL × yR + xR × yL
da recorrencia do Teorema 51 substitui-mo-lo por
(xL + xR)× (yL + yR)− xL × yL − xR × yR
Corolario 54
Dados n > 0 e x, y ∈ 0, 1n ,
x×y =
x × y, se n = 1,⟨xL × yL
⟩·⟨xR × yR
⟩+⟨
(xL + xR)× (yL + yR)− xL × yL − xR × yR⟩· 0n/2, se n ≥ 2 par
(0) · x × (0) · y, se n ≥ 3 ımpar
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 85: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/85.jpg)
Algoritmo de Karatsuba (1962)
Multiplica(x , y)n ← max |x|, |y|
acrescente 0s ao inıcio de x ou y ate que ambas tenham tamanho nSe n = 1
Devolva (x1 × y1)
acrescente um 0 ao inıcio de x e de yn ← n + 1
Se n e ımparacrescente outro 0 ao inıcio de x e de yn ← n + 1
xL ← (xn−1, . . . , xn/2)
xR ← (xn/2−1, . . . , x0)
yL ← (yn−1, . . . , yn/2)
yR ← (yn/2−1, . . . , y0)
A← Multiplica(xL, yL)B ← Multiplica(xR, yR)C ← Soma(xL, xR)D ← Soma(yL, yR)E ← Multiplica(C ,D)F ← Soma(A, B)G ← Subtrai(E , F )remova os zeros do inıcio de B
Devolva Soma(A · B, G · Zero(n/2))
onde Subtrai(x, y) devolve 〈x − y〉 (Exercıcio ??).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 86: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/86.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 87: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/87.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n).
Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 88: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/88.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 89: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/89.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 90: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/90.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
com
a = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 91: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/91.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 92: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/92.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a
= nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 93: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/93.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3
= nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 94: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/94.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1))
, entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 95: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/95.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 96: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/96.jpg)
Algoritmo de Karatsuba (1962)
Teorema 55
O tempo de execucao de Multiplica(x , y) e Θ(nlg 3). onde
n = max |x |, |y |.
Prova
Seja (x , y) uma instancia do MI e seja n = max |x |, |y |.Excetuando-se o tempo consumido nas chamadas recursivas, o restante do tempo naexecucao de Multiplica(x , y) e Θ(n). Na notacao do T.43, temos
T (n) = 3T(n
2
)+ Θ(n),
coma = 3,
b = 2,
f (n) = Θ(n),
Daı nlogb a = nlog2 3 = nlg 3 e como f (n) = Ω(nlg 3−(lg 3−1)), entao (T.43):
T (n) = Θ(nlogb a) = Θ(nlg 3).
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 97: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/97.jpg)
Algoritmo de Karatsuba (1962)
Corolario 56
O tempo de execucao de Multiplica(x , y) e Ω(n1.58) e O(n1.59), onde,n = max |x |, |y |.
Prova
Basta observar que1.58 < lg 3 < 1.59.
E possıvel fazer melhor?Sim, mas e complicado e ineficiente na pratica
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 98: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/98.jpg)
Algoritmo de Karatsuba (1962)
Corolario 56
O tempo de execucao de Multiplica(x , y) e Ω(n1.58) e O(n1.59), onde,n = max |x |, |y |.
Prova
Basta observar que1.58 < lg 3 < 1.59.
E possıvel fazer melhor?Sim, mas e complicado e ineficiente na pratica
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 99: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/99.jpg)
Algoritmo de Karatsuba (1962)
Corolario 56
O tempo de execucao de Multiplica(x , y) e Ω(n1.58) e O(n1.59), onde,n = max |x |, |y |.
Prova
Basta observar que1.58 < lg 3 < 1.59.
E possıvel fazer melhor?
Sim, mas e complicado e ineficiente na pratica
Prof. Murilo V. G. da Silva Analise de Algoritmos
![Page 100: Análise de Algoritmos Aula 10 - UFPR · An alise de Algoritmos Aula 10 Prof. Murilo V. G. da Silva DINF/UFPR (material da disciplina: Andr e Guedes, Renato Carmo, Murilo da Silva)](https://reader034.vdocuments.site/reader034/viewer/2022052000/60128c815575b312f67bad69/html5/thumbnails/100.jpg)
Algoritmo de Karatsuba (1962)
Corolario 56
O tempo de execucao de Multiplica(x , y) e Ω(n1.58) e O(n1.59), onde,n = max |x |, |y |.
Prova
Basta observar que1.58 < lg 3 < 1.59.
E possıvel fazer melhor?Sim, mas e complicado e ineficiente na pratica
Prof. Murilo V. G. da Silva Analise de Algoritmos