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 Profa. Sandra de Amo Teoria da Computação Mestrado em Ciência da Computação.

Apresentações semelhantes


Apresentação em tema: "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."— 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 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. Complexidade é afetada pelo modelo de computação usado. –Modelo padrão utilizado : Máquina de Turing Determinista a uma fita.

3 Exemplo L = {0 n 1 n | n 0} L é decidida por uma máquina a uma fita O(n 2 ) L é decidida por uma máquina a uma fita O(n 2 ) L é decidida por uma máquina a uma fita O(nlogn) 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) 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 = {0 n 1 n | n 0} não é regular.

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

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

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

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

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

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

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

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

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

13 Complexidade Scan da fita 1 para testar se tem 0 depois de 1 : O(n) 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 copiando os zeros na fita 2 Scan da fita 1 comparando os 1s com os 0s da fita 2, marcando os 0s e 1s que se correspondem, até que acabem os 1s da fita 1, ou acabem os 0s da fita 2. Scan da fita 1 comparando os 1s com os 0s da fita 2, marcando os 0s e 1s que se correspondem, até que acabem os 1s da fita 1, ou acabem os 0s da fita 2. Scan das fitas: Scan das fitas: –Se tem 0s não marcados na fita 2 rejeita. –Se tem 1s 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(t 2 (n))

15 Como simular uma configuração de M numa máquina com 1 fita: 10 B BBB 00BB BBBB BBB q2 10 BB BBBB BBB # 10 B ## B BBB B 0010 #

16 S = No input w faça: 1. Escreve na fita de S o input w correspondente à configuração inicial da máquina M (com w na sua fita 1). 2. Para simular cada movimento de M: 1.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. 2.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. 3.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. Construção da Máquina Simples S

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) 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 ? 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)) 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(t 2 (n)) = = O(t 2 (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. 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)} 0 B11 q0 0 0 q1 q B qa q1 B qr BB q B qr q0 q1 q0 B0 q1 looping

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

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

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google