Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

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

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!