91
Introdução à Teoria da Complexidade Computacional Clássica Verão – 2010 F ´ abio Borges & Emmanuel Felix LNCC Introduc ¸ ˜ ao ` a Teoria da Complexidade Computacional Cl ´ assica – p.1/70

Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

  • Upload
    vudang

  • View
    281

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Introdução à Teoria daComplexidade Computacional

ClássicaVerão – 2010

Fabio Borges & Emmanuel Felix

LNCC

Introducao a Teoria da Complexidade Computacional Classica – p.1/70

Page 2: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Computação Paralela

Se temos k processadores, em geral, nãomudamos de classe.

Se temos complexidade O(2n), então

limn→∞

2n

k⇒ O(2n)

Comunicação entre os processos e overhead

Processamento massivamente paralelo

Não resolve NP

Introducao a Teoria da Complexidade Computacional Classica – p.2/70

Page 3: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Lei de Amdahl

Se P é a proporção de um programa que podeser paralelizado e (1− P ) é a proporção que nãopode, então o speedup máximo com Nprocessadores é

1

(1− P ) + PN

Com N →∞ o speedup máximo tende para1/(1− P ).O ganho cai rapidamente como N

Introducao a Teoria da Complexidade Computacional Classica – p.3/70

Page 4: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Exemplo da Lei de Amdahl

Se P é de 90%, então (1− P ) é de 10%, e oproblema pode acelerar até o máximo de 10vezes, não importa quão grande seja o valorde N .

O grande trabalho consiste em tentar reduziro componente (1− P ) para o menor valorpossível.

Introducao a Teoria da Complexidade Computacional Classica – p.4/70

Page 5: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Lei de GustafsonSeja n o tamanho de um problema mensurável.A execução de um programa é decomposto em

a(n) + b(n) = 1

Onde a é a parte sequencial e b a parte paralela.O tempo de execução seria a(n) + p · b(n), ondep é o número de processadores.Logo o speedup S é dado por

S = (a(n) + p · b(n))

∴ S = a(n) + p · (1− a(n))

Introducao a Teoria da Complexidade Computacional Classica – p.5/70

Page 6: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Gustafson

Introducao a Teoria da Complexidade Computacional Classica – p.6/70

Page 7: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Amdahl

Introducao a Teoria da Complexidade Computacional Classica – p.7/70

Page 8: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

TM

a b c d e f g h g f e d c b

finitecontrol

tape

q

Introducao a Teoria da Complexidade Computacional Classica – p.8/70

Page 9: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Multitape Turing Machine

k tapes

q

Introducao a Teoria da Complexidade Computacional Classica – p.9/70

Page 10: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Definição

δ : Γ×Σ×Σ 7→ Γ×Σ×Σ×{←, �,→}×{←, �,→}

δ : Γ× Σk 7→ Γ× Σk × {←, �,→}k

Introducao a Teoria da Complexidade Computacional Classica – p.10/70

Page 11: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Multiplicação na MTM

(γ0, &, ∗, γ0, &, ∗,→, �)

(γ0, 1, ∗, γ0, 1, 1,→,→)

(γ0,×, ∗, γ1,×, ∗,→, �)

(γ1, 1, ∗, γ2, ∗, ∗,→, �)

(γ1, ∗, ∗, γ1, ∗, ∗,→, �)

(γ2, 1, ∗, γ3, 1, ∗,←, �)

(γ2, =, ∗, γp, =, ∗, �, �)

Introducao a Teoria da Complexidade Computacional Classica – p.11/70

Page 12: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Multiplicação na MTM

(γ3, 1, ∗, γ3, 1, ∗,←, �)

(γ3, ∗, ∗, γ3, ∗, ∗,←, �)

(γ3,×, ∗, γ3,×, ∗,←, �)

(γ3, &, ∗, γ0, &, ∗,→, �)

Introducao a Teoria da Complexidade Computacional Classica – p.12/70

Page 13: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Equivalência da MTM

Teorema: Toda MTM tem uma máquina deTuring de uma fita equivalente.

[Sipser, pág. 137]

Introducao a Teoria da Complexidade Computacional Classica – p.13/70

Page 14: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Multiplicação Matricial

Considere as matrizes C = A ·B de ordemn× n

Cij =n∑

k=1

Aik ·Bkj, i, j = 1, . . . , n.

Temos O(n3) operações, mas se tivermos n3

processadores o tempo fica linear O(n) comn− 1 adições

Introducao a Teoria da Complexidade Computacional Classica – p.14/70

Page 15: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Otimizando

Podemos fazer a soma em O(log2 n). Noprimeiro passo fazemos

(i, k, j) + (i, k + 1, j)

Depois somamos os resultados de dois em dois,

e assim por diante. Desta forma, temos Cij com

log2 n + 1 passos paralelos em n3 processadores.

Introducao a Teoria da Complexidade Computacional Classica – p.15/70

Page 16: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Somas Parciais

Soma

Slog2n

S1

b

K1b

K2

S1

b

K3b

· · ·

Slog2n

S1

b

· · ·b

Kn−2

S1

b

Kn−1b

Kn

Introducao a Teoria da Complexidade Computacional Classica – p.16/70

Page 17: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Nick’s Class

Resolvemos o problema da multiplicaçãomatricial com tamanho de O(n3) e umaprofundidade de O(log2 n).A classe NC é o conjunto de todos os problemasresolvidos com size-depth (O(nk), O(logk n)) parauma constante k > 1, dizemos que NCk ⊆ NC.

[Sipser, pág. 369]

Introducao a Teoria da Complexidade Computacional Classica – p.17/70

Page 18: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Nondeterministic Turing Machine

q

a b c d e f g h i j k l m n

00101101

01

0 tapeof randombits

finite control

read-write tape

configuration tree

(a) (b)

Introducao a Teoria da Complexidade Computacional Classica – p.18/70

Page 19: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Equivalência da NTM

Teorema: Toda NTM tem uma máquina de Turingdeterminística equivalente.

[Sipser, pág. 138]

Introducao a Teoria da Complexidade Computacional Classica – p.19/70

Page 20: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Probabilistic Turing MachineExistem várias definições interessantes:

Uma NTM que escolhe aleatoriamente entretransições disponíveis em cada ponto deacordo com alguma distribuição deprobabilidade

Um tipo de NTM onde cada passo échamado de coin-flip step e tem dois próximospassos legais

Uma MT em que algumas transições sãoescolhas aleatórias entre as alternativasfinitas

Introducao a Teoria da Complexidade Computacional Classica – p.20/70

Page 21: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

PTM ⊂ NTM

"A probabilistic Turing machine M is a type ofnondeterministic Turing machine where eachnondeterministic step is called coin-flip step andhas two legal next move."

[Sipser, pág. 336]

Introducao a Teoria da Complexidade Computacional Classica – p.21/70

Page 22: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Probabilidades

Assumimos a probabilidade de cada vértice b deM computações com uma entrada w. Definimosa probabilidade do vértice b como

Pr[b] = 2−k

onde k é o número de coin-flip step que ocorreno vértice b. Definimos a probabilidade de Maceitar w como

Pr[M aceitar w] =∑

b a um vertice aceito

Pr[b]

Introducao a Teoria da Complexidade Computacional Classica – p.22/70

Page 23: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Reconhecimento em PTMM reconhece a linguagem A com probabilidadede erro ǫ se:

w ∈ A implica Pr[M aceitar w] > 1− ǫ

w /∈ A implica Pr[M rejeitar w] > 1− ǫ

Aceita todas as sequências na linguagem erejeita todas as sequências fora da linguagem:

Pr[M rejeitar w] = 1− Pr[M aceitar w]

No entanto, um PTM terá uma probabilidade de

erro ǫ = 2−n, onde n é a entrada.

Introducao a Teoria da Complexidade Computacional Classica – p.23/70

Page 24: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Fatos

Cada “vértice” na computação de PTM temuma probabilidade

Tem resultados estocásticos

Introducao a Teoria da Complexidade Computacional Classica – p.24/70

Page 25: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

PTM

c

c c

c c c c c

0.6 0.4

1 2

3 4 5 6 7

0

0.5 0.5

0.3 0.50.2

Introducao a Teoria da Complexidade Computacional Classica – p.25/70

Page 26: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Fatos

Assim, uma dada entrada:pode ter tempo de execução diferentepode não parar

Portanto, pode aceitar a entrada em umadeterminada execução, mas rejeitar outraentrada

A complexidade de tempo e espaço pode sermedida através do pior caso

Introducao a Teoria da Complexidade Computacional Classica – p.26/70

Page 27: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Lema da Amplificação

Seja uma constante fixada estritamente entre 0

e 1/3. Então para qualquer tempo polinomial

poly(n) em uma PTM M1 que opera com proba-

bilidade de erro ǫ existe uma PTM M2 que opera

com probabilidade de erro 2−poly(n) em tempo po-

linomial.

Introducao a Teoria da Complexidade Computacional Classica – p.27/70

Page 28: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Teste de Primalidade

Se p é primo então ap−1 ≡ 1 mod p ∀ a ∈ Z∗p

27−1 ≡ 64 ≡ 1 mod 7

26−1 ≡ 32 ≡ 2 mod 6

Introducao a Teoria da Complexidade Computacional Classica – p.28/70

Page 29: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Erros do Teste de Primalidade

2340 ≡ 1 mod 341 é pseudoprimo na base 2

3340 ≡ 56 mod 341

Existem 245 pseudoprimos na base 2menores que um milhão

A maioria não é pseudoprimo em outra base

Existe apenas 2163 n. de Carmichaelmenores que 2.5× 1010

Introducao a Teoria da Complexidade Computacional Classica – p.29/70

Page 30: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Algoritmo Probabilístico

Um algoritmo concebido para utilizar oresultado de um processo aleatório

Muitas vezes, o algoritmo tem acesso a umgerador de números pseudo-aleatórios

O algoritmo utiliza bits aleatórios para ajudara fazer escolhas (na esperança de obter ummelhor desempenho)

Introducao a Teoria da Complexidade Computacional Classica – p.30/70

Page 31: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Por que usar algoritmos aleatórios

Algoritmos probabilísticos são úteis porque:

É demorado calcular a “melhor resposta”

Estimativa poderia introduzir um viésindesejado que invalida os resultados

Introducao a Teoria da Complexidade Computacional Classica – p.31/70

Page 32: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Amostra Aleatória

A amostragem aleatória é usada para obterinformações sobre os indivíduos em umagrande população

Consultar a todos levaria muito tempo

Consultar um subconjunto não aleatórioselecionado pode influenciar os resultados

Introducao a Teoria da Complexidade Computacional Classica – p.32/70

Page 33: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Bounded error Probability in Polynomial

A classe de linguagens que sãoreconhecidas por TM em tempo polinomialprobabilístico com uma probabilidade de errode 1/3 (ou menor)

A classe de linguagens que uma PTM páraem tempo polinomial com uma resposta deaceitar ou rejeitar de pelo menos 2/3 dotempo

Introducao a Teoria da Complexidade Computacional Classica – p.33/70

Page 34: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Monte Carlo

Como vimos na classe BPP, executando asrepetições adicionais no algoritmo irá diminuira chance do algoritmo dar a resposta errada

Muitas vezes referimos a este tipo dealgoritmo como algoritmo de Monte Carlo

Introducao a Teoria da Complexidade Computacional Classica – p.34/70

Page 35: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Integral

Introducao a Teoria da Complexidade Computacional Classica – p.35/70

Page 36: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Integração por Monte Carlo

Escolhendo aleatoriamente n pontosx1, x2, . . . , xn em um volume V para determinar aintegral de uma função f fazemos

fdV ≈ V

(

〈f〉 ±√

〈f 2〉 − 〈f〉2n

)

onde

〈f〉 =1

n

n∑

i=1

f(xi) 〈f 2〉 =1

n

n∑

i=1

f 2(xi)

Introducao a Teoria da Complexidade Computacional Classica – p.36/70

Page 37: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Erro da Integração

O desvio padrão é dado por

σ =

〈f 2〉 − 〈f〉2n

Logo o erro decresce conforme n cresce, isto é

1√n

Este algoritmo pertence à BPP.

Introducao a Teoria da Complexidade Computacional Classica – p.37/70

Page 38: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Randomized Polynomial time

A classe de problemas que serão executadosem tempo polinomial em uma PTM com asseguintes propriedades:

Se a resposta correta énão, sempre retorna nãosim, retornar sim com probabilidade depelo menos 1/2

Caso contrário, não retorna

Introducao a Teoria da Complexidade Computacional Classica – p.38/70

Page 39: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Simplificando

A classe de linguagens para as quais o resultadopode ser determinado em tempo polinomial poruma PTM sem falsas aceitações e menos dametade das rejeições são falsas.

Se o algoritmo retorna uma resposta sim,então sim é a resposta correta. Não existefalso positivo.

Se o algoritmo retorna uma resposta não,então ela pode ou não ser correto

Introducao a Teoria da Complexidade Computacional Classica – p.39/70

Page 40: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Co-RP

A classe de problemas que serão executadosem tempo polinomial em uma PTM com asseguintes propriedades:

Se a resposta correta éSim, sempre retornam simNão, retornam não com probabilidade depelo menos 1/2

Caso contrário, retorna um sim

Introducao a Teoria da Complexidade Computacional Classica – p.40/70

Page 41: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Simplificando

A classe de linguagens para as quais o resultadopode ser determinado em tempo polinomial poruma PTM sem falsas rejeições e menos dametade das aceitações são falsas.

Se o algoritmo retorna uma resposta não,então não é a resposta correta. Não exitefalso negativo.

Se o algoritmo retorna uma resposta sim,então ela pode ou não ser correto

Introducao a Teoria da Complexidade Computacional Classica – p.41/70

Page 42: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Zero-error Probabilistic Polinomial

A classe de linguagens que uma PTM pára emtempo polinomial, sem falsas aceitações ourejeições, mas às vezes dá um “não sei” comoresposta. Em outras palavras:

sempre retorna uma resposta sim ou nãogarantida

pode retornar um “não sei” como resposta

Introducao a Teoria da Complexidade Computacional Classica – p.42/70

Page 43: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

ZPP

A execução é ilimitadaMas tem tempo polinomial em média (paraqualquer entrada)Espera-se parar em tempo polinomial

Introducao a Teoria da Complexidade Computacional Classica – p.43/70

Page 44: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

ZPP

Similar a definição de P, exceto:ZPP permite que TM tenha “aleatoriedade”O tempo esperado de execução é omédido (em vez do pior caso)

Muitas vezes referida como um algoritmo deLas Vegas

Introducao a Teoria da Complexidade Computacional Classica – p.44/70

Page 45: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Relações

LOGSPACE ⊆ NC ⊆ P ⊆ RP ⊆ NP ⊆ PSPACE[claymath.org, Palestra P×NP]

P ⊆ ZPP = RP∩co-RP ⊆ RP ⊆ RP∪co-RP ⊆ BPP[Talbot, pág. 83]

Introducao a Teoria da Complexidade Computacional Classica – p.45/70

Page 46: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Relações

Introducao a Teoria da Complexidade Computacional Classica – p.46/70

Page 47: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

BPP⊆?

Ainda é uma questão em aberto se NP é umsubconjunto de BPP ou BPP é umsubconjunto de NP

No entanto, acredita-se que RP seja umsubconjunto de BPP

Introducao a Teoria da Complexidade Computacional Classica – p.47/70

Page 48: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Relações BPP ?

Introducao a Teoria da Complexidade Computacional Classica – p.48/70

Page 49: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Problemas em aberto

1. P = ZPP ?

2. RP = co-RP ?

3. RP = NP ∩ co-NP ?

4. BPP ⊆ NP ?

5. NP ⊆ BPP ?

6. RP ∪ co-RP = BPP ?

[Talbot, pág. 83]

Introducao a Teoria da Complexidade Computacional Classica – p.49/70

Page 50: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Provas

Para provar que P = NP basta encontrar umalgoritmo polinomial para um problemaNP-Completo

Existem muitas “provas” erradas de P = NP

Introducao a Teoria da Complexidade Computacional Classica – p.50/70

Page 51: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Consequências

Se NP = P, muitos problemas importantespodem ser resolvidos deterministicamente ede forma muito rápida

Se NP = P, muitos códigos criptográficosserão quebrados

Se NP 6= P, muitos problemas importantessão intratáveis

Se NP 6= P, existem infinitas classes entre P eNP-Completo (Ladner 1975)

Introducao a Teoria da Complexidade Computacional Classica – p.51/70

Page 52: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Complexity Zoo

Várias classes podem ser encontradas em:http://qwiki.stanford.edu/wiki/Complexity_Zoo

Existem 489 classes catalogadas até agora!

Introducao a Teoria da Complexidade Computacional Classica – p.52/70

Page 53: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Desconhecidos

Problemas em NP que não sabemos se estãoem P ou NP-Completo.

1. Isomorfismo de Grafos

2. Problema do Logaritmo Discreto

3. Problema da Fatoração de InteirosNP∩Co-NP se PFI∈NP-Completo entãoNP=Co-NPGeneral Number Field Sieve

O(

e(c+o(1))(log n)13 (log log n)

23

)

= Ln [1/3, c]

Introducao a Teoria da Complexidade Computacional Classica – p.53/70

Page 54: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Notação L

A notação L é definida como

Ln[α, c] = O(

e(c+o(1))(lnn)α(ln lnn)1−α

)

com 0 6 α 6 1.A existência do AKS mostra que o teste deprimalidade pode ser feito em P comcomplexidade

Ln[0, c] = O((ln n)c+o(1))

Introducao a Teoria da Complexidade Computacional Classica – p.54/70

Page 55: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 56: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Simétricas (Força-bruta)

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 57: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Simétricas (Força-bruta)

Assimétricas (H(fD(C)|C) = 0)

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 58: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Simétricas (Força-bruta)

Assimétricas (H(fD(C)|C) = 0)

Carência de prova da segurança

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 59: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Simétricas (Força-bruta)

Assimétricas (H(fD(C)|C) = 0)

Carência de prova da segurança

Se provarmos que encontrar k não está em Pentão P6=NP

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 60: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Simétricas (Força-bruta)

Assimétricas (H(fD(C)|C) = 0)

Carência de prova da segurança

Se provarmos que encontrar k não está em Pentão P6=NP

Se quebramos um código baseado em umproblema NP-completo temos que P=NP

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 61: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

CriptografiaOne-time pad (Vigenère-Vernam)

Simétricas (Força-bruta)

Assimétricas (H(fD(C)|C) = 0)

Carência de prova da segurança

Se provarmos que encontrar k não está em Pentão P6=NP

Se quebramos um código baseado em umproblema NP-completo temos que P=NP

Quebrar códigos significa mudar a classe deum problema ou definir a relação entreclasses

Introducao a Teoria da Complexidade Computacional Classica – p.55/70

Page 62: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

One-way Functions

Uma função f : Σ∗ → Σ∗ preserva ocomprimento se o comprimento de w e f(w) sãoiguais.

Uma função que preserva o comprimento é uma

permutação se f(x) 6= f(y) sempre que x 6= y.

Introducao a Teoria da Complexidade Computacional Classica – p.56/70

Page 63: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

One-way permutation

Uma permutação One-way é uma permutação fque preserva o comprimento com as duaspropriedades:

1. É computável em tempo polinomial

2. Para toda PTM M , todo k e n suficientementegrande, se pegarmos um w aleatório decomprimento n e executarmos M com aentrada w, então

PrM,w[M(f(w)) = w] 6 n−k

Introducao a Teoria da Complexidade Computacional Classica – p.57/70

Page 64: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

One-way function

Uma função One-way é uma função f quepreserva o comprimento com as duaspropriedades:

1. É computável em tempo polinomial

2. Para toda PTM M , todo k e n suficientementegrande, se pegarmos um w aleatório decomprimento n e executarmos M com aentrada w, então

PrM,w[M(f(w)) = y onde f(y) = f(w)] 6 n−k

Introducao a Teoria da Complexidade Computacional Classica – p.58/70

Page 65: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Pseudoaleatório

xs ≡ y mod z

Dado x, s e z temos y é pseudo-randômico

Dado x, y e z temos s secreto

Introducao a Teoria da Complexidade Computacional Classica – p.59/70

Page 66: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Problema do Logaritmo Discreto

Com k, pq, kr e ks

Poderia calcular s ou r e depois bA

Equivalente ao Problema da Fatoração deInteiros

Introducao a Teoria da Complexidade Computacional Classica – p.60/70

Page 67: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Intruso e o Logaritmo Discreto

Com k = 256, pq = 8383, kr = 5835 eks = 1438

o intruso calcula 256109 = 1438

s = 109

bA = (kr)s = 5835109 = 3439

Introducao a Teoria da Complexidade Computacional Classica – p.61/70

Page 68: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Função de indexação

Uma família de funções {fi} com i ∈ Σ∗ pode serrepresentada por

f : Σ∗ × Σ∗ → Σ∗

onde F (i, w) = fi(w).

Introducao a Teoria da Complexidade Computacional Classica – p.62/70

Page 69: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Trapdoor function

Uma função Trapdoor é uma função deindexação f : Σ∗ × Σ∗ → Σ∗ que preserva ocomprimento com uma PTM G auxiliar e umafunção h : Σ∗ × Σ∗ → Σ∗ auxiliar.

Sendo que f, G e h satisfazem três condições.

Introducao a Teoria da Complexidade Computacional Classica – p.63/70

Page 70: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Condições da Trapdoor1. f e h são computáveis em tempo polinomial

2. Para cada PTM E e todo k, dado um nsuficientemente grande e um resultadoaleatório 〈i, t〉 de G de 1n e um w ∈ Σn

aleatório, então

Pr[E(i, fi(w)) = y, onde fi(y) = fi(w)] 6 n−k

3. Para ∀n, ∀w de comprimento n, e toda saída〈i, t〉 de G que ocorre com probabilidadenão-nula para uma entrada de G

h(t, fi(w)) = y, onde fi(y) = fi(w).Introducao a Teoria da Complexidade Computacional Classica – p.64/70

Page 71: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

RSA

ϕ = ϕ(pq) = (p− 1)(q − 1)

(a, ϕ) = 1

ab ≡ 1 mod ϕ

xab ≡ x mod pq ∀x ∈ Z

Introducao a Teoria da Complexidade Computacional Classica – p.65/70

Page 72: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 73: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 74: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 75: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D...

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 76: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D...

Z↔ E

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 77: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D...

Z↔ E

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 78: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D...

Z↔ E

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"QVDIJTPOCYHNGXAZWUSMFKRLBE"

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 79: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D...

Z↔ E

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"QVDIJTPOCYHNGXAZWUSMFKRLBE"

26!− 1 = 403291461126605635583999999

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 80: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Cifra MonoalfabéticaA↔ Q

B↔ V

C↔ D...

Z↔ E

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"QVDIJTPOCYHNGXAZWUSMFKRLBE"

26!− 1 = 403291461126605635583999999

26! ≈ 4.03 1026

Introducao a Teoria da Complexidade Computacional Classica – p.66/70

Page 81: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Nomenclaturas

Constante 1Logarítmo log n

Linear n

Log-linear n log n

Quadratica n2

Cubica n3

Polinomial np

Sub-exponencial blog n

Exponential bn

Factorial ∞Introducao a Teoria da Complexidade Computacional Classica – p.67/70

Page 82: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Esquema Vigenère

Introducao a Teoria da Complexidade Computacional Classica – p.68/70

Page 83: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 84: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 85: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA01,00,13,05,14,09,14,01,00,02,18,09,14,03,01

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 86: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA01,00,13,05,14,09,14,01,00,02,18,09,14,03,01

SENHASENHASENHA

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 87: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA01,00,13,05,14,09,14,01,00,02,18,09,14,03,01

SENHASENHASENHA19,05,14,08,01,19,05,14,08,01,19,05,14,08,01

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 88: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA01,00,13,05,14,09,14,01,00,02,18,09,14,03,01

SENHASENHASENHA19,05,14,08,01,19,05,14,08,01,19,05,14,08,01

20,05,00,13,15,01,19,15,08,03,10,14,01,11,02

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 89: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA01,00,13,05,14,09,14,01,00,02,18,09,14,03,01

SENHASENHASENHA19,05,14,08,01,19,05,14,08,01,19,05,14,08,01

20,05,00,13,15,01,19,15,08,03,10,14,01,11,02

TE6bMOASOHCJNAKB

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 90: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Vigenère

Gerando uma senha do tamanho do texto, apartir de uma senha menor (Keystream)

A6bMENINA6bBRINCA01,00,13,05,14,09,14,01,00,02,18,09,14,03,01

SENHASENHASENHA19,05,14,08,01,19,05,14,08,01,19,05,14,08,01

20,05,00,13,15,01,19,15,08,03,10,14,01,11,02

TE6bMOASOHCJNAKB

275 = 14348907 ≈ 1.24 107

Introducao a Teoria da Complexidade Computacional Classica – p.69/70

Page 91: Introdução à Teoria da Complexidade Computacional Clássicalncc.br/~borges/doc/complexidade.pdf · Equivalência da MTM Teorema: Toda MTM tem uma máquina de Turing de uma fita

Último Slide

Obrigado.

Quaisquer sugestões serão muitobem-vindas.

www.lncc.br/∼borges

Fabio Borges de OliveiraIntroducao a Teoria da Complexidade Computacional Classica – p.70/70