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 Tratabilidade? – A variável aleatória desemp[A] – O custo médio Cm[A](n) = E[desemp[A]] = d∈Dn • Possibilidade: Problemas intratáveis viram tratáveis? • Exemplos de tempo esperado: – Caminho Hamiltoniano: linear! P (d) desemp[A](d) – Parada não-determinístico em k passos: fica NP-completo. (Resultados citados: [33, 20] (Caminho Hamiltanio), [70] (Parada em k passos).) Criptografia • Alguns métodos da Criptografia dependem da existência de “funções sem volta” (inglês: one-way functions). • Uma função sem volta f : {0, 1} ∗ → {0, 1} ∗ é tal que Método [69] 48 – dado x, computar f(x) é fácil (eficiente) – dada f(x) achar um x ′ tal que f(x ′ ) = f(x) é difícil
Exemplo 2.12 (Busca seqüencial) (Continuando exemplo 2.9.) Busca seqüencial 2.3. Complexidade média • Caso a chave esteja na i-ésima posição, temos que fazer i iterações. • Caso a chave não ocorra no conjunto, temos que fazer n iterações. • Supondo uma distribuição uniforme da posição da chave na sequência, temos cn[BS](n) = 1 n + i n + 1 1≤i≤n iterações e uma complexidade média de Θ(n). Exemplo 2.13 (Continuando o exemplo 2.1.) Neste exemplo vamos analisar o algoritmo considerando que a ocorrência dos números siga uma outra distribuição que não a uniforme. Ainda, considere o caso em que não há números repetidos no conjunto. Seja n um tamanho fixo. Para Busca1 temos o espaço amostral Dn = {(a1, . . . , an) | a1 ≥ 1, . . . , an ≥ 1}. Supomos que os números sigam uma distribuição na qual cada elemento da sequência é gerado independentemente com a probabilidade Pr[ai = n] = 2−n (que é possível porque 1≤i 2−i = 1). Com isso temos Pr[(a1, . . . , an)] = 2 −ai 1≤i≤n e, Pr[ai = 1] = 1/2 e Pr[ai = 1] = 1/2. desemp[A] e Considere as variáveis aleatórias p(d) = µ n se o primeiro 1 em d está na posição µ caso contrário Temos desemp[A] = 2p + 1 (veja os resultados do exemplo 2.1). Para i estar na primeira posição com elemento 1 as posições 1, . . . , i−1 devem ser diferente de 1, e ai deve ser 1. Logo para 1 ≤ i < n Pr[p = i] = Pr[a1 = 1] · · · Pr[ai−1 = 1] Pr[ai = 1] = 2 −i . O caso p = n tem duas causas: ou a posição do primeiro 1 é n ou a sequência não contém 1. Ambas têm probabilidade 2 −n e logo Pr[p = n] = 2 1−n . ♦ 49
- Page 1: Algoritmos e complexidade Notas de
- Page 4 and 5: Conteúdo 5. Programação dinâmic
- Page 6 and 7: Conteúdo 15.Complexidade de circui
- Page 9: Parte I. Análise de algoritmos 7
- Page 12 and 13: 1. Introdução e conceitos básico
- Page 14 and 15: 1. Introdução e conceitos básico
- Page 16 and 17: 1. Introdução e conceitos básico
- 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 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 68 and 69: 2. Análise de complexidade funçã
- 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
2. Análise <strong>de</strong> <strong>complexida<strong>de</strong></strong><br />
Tratabilida<strong>de</strong>?<br />
– A variável aleatória <strong>de</strong>semp[A]<br />
– O custo médio<br />
Cm[A](n) = E[<strong>de</strong>semp[A]] = <br />
d∈Dn<br />
• Possibilida<strong>de</strong>: Problemas intratáveis viram tratáveis?<br />
• Exemplos <strong>de</strong> tempo esperado:<br />
– Caminho Hamiltoniano: linear!<br />
P (d) <strong>de</strong>semp[A](d)<br />
– Parada não-<strong>de</strong>terminístico em k passos: fica NP-completo.<br />
(Resultados citados: [33, 20] (Caminho Hamiltanio), [70] (Parada em k passos).)<br />
Criptografia<br />
• Alguns métodos da Criptografia <strong>de</strong>pen<strong>de</strong>m da existência <strong>de</strong> “funções<br />
sem volta” (inglês: one-way functions).<br />
• Uma função sem volta f : {0, 1} ∗ → {0, 1} ∗ é tal que<br />
Método<br />
[69]<br />
48<br />
– dado x, computar f(x) é fácil (eficiente)<br />
– dada f(x) achar um x ′ tal que f(x ′ ) = f(x) é difícil