Algoritmos e complexidade Notas de aula - Arquivo Escolar
Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar
2. Análise de complexidade função potencial ϕ(n) = 2Cp − Dn. A função ϕ é satisfaz os critérios de um potencial, porque p ≥ n/2, e inicialmente temos ϕ(0) = 0. Com isso o custo amortizado caso tem espaço na tabela é ai = ci − ϕ(i − 1) + ϕ(i) = D − (2C(p − 1) − Dn) + (2Cp − Dn) = C + 2C = O(1). Caso temos que alocar uma nova tabela o custo é ai = ci − ϕ(i − 1) + ϕ(i) = D + Cn − (2C(p − 1) − Dn) + (2Cp − 2Dn) = C + Dn + 2C − Dn = O(1). 2.5. Notas O algoritmo 2.9 para multiplicação de matrizes não é o melhor possível: Temos o algoritmo de Strassen que precisa somente n log 2 7 ≈ n 2.807 multiplicações (o algoritmo está detalhado no capítulo 6.3) e o algoritmo de Coppersmith- Winograd com n 2.376 multiplicações [14]. Ambas são pouco usadas na prática porque o desempenho real é melhor somente para n grande (no caso de Strassen n ≈ 700; no caso de Coppersmith-Winograd o algoritmo não é praticável). A conjetura atual é que existe um algoritmo (ótimo) de O(n 2 ). 2.6. Exercícios (Soluções a partir da página 312.) Exercício 2.1 Qual a complexidade pessimista dos seguintes algoritmos? 66 Algoritmo 2.14 (Alg1) Entrada Um problema de tamanho n. 1 for i := 1 . . . n do 2 for j := 1 . . . 2 i 3 operações c o n s t a n t e s 4 j := j + 1 // i t e r a ç õ e s com v a l o r e s ímpares de j 5 end for 6 end for ♦
Algoritmo 2.15 (Alg2) Entrada Um problema de tamanho n. 1 for i := 1 . . . n do 2 for j := 1 . . . 2 i 3 operações com complexidade O(j 2 ) 4 j := j + 1 5 end for 6 end for Algoritmo 2.16 (Alg3) Entrada Um problema de tamanho n. 1 for i := 1 . . . n do 2 for j := i . . . n 3 operações com complexidade O(2 i ) 4 end for 5 end for Algoritmo 2.17 (Alg4) Entrada Um problema de tamanho n. 1 for i := 1 . . . n do 2 j := 1 3 while j ≤ i do 4 operações com complexidade O(2 j ) 5 j := j+1 6 end for 7 end for 2.6. Exercícios 67
- Page 18 and 19: 1. Introdução e conceitos básico
- Page 20 and 21: 1. Introdução e conceitos básico
- Page 22 and 23: 1. Introdução e conceitos básico
- Page 24 and 25: 1. Introdução e conceitos básico
- Page 26 and 27: 1. Introdução e conceitos básico
- Page 28 and 29: 1. Introdução e conceitos básico
- Page 30 and 31: 1. Introdução e conceitos básico
- Page 32 and 33: 1. Introdução e conceitos básico
- Page 34 and 35: 2. Análise de complexidade • Par
- Page 36 and 37: 2. Análise de complexidade • Uma
- Page 38 and 39: 2. Análise de complexidade 1. Atri
- Page 40 and 41: 2. Análise de complexidade Exemplo
- Page 42 and 43: 2. Análise de complexidade Compone
- Page 44 and 45: 2. Análise de complexidade • Qua
- Page 46 and 47: 2. Análise de complexidade Algorit
- Page 48 and 49: 2. Análise de complexidade Algorit
- Page 50 and 51: 2. Análise de complexidade Tratabi
- Page 52 and 53: 2. Análise de complexidade A compl
- Page 54 and 55: 2. Análise de complexidade • Fre
- Page 56 and 57: 2. Análise de complexidade Exemplo
- Page 58 and 59: 2. Análise de complexidade 1 i f l
- Page 60 and 61: 2. Análise de complexidade Novamen
- Page 62 and 63: 2. Análise de complexidade Logo te
- Page 64 and 65: 2. Análise de complexidade 7 for c
- Page 66 and 67: 2. Análise de complexidade Com iss
- Page 70 and 71: 2. Análise de complexidade Algorit
- Page 72 and 73: 2. Análise de complexidade resolve
- Page 75: 3. Introdução Resolver problemas
- Page 78 and 79: 4. Algoritmos gulosos A abordagem g
- Page 80 and 81: 4. Algoritmos gulosos Do outro lado
- Page 82 and 83: 4. Algoritmos gulosos Aplicações
- Page 84 and 85: 4. Algoritmos gulosos 1 V ′ := {v
- Page 86 and 87: 4. Algoritmos gulosos Algoritmo de
- Page 88 and 89: 4. Algoritmos gulosos Implementaç
- Page 90 and 91: 4. Algoritmos gulosos Variação do
- Page 92 and 93: 4. Algoritmos gulosos • Como comp
- Page 94 and 95: 4. Algoritmos gulosos Proposição
- Page 96 and 97: 4. Algoritmos gulosos Resultados O
- Page 98 and 99: 5. Programação dinâmica É simpl
- Page 100 and 101: 5. Programação dinâmica soluçã
- Page 102 and 103: 5. Programação dinâmica Teorema:
- Page 104 and 105: 5. Programação dinâmica e calcul
- Page 106 and 107: 5. Programação dinâmica 5.2.2. S
- Page 108 and 109: 5. Programação dinâmica 11 sol1
- Page 110 and 111: 5. Programação dinâmica O algori
- Page 112 and 113: 5. Programação dinâmica Dependen
- Page 114 and 115: 5. Programação dinâmica Análise
- Page 116 and 117: 5. Programação dinâmica curto do
Algoritmo 2.15 (Alg2)<br />
Entrada Um problema <strong>de</strong> tamanho n.<br />
1 for i := 1 . . . n do<br />
2 for j := 1 . . . 2 i<br />
3 operações com <strong>complexida<strong>de</strong></strong> O(j 2 )<br />
4 j := j + 1<br />
5 end for<br />
6 end for<br />
Algoritmo 2.16 (Alg3)<br />
Entrada Um problema <strong>de</strong> tamanho n.<br />
1 for i := 1 . . . n do<br />
2 for j := i . . . n<br />
3 operações com <strong>complexida<strong>de</strong></strong> O(2 i )<br />
4 end for<br />
5 end for<br />
Algoritmo 2.17 (Alg4)<br />
Entrada Um problema <strong>de</strong> tamanho n.<br />
1 for i := 1 . . . n do<br />
2 j := 1<br />
3 while j ≤ i do<br />
4 operações com <strong>complexida<strong>de</strong></strong> O(2 j )<br />
5 j := j+1<br />
6 end for<br />
7 end for<br />
2.6. Exercícios<br />
67