Professional Documents
Culture Documents
PPGI/200
9
Anlise de Algoritmos
tempo de processamento em funo dos dados de
entrada;
espao de memria total requerido para os dados;
comprimento total do cdigo;
correcta obteno do resultado pretendido;
robustez (como comporta-se com as entradas
invlidas ou no previstas).
quantidade de "trabalho" necessria para a sua
execuo, expressa em funo das operaes
fundamentais, as quais variam de acordo com o
algoritmo, e em funo do volume de dados.
Complexidade
Complexidade
Tipos de Complexidade
Espacial
Este tipo de complexidade representa, por exemplo, o
espao de memria usado para executar o algoritmo.
Temporal
Este tipo de complexidade o mais usado podendo
dividir-se em dois grupos:
Tempo (real) necessrio execuo do algoritmo.
(como podemos medir?)
Nmero de instrues necessrias execuo.
Analise de Algoritmos
Medidas de Anlise
Devem ser independentes da tecnologia
(hardware/software)
Modelos Matemticos simplificados baseados nos fatores
relevantes:
Tempo de Execuo
Uma funo que relaciona o tempo de execuo com o
tamanho de entrada:
t = F(n)
Conjunto de operaes a serem executadas.
Custo associado execuo de cada operao.
Ocupao de Espao em Memria
Complexidade
Exemplo
n
16
32
512
A1
T1(n)= n
0.016s
0.032s
0.512s
A2
T2(n)=nlog n
0.064s
0.16s
9s
A3
A4
A5
T3(n)=n2
T4(n)=n3
T5(n)=2n
0.256s
1s
4m22s
4s
33s
1 Dia 13h
1m4s
46 Dias
10137 Sculos
Operaes primitivas
Complexidade de
Algoritmos
Complexidade de pior caso big-Oh g(n)
Complexidade de melhor caso big-Omega g(n)
de uso bem menos freqente
em algumas situaes especficas
Notaes assintticas
assintoticamente apertado
O tempo de execuo de uma algoritmo sobre uma entrada particular, o nmero de operaes
primitivas ou passos executados.
O tamanho da entrada depende problema sendo estudado. Mas na maioria dos casos este o
nmero de itens na entrada, por exemplo: o nmero total de bits.
OBS:
Eg.
Eg.
Diagrama
Definio do Big-Oh
n2
(quadrtica)
n log n
f
n (linear)
log n (logartmica)
1 (constante)
Alguns conceitos
Teoremas
1. Comportamento assinttico da soma de duas
funes cujos comportamentos assintticos
particulares so conhecidos:
Se f1(n) = O(g1(n)) e f2(n) = O(g2(n)), ento:
f1(n) + f2(n) = O(max(g1(n)) , g2(n)))
2. O(k f(n)) = O(f(n))
3. O(f(n)) O(g(n)) = O(f(n) g(n))
Eficincia de um Algoritmo
O(n)
O(n2)
O(1)
A notao
f(n) = 8n + 128 O (n2)?
f(n) c.n2 ?
Seja c =1
8n + 128 n2, ento
0 n2 8n 128
0 (n 16)(n+8) n0 = 16
c =1, no = 16, f (n) c.n2 para todo n n0
A notao
A funo atua como um limite superior
assinttico da funo f
f = n2 -1
f = (n2)
f = n2 -1
f = (n3)
f = 403
f = (1)
f = 5+2logn +3log2n
f=
(log2n)
f = 5+2 log n +3log2n
f = (n)
f = 5.2n +5n10
f = (2n)
5n 3n
5n
3n
lim
lim 2 lim 2
2
n
n n
n n
n
3
Regra de LHopital
Se f(x) e g(x) so ambas funes diferenciveis
com derivadas f(x) e g(x), respectivamente, e
se
f ( x)
f ' ( x)
lim
lim
x g ( x )
x g ' ( x )
sempre que o limite a direita existe
ln n
1
(lg n)'
'=
ln 2
nln2
lg n
(lg n)'
1
lim
lim
0
lim
n n
n
n n ln 2
n'
n
O (2 )
k
n ln 2
)'= ln2 e
1
n ln 2
2n ln 2
nk
kn k
lim n
lim
n
n 2
n 2 ln 2
k2
k ( k 1)n
k!
lim
0
...
lim
2
n
n
k
n
n 2 ln 2
2 ln 2