Linguagens recursivamente enumeráveis

Documentos relacionados
Linguaguens recursivamente enumeráveis

Linguaguens recursivamente enumeráveis e recursivas

Autómatos determísticos de k-pilhas

Máquinas de Turing: uma introdução

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

MT como calculadoras de funções parciais

Modelos de Computação Folha de trabalho n. 10

Autómatos de pilha e Gramáticas independentes de contexto

Noções de grafos (dirigidos)

Autómatos de pilha e GIC

Computabilidade: uma introdução

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Gramáticas ( [HMU00], Cap. 5.1)

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Linguagem (formal) de alfabeto Σ

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

SCC-5832 Teoria da Computação

Aula 9: Máquinas de Turing

1. Uma linguagem de uma máquina de Turing

Revisões de Conjuntos

Computabilidade: uma introdução

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Autómatos finitos não determinísticos (AFND)

Universidade Federal de Alfenas

SCC Teoria da Computação e Linguagens Formais

Universidade Federal de Alfenas

Máquinas de Turing - Computabilidade

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Problemas decidíveis para LICs

Máquinas de Turing 3

Modelos Universais de Computação

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Teoria da Computação. Computabilidade e complexidade computacional

SCC Introdução à Teoria da Computação

Modelos de Computação

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

Problemas decidíveis para LICs

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Teoria da Computação

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Problemas Computáveis

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Computação. Sob uma perspectiva teórica. Elloá B. Guedes. IQuanta. 22 de setembro de 2008

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Teoria da Computação. Máquinas de Turing: variações

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

Teoria da Computação. Computabilidade e complexidade computacional

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos Decidibilidade

Computabilidade e Complexidade (ENG10014)

Variedades Adicionais das Máquinas de Turing

7.1. Autómatos de pilha não-determinísticos (NPDA) 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas.

Variações de Máquinas de Turing

Técnicas de Extensão de MT

Máquina de Turing e máquina de Turing universal

PCC104 - Projeto e Análise de Algoritmos

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

COMPUTABILIDADE 2. Indecidibilidade

Máquinas de Turing (MT)

Turing e Complexidade

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior

Linguagens Livres de Contexto

Aula 10: Decidibilidade

Aula 10: Decidibilidade

UNIDADE UNIVERSITÁRIA:

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

Complexidade de Algoritmos. Edson Prestes

Linguagens Regulares. Prof. Daniel Oliveira

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

Teoria da Computação 19 de Abril de 2017 Teste 1A Duração: 1h30

Projeto de máquina de Turing com múltiplas fitas reconhecedora de número primo

14.1 Linguagens decidíveis ou Turing reconhecíveis

a n Sistemas de Estados Finitos AF Determinísticos

Computabilidade e Complexidade (ENG10014)

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Transcrição:

Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M pode ou não parar parar num estado não final. Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite por uma máquina de Turing. SD: classe de linguagens recursivamente enumeráveis Departamento de Ciência de Computadores da FCUP MC Aula 22 1

Linguagens recursivas Uma linguagem diz-se recursiva ou decidível se existe uma máquina de Turing que a reconhece, isto é, uma que máquina pára para todos os dados e: num estado final se a palavra dada pertence à linguagem num estado não final se a palavra dada não pertence à linguagem. D: classe de linguagens recursivas Proposição 22.1. D SD. Dem. Se L D então existe uma MT M que a reconhece. E portanto em particular aceita L. Departamento de Ciência de Computadores da FCUP MC Aula 22 2

Decidibilidade e semi-decidibilidade Embora normalmente se use indiferentemente os termo recursiva/ decidível e recursivamente enumerável/semi-decidível os primeiros devem aplicar-se a linguagens e os segundos a propriedades dessas linguagens. Seja P uma propriedade sobre palavras e L uma linguagem, então: P é decidível {x P (x)} é recursiva L é recursiva x L é decidível P é semi-decidível {x P (x)} é r.e. L é r.e x L é semi-decidível Departamento de Ciência de Computadores da FCUP MC Aula 22 3

Máquinas de Turing e Autómatos Finitos Proposição 22.2. Se L é regular (L R) então L é recursiva. (L D). Dem. Seja L = L(A) e A = (S, Σ, δ, s 0, F ) um AFD então, e M = (S {s f }, Σ, Σ { }, δ M, s 0,, {s f }) δ M (s, a) = (s, a, ) se δ(s, a) = s δ M (s, ) = (s f,, ), se s F. Então M reconhece L. (Verifica!) Departamento de Ciência de Computadores da FCUP MC Aula 22 4

Máquinas de Turing e Autómatos de Pilha Proposição 22.3. recursiva. (L D). Se L é independente de contexto (L I C ) então L é Dem. (Ideia da demonstração) Dado um autómato de pilha P = (S, Σ, Γ, δ, Z 0, F ) que aceita L por estados finais constrói-se uma MT M que dado x, simula P com dados x: começa por colocar no fim dos dados, o símbolo Z 0, que representa o topo da pilha. Departamento de Ciência de Computadores da FCUP MC Aula 22 5

volta para trás e processa os dados: estando no estado s, para cada símbolo lido a, tem de verificar qual o símbolo do topo da pilha (fim direito dos caracteres não brancos) (Z), e se δ(s, a, Z) = (s, γ), escreve γ ao contrário a partir da posição em que Z estava, passa para o estado s e anda para trás para ler o próximo símbolo de entrada. Se γ = ɛ, apaga o último caracter (escreve um branco). quando terminar os dados e se estiver num estado final de P, muda para o estado (novo) final de M. Nota, que tem de se introduzir vários estados extra para percorrer a fita entre os dados e a pilha...e tem de se ir marcando os símbolos dos dados já lidos. Exercício 22.1. Termina a demonstração anterior... Departamento de Ciência de Computadores da FCUP MC Aula 22 6

Comparação dos modelos de computação Memória Acesso dados Modelo Gramáticas Linguagens Finita Fixo Autómatos Finitos Regulares R Ilimitada Topo da pilha Autómatos de Pilha Independentes de Contexto I C Ilimitada Sequencial (não restrito) Máquinas de Turing Tipo 0 SD R I C SD Departamento de Ciência de Computadores da FCUP MC Aula 22 7

Técnicas para escrever MTs Pode ser conveniente supor que o controlo finito e a fita tem alguma estrutura.isto não altera em nada o modelo da máquina de Turing básica. Múltiplas pistas Os símbolos da fita tem pistas, isto é, são tuplos de símbolos que a cabeça reconhece simultaneamente: [a,x]. Neste caso um dos símbolos pode servir de marca, sem se perder a informação de qual o símbolo que estava. Exemplo: Se cada célula com os dados for da forma [a, ], a Σ e os brancos [, ], durante o processamento podemos marcar as células com [a, X], X Γ, sem apagar o a... Controlo finito com memória finita Os estados podem ser da forma [s, A], onde A representa um (ou mais) símbolo de Γ que se pretende memorizado (por exemplo, para recordar o último símbolo lido).isto reduz o número de estados necessários e torna o seu significado mais expĺıcito. Departamento de Ciência de Computadores da FCUP MC Aula 22 8

Restrições/Extensões de MTs Várias modificações da máquina de Turing básica são possíveis sem que o modelo de computação obtido seja nem mais nem menos poderoso. Alfabeto Qualquer alfabeto pode ser codificado noutro com apenas dois símbolos. Aridade das funções que calculam Existem codificações bijectivas de N n em N. Para n = 2, p(x, y) = (x+y)(x+y+1) 2 + x Movimentos da cabeça {, } ou {,, } (esquerda/não mexe/direita) Tamanho da fita Duplamente infinita ou semi-infinita Departamento de Ciência de Computadores da FCUP MC Aula 22 9

Número e tipo de fitas múltiplas fitas de leitura/escrita; uma escrita de saída e uma fita de leitura/escrita; uma fita de leitura e múltiplas fitas de leitura/escrita; Determinísticas/Não determinísticas Outros modelos equivalentes Autómatos (determinísticos) de 2-pilhas Máquinas RAM: modelo abstracto de um computador com uma memória infinita Departamento de Ciência de Computadores da FCUP MC Aula 22 10

MTs com movimentos {,, } Se M 1 é uma MT com movimentos {, } também é uma MT com movimentos {,, }. Inversamente, seja M 2 = (S 2, Σ 2, Γ 2, δ 2, s 2,, F 2 ) uma MT com movimentos {,, }. Define-se M 1 com movimentos {, }.Quando a cabeça de M 2 fica parada, M 1 deve entrar num estado especial e movimentar-se uma célula para direita e outra para a esquerda, voltando à mesma célula de tal modo que simule o facto de M 2 não se mexer. M 1 = (S 1, Σ 1, Γ 1, δ 1, [s 2, X],, F 1 ) S 1 = {[s, X], [s, Y ] s S 2 }, F 1 = F 2 {X, Y }, Σ 1 = Σ 2, Γ 1 = Γ 2 δ 1 define-se por, a Γ 1, s S 2,: δ 1 ([s, X], a) = ([s, X], a, ), se δ 2 (s, a) = (s, a, ) δ 1 ([s, X], a) = ([s, X], a, ) se δ 2 (s, a) = (s, a, ) δ 1 ([s, X], a) = ([s, Y ], a, ) se δ 2 (s, a) = (s, a, ) δ 1 ([s, Y ], a) = ([s, X], a, ) Departamento de Ciência de Computadores da FCUP MC Aula 22 11

MTs com k fitas de leitura/escrita Uma máquina de Turing com k fitas, k > 1, consiste num controlo finito com k cabeças, uma para cada uma das k fitas. Num movimento, muda de estado escreve um símbolo em cada uma das células que estão debaixo de cada cabeça move cada cabeça, independentemente, para a esquerda ou para a direita ou não mexe Departamento de Ciência de Computadores da FCUP MC Aula 22 12

Inicialmente a sequência de entrada encontra-se na primeira fita e todas as outras estão em branco. Proposição 22.4. Se uma linguagem L é aceite por uma MT com k fitas, então L é aceite por uma MT com uma única fita. Dem. L = L(M 1 ) com k fitas.construímos M 2 com uma fita e 2k pistas:para cada uma das k fitas a primeira pista contém o conteúdo da fita correspondente de M 1 e a segunda está em branco excepto para a célula actualmente lida pela cabeça correspondente de M 1 Se k = 2 cabeça 1 X...... fita 1 a 1 a 2... a i... a m cabeça 2... X... fita 2 b 1 b 2... b i... b m Σ 2 ({X, } Σ 1 ) k Departamento de Ciência de Computadores da FCUP MC Aula 22 13

Para simular um movimento de M 1, M 2 tem de visitar, da esquerda para a direita, os k indicadores. Um estado de M 2 contém: o estado de M 1 o número de de indicadores (símbolos X) à direita da cabeça de M 2 :n i cada um dos k-símbolos de Γ 1 que estão a ser lidos por M 1 Quando n i = 0 então M 2 pode efectuar o movimento de M 1 : a cabeça de M 2 percorre a fita da esquerda para a direita, e sempre que encontra um indicador modifica o símbolo lido e movimenta o indicador de acordo com o movimento da cabeça correspondente em M 1. Quando já actualizou todos os indicadores, M 2 muda o estado correspondente a M 1. Se o novo estado de M 1 é um estado final, o de M 2 também o é. Departamento de Ciência de Computadores da FCUP MC Aula 22 14

Máquinas de Turing não determinísticas Uma máquina de Turing é não determinística (MTND) se dado um estado e um símbolo lido, existirem várias hipóteses para o movimento seguinte, δ (S Γ) (S Γ {, }) Uma MT não determinística aceita a sequência de entrada se existe uma sequência de escolhas de movimentos que conduza a um estado de aceitação (final). Uma MT ND não aceita os dados se nenhuma sequência de escolhas conduz a um estado final ou se não pára. Analogamente, definem-se os conceitos de função calculada ou linguagem reconhecida. Em contraste, as MT definidas anteriormente denominam-se determinísticas (MTD) Departamento de Ciência de Computadores da FCUP MC Aula 22 15

Passos de computação não-determinística Departamento de Ciência de Computadores da FCUP MC Aula 22 16

Equivalência entre MTND e MTD Proposição 22.5. Se L é aceite por uma máquina de Turing não determinística, M 1, então L é aceite por alguma máquina de Turing determinística, M 2. Dem. Temos de ter especial cuidado porque M 1 pode não parar. Para cada estado e símbolo de fita de M 1, existe um número finito de escolhas para o movimento seguinte. (transições) Estas escolhas podem ser numeradas 1, 2,... Seja r o número máximo de escolhas de um par estado-símbolo. Então qualquer sequência finita de escolhas pode ser representado por uma sequência de dígitos de 1 a r. Construímos M 2 com 3 fitas. 1. contém a sequência de entrada. 2. gera sequências de dígitos de 1 a r dum modo sistemático, as Departamento de Ciência de Computadores da FCUP MC Aula 22 17

mais curtas primeiro e entre de igual tamanho por ordem numérica: 1,...,r,11,...1r,...,21,...,2r,...,111,...,rrr,... 3. Para cada sequência gerada na segunda fita, M 2 copia a sequência de entrada para a terceira fita e simula M 1 nessa fita, usando a sequência da segunda fita para decidir os movimentos de M 1. Nota que cada sequência de escolhas corresponde a uma sequência de configurações de M 1. Departamento de Ciência de Computadores da FCUP MC Aula 22 18

Deste modo M 2 simula sucessivamente todas as sequências de k movimentos de M 1, k = 1, 2,... 1,2,11,12,21, 111,112,113,121,122,211,212,213,1111,... M 2 explora a árvore de configurações de M 2 em largura. 4. Se M 1 atinge um estado de aceitação, então M 2 aceita.se nenhuma sequência de escolhas conduz a M 1 aceitar, M 2 também não aceita. Nota que: é essencial a ordem porque são geradas as possíveis sequências de escolhas (em largura e não em profundidade) de modo a evitar a simulação de um conjunto de escolhas infinito... A máquina determinística executa num tempo exponencialmente maior do que a máquina não-determinística. não se sabe se existe uma simulação polinomial de MTND em MTD.. Departamento de Ciência de Computadores da FCUP MC Aula 22 19

Complexidade temporal duma MT O tempo de execução duma máquina de Turing M com dados w é o número de passos efectuados por M até parar. A complexidade temporal de M é a função T (n) = max { p } p é o número de passos efectuados por M até parar com dados w e w = n Claro que poderá ser T (n) =, para alguns valores de n! Especialmente importantes são: a classe de máquinas de Turing (determinísticas) para as quais T (n) é polinomial: Departamento de Ciência de Computadores da FCUP MC Aula 22 20

os problemas correspondentes podem ser eficientemente resolvidos por computador (classe P) classe de máquinas de Turing não-determinísticas para as quais T (n) é polinomial:os problemas correspondentes podem pelo menos ser resolvidos em tempo exponencial por computador (classe NP) Modelo de computação MTD k-fitas O(n 2 ) MTND O(c n ), c > 1 Simulação de n passos numa MTD 1 fita Não se sabe se as MTNDs têm de ser exponencialmente mais lentas que as MTD, em particular se P NP! Mais pormenores na disciplina de Complexidade... Departamento de Ciência de Computadores da FCUP MC Aula 22 21

Leituras [HMU00] (Cap 8.2.5,8.3.1-2,8.4,8.5.1) [Mor96] Referências [HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison Wesley, 2nd edition, 2000. [Mor96] Nelma Moreira. Computabilidade: uma introdução. Technical report, Departamento de Ciência de Computadores da FCUP, 1996. Departamento de Ciência de Computadores da FCUP MC Aula 22 22