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

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

FAPE - Curso de Ciência da Computação
FAPE - Curso de Ciência da Computação
Variantes de Máquina de Turing
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
Teoria da Computação EQUIVALÊNCIA DE PROGRAMAS E MÁQUINA Fabrício Dias
MÁQUINAS UNIVERSAIS Fabrício Dias
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Prof. Yandre Maldonado e Gomes da Costa
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
3 AUTÓMATOS FINITOS.
Ling. Formais e Autômatos Autômatos finitos
Máquinas de Turing Não Deterministas
Equivalência de Autômatos
Problema de Correspondência de Post (PCP)
Máquinas de Turing Teoria da Computação.
Mestrado em Ciência da Computação Profa. Sandra de Amo
Problema da Aceitação ATM
Teoria da Computação Sandra de Amo
Programação Linear Método Simplex
Lema do Bombeamento – Gramáticas Livres do Contexto
Teorema da Recursão Teoria da Computação
Pós-graduação em Ciência da Computação – UFU
esquerda p/ direita,read only
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
autômatos finitos com transições e
Identificando Linguagens Não Regulares
Máquina de Turing e Computabilidade
Quão difícil é comunicar? Andreia Teixeira 27 de Maio.
Informática Teórica Engenharia da Computação
Máquinas de Turing, Procedimentos, Algoritmos e Tese de Church
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Erick Vagner Cabral Igor Lucena Vitor Baptista
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
4 - DECIDIBILIDADE Universidade Federal da Paraíba
SIPSER – Capítulo 3: A tese de Church-Turing
Ling. Formais e Autômatos AFN-ε
Teoria da Computação Aula 5 Prof. Fabiano Sabha.
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
Inteligência Artificial
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Complexidade computacional
Máquina de Turing Universal
Máquinas de Turing.
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
Redução.
Como analisar um algoritmo
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
Computabilidade e Linguagens Formais
Informática Teórica Aula 8 Por: Tarcisio Coutinho da Silva
Tese de Church-Turing.
Informática Teórica Arthur Ramos David Hulak
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação. REDUTIBILIDADE Uma redução é uma maneira de converter um problema em outro Uma redução é uma maneira de.
1 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens.
Transcrição da apresentação:

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

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.

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.

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

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

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

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

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

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

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

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

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

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)

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))

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 #

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.

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)

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

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))

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

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))

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

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