A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Complexidade de Linguagens Influência do Modelo de Computação

Apresentações semelhantes


Apresentação em tema: "Complexidade de Linguagens Influência do Modelo de Computação"— Transcrição da apresentação:

1 Complexidade de Linguagens Influência do Modelo de Computação
Profa. Sandra de Amo Teoria da Computação Mestrado em Ciência da Computação

2 Fato importante Decidibilidade não é afetada pelo modelo de computação usado: Tese de Church Se uma linguagem é decidível por uma máquina de Turing a duas fitas, ou não-determinista, etc então é decidível por uma máquina a uma fita. Complexidade é afetada pelo modelo de computação usado. Modelo padrão utilizado : Máquina de Turing Determinista a uma fita.

3 Exemplo L = {0n 1n | n ≥ 0} L é decidida por uma máquina a uma fita O(n2) L é decidida por uma máquina a uma fita O(nlogn) L não pode ser decidida por uma máquina de Turing a uma fita O(n) Teorema: Toda linguagem que pode ser decidida por uma MT a uma fita o(nlogn) é regular ! L = {0n 1n | n ≥ 0} não é regular.

4 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B B B B qo

5 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B B B qo

6 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B B qo

7 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B qo

8 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B qo

9 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B qo

10 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B qo

11 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qo B B B B B B B B qo

12 Exemplo L = {0n 1n | n ≥ 0} pode ser decidida por uma máquina de Turing O(n) a duas fitas 1 1 1 B B B B B qa B B B B B B B B qa

13 Complexidade Scan da fita 1 para testar se tem 0 depois de 1 : O(n)
Scan da fita 1 copiando os zeros na fita 2 Scan da fita 1 comparando os 1’s com os 0’s da fita 2, marcando os 0’s e 1’s que se correspondem, até que acabem os 1’s da fita 1, ou acabem os 0’s da fita 2. Scan das fitas: Se tem 0’s não marcados na fita 2 rejeita. Se tem 1’s não marcados na fita 1 rejeita. Caso contrário, aceita. Complexidade: O(n) + O(n) + O(n) + O(n) = O(n)

14 Relação da Complexidade entre Modelos Deterministas
Seja t(n) ≥ n. Toda máquina de Turing M a múltiplas fitas O(t(n)) é equivalente a uma máquina de Turing S a uma fita O(t2(n))

15 Como simular uma configuração de M’ numa máquina com 1 fita:
B B B B B B B B B q2 B B B B B B B B B q2 1 B B B B B B B B B q2 # 1 # B # 1 #

16 Construção da Máquina Simples S
S = No input w faça: Escreve na fita de S o input w’ correspondente à configuração inicial da máquina M (com w na sua fita 1). Para simular cada movimento de M: Varre a fita de S, a partir do primeiro # até o (k+1) – ésimo, e “memorize” os k simbolos com pontinhos. Aplique a transição de M’ correspondente. Varre a fita de S novamente a partir do primeiro #, aplicando as modificações ditadas pela transição de M correspondente à sequência de simbolos memorizada. Caso um pontinho deva ser colocado em cima de um #, escreva B com pontinho neste lugar, e dê um shift na fita para a direita a partir desta posição.

17 Análise da Máquina S Scan para transformar o input w em um input w’ que simula a configuração inicial da máquina M = O(n) Para cada passo da máquina M quantos passos S executa ? Varre 1 vez a fita para “memorizar” os pontinhos : k. x casas varridas, onde x = tamanho máximo das porções ocupadas pelas fitas de M ≤ t(n) = O(t(n)) Varre outra vez a fita para executar um passo de M : O(t(n)) Complexidade : O(n) + t(n). O(t(n)) = O(n) + O(t2(n)) = = O(t2(n)) , pois n ≤ t(n)

18 Fato importante Se complexidade é polinomial utilizando um modelo determinista a multiplas fitas então também é polinomial utilizando um modelo determinista a fita única. Polinomial a k-fitas <--> Polinomial a 1 fita

19 Relação da Complexidade entre Modelos Determinista e não-Deterministas
Seja t(n) ≥ n. Toda máquina de Turing M não-determinista a uma fita O(t(n)) é equivalente a uma máquina de Turing S determinista a uma fita 2 O(t(n))

20 Exemplo δ(q0,0) = {(q0,0,R),(q1,1,R)} δ(q0,1) = {(q0,1,R)}
δ(q0,B) = {(qa,B,R), (q1,B,R)} δ(q1,0) = {(q1,0,R)} δ(q1,1) = {(q1,1,R) δ(q1,B) = {(qr,B,R), (q1,B,R)} q0 1 1 B B q0 q0 q0 q0 q0 q1 q1 q0 q1 q0 q1 q1 1 1 1 q0 q1 1 1 q0 B B q1 B q1 qa B B qr qr q1 looping

21 Análise da Máquina Determinista S
Para input w de tamanho n Tamanho máximo dos caminhos da máquina M = t(n) Quantos caminhos no máximo ? bt(n) b = número máximo de alternativas da função de transição de M Total de passos no pior dos casos = t(n) . bt(n) Complexidade = 2O(t(n))

22 Exemplo : Linguagem Exponencial
E = {<M,w> | M aceita w em até 2|w| passos} Suponhamos que E  P A linguagem E1 = {<M> | M aceita <M> em até 2|<M>| passos} seria polinomial Logo E1  P. E1(<M>) = qa  M não aceita <M> em até 2|<M>| passos E1(<M>) = qr  M aceita <M> em até 2|<M>| passos

23 Sabemos que existe n0 tal que para n ≥ n0, p(n) ≤ 2n
Como E1  P então existe máquina de Turing M* que decide E1 em O(p(n)), p = polinômio Sabemos que existe n0 tal que para n ≥ n0, p(n) ≤ 2n Podemos supor que |<M*>| ≥ n0 Logo p(|<M*>| ) ≤ 2 |<M*>| O que acontece se aplicarmos M* a <M*> ? M* pára em p(|<M*>| ) passos: Se pára em qa: M* aceita <M*> em p(|<M*>| ) < 2 |<M*>| passos. Logo, pela definição de M*, M* não aceita <M*> Se pára em qr: M* rejeita <M*> em p(|<M*>| ) < 2 |<M*>| passos. Logo, pela definição de M*, M* aceita <M*>. Contradição !! Logo: E  P


Carregar ppt "Complexidade de Linguagens Influência do Modelo de Computação"

Apresentações semelhantes


Anúncios Google