Linguagens Formais e Autômatos

Documentos relacionados
Apostila 03 - Linguagens Livres de Contexto Exercícios

Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e

Expressões Regulares e Gramáticas Regulares

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

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

Dada uma gramática G = (V, T, P, S), tal que ε ² L(G), construir G, sem produções-ε, de modo a que L(G) = L(G ).

Terceira Lista de Exercícios 2004/2...

Linguagens livres de contexto e autômatos de pilha

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Linguagens Formais e Autômatos P. Blauth Menezes

Gramáticas e Linguagens independentes de contexto

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

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

Linguagens Formais e Autômatos

Aula 7: Autômatos com Pilha

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Formais e Autômatos P. Blauth Menezes

Alfabeto, Cadeias, Operações e Linguagens

Hierarquia de Chomsky Exemplos de gramáticas

Autómatos Finitos Determinísticos (AFD)

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.

Capítulo 3: Gramáticas

O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

Lista de exercícios 1

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

LINGUAGENS FORMAIS E AUTÔMATOS

Apostila 03 Linguagens Livres de Contexto

Capítulo 4: Autômatos finitos e expressões regulares

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. david/enseignement/2003.

Matemática Discreta para Ciência da Computação

Fundamentos da Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto

Gramática. Gramática. Gramática

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

Gramáticas Livres de Contexto Parte 1

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Linguagem (formal) de alfabeto Σ

Linguagens Formais e Autômatos P. Blauth Menezes

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

LINGUAGENS FORMAIS: Teoria, Modelagem e Implementação. Material adicional, versão do dia 22 de novembro de 2017 às 17:24

Fundamentos da Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto

Problemas decidíveis para LICs

9.3 Gramáticas Irrestritas

Gramáticas Livres de Contexto

Prova 1 de INF1626 Linguagens Formais e Autômatos

OS TEOREMAS DE JORDAN-HÖLDER E KRULL-SCHMIDT (SEGUNDA VERSÃO)

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Análise I Solução da 1ª Lista de Exercícios

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Linguagens Livres de Contexto

A forma canônica de Jordan

Definições Hierarquia de Chomsky Exemplos de gramáticas

Sistemas de equações lineares com três variáveis

a = bq + r e 0 r < b.

AFNs, Operações Regulares e Expressões Regulares

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

Linguagens Livres de Contexto

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

Introduzir os conceitos de base e dimensão de um espaço vetorial. distinguir entre espaços vetoriais de dimensão fnita e infinita;

Construção de Compiladores Aula 16 - Análise Sintática

Lista 1 com respostas

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

14.1 Linguagens decidíveis ou Turing reconhecíveis

Matemática Discreta - 07

Exercícios preparatórios para a Prova 2

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito

Linguagens, Gramáticas e Máquinas

Os números inteiros. Capítulo 2

Compiladores. Parser LL 10/13/2008

Definições Hierarquia de Chomsky Exemplos de gramáticas

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

Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos

Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos

Expressões regulares

Aula 3: Autômatos Finitos

MA14 - Unidade 1 Divisibilidade Semana de 08/08 a 14/08

Análise na Reta - Verão UFPA 1a lista - Números naturais; Corpos ordenados

UNIVERSIDADE FEDERAL DE VIÇOSA Centro de Ciências Exatas Departamento de Matemática

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

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.

Equações da reta no plano

CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

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.

1 Conjuntos, Números e Demonstrações

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Construção de Compiladores

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

Transcrição:

Linguagens Formais e Autômatos Soluções para a Lista 4 Universidade Federal do ABC Aritanan Gruber aritanan.gruber@ufabc.edu.br http://professor.ufabc.edu.br/ aritanan.gruber Os exercícios marcados com [ ] deveriam ter sido entregues via Tidia-4 até 06/05/2018. 1. [ ] Considere a gramática livre de contexto G = (V, T, P, S), em que V = {A, S}, T = {a, b} e P = {S AA, A AAA, A a, A ba, A Ab}. (a) Quais são as palavras de L(G) que podem ser produzidas por derivações de quatro ou menos passos? (b) Forneça, pelo menos, quatro derivações distintas para a palavra babbab. (c) Para todos m, n, p > 0, descreva a derivação em G para a palavra b m ab n ab p. (a) O conjunto das palavras que podem ser produzidas por quatro ou menos derivações é: {aa, aab, aba, baa}. (b) S AA baa baba baba babba babbab babbab, S AA baa baab babab babab babbab babbab, S AA baa baab babab babbab babbab babbab, S AA baa baab babab babbab babbab babbab, são quatro derivações distintas para a palavra babbab. Existem outras. (c) Para todos m, n, p > 0, a palavra b m ab n ab p pode ser derivada (gerada) da seguinte forma: iniciaente, aplicase a produção S AA; depois aplica-se m vezes a produção A ba na variável A mais à esquerda; em seguida, aplica-se n vezes a produção A Ab na variável A mais à esquerda; na seqüência, aplica-se p vezes a produção A Ab na variável A mais à direita; finaente, aplica-se a produção A a nas duas variáveis A. Esquematicamente, temos: S AA m b m AA n b m Ab n A p b m Ab n Ab p b m ab n Ab p b m ab n ab p. Claramente, existem outras formas possíveis para derivação da mesma palavra. 2. Construa gramáticas livres de contexto para as linguagens abaixo: (a) L a = {wcw R : w {a, b} } (b) L b = {ww R : w {a, b} } (c) L c = {w {a, b} : w = w R } (d) L d = {a m b n : m n} (e) L e = {w {a, b} : w possui duas vezes mais a s que b s} (a) G a = ({S}, {a, b}, {S asa bsb c}, S). (b) G b = ({S}, {a, b}, {S asa bsb λ}, S). (c) G c = ({S}, {a, b}, {S asa bsb a b λ}, S). (d) G d = ({S}, {a, b}, {S asb as λ}, S). (e) G e = ({S}, {a, b}, P, S), em que P é o conjunto das produções a seguir: S aab aba baa λ, A as baaa, B aabb abab abba bs.

Formaente, resta mostrar que cada gramática acima descreve precisamente a linguagem para a qual foi criada, isto é, que L(G x ) = L x. As gramáticas para os ítens (a) (d) são simples o suficiente para que não haja dúvidas quanto aos seus poderes de expressão. O mesmo não acontece com (e). Vamos então, fornecer uma prova adequada. Proposição 1. L(G e ) = {w {a, b} : w a = 2 w b }. Demonstração. A prova consiste em mostrar que S x se e somente se x L. Para atingir este objetivo, vamos provar algo ligeiramente mais forte. Vamos provar que S A B x x a = 2 x b, (1) x x a = 2 x b + 1, (2) x x a = 2 x b 2. (3) A necessidade é por indução no número de derivações, denotado por n, de x. Caso n = 1, temos que S λ pela produção S λ e que esta é a única possibilidade, pois todas as demais produções de G e possuem ao menos uma variável no lado direito. Logo, S deriva λ em um passo, e A e B não derivam nenhuma palavra em um passo. Como λ a = λ b = 0, o resultado segue. Considere então n > 0 e suponha que as relações são válidas para derivações com no máximo n 1 passos. Para as A-produções, considerando derivações em n passos, temos que A as x ou que A baaa x. No primeiro caso, S x em n 1 passos e assim, x a = 2 x b. Como x = ax, obtemos x a = 2 x b + 1. No segundo, x = buvw com A <n u, A <n v, e A <n w. Por hipótese de indução, z a = 2 z b + 1 com z {u, v, w}. Como x b 1 = u b + v b + w b, segue que x a = u a + v a + w a = (2 u b + 1) + (2 v b + 1) + (2 w b + 1) = 2( x b 1) + 3 = 2 x b + 1. Para B-produções, a argumentação é semelhante. Dos quatro possíveis casos, B bs x, B aabb x, B abab x, ou B abba x, temos dois a considerar pois os três últimos são semelhantes. Quando B bs x, x = bx e S n 1 x, implicando em x a = x a = 2 x b e x b + 1 = x b. Logo, x a = 2 x b 2. Em caso contrário, B az x, em que z é uma permutação cíclica de uvw e A <n u, B <n v, e B <n w. De qualquer forma, x a 1 = u a + v a + w a e x b = u b + v b + w b e, por hipótese de indução, u a = 2 u b + 1, v a = 2 v b 2, w a = 2 w b 2. Logo, x a 1 = (2 u b + 1) + (2 v b 2) + (2 w b 2) = 2( u b + v b + w b ) 3 x a = 2 x b 2. Finaente, para S-produções, temos dois casos: S aab x (que engloba S aba x, já que este contém uma permutação cíclica de AB), e S baa x. Caso x = auv ou x = avu com A <n u e B <n v, temos que x a = u a + v a + 1 e x b = u b + v b. Por hipótese, u a = 2 u b + 1 e v a = 2 v b 2, resultando em x a = (2 u b + 1) + (2 v b 2) + 1 x a = 2 x b. Caso S baa x, temos que x = buv, A <n u, A <n v, x a = u a + v a e x b = u b + v b + 1. Por hipótese, u a = 2 u b + 1 e v a = 2 v b + 1. Portanto, e x L sempre que S x. x a = (2 u b + 1) + (2 v b + 1) = 2 x b, A suficiência é por indução no comprimento das palavras x L, que são sempre múltiplos de 3. Caso x = λ, temos que S λ, A as a e B bs b e o resultado segue, pois as quantidades de a s e b s derivadas satisfazem as relações (1), (2) e (3), respectivamente. Considere então que x = 3k para algum k > 0 e suponha, a título de hipótese de indução, que (1), (2) e (3) são válidas para qualquer subpalavra própria de x. Temos que (i) x = auv ou x = avu com A u e B v, ou que (ii) x = byz com A y, z.

As derivações de u, y e z à partir de A, isto é, A r com r {u, y, z}, ocorrem via A as r ou via A baaa r com a escolha independente para cada identidade de r. Logo, r = as com S s ou r = bopq com A o, p, q. Como s, o, p, q < r, segue que s a = 2 s b, o a = 2 o b + 1, p a = 2 p b + 1 e q a = 2 q b + 1, o que resulta em r a 1 = s a = 2 s b r a = 2 s b + 1, ou r b 1 = o b + p b + q b = ( o a 1) + ( p a 1) + ( q a 1) 2 = o a + p a + q a 3 2 = r a 3, 2 implicando em r a = 2 r b + 1 e garantindo que (2) é válida. Isto já é suficiente para mostrar que (ii) é válido, já que x b 1 = y b + z b = ( y a + z a 2)/2 = ( x a 2)/2 o que ocorre se e somente se x a = 2 x b. Para B v, temos que v {aopq, apoq, apqo : A o, B p, q} ou que v = bs com S s. De forma análoga, como s, o, p, q < v, segue que s a = 2 s b, o a = 2 o b + 1, p a = 2 p b 2 e q a = 2 q b 2, o que resulta em ou v b 1 = s b = s a /2 = v a /2 v a = 2 v b 2, v a 1 = o a + p a + q a = (2 o b + 1) + (2 p b 2) + (2 q b 2) = 2 v b 3, e garantindo que (3) é válida. Com isto, fechamos o caso (i), pois e obtemos que S x a 1 = u a + v a = u b + 1 + v b 2 x a = 2 x b, x para toda palavra x L. 3. [ ] Considere a gramática livre de contexto G = (V, T, P, S), em que V = {S}, T = {a, b} e Qual a linguagem gerada por G? Prove sua afirmação. P = {S bs Sa asb λ}. Considere a gramática livre de contexto G especificada acima. Realizando algumas derivações em G, intuimos que L(G) é a linguagem de todas as palavras compostas por a s e b s. Proposição 2. L(G) = {a, b}. Demonstração. Não é difícil perceber que as sentenças geradas por G possuem apenas a s e b s, o que implica em L(G) {a, b}. Vamos mostrar a recíproca por indução no comprimento das palavras em {a, b}. Seja w {a, b}. Caso w = λ, a produção S λ garante que S λ e o resultado segue. Considere agora que w > 0 e suponha, a título de hipótese de indução, que S x, para toda palavra x {a, b} com x < w. Podemos dividir a argumentação em três casos: (i) w começa com b, (ii) w termina com a, ou (iii) o complementar dos anteriores, isto é, w começa com a e termina com b. Não é difícil perceber que qualquer palavra em {a, b} enquadra-se em uma e somente uma das possibilidades e que w = bx, ou w = xa, ou w = axb, respectivamente. Em todos os casos, por hipótese de indução, S x. Utilizando-se, respectivamente, as produções S bs, ou S Sa, ou S asb na primeira derivação, obtemos que S bs bx = w, ou S Sa xa = w, ou S asb axb = w, resultando em w L(G). 4. [ ] A seguinte gramática livre de contexto G = (V, T, P, S), em que V = {S}, T = {a, b} e P = {S as asbs λ} é ambígua. Encontre uma gramática livre de contexto inambígua equivalente, isto é, encontre uma gramática livre de contexto H tal que L(G) = L(H). A gramática G é ambígua, pois a palavra aab possui mais de uma derivação mais à esquerda (), como ilustrado a seguir: S as aasbs aabs aab, S asbs aasbs aabs aab.

O problema ocorre na derivação de a s não emparelhados com b s a s para os quais não existe um b correspondente. Claramente, isto se dá pelo fato de as ser um prefixo comum aos lados direitos das produções S as e S asbs. Introduzimos nova variável X e produção X axbx λ para restringir o prefixo comum e forçar a derivação dos a s não emparalhados por S as. Formaente, H = ({R, X}, T, P, R), com P dado pelo conjunto de produções abaixo: R ar axbr λ, X axbx λ. A prova do argumento apresentado acima enconra-se na proposição que segue. Proposição 3. As gramáticas livres de contexto G e H descrevem a mesma linguagem, com a diferença de que H é inambígua. Demonstração. Seja L = L(G) L(H) e suponha que L. Logo, existe uma palavra x L que satisfaz uma e apenas uma das possibilidades: (i) x L(G) \ L(H), ou (ii) x L(H) \ L(G). Considere o primeiro caso e para u, v T, seja S uasbsv uaasbsv x uma derivação mais à esquerda para x em G, em que destacamos uma forma sentencial na qual a produção S as foi usada para substituir a variável S mais à esquerda em asbs, resultando em aasbs. Esta substituição foi exatamente a que proibímos em H com a substituição do S mais à esquerda em asbs por X, conjuntamente com a introdução das X-produções. Como G é ambígua, a subsentença aasbs pode ser derivada mais à esquera de duas formas: asbs aasbs ou as aasbs. Considere então uma derivação G x mais à esquerda para x em G em que asbs aasbs não ocorre. Não é difícil perceber agora que existe uma correspondência biunívoca entre G x e uma derivação mais à esquerda H x para x em H, pois todas as substituições realizadas em G x possuem um equivalente em H x. Logo, x L(H) contradizendo a hipótese. A mesma correspondência biunívoca utilizada no caso (i) garante que o caso (ii) também não pode ocorrer, implicando em L(G) = L(H). Quando à inambiguidade de H, basta observar que a substituição do S mais à esquerda na produção S asbs por S axbs, conjuntamente com a introdução das X-produções garante que há apenas uma forma de derivar a s não emparelhados, e o resultado segue. 5. Para cada uma das gramáticas livres de contexto abaixo, elimine as λ-produções, as produções unitárias, os símbolos inúteis e coloque-as na Forma Normal de Chomsky (CNF). (a) (c) S ASB λ A aas a B SbS A bb S AAA B A aa B B λ (b) S 0A0 1B1 BB A C B S A C S λ (d) S aaa bbb λ A C a B C b C CDE λ D A B ab Os passos a serem seguidos são: eliminar as λ-produções, as produções unitárias, os símbolos inúteis, e reduzir os lados direitos das produções longas pela introdução de novas variáveis e produções de ligação.

(a) Observe que somente a variável S é anulável, devido à produção S λ. Após a eliminação das λ-produções, obtemos: S ASB AB A aas aa a B SbS Sb bs b A bb. A única produção unitária é B A. Logo, é suficiente substituir essa ocorrência de A pelos lados direitos das produções cujo lado esquerdo é A (A-produções). Com isso, temos: S ASB AB A aas aa a B SbS Sb bs b aas aa a bb. Não existem símbolos inúteis, pois: (i) A e B geram palavras formadas por terminais e, consequentemente, S também; (ii) todos os símbolos (terminais e variáveis) da gramática são atingíveis a partir de S. Substituindo os símbolos terminais não isolados por variáveis e incluindo as produções adequadas: S ASB AB A CAS CA a B SDS SD DS b CAS CA a DD C a D b. Finaente, quebrando as produções que têm mais de duas variáveis no lado direito, obtemos uma gramática equivalente, a menos de λ, na Forma Normal de Chomsky: S AE AB A CF CA a B SG SD DS b CF CA a DD C a D b E SB F AS G DS. (b) Neste caso, todas as variáveis são anuláveis, pois C λ, A C, B A e S BB. Após a eliminação das λ-produções, obtemos: S 0A0 00 1B1 11 BB B A C B S A C S. As produções unitárias dessa gramática são: S B, A C, B S, B A e C S. Observe que, inclusive, existem ciclos. Após a eliminação destas produções, temos: S 0A0 00 1B1 11 BB A 0A0 00 1B1 11 BB B 0A0 00 1B1 11 BB C 0A0 00 1B1 11 BB. A variável C não é atingivel a partir de S. Logo, ela e todas as C-produções podem ser eliminadas. Isso resulta em: S 0A0 00 1B1 11 BB A 0A0 00 1B1 11 BB B 0A0 00 1B1 11 BB.

Observando que todas as A-, B- e S-produções são iguais, simplificamos a gramática para: S 0S0 00 1S1 11 SS. Finaente, incluindo variáveis e produções para os terminais não isolados e quebrando as produções de comprimento maior que 2, obtemos uma gramática equivalente, a menos de λ, na Forma Normal de Chomsky: S ZA ZZ UB UU SS A SZ B SU Z 0 U 1. (c) Neste caso, todas as variáveis são anuláveis, pois B λ, A B, S B e, ainda, S AAA. eliminação das λ-produções, obtemos: Após a S AAA AA A B A aa a B. As produções unitárias dessa gramática são: S A, S B e A B. Após a eliminação destas produções, temos: S AAA AA aa a B A aa a B. Como você deve ter percebido, não tivemos como eliminar as produções unitárias S B e S A acima, pois B é um símbolo inútil que não gera nada. Eliminando-o da gramática, vem: S AAA AA aa a A aa a. Finaente, incluindo variáveis e produções para os terminais não isolados e quebrando as produções de comprimento maior que 2, obtemos uma gramática equivalente, a menos de ε, na Forma Normal de Chomsky: S AB AA CA a A CA a B AA C a. (d) Neste caso, todas as variáveis são anuláveis, pois S λ, C λ, A C, B C, e D A e, ainda D B. Após a eliminação das λ-produções, obtemos: A C a B C b C CDE DE CE E D A B ab. As produções unitárias dessa gramática são: A C, B C, C E, D A e D B. Eliminando a produção D A: A C a B C b C CDE DE CE E D C a B ab.

Eliminando a produção D B: A C a B C b C CDE DE CE E D C a b ab. Eliminando a produção C E: A C a B C b Eliminando as produções A C, B C e D C: C CDE DE CE D C a b ab. A CDE DE CE a B CDE DE CE b C CDE DE CE D CDE DE CE a b ab. Temos que a variável E não é geradora, assim após sua eliminação a gramática fica: A a B b D a b ab. Temos ainda que a variável D não é alcançável a partir de S. Logo: A a B b. Finaente, incluindo variáveis e produções para os terminais não isolados e quebrando as produções de comprimento maior que 2, obtemos uma gramática equivalente, a menos de ε, na Forma Normal de Chomsky: S AF AA BG BB A a B b F AA G BB. 6. [ ] Para w {0, 1}, definimos o complemento Booleano de w, denotado por por w, como a palavra obtida pela complementação de cada símbolo em w. Ou seja, se w = 010, então w = 101. Considere o conjunto A = {w {0, 1} : w = w R }. (a) Forneça uma gramática livre de contexto para o conjunto A.

(b) Forneça uma gramática na forma normal de Chomsky para o conjunto A {λ}. Como exemplo, observe que as palavras 011001 e 010101 pertencem a A, mas a palavra 101101 A. (a) Uma gramática livre de contexto para o conjunto A é G = (V, T, P, S), em que V = {S}, T = {0, 1} e P é o conjunto de produções: S 0S1 1S0 λ. A idéia é gerar símbolos complementares à mesma distância das extremidades. Não é difícil provar que L(G) = A. (b) Uma gramática na Forma Normal de Chomsky para o conjunto A {λ} é G = (V, T, P, S), em que V = {S, A, B, Z, U}, T = {0, 1} e P é o conjunto de produções: S ZU UZ ZA UB, A SU, B SZ, Z 0, U 1. 7. Mostre que toda linguagem livre de contexto que não possua λ pode ser gerada por uma gramática livre de contexto na qual todas as produções são da forma A a, A ab ou A abc, para a terminal e A, B e C variáveis. Sugestão, comece com uma gramática na Forma Normal de Greibach para a linguagem em questão. Sejam L uma linguagem livre de contexto que não possui λ, e G = (V, T, P, S) uma gramática livre de contexto na Forma Normal de Greibach para L. Todas as produções em P são da forma A aβ, para A V, a T e β V. Suponha que k é o maior número de símbolos que aparecem do lado direito das produções em P, e seja V := { [γ] : γ V + e γ < k }. Defina, iniciaente, P =. Para cada produção A aγ pertencente a P, com A V, a T e γ V + ( γ < k) e cada variável [Aδ] pertencente a V, inclua em P a produção [Aδ] a, se γ = δ = λ; [Aδ] a[γ], se γ λ e δ = λ; [Aδ] a[δ], se γ = λ e δ λ; [Aδ] a[γ][δ], se γ λ e δ λ. Ao final desse processo, teremos uma gramática equivalente a G na qual todas as produções são da forma A a, A ab ou A abc, para a terminal e A, B e C variáveis. 8. Mostre que as linguagens abaixo não são livres de contexto. (a) [ ] {a i b j c k : i < j < k}. (b) {a i b j : j = i 2 }. (c) {a p : p é um número primo}. (d) [ ] {a 2i : i 0}. Vamos utilizar o lema de iteração (pumping lemma) para linguagens de contexto em cada uma das linguagens acima. Como é o caso quando se utiliza este resultado, todas as provas serão por contradição. (a) Demonstração. Suponha que L = {a i b j c k : i < j < k} é livre de contexto e seja n > 0 a constante cuja existência é garantida pelo lema de iteração. Considere a palavra z = a n b n+1 c n+2 L. Claramemte z = 3n + 3 > n. Seja então z = uvwxy uma decomposição qualquer de z satisfazendo vwx n e vx λ. Vamos mostrar que existem valores de l 0 tais que a palavra uv l wx l y L. Temos dois casos relevantes para analisar (todas as demais possibilidades são cobertas por estes casos). No primeiro caso, vwx não possui nenhum símbolo c. Com isso, para l = 3, z = uv 3 wx 3 y possui no mínimo n + 2 a s ou b s, pois vx > 0. Como z c = n + 2, segue que z L.

Em caso contrário, vwx possui pelo menos um c e temos que ela não possui nenhum a, já que vwx n e existem n + 2 posições entre o último a e o primeiro c, inclusive. Logo, para l = 0, a palavra z = uv 0 wx 0 y = uwy possui n símbolos a e não mais que 2n + 2 b s e c s, já que vx > 0. Como não é possível com esses valores termos mais b s do que a s e mais c s do que b s, segue que z L. Logo, independente da forma em que z for dividida, existem valores l 0 para os quais uv l wx l y L, contradizendo o lema da iteração. Portanto, L não é livre de contexto. (b) Demonstração. Suponha que L = {a i b j : j = i 2 } é livre de contexto e seja n > 0 a constante cuja existência é garantida pelo lema de iteração. Considere a palavra z = a n b n2 L, com z = n 2 + n > n. Seja z = uvwxy uma decomposição qualquer de z satisfazendo vwx n e vx λ. Se vwx possui apenas a s, então para l = 0 a palavra z = uv l wx l y = uwy consiste em n 2 símbols b e no máximo n 1 símbolos a, implicando que z L. Um argumento análogo mostra que se vwx possui apenas b s, z também não pertence a L. Caso v ou x possua simultaneamente a s e b s, claramente a palavra uv 2 wx 2 y L, pois nem à linguagem a b ela pertence. O último e mais interessante caso ocorre quando v consiste de k símbolos a e x consiste de m símbolos b, com k, m > 0. Para todo l > 1, a palavra z = uv l wx l y consiste em n + lk símbolos a e n 2 + símbolos b. Temos que z L se e somente se (n + lk) 2 = n 2 +, pois o número de b s deve ser igual ao quadrado do número de a s. No entanto, (n + lk) 2 = n 2 + 2lkn + l 2 k 2 e assim é necessário que 2lkn + l 2 k 2 = com k, m > 0 e l > 1. Como o lado esquerdo da equação acima cresce quadraticamente e o direito linearmente, não é possível satisfazer a igualdade para todo l > 1 lembre-se que n 2 O(n). Ou seja, existe algum valor l para o qual z L e isso completa a prova. (c) Demonstração. Suponha que L = {a p : p é um número primo} é livre de contexto e seja n > 0 a constante cuja existência é garantida pelo lema de iteração. Seja p n + 2 primo e considere a palavra z = a p L. Seja z = uvwxy uma decomposição qualquer de z satisfazendo vwx n e vx λ. Se vx = m, então uwy = p m. Tome l = p m e considere a palavra z = uv l wx l y = uv p m wx p m y. Temos que: z = uwy + (p m) vx = (p m) + (p m)m = (1 + m)(p m). Para z pertençer a L, z deve ser primo. Isso ocorre se e somente se m + 1 ou p m for igual a 1. No entanto, temos que m + 1 > 1, pois vx λ e assim m = vx > 0, e que p m > 1, pois p n + 2 e m n, já que vwx n. Portanto, z L e L não é livre de contexto. (d) Demonstração. Suponha que L = {a 2i : i 0} é livre de contexto e seja n > 0 a constante cuja existência é garantida pelo lema de iteração. Considere a palavra z = a 2n L e seja z = uvwxy uma decomposição qualquer de z satisfazendo vwx n e vx λ. Tome l = 2 e considere z = uv 2 wx 2 z. Temos que 2 n < z = z + vx 2 n + n, pois vwx n e vx > 0. Como 2 n+1 > 2 n + n para todo n não negativo, segue que o número de a s em z não é uma potência de 2 e, consequentemente, que z L. Logo, L não é livre de contexto. 9. Escreva autômatos com pilha para as seguintes linguagens abaixo: (a) {wcw R : w {a, b} } (b) {w {a, b} : w = w R } (c) {a i b j c k : i = j ou j = k} (d) {w {a, b} : w possui duas vezes mais a s que b s} (e) L(G), em que G = ({S}, {(, ), [, ]}, {S (S) [S] SS λ}, S). (f) L(G), em que G = ({A, S}, {a, b}, {S aaa, A as bs a}, S). Especifique o tipo de aceitabilidade de cada autômato com pilha.

(a) A = ({p, q, r}, {a, b}, {, a, b}, δ A, p,, {r}), em que δ A é como: δ A (p, a, ) = {(p, a )} δ A (p, b, ) = {(p, b )} δ A (p, a, a) = {(p, aa)} δ A (p, a, b) = {(p, ab)} δ A (p, b, a) = {(p, ba)} δ A (p, b, b) = {(p, bb)} δ A (p, c, ) = {(q, )} δ A (p, c, a) = {(q, a)} δ A (p, c, b) = {(q, b)} δ A (q, a, a) = {(q, λ)} δ A (q, b, b) = {(q, λ)} δ A (q, λ, ) = {(r, λ)} A aceitabilidade de A é simultaneamente por alcance de estado final e por esvaziamento de pilha. (b) A = ({p, q, r}, {a, b}, {, a, b}, δ A, p,, {r}), em que δ A é como: δ A (p, a, ) = {(p, a )} δ A (p, b, ) = {(p, b )} δ A (p, a, a) = {(p, aa)} δ A (p, a, b) = {(p, ab)} δ A (p, b, a) = {(p, ba)} δ A (p, b, b) = {(p, bb)} δ A (p, a, ) = {(q, )} δ A (p, b, ) = {(q, )} δ A (p, a, a) = {(q, a)} δ A (p, a, b) = {(q, b)} δ A (p, b, a) = {(q, a)} δ A (p, b, b) = {(q, b)} δ A (p, λ, ) = {(q, )} δ A (p, λ, a) = {(q, a)} δ A (p, λ, b) = {(q, b)} δ A (q, a, a) = {(q, λ)} δ A (q, b, b) = {(q, λ)} δ A (q, λ, ) = {(r, λ)} A aceitabilidade de A é simultaneamente por alcance de estado final e por esvaziamento de pilha. Outro autômato de pilha possível para esta linguagem é B = ({p}, {a, b}, {S, a, b}, δ B, p, S), em que δ B é como: A aceitabilidade de B é por esvaziamento de pilha. δ B (p, a, a) = {(p, λ)} δ B (p, b, b) = {(p, λ)} δ B (p, λ, S) = {(p, asa)} δ B (p, λ, S) = {(p, bsb)} δ B (p, λ, S) = {(p, a)} δ B (p, λ, S) = {(p, b)} δ B (p, λ, S) = {(p, λ)} (c) A = (Q, {a, b}, {, a, b, c}, δ A, p,, {q 3, q 7 }), em que Q = {q i : 0 i 7} e δ A é como: δ A (q 0, λ, ) = {(q 1, ), (q 4, )} δ A (q 1, a, ) = {(q 1, a )} δ A (q 1, a, a) = {(q 1, aa)} δ A (q 1, λ, ) = {(q 2, )} δ A (q 1, λ, a) = {(q 2, a)} δ A (q 2, b, a) = {(q 2, λ)} δ A (q 2, λ, ) = {(q 3, )} δ A (q 3, c, ) = {(q 3, )} δ A (q 4, a, ) = {(q 4, )} δ A (q 4, λ, ) = {(q 5, )} δ A (q 5, b, ) = {(q 5, b )} δ A (q 5, b, b) = {(q 5, bb)} δ A (q 5, λ, ) = {(q 6, )} δ A (q 5, λ, b) = {(q 6, b)} δ A (q 6, c, b) = {(q 6, λ)} δ A (q 6, λ, ) = {(q 7, )} A aceitabilidade de A é por alcance de estado final. (d) B = ({p}, {a, b}, {S, A, B, a, b}, δ B, p, S), em que δ B é como: δ B (p, a, a) = {(p, λ)} δ B (p, b, b) = {(p, λ)} δ B (p, λ, S) = {(p, aab)} δ B (p, λ, S) = {(p, aba)} δ B (p, λ, S) = {(p, baa)} δ B (p, λ, S) = {(p, λ)} δ B (p, λ, A) = {(p, as)} δ B (p, λ, A) = {(p, baaa)} δ B (p, λ, B) = {(p, aabb)} δ B (p, λ, B) = {(p, abab)} δ B (p, λ, B) = {(p, abba)} δ B (p, λ, B) = {(p, bs)} A aceitabilidade de B é por esvaziamento de pilha (veja Exercício 2 ítem (e)). (e) B = ({p}, {(, ), [, ]}, {S, (, ), [, ]}, δ B, p, S), em que δ B é como: A aceitabilidade de B é por esvaziamento de pilha. δ B (p, (, () = {(p, λ)} δ B (p, ), )) = {(p, λ)} δ B (p, [, [) = {(p, λ)} δ B (p, ], ]) = {(p, λ)} δ B (p, λ, S) = {(p, (S))} δ B (p, λ, S) = {(p, [S])} δ B (p, λ, S) = {(p, SS)} δ B (p, λ, S) = {(p, λ)}

(f) B = ({p}, {a, b}, {S, A, a, b}, δ B, p, S), em que δ B é como: A aceitabilidade de B é por esvaziamento de pilha. δ B (p, a, a) = {(p, λ)} δ B (p, b, b) = {(p, λ)} δ B (p, λ, S) = {(p, aaa)} δ B (p, λ, A) = {(p, as)} δ B (p, λ, A) = {(p, bs)} δ B (p, λ, A) = {(p, a)} 10. [ ] Um autômato com pilha P = (Q, Σ, Γ, δ, q 0,, F ) é determinístico se: (1) Sempre que δ(q, a, X) é não vazia para algum a Σ, então δ(q, λ, X) é vazia (para qualquer X Γ), e (2) Para cada q Q, a Σ {λ} e X Γ, δ(q, a, X) 1 (isto é, δ(q, a, X) contém no máximo um elemento). A regra (1) elimina a possibilidade de escolha entre a realização de uma transição consumindo um símbolo da entrada ou através de uma λ-transição. A regra (2) elimina a possibilidade de escolha entre transições para um mesmo símbolo da entrada. Construa autômatos com pilha determinísticos para as seguintes linguagens: (a) {a n b m : n m}. (b) {a n b m : n m}. (c) {a n b m a n : n, m 0}. (a) A = ({p, q, r}, {a, b}, {, a, b}, δ, p,, {r}), em que δ é como: δ(p, a, ) = {(p, a )} δ(p, a, a) = {(p, aa)} δ(p, b, ) = {(q, )} δ(p, b, a) = {(q, λ)} δ(q, b, a) = {(q, λ)} δ(q, λ, ) = {(r, )} (b) A = ({p, q, r}, {a, b}, {, a, b}, δ, p,, {r}), em que δ é como: δ(p, a, ) = {(p, a )} δ(p, a, a) = {(p, aa)} δ(p, b, a) = {(q, λ)} δ(q, b, a) = {(q, λ)} δ(q, λ, a) = {(r, a)} δ(q, λ, ) = {(r, )} (c) A = ({p, q, r, s}, {a, b}, {, a, b}, δ, p,, {s}), em que δ é como: δ(p, a, ) = {(p, a )} δ(p, a, a) = {(p, aa)} δ(p, b, ) = {(q, )} δ(p, b, a) = {(q, a)} δ(q, b, ) = {(q, )} δ(q, b, a) = {(q, a)} δ(q, a, a) = {(r, λ)} δ(r, a, a) = {(r, λ)} δ(r, λ, ) = {(s, )} Sugestão: desenhe os diagramas correspondentes para observar melhor como cada autômato funciona. 11. Seja L {a} uma linguagem sobre um alfabeto unitário. Mostre que L é livre de contexto se e somente se L é regular. Demonstração. Para necessidade, observe que todo DFA D pode ser interpretado como um DPDA que não faz uso da pilha. Formaente, para D = (Q, Σ, δ, s, F ), defina um DPDA D = (Q, Σ, Σ { }, δ, s,, F ) em que para todos p, q Q e a Σ tal que δ(p, a) = q, tem-se que δ (p, a, ) = (q, ). Claramente, L(D) = L(D ). Para suficiência, seja L {a} uma linguagem livre de contexto e seja n > 0 a constante cuja existência é garantida pelo lema da iteração para linguagens livres de contexto. Para todo k n e toda palavra z = a k L, o lema da iteração estabelece que que z = uvwxy com vx λ e vwx n, e que z(i) = uv i wx i y L para todo i 0. Defina p k = vx e m k = uwy de forma que z(i) = a m k+ip k L e observe que m k + ip k é uma progressão aritmética com início m k 0 e razão 1 p k n com m k e p k dependentes de k e que, portanto, {z(i) : i 0}

é uma linguagem fundamentaente periódica ou, em outras palavras, regular (cf. Teorema 6, Lista 2). Defina S := L {a l : 0 l < n}. Claramente S é finita e portanto, regular (cf. Exercício 2, Lista 2). Vamos mostrar então que o número de progressões aritméticas em L é finito, isto é, que um número finito de valores para k é suficiente para descrever L \ S. Seja K := {k n : a k L} e observe que L = S {a k : k K} S ( k K a m k ) ) L, implicando em {a k : k K} = k K am k ). Agora, para cada valor de k K, temos que a m k ) a r k ), em que r k 0 e r k m k (mod p k ), resultando em a m k ) a r k ). k K k K Para mostarmos que a recíproca da inclusão acima, defina o conjunto P := {(r, p) : 1 p n, 0 r < p e existe k K com p k = p e r k r (mod p k )}, e para todos os pares (r, p) P, defina Temos então que Logo, q(r, p) := min{r k : k K com p k = p e r k r (mod p k )}. (r,p) P a q(r,p) (a p ) L = S (r,p) P k K a m k ). a q(r,p) (a p ), isto é, L é a união de uma linguagem finita com P n 2 linguagens fundamentaente periódicas e, portanto, L é regular. Nota: Observe que a técnica utilizada na prova para limitar o número de linguagens fundamentaente periódicas é semelhante à utilizada no Teorema 7 da Lista 2. 12. Uma gramática livre de contexto G = (V, T, P, S) é linear se toda produção em P é da forma A α ou A β B γ, em que A, B V e α, β, γ T. Ou seja, todas as produções de G possuem no máximo um não terminal (variável) no lado direito. Uma linguagem livre de contexto L é linear se existe uma gramática livre de contexto linear G tal que L = L(G). Mostre a seguinte versão do lema de iteração para linguagens livres de contexto lineares. Se L é livre de contexto e linear, então existe uma constante n tal que se z L com z n, então existe uma decomposição z = uvwxy com uvxy n e vx 1 tal que uv i wx i y L para todo i 0. Demonstração. Seja G = (V, T, P, S) uma gramática livre de contexto para L e, sem perda de generalidade, suponha que G não possui produções unitárias do tipo A B em P, com A, B V a suposição é sem perda de generalidade pois podemos eliminar tais produções e obter uma gramática equivalente, como fizemos em um dos passos da normalização de Chomsky. Sejam p := V e k := max{ α : A α P }, o número de não-terminais (variáveis) e o número máximo de símbolos no lado direito de uma produção em G, respectivamente. Defina n := (p + 1)k, seja z L com z n e considere S z uma derivação mais à equerda para z. Pelo princípio da casa do pombo, algum A V ocorre em mais de uma forma sentencial nos primeiros p + 1

passos na derivação de z. Sejam 0 < i < j < p + 1 os números de derivações até a primeira e a segunda ocorrências de A na derivação de z, isto é, S i uay j i uvaxy uvwxy = z, (4) para palavras u, v, w, x, y T. Como i < j < p + 1, temos que uvxy (p + 1)k = n, e vx λ pelo fato de G não possuir produções unitárias. A última afirmação agora é provada manipulando-se as derivações em (4). Para todo l 0, começando com S i uay, repetindo-se l vezes A j i vax, e finalizando com A w, obtemos caso l = 0, ou S i uay j i uvaxy j i S i uay uv 2 Ax 2 y j i uwy uv 3 Ax 3 y j i j i uv l Ax l y uv l wx l y caso l > 0. Nos dois casos, não é difícil perceber que a palavra derivada pertence a L(G) e, portanto, a L.