Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Propriedades de Linguagens Recursivas e 
Recursivamente Enumeráveis 
Prof. Ricardo P. Mesquita
Propriedades das Linguagens Recursivamente Enumeráveis 
e Recursivas
 O complemento de uma linguagem recursiva é uma linguagem recursiva; 
 Uma linguagem é recursiva se e somente se a linguagem e seu complemento 
são linguagens recursivamente enumeráveis. 
 A classe das linguagens recursivas está contida propriamente na classe das 
linguagens recursivamente enumeráveis.
02/23Prof. Ricardo Mesquita
Propriedades
Teorema – O complemento de uma linguagem recursiva é recursiva 
 Se uma linguagem L sobre um alfabeto Σ qualquer é recursiva, então o seu 
complemento ~L também é uma linguagem recursiva.
Prova:
 Suponha L uma linguagem recursiva sobre Σ. Então existe M, máquina de 
Turing, que aceita a linguagem e sempre para para qualquer entrada. Ou seja:
03/23Prof. Ricardo Mesquita
Propriedades
 Seja Inverte uma máquina de Turing que inverte as condições de ACEITA
por REJEITA e vice-versa. 
 Seja M’ uma máquina de Turing resultante da composição das máquinas 
Inverte e M, 
04/23Prof. Ricardo Mesquita
Propriedades
 Claramente, M’ aceita a linguagem ~L e sempre para para qualquer entrada, 
ou seja:
 Portanto, o complemento de uma linguagem recursiva é uma linguagem 
recursiva.
05/23Prof. Ricardo Mesquita
Propriedades
Teorema – Linguagem recursiva × recursivamente enumerável 
 Uma linguagem L sobre um alfabeto Σ qualquer é recursiva se e somente se L e ~L 
são recursivamente enumeráveis. 
Prova:
 () Suponha L uma linguagem recursiva sobre Σ. Então, como foi mostrado no 
teorema anterior (o complemento de uma linguagem recursiva é recursiva), ~L é 
recursiva. Como toda linguagem recursiva também é recursivamente enumerável, 
então L e ~L são recursivamente enumeráveis.
06/23Prof. Ricardo Mesquita
Propriedades
 () Suponha L uma linguagem sobre Σ tal que L e ~L são recursivamente 
enumeráveis. Então existem M1 e M2, máquinas de Turing, tais que:
 Seja Inverte uma máquina de Turing que inverte as condições de ACEITA por 
REJEITA e vice-versa. Seja M uma máquina de Turing resultante da composição das 
máquinas M1, M2 e Inverte:
07/23Prof. Ricardo Mesquita
Propriedades
 ou seja: 
 composição não determinística de M1 com M2; 
 composição sequencial de M1 com Inverte. 
 Para qualquer palavra de entrada, M aceita se M1 aceita, e M rejeita se M2
aceita. Portanto, claramente, M sempre para. Logo, L é recursiva.
08/23Prof. Ricardo Mesquita
Propriedades
Teorema – Linguagem não-recursivamente enumerável
 Seja Σ = {a, b}.
a) Suponha que Xi representa o i-ésimo elemento na ordenação lexicográfica de Σ*. Por exemplo (o
valor de i ∈ N e o correspondente elemento de Σ* na ordenação lexicográfica estão na primeira
e segunda colunas, respectivamente):
0 ε
1 a
2 b
3 aa
… …
b) É 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 e suponha que Ti representa o i-ésimo código nesta ordenação. Então, o
conjunto que segue não é linguagem recursivamente enumerável:
L = {Xi | Xi não é aceita por Ti}
09/23Prof. Ricardo Mesquita
Propriedades
Teorema – Linguagens recursivas ⊂ recursivamente enumeráveis
 A classe das linguagens recursivas está contida propriamente na classe das linguagens recursivamente 
enumeráveis. 
Prova: 
 Para mostrar que a inclusão é própria, basta mostrar que existe pelos menos uma linguagem 
recursivamente enumerável que não é recursiva. A linguagem recursivamente enumerável que segue é 
não recursiva, e Xi e Ti são como definidas no teorema anterior (cuidado para não confundir com a 
linguagem {Xi | Xi não é aceita por Ti}):
L = {Xi | Xi é aceita por Ti}
 L é recursivamente enumerável.
10/23Prof. Ricardo Mesquita
Propriedades
 Segue um esboço da construção de uma máquina de Turing M que aceita uma palavra w 
qualquer pertencente a L:
a. M gera as palavras X1, X2,… em ordem lexicográfica, comparando-as com w. Quando Xi = 
w, M sabe que w é a i-ésima palavra na enumeração;
b. M gera Ti, a i-ésima máquina de Turing;
c. M simula Ti para a entrada w = Xi e, se w pertence a ACEITA(Ti), então w pertence a 
ACEITA(M)
 Portanto, M aceita w se, e somente se, Xi = w é aceita por Ti. Logo, L é recursivamente 
enumerável.
 L não é recursiva. Conforme o teorema – Linguagem recursiva × recursivamente enumerável, 
L é recursiva se, e somente se, L e seu complemento são recursivamente enumeráveis. 
Como o complemento de L, conforme o teorema – Linguagem não recursivamente 
enumerável, não é recursivamente enumerável, então L é não recursiva.
11/23Prof. Ricardo Mesquita
Conclusões
 As linguagens formais oferecem meios para modelar e desenvolver ferramentas que 
especificam linguagens e seus processos de análise, bem como suas propriedades e 
limitações algorítmicas. 
 Alguns problemas referentes às linguagens formais, embora atuais, possuem questões 
em aberto, como:
a. A tradução de linguagens, principalmente as naturais; 
b. No caso específico dos autômatos finitos, o desenvolvimento de soluções (possivelmente) 
complexas frequentemente exige um número excessivo de estados, resultando em uma 
explosão de estados. O tratamento da explosão de estados é um importante tema de 
pesquisa, tanto para a interface humano × máquina como para a implementação 
computacional;
12/23Prof. Ricardo Mesquita
Conclusões
c. O tratamento de linguagens n-dimensionais, com destaque para as bi e as 
tridimensionais, com importantes aplicações como:
 processamento de imagens; 
 animações; 
 sistemas biológicos: simulação do desenvolvimento de sistemas vivos), etc., tanto no plano, 
quanto no espaço; 
 sistemas concorrentes (eventualmente distribuídos e/ou comunicantes): especificação formal e 
prova de propriedades.
13/23Prof. Ricardo Mesquita
Gramáticas de Grafos
 Como ilustração de uma abordagem das linguagens formais às linguagens n-
dimensionais, no que segue é apresentada a noção de gramática de grafos.
 A ideia básica das gramáticas de grafos é análoga à das gramáticas de Chomsky, ou 
seja: 
 regras de produção são pares (mas de grafos); 
 uma derivação é a substituição de um subgrafo de acordo com uma regra de produção.
14/23Prof. Ricardo Mesquita
Gramáticas de Grafos
 As gramáticas de grafos constituem um caso particular das gramáticas categoriais 
(nenhum conceito de teoria das categorias é formalmente introduzido nesta 
publicação). 
 A ideia básica é substituir palavras por grafos no conceito de gramática de Chomsky. 
Mas, observe que, na realidade, a noção categorial de gramática é bem mais 
expressiva, pois: 
 gramáticas categoriais podem ser usadas sobre palavras, grafos, conjuntos parcialmente 
ordenados, redes, autômatos, máquinas, linguagens de programação e outros tipos de objetos, 
desde que sejam satisfeitas determinadas condições; 
 as derivações (aplicações de regras de uma gramática) são generalizadas. 
15/23Prof. Ricardo Mesquita
Gramática de Grafos: PacMan
 O jogo PacMan (simplificado) possui um tabuleiro juntamente com algumas entidades 
especiais como um PacMan e dois conjuntos, um de fantasmas e outro de maçãs. 
 A figura a seguir ilustra um grafo representando um estado do sistema no qual, para 
facilitar a visualização, as entidades PacMan, fantasmas e maçãs são representadas por 
nodos com simbologia própria.
16/23Prof. Ricardo Mesquita
Gramática de Grafos: PacMan
 Na figura, vê-se que: 
 os nodos pretos representam os lugares do tabuleiro, e as correspondentes arestas, os 
caminhos possíveis entre dois lugares; 
 para as entidades PacMan, fantasmas e maçãs, os correspondentes arcos denotam o 
seu posicionamento no tabuleiro; 
 uma maçã cujo nodo destino é o nodo branco denota uma maçã já comida; 
 a aresta numerada com origem e destino no nodo branco identificaa fase em que se 
encontra o jogo (no caso, a segunda fase).
17/23Prof. Ricardo Mesquita
Gramática de Grafos: PacMan
 A figura ao lado ilustra as seguintes regras 
de produção: 
 move: o PacMan move-se para uma casa 
adjacente; 
 come: o PacMan come a maçã. A maçã comida é 
posicionada no nodo branco; 
 mata: o fantasma mata o PacMan. O PacMan é 
excluído.
18/23Prof. Ricardo Mesquita
Gramática de Grafos: PacMan
 Por fim, a figura ao lado ilustra um possível 
grafo resultante da aplicação da regra 
move ao grafo ilustrado na primeira figura 
do exemplo. 
 Observe que, no grafo transformado, o 
PacMan encontra-se em um lugar onde 
existe um fantasma. 
 Assim, a próxima produção a ser aplicada 
pode ser morre ou move.
19/23Prof. Ricardo Mesquita
Gramática de Grafos
 Comparativamente com as gramáticas de Chomsky, as gramáticas de grafos: 
 em geral, não distinguem entre variáveis e terminais (todos os símbolos – no caso, 
grafos – são tratados como terminais); 
 possui um símbolo inicial (no caso, grafo inicial); 
 a linguagem gerada é o conjunto de grafos que podem ser gerados, via derivações, a 
partir do grafo inicial.
20/23Prof. Ricardo Mesquita
Exercício
 Desenvolva uma gramática de grafos para o jogo da velha de tal forma que: 
 considere jogadas alternadas de dois jogadores; 
 apresente condição de parada quando um dos jogadores completa uma linha de três 
casas (horizontal, vertical ou oblíqua).
21/23Prof. Ricardo Mesquita
Exercício
 Desenvolva uma gramática de grafos para o jogo de damas, prevendo que o 
jogador com as pedras brancas inicia o jogo. 
 Dica: na definição da regra “comer uma pedra”, lembre-se de que o movimento é 
sempre em “linha reta” (não pode fazer uma “curva” de 90° no tabuleiro).
22/23Prof. Ricardo Mesquita
Dúvidas?
Prof. Ricardo Mesquita 23/23

Mais conteúdos dessa disciplina