08 linguagens recursivamente enumeraveis e sensiveis ao contexto
1. Linguagens Formais e
Autômatos
P. Blauth Menezes
blauth@inf.ufrgs.br
Departamento de Informática Teórica
Instituto de Informática / UFRGS
Linguagens Formais e Autômatos - P. Blauth Menezes 1
2. Linguagens Formais e Autômatos
P. Blauth Menezes
1 Introdução e Conceitos Básicos
2 Linguagens e Gramáticas
3 Linguagens Regulares
4 Propriedades das Linguagens Regulares
5 Autômato Finito com Saída
6 Linguagens Livres do Contexto
7 Propriedades e Reconhecimento das Linguagens
Livres do Contexto
8 Linguagens Recursivamente Enumeráveis e
Sensíveis ao Contexto
9 Hierarquia de Classes e Linguagens e Conclusões
Linguagens Formais e Autômatos - P. Blauth Menezes 2
3. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao
Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 3
4. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
Linguagens Formais e Autômatos - P. Blauth Menezes 4
5. 8 Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
◆ Ciência da Computação
• conhecimento sistematizado relativo à computação
◆ Origem da Ciência da Computação: remota
• antiga Grécia: III a.C - desenho de algoritmos por Euclides
• Babilônia: estudos sobre complexidade e reducibilidade de
problemas
• início do século XX: pesquisas com o objetivo de definir
∗ modelo computacional suficientemente genérico
∗ capaz de implementar qualquer função computável
Linguagens Formais e Autômatos - P. Blauth Menezes 5
6. ◆ Alan Turing (1936) propôs um modelo
• Máquina de Turing
• aceito como uma formalização de
∗ procedimento efetivo
∗ algoritmo ou
∗ função computável
• algoritmo
∗ seqüência finita de instruções
∗ podem ser realizadas mecanicamente
∗ em um tempo finito
Linguagens Formais e Autômatos - P. Blauth Menezes 6
7. ◆ Alonzo Church (1936)
• Hipótese de Church
qualquer função computável pode ser processada por uma
máquina de Turing
∗ existe um procedimento expresso na forma de uma máquina de
Turing capaz de processar a função
• como a noção intuitiva de procedimentos não é matematicamente
precisa
∗ impossível demonstrar formalmente se a máquina de Turing é,
de fato, o mais genérico dispositivo de computação
∗ mostrado: todos os demais modelos propostos possuem, no
máximo, a mesma capacidade computacional
Linguagens Formais e Autômatos - P. Blauth Menezes 7
8. ◆ Resumidamente, uma máquina de Turing
• autômato
• fita não possui tamanho máximo
• pode ser usada simultaneamente como dispositivo de entrada, de
saída e de memória de trabalho
◆ Linguagens Recursivamente Enumeráveis ou Tipo 0
• aceitas por uma máquina de Turing
• segundo a Hipótese de Church, a Classe das Linguagens
Recursivamente Enumeráveis
∗ conjunto de todas as linguagens
∗ que podem ser reconhecidas mecanicamente
∗ em um tempo finito
Linguagens Formais e Autômatos - P. Blauth Menezes 8
9. ◆ Gramática Irrestrita
• sem restrições sobre a forma das produções
• mesmo poder computacional que o formalismo Máquina de Turing
◆ Conseqüência importante do estudo das linguagens
recursivamente enumeráveis
existem mais problemas não-solucionáveis do que problemas
solucionáveis
Linguagens Formais e Autômatos - P. Blauth Menezes 9
10. ◆ Classe das Linguagens Recursivamente Enumeráveis
• inclui algumas para as quais é
∗ impossível determinar mecanicamente
∗ se uma palavra não pertence à linguagem
• se L é uma destas linguagens, então
∗ para qualquer máquina de Turing M que aceita L
∗ existe pelo menos uma palavra w não pertencente a L que
∗ ao ser processada por M, a máquina entra em loop infinito
• ou seja
∗ se w pertence a L, M pára e aceita a entrada
∗ se w não pertence a L, M pode parar, rejeitando a palavra ou
permanecer processando indefinidamente
Linguagens Formais e Autômatos - P. Blauth Menezes 10
11. ◆ Linguagens Recursivas
• subclasse da Classe das Linguagens Enumeráveis
Recursivamente
• existe pelo menos uma máquina de Turing que pára para qualquer
entrada, aceitando ou rejeitando
Linguagens Formais e Autômatos - P. Blauth Menezes 11
12. ◆ Linguagens Sensíveis ao Contexto ou Tipo 1
• aceitas por uma Máquina de Turing com Fita Limitada
∗ máquina de Turing com limitação no tamanho da fita (finita)
∗ exercício: diferença para o Autômato Finito?
◆ Gramática Sensível ao Contexto
• em oposição a “livre do contexto”: lado esquerdo das produções
∗ pode ser uma palavra de variáveis ou terminais
∗ definindo um "contexto" de derivação
◆ Classe das Linguagens Sensíveis ao Contexto
• contida propriamente na Classe das Linguagens Recursivas
• classe especialmente importante
∗ inclui a grande maioria das linguagens aplicadas
Linguagens Formais e Autômatos - P. Blauth Menezes 12
13. Universo de Todas as Linguagens
Linguagens Enumeráveis Recursivamente
Linguagens Recursivas
Linguagens Sensíveis ao Contexto
Linguagens Livres do Contexto
Linguagens Regulares
Linguagens Formais e Autômatos - P. Blauth Menezes 13
14. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.1.1 Noção Intuitiva
8.1.2 Modelo
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 14
15. 8.1 Máquina de Turing
◆ Noção de algoritmo não é matematicamente precisa
◆ Intuitivamente, deve possuir
• descrição finita
• passos
∗ discretos (em oposição ao contínuo)
∗ executáveis mecanicamente
∗ em um tempo finito
Linguagens Formais e Autômatos - P. Blauth Menezes 15
16. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.1.1 Noção Intuitiva
8.1.2 Modelo
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 16
17. 8.1.1 Noção Intuitiva
◆ Máquina de Turing (Alan Turing, 1936)
• mecanismo simples
• formaliza a idéia de uma pessoa que realiza cálculos
• lembra os computadores atuais
∗ embora proposta anos antes do primeiro computador digital
◆ Modelo máquina de Turing
• no mínimo, mesmo poder computacional
• de qualquer computador de propósito geral
Linguagens Formais e Autômatos - P. Blauth Menezes 17
18. ◆ Ponto de partida de Turing
• uma pessoa
• com um instrumento de escrita e um apagador
• realiza cálculos em uma folha de papel, organizada em quadrados
◆ Inicialmente, a folha de papel
• contém somente os dados iniciais do problema
◆ Trabalho da pessoa: seqüências de operações simples
• ler um símbolo de um quadrado
• alterar um símbolo em um quadrado
• mover os olhos para outro quadrado
• fim dos cálculos
∗ representação satisfatória para a resposta desejada
Linguagens Formais e Autômatos - P. Blauth Menezes 18
19. ◆ Hipóteses aceitáveis
• natureza bidimensional do papel não é essencial para os cálculos
∗ fita infinita organizada em quadrados
• conjunto de símbolos: finito
∗ possível utilizar seqüências de símbolos
Linguagens Formais e Autômatos - P. Blauth Menezes 19
20. ◆ Hipóteses aceitáveis (pessoa)
• conjunto de estados da mente durante o cálculo
∗ finito
∗ dois em particular: "estado inicial" e "estado final"
• o comportamento, a cada momento, é determinado pelo
∗ estado presente
∗ símbolo para o qual sua atenção está voltada
• pessoa é capaz de
∗ observar e alterar o símbolo de apenas um quadrado
∗ transferir sua atenção para um dos quadrados adjacentes
Linguagens Formais e Autômatos - P. Blauth Menezes 20
21. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.1.1 Noção Intuitiva
8.1.2 Modelo
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 21
22. 8.1.2 Modelo
◆ Constituído de três partes
• Fita, usada simultaneamente como dispositivo de
∗ entrada, saída e memória de trabalho
• Unidade de Controle
∗ reflete o estado corrente da máquina
∗ possui uma unidade de leitura e gravação (cabeça da fita)
∗ acessa uma célula da fita de cada vez
∗ se movimenta para a esquerda ou para a direita
• Programa, Função Programa ou Função de Transição
∗ define: estado da máquina
∗ comanda: leituras, gravações e sentido de movimento (cabeça)
Linguagens Formais e Autômatos - P. Blauth Menezes 22
23. ◆ Fita: finita à esquerda e infinita à direita
• infinita: “tão grande quanto necessário”
• dividida em células, cada uma armazenando um símbolo
◆ Símbolos podem
• pertencer ao alfabeto de entrada
• pertencer ao alfabeto auxiliar
• ser "branco"
• ser "marcador de início de fita"
Linguagens Formais e Autômatos - P. Blauth Menezes 23
24. • Inicialmente
∗ palavra a ser processada: células mais à esquerda (após o
marcador de início de fita)
∗ demais células: "branco"
marcador de entrada
início de fita branco
fita ❂ a b b c a ß ß ...
cabeça
da fita unidade de
controle controle
Linguagens Formais e Autômatos - P. Blauth Menezes 24
25. ◆ Unidade de controle
• número finito e predefinido de estados
• cabeça da fita
∗ lê um símbolo de cada vez e grava um novo símbolo
∗ move uma célula para a direita ou para a esquerda
• símbolo gravado e o sentido do movimento
∗ definidos pelo programa
Linguagens Formais e Autômatos - P. Blauth Menezes 25
26. Def: Máquina de Turing
M = (Σ, Q, δ, q0, F, V, β, ❂)
• Σ - alfabeto (de símbolos) de entrada
• Q - conjunto de estados possíveis da máquina (finito)
• δ - (função) programa ou função de transição (função parcial)
∗ suponha que Σ ∪ V e { β, ❂ } são conjuntos disjuntos
δ: Q × (Σ ∪ V ∪ { β, ❂ }) → Q × (Σ ∪ V ∪ { β, ❂ }) × { E, D }
∗ transição da máquina: δ(p, x) = (q, y, m)
• q 0 - estado inicial: elemento distinguido de Q
• F - conjunto de estados finais: subconjunto de Q
• V - alfabeto auxiliar (pode ser vazio)
• β - símbolo especial branco
• ❂ - símbolo de início ou marcador de início da fita
Linguagens Formais e Autômatos - P. Blauth Menezes 26
27. ◆ Símbolo de início de fita
• ocorre exatamente uma vez e na célula mais à esquerda da fita
◆ Função programa
• considera
∗ estado corrente
∗ símbolo lido da fita
• determina
∗ novo estado
∗ símbolo a ser gravado
∗ sentido de movimento da cabeça (E e D)
Linguagens Formais e Autômatos - P. Blauth Menezes 27
28. ◆ Função programa interpretada como um diagrama
• estados inicial e finais: como nos autômatos finitos
• suponha a transição δ(p, x) = (q, y, m) )
(x, y, m)
p q
estado anterior novo estado
símbolo lido sentido do movimento
símbolo gravado
Linguagens Formais e Autômatos - P. Blauth Menezes 28
29. ◆ Computação de uma máquina de Turing M, para uma
palavra de entrada w
• sucessiva aplicação da função programa
∗ a partir do estado inicial
∗ cabeça posicionada na célula mais à esquerda da fita
∗ até ocorrer uma condição de parada
• processamento pode
∗ parar ou
∗ ficar processando indefinidamente (ciclo ou loop infinito)
Linguagens Formais e Autômatos - P. Blauth Menezes 29
30. ◆ Aceita a entrada w
• atinge um estado final
∗ máquina pára
∗ w é aceita
◆ Rejeita a entrada w
• função programa é indefinida para o argumento (símbolo lido e
estado corrente)
∗ máquina pára
∗ w é rejeitada
• argumento define um movimento à esquerda, e a cabeça da fita já
se encontra na célula mais à esquerda
∗ máquina pára
∗ w é rejeitada
Linguagens Formais e Autômatos - P. Blauth Menezes 30
31. ◆ Definição formalmente do comportamento
• necessário estender a definição da função programa
• argumento: um estado e uma palavra
• exercício
Linguagens Formais e Autômatos - P. Blauth Menezes 31
32. Def: Linguagens Aceita, Rejeitada, Loop
Linguagem Aceita ou Linguagem Reconhecida por M
ACEITA(M) ou L(M)
• conjunto de todas as palavras de Σ* aceitas por M, a partir de q0
Linguagem Rejeitada por M
REJEITA(M)
• conjunto de todas as palavras de Σ* rejeitadas por M, a partir de q0
Linguagem Loop de M
LOOP(M)
• conjunto de todas as palavras de Σ* para as quais M fica
processando indefinidamente a partir de q0
Linguagens Formais e Autômatos - P. Blauth Menezes 32
33. ◆ Cada máquina de Turing M sobre Σ
• induz uma partição de Σ*
• em classes de equivalência
∗ ACEITA(M), REJEITA(M) e LOOP(M)
∗ se um ou dois dos conjuntos for vazios?
Σ*
ACEITA(M) REJEITA(M) LOOP(M)
Linguagens Formais e Autômatos - P. Blauth Menezes 33
34. Exp: Máquina de Turing: Duplo Balanceamento
L = { anbn n ≥ 0 }
Máquina de Turing
M = ({ a, b }, { q0, q1, q2, q3, q4 }, δ, q0, { q4 }, { A, B }, β, ❂)
é tal que
ACEITA(M) = L e REJEITA(M) = ~L
e, portanto, LOOP(M) = ∅
• qualquer palavra que não esteja na forma axbx é rejeitada
Linguagens Formais e Autômatos - P. Blauth Menezes 34
35. Exp: Máquina de Turing: Duplo Balanceamento
(A, A, D)
(a, A, D) (b, B, E)
q0 q1 q2
(❂, ❂, D)
(a, a, D) (a, a, E)
(B, B, D) (B, B, E)
(B, B, D)
(ß, ß, D) q3 (B, B, D)
(ß, ß, D)
q4
Linguagens Formais e Autômatos - P. Blauth Menezes 35
36. δ ❂ a b A B β
q 0 (q0, ❂, D) (q1, A, D) (q3, B, D) (q4, β, D)
q1 (q1, a, D) (q2, B, E) (q1, B, D)
q2 (q2, a, E) (q0, A, D) (q2, B, E)
q3 (q3, B, D) (q4, β, D)
q4
Linguagens Formais e Autômatos - P. Blauth Menezes 36
37. ❂ a a b b ß ... ❂ a a b b ß ... ❂ A a b b ß ...
q0 q0 q1
❂ A a b b ß ... ❂ A a B b ß ... ❂ A a B b ß ...
q1 q2 q2
❂ A a B b ß ... ❂ A A B b ß ... ❂ A A B b ß ...
q0 q1 q1
❂ A A B B ß ... ❂ A A B B ß ... ❂ A A B B ß ...
q2 q2 q0
❂ A A B B ß ... ❂ A A B B ß ... ❂ A A B B ß ß ...
q3 q3 q4
Linguagens Formais e Autômatos - P. Blauth Menezes 37
38. Obs: Máquina de Turing × Algoritmo
Foi afirmado que Máquina de Turing
• é aceita como uma formalização do conceito de algoritmo
Entretanto, também é usual considerar como conceito de algoritmo
• máquina de Turing que sempre pára para qualquer entrada
Nesse caso, uma máquina que eventualmente fica em loop infinito
• não seria considerada um algoritmo
Linguagens Formais e Autômatos - P. Blauth Menezes 38
39. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 39
40. 8.2 Modelos Equivalentes à Máquina
de Turing
◆ Uma razão para considerar a máquina de Turing como
o mais geral dispositivo de computação
• todos os demais modelos e máquinas propostos
• bem como as diversas modificações da máquina de Turing
• possuem, no máximo, o mesmo poder computacional da máquina
de Turing
Linguagens Formais e Autômatos - P. Blauth Menezes 40
41. ◆ Autômato com Múltiplas Pilhas
• autômato com duas pilhas (citado no estudo das LLC)
∗ poder computacional é equivalente ao da máquina de Turing
• maior número de pilhas: não aumenta a capacidade computacional
• exercício
∗ definição formal: autômato com duas (múltiplas) pilhas
∗ equivalência deles ao modelo da máquina de Turing
• como são necessárias duas pilhas, pode-se afirmar
∗ a estrutura de fita é mais expressiva do que a de pilha
◆ Máquina de Turing Não-Derminística
• não aumenta o poder computacional da máquina de Turing
Linguagens Formais e Autômatos - P. Blauth Menezes 41
42. ◆ Máquina de Turing com Fita Infinita à Esquerda e à
Direita
• fita infinita dos dois lados não aumenta o poder computacional
• pode ser facilmente simulada por uma fita tradicional
∗ células pares: parte direita da fita
∗ células ímpares: parte esquerda da fita
... a-3 a-2 a-1 a1 a2 a3 ...
❂ a1 a-1 a2 a-2 a3 a-3 ...
Linguagens Formais e Autômatos - P. Blauth Menezes 42
43. ◆ Máquina de Turing com Múltiplas Fitas
• k fitas infinitas à esquerda e à direita e k cabeças de fita
• função programa
∗ dependendo do estado corrente e do símbolo lido em cada fita
∗ grava um novo símbolo em cada fita
∗ move cada cabeça independentemente
∗ assume um (único) novo estado
• inicialmente
∗ palavra de entrada: armazenada na primeira fita
∗ demais: brancos
Linguagens Formais e Autômatos - P. Blauth Menezes 43
44. ◆ Máquina de Turing Multidimensional
• fita tradicional
∗ substituída por uma estrutura do tipo arranjo k-dimensional
∗ infinita em todas as 2k direções
◆ Máquina de Turing com Múltiplas Cabeças
• k cabeças de leitura e gravação sobre a mesma fita
∗ movimentos independentes
• processamento depende
∗ estado corrente
∗ símbolo lido em cada uma das cabeças
Linguagens Formais e Autômatos - P. Blauth Menezes 44
45. ◆ Modificações combinadas sobre a Máquina de Turing
• combinação de algumas ou todas as modificações
∗ não aumenta o poder computacional da máquina de Turing
• exemplo, uma máquina de Turing
∗ não-determinística
∗ com múltiplas fitas
∗ múltiplas cabeças
∗ pode ser simulada por uma máquina de Turing tradicional
Linguagens Formais e Autômatos - P. Blauth Menezes 45
46. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 46
47. 8.3 Hipótese de Church
◆ Objetivo do modelo abstrato de computação Máquina
de Turing
• explorar os limites da capacidade de expressar soluções de
problemas
◆ Portanto, uma proposta de
• definição formal da noção intuitiva de algoritmo
◆ Diversos outros trabalhos: equivalentes ao de Turing
• Máquina de Post (Post - 1936)
• Funções Recursivas (Kleene - 1936)
Linguagens Formais e Autômatos - P. Blauth Menezes 47
48. ◆ Forte reforço da Hipótese de (Turing-) Church
"A capacidade de computação representada pela máquina de
Turing é o limite máximo que pode ser atingido por qualquer
dispositivo de computação".
◆ Em outras palavras
• qualquer outra forma de expressar algoritmos terá, no máximo, a
mesma capacidade computacional da máquina de Turing
◆ Hipótese de Church não é demonstrável
• algoritmo ou função computável: noção intuitiva
Linguagens Formais e Autômatos - P. Blauth Menezes 48
49. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.4.1 Linguagem Recursivamente Enumerável
8.4.2 Linguagem Recursiva
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 49
50. 8.4 Máquina de Turing como
Reconhecedor
◆ Classes de linguagens definidas a partir do
formalismo máquina de Turing
• Linguagens Recursivamente Enumeráveis
• Linguagens Recursivas
Linguagens Formais e Autômatos - P. Blauth Menezes 50
51. ◆ Classe das Linguagens Recursivamente Enumeráveis
• existe uma máquina de Turing capaz de determinar
∗ se uma palavra w pertence à linguagem
• entretanto, se w ∈ ~L, o algoritmo pode
∗ parar: w não pertence à linguagem
∗ ficar em loop infinito
◆ Classe das Linguagens Recursivas
• existe pelo menos uma máquina de Turing que sempre pára, capaz
de determinar se
∗ w ∈ L ou
∗ w ∈ ~L
Linguagens Formais e Autômatos - P. Blauth Menezes 51
52. ◆ Recursivas × Recursivamente Enumeráveis
∈ ∈
w w
MT MT
∉ ∉ ou
LOOP
◆ Aparente contradição
reconhecer o complemento de uma linguagem pode ser
impossível,
mesmo que seja possível reconhecer a linguagem
Linguagens Formais e Autômatos - P. Blauth Menezes 52
53. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.4.1 Linguagem Recursivamente Enumerável
8.4.2 Linguagem Recursiva
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 53
54. 8.4.1 Linguagem Recursivamente Enumerável
Def: Linguagem Recursivamente Enumerável ou Tipo 0
Uma linguagem aceita por uma máquina de Turing
Exp: Linguagem Recursivamente Enumerável
• { anbn n ≥ 0 } já apresentado
• { w w tem o mesmo número de símbolos a e b } exercício
• { aibjck i = j ou j = k } exercício
Linguagens Formais e Autômatos - P. Blauth Menezes 54
55. ◆ Considerando a Hipótese de Church
• a máquina de Turing é o mais geral dispositivo de computação
• então, a Classe das Linguagens Recursivamente Enumeráveis
∗ todas as linguagens que podem ser reconhecidas
mecanicamente
◆ Linguagens Recursivamente Enumeráveis × Universo
de todas as linguagens
• classe de linguagens muito rica
• entretanto, existem conjuntos que não são recursivamente
enumeráveis
∗ não é possível desenvolver uma MT que os reconheça
Linguagens Formais e Autômatos - P. Blauth Menezes 55
56. Teorema: Linguagem Não-Recursivamente Enumerável
Seja Σ = { a, b }
Suponha Xi o i-ésimo elemento na ordenação lexicográfica de Σ*
•0-ε
• 1-a
•2-b
• 3 - aa
•…
Exercícios
• é possível codificar todas as máquinas de Turing
• como uma palavra sobre Σ de tal forma que
• cada código represente uma única máquina de Turing
• suponha o conjunto dos códigos ordenados lexicograficamente
• suponha que Ti representa o i-ésimo código nesta ordenação
Linguagens Formais e Autômatos - P. Blauth Menezes 56
57. Então não é linguagem recursivamente enumerável
L = { xi xi não é aceita por Ti }
Prova: (por absurdo)
Suponha que L é recursivamente enumerável
• existe uma máquina de Turing que aceita L
• seja Tk a codificação desta máquina de Turing: ACEITA(Tk) = L
Assim
• por definição de L, xk ∈ L sse xk não é aceita por Tk
• como Tk aceita L, xk ∈ L sse xk é aceita por Tk
Contradição!!!
Logo, L não é linguagem recursivamente enumerável
Linguagens Formais e Autômatos - P. Blauth Menezes 57
58. Obs: Cardinal dos Problemas > Cardinal dos Algoritmos
Conjunto das condifições de todas as máquinas de Turing
• isomorfo a um subconjunto infinito dos números naturais
Logo, é enumerável (infinitamente contável) o conjunto de todas
• máquinas de Turing
• linguagens recursivamente enumeráveis
• problemas solucionáveis
Em contrapartida, o conjunto das linguagens que não são
recursivamente enumeráveis (problemas não-solucionáveis)
• não-contável
Linguagens Formais e Autômatos - P. Blauth Menezes 58
59. Portanto, computacionalmente
existem mais problemas do que algoritmos para resolvê-los.
Exemplo
{ f: N → N f é função }
• classe muito particular de problemas (linguagens)
• prova-se: isomorfo a R (cardinal é 2ℵ ) 0
• maior do que ℵ0 (cardinal do conjunto das máquinas de Turing)
Linguagens Formais e Autômatos - P. Blauth Menezes 59
60. 8.1.2 Linguagem Recursiva
Def: Linguagem Recursiva
Existe pelo menos uma máquina de Turing M
• ACEITA(M) = L
• REJEITA(M) = ~L
Linguagens Formais e Autômatos - P. Blauth Menezes 60
61. Exp: Linguagem Recursiva
• { anbn n ≥ 0 }
• { anbncn n ≥ 0 }
• { w w ∈ { a, b }* e tem o dobro de símbolos a que b }
Linguagens Formais e Autômatos - P. Blauth Menezes 61
62. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 62
63. 8.5 Propriedades das Linguagens
Recursivamente Enumeráveis e
Recursivas
◆ Algumas das principais propriedades
• complemento de uma linguagem recursiva é recursiva
• linguagem é recursiva sse a linguagem e seu complemento são
linguagens recursivamente enumeráveis
• Classe das Linguagens Recursivas está contida propriamente na
Classe das Linguagens Recursivamente Enumeráveis
Linguagens Formais e Autômatos - P. Blauth Menezes 63
64. Teorema: Complemento de uma Linguagem Recursiva é
Recursiva
Se uma linguagem L sobre um alfabeto Σ qualquer é recursiva, então o
seu complemento ~L é recursiva
Prova: (direta)
Suponha L linguagem recursiva. Então existe M, máquina de Turing
• ACEITA(M) = L
• REJEITA(M) = ~L
• LOOP(M) = ∅
Linguagens Formais e Autômatos - P. Blauth Menezes 64
65. Seja
• Inverte uma máquina de Turing que inverte ACEITA / REJEITA
• M’ máquina de Turing resultante da composição de Inverte e M
∗ M’ aceita a linguagem ~L
∗ sempre pára para qualquer entrada
Portanto, o complemento de uma linguagem recursiva é recursiva
M'
∈ ∈ ∈ ∈
Inverte Inverte
p M
∉ ∉ ∉ ∉
Linguagens Formais e Autômatos - P. Blauth Menezes 65
66. Teorema: Linguagem Recursiva × Recursivamente
Enumerável
L é recursiva sse L e ~L são recursivamente enumeráveis
Prova:
(⇒ direta)
Suponha L linguagem recursiva. Então (teorema anterior)
• ~L é recursiva
Como toda linguagem recursiva também é recursivamente enumerável
• L e ~L são recursivamente enumeráveis
Linguagens Formais e Autômatos - P. Blauth Menezes 66
67. (⇐ direta)
Suponha L linguagem tal que L e ~L são recursivamente enumeráveis
Então existem M1 e M2, máquinas de Turing, tais que
• ACEITA(M1) = L
• ACEITA(M2) = ~L
Seja M máquina de Turing resultante da composição
M ∈ ∈
M1
w
∈ ∉ ∉
M2 Inverte
Linguagens Formais e Autômatos - P. Blauth Menezes 67
68. M ∈ ∈
M1
w
∈ ∉ ∉
M2 Inverte
• composição não-determinista de M1 com M2
• composição seqüencial de M1 com Inverte
Para qualquer palavra de entrada
• M aceita se M1 aceita
• M rejeita se M2 aceita
Logo, L é recursiva
Linguagens Formais e Autômatos - P. Blauth Menezes 68
69. Teorema: Linguagens Recursivas ⊂ Recursivamente
Enumeráveis
Prova: (direta)
Mostrar inclusão própria
• existe pelos menos uma linguagem recursivamente enumerável
que não é recursiva
Linguagem recursivamente enumerável que é não-recursiva
L = { Xi Xi é aceita por Ti }
Linguagens Formais e Autômatos - P. Blauth Menezes 69
70. L é Recursivamente Enumerável (esboço da máquina de Turing)
• M gera palavras X1, X2,… em ordem lexicográfica
∗ compara com w
∗ quando Xi = w, w é a i-ésima palavra na enumeração
• M gera Ti, a i-ésima máquina de Turing (exercícios)
• M simula Ti para a entrada w = Xi
∗ se w pertence a ACEITA(Ti), então w pertence a ACEITA(M)
∗ simulador: exercício
• M aceita w sse Xi = w é aceita por Ti
Logo, L é recursivamente enumerável
Linguagens Formais e Autômatos - P. Blauth Menezes 70
71. L não é Recursiva
Já foi visto
• L é recursiva sse L e ~L são recursivamente enumeráveis
Complemento de L não é recursivamente enumerável
• então L é não-recursiva
Linguagens Formais e Autômatos - P. Blauth Menezes 71
72. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 72
73. 8.6 Gramática Irrestrita
◆ Gramática Irrestrita
• gramática sem qualquer restrição nas produções
Exp: Gramática Irrestrita: { anb nc n n ≥ 0 }
G = ???
Linguagens Formais e Autômatos - P. Blauth Menezes 73
74. Exp: Gramática Irrestrita: { anb nc n n ≥ 0 }
G = ({ S, C }, { a, b, c }, P, S)
• P = { S → abc ε, ab → aabbC, Cb → bC, Cc → cc }
Derivação de aaabbbccc
S ⇒ abc ⇒ aabbCc ⇒ aaabbCbCc ⇒
aaabbCbcc ⇒ aaabbbCcc ⇒ aaabbbccc
• C "caminha" na palavra até a posição correta para gerar c
Linguagens Formais e Autômatos - P. Blauth Menezes 74
75. Teorema: Linguagem Recursivamente Enumerável ×
Gramática Irrestrita
L é linguagem recursivamente enumerável sse L é gerada por uma
gramática irrestrita
• (não será demonstrado)
Linguagens Formais e Autômatos - P. Blauth Menezes 75
76. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 76
77. 8.7 Linguagem Sensível ao Contexto
Def: Gramática Sensível ao Contexto
G = (V, T, P, S)
Qualquer regra de produção de P é da forma α → β
• β é palavra de (V ∪ T)*
• α é palavra de (V ∪ T)+ tal queα ≤ β
∗ excetuando-se, eventualmente, para S → ε
∗ neste caso, S não está no lado direito de qualquer produção
Linguagens Formais e Autômatos - P. Blauth Menezes 77
78. ◆ Portanto, em uma gramática sensível ao contexto
• a cada etapa de derivação
• tamanho da palavra derivada não pode diminuir
∗ excetuando-se para gerar a palavra vazia
∗ se esta pertencer à linguagem
◆ Observe (por quê?)
• nem toda gramática livre do contexto é sensível ao contexto
Def: Linguagem Sensível ao Contexto, Linguagem Tipo 1
Linguagem gerada por uma gramática sensível ao contexto
Linguagens Formais e Autômatos - P. Blauth Menezes 78
79. Exp: Linguagem Sensível ao Contexto: Palavra
Duplicada
{ ww w é palavra de { a, b }* }
G = ({ S, X, Y, A, B, 〈aa〉, 〈ab〉, 〈ba〉, 〈bb〉 }, { a, b }, P, S)
Produções de P
• S → XY aa bb ε,
• X → XaA XbB aa〈aa〉 ab〈ab〉 ba〈ba〉 bb〈bb〉,
• Aa → aA, Ab → bA, AY → Ya,
• Ba → aB, Bb → bB, BY → Yb,
• 〈aa〉a → a〈aa〉, 〈aa〉b → b〈aa〉, 〈aa〉Y → aa,
• 〈ab〉a → a〈ab〉, 〈ab〉b → b〈ab〉, 〈ab〉Y → ab,
• 〈ba〉a → a〈ba〉, 〈ba〉b → b〈ba〉, 〈ba〉Y → ba,
• 〈bb〉a → a〈bb〉, 〈bb〉b → b〈bb〉, 〈bb〉Y → bb
Linguagens Formais e Autômatos - P. Blauth Menezes 79
80. Gera o primeiro w após X, e o segundo w após Y
• a cada terminal gerado após X
∗ gerada correspondente variável
• variável "caminha" na palavra até passar por Y
∗ deriva o correspondente terminal
• para encerrar
∗ X deriva subpalavra de dois terminais
∗ e correspondente variável a qual "caminha" até encontrar Y
∗ quando é derivada a mesma subpalavra de dois terminais
• se X derivar uma subpalavra de somente um terminal (e a
correspondente variável) ?
Linguagens Formais e Autômatos - P. Blauth Menezes 80
81. 8 - Linguagens Recursivamente
Enumeráveis e Sensíveis ao Contexto
8.1 Máquina de Turing
8.2 Modelos Equivalentes à Máquina de Turing
8.3 Hipótese de Church
8.4 Máquina de Turing como Reconhecedor
8.5 Propriedades das Linguagens Recursivamente
Enumeráveis e Recursivas
8.6 Gramática Irrestrita
8.7 Linguagem Sensível ao Contexto
8.8 Máquina de Turing com Fita Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 81
82. 8.8 Máquina de Turing com Fita
Limitada
Linguagens Formais e Autômatos - P. Blauth Menezes 82
83. ◆ Máquina de Turing com Fita Limitada
• máquina de Turing
• fita limitada ao tamanho da entrada
• mais duas células
∗ marcadores de início e de fim de fita
◆ Não-Determinismo?
• não é conhecido se aumenta o poder computacional
Linguagens Formais e Autômatos - P. Blauth Menezes 83
84. Def: Máquina de Turing com Fita Limitada (MTFL)
M = (Σ, Q, δ, q0, F, V, ❂, ✝)
• Σ - alfabeto (de símbolos) de entrada
• Q - conjunto de estados (finito)
• δ - (função) programa ou função de transição (parcial)
δ: Q × (Σ ∪ V ∪ { ❂, ✝ }) → 2Q×(Σ∪V∪{❂,✝})×{E,D}
∗ transição: δ(p, x) = { (q1, y1, m1),…,(qn, yn, mn) }
• q 0 - estado inicial: elemento distinguido de Q
• F - conjunto de estados finais: subconjunto de Q
• V - alfabeto auxiliar (pode ser vazio)
• ❂ - símbolo de início ou marcador de início da fita
• ✝ - símbolo de fim ou marcador de fim da fita
Linguagens Formais e Autômatos - P. Blauth Menezes 84
85. Exp: Máquina de Turing com Fita Limitada: Palavra
Duplicada
L = { ww w é palavra de { a, b }* }
A máquina de Turing com fita limitada
M = ({ a, b }, { q0, q1,…, q9, qf }, δ, q0, { qf }, { X, Y }, ❂, ✝)
é tal que ACEITA(M) = L e REJEITA(M) = ~L
• q 1, o início do primeiro w é marcado com um X
• q 2 e q3 definem não-determinismos
∗ marcar com um Y o início do segundo w
• q 5 a q11 verifica a igualdade das duas metades
Linguagens Formais e Autômatos - P. Blauth Menezes 85
86. q0
(❂, ❂, D)
q1
(a, X, D) (b, X, D)
(✝, ✝, E)
(a, a, D) (a, a, D)
q2 q3
(b, b, D) (b, b, D)
(a, Y, E) (b, Y, E)
(a, a, E)
q4
(b, b, E)
(X, X, D)
q5
(a, X, D) (b, X, D) (Y, Y, D)
(a, a, D) (a, a, D)
q6 q8 q11 (Y, Y, D)
(b, b, D) (b, b, D)
(Y, Y, D) (Y, Y, D) (✝, ✝, E)
(Y, Y, D) q7 q9 (Y, Y, D) qf
(a, Y, E) (b, Y, E)
(Y, Y, E) q10
(a, a, E)
(b, b, E)
(X, X, D)
Linguagens Formais e Autômatos - P. Blauth Menezes 86
87. Teorema: Linguagem Sensível ao Contexto × Máquina
de Turing com Fita Limitada
L é uma linguagem sensível ao contexto sse
L é reconhecida por uma máquina de Turing com fita limitada
• não será demonstrado
Linguagens Formais e Autômatos - P. Blauth Menezes 87
88. Linguagens Formais e Autômatos
P. Blauth Menezes
1 Introdução e Conceitos Básicos
2 Linguagens e Gramáticas
3 Linguagens Regulares
4 Propriedades das Linguagens Regulares
5 Autômato Finito com Saída
6 Linguagens Livres do Contexto
7 Propriedades e Reconhecimento das Linguagens
Livres do Contexto
8 Linguagens Recursivamente Enumeráveis e
Sensíveis ao Contexto
9 Hierarquia de Classes e Linguagens e Conclusões
Linguagens Formais e Autômatos - P. Blauth Menezes 88
89. Linguagens Formais e
Autômatos
P. Blauth Menezes
blauth@inf.ufrgs.br
Departamento de Informática Teórica
Instituto de Informática / UFRGS
Linguagens Formais e Autômatos - P. Blauth Menezes 89