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

Documentos relacionados
Autómatos de Pilha e Linguagens Livres de Contexto

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

Autómatos de pilha e GIC

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Modelos de Computação

Conceitos básicos de Teoria da Computação

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

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Linguagem (formal) de alfabeto Σ

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

Fundamentos da Teoria da Computação

Autómatos Finitos Determinísticos (AFD)

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Fundamentos da Teoria da Computação

Alfabeto, Cadeias, Operações e Linguagens

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.

Linguagens Formais - Preliminares

Linguagens Formais e Autômatos P. Blauth Menezes

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

Linguagens Formais e Autômatos

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

Aula 7: Autômatos com Pilha

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

Linguagens Formais e Problemas de Decisão

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

IBM1088 Linguagens Formais e Teoria da

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Apostila 03 - Linguagens Livres de Contexto Exercícios

Propriedades das Linguagens Livres do Contexto

Teoria da Computação Aula 02 Introdução

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

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

Expressões Regulares e Gramáticas Regulares

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

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Regulares. Prof. Daniel Oliveira

Fundamentos da Teoria da Computação

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

Faculdade de Computação

Revisões de Conjuntos

Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io

Expressões regulares

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

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

Gramáticas e Linguagens independentes de contexto

Gramáticas Livres de Contexto Parte 1

Apontamentos de Modelos de Computação. Ana Paula Tomás

Linguagens Formais e Autômatos P. Blauth Menezes

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

Problemas decidíveis para LICs

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

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

Histórico e motivação

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

SCC-ICMC-USP. Trabalho em Grupo 1 SCC-0205

Linguagens livres de contexto e autômatos de pilha

Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos:

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

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

SCC 205 Teoria da Computação e Linguagens Formais

Linguagens Livres de Contexto

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

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

Autômatos finitos não-determinísticos

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Dado um inteiro positivo n, definimos U(n) como sendo o conjunto dos inteiros positivos menores que n e primos com n. Não é difícil ver que a

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

Linguagens Formais e Autômatos P. Blauth Menezes

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

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Autômatos de Pilha (AP)

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

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

Instituto Superior Técnico Teoria da Computação - LEIC 2013/2014 Aula prática 1

Linguagens recursivamente enumeráveis

Transformação de AP para GLC

Transcrição:

Modelos de Computação Folha de trabalho n. 8 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada nas caixas da disciplina (P5-P8 e P1- P4,P9,P10) até ao dia 28.04.2005 às 8h30m e apresentada na aula prática respectiva.na resolução em papel por favor indicar no cimo da 1a folha o nome e a turma prática. Para saber quais dos exercícios que deverás apresentar, consultar http://www.ncc.up.pt/ nam/aulas/0405/mc/dist.pdf. Autómatos de Pilha 8.1 Considera o autómato de pilha M = ({q 0, q 1, q 2 }, {a, b}, {A, B}, δ, q 0, A, {q 2 }) onde as transições δ são: δ(q 0, a, A) = {(q 0, BA), (q 1, A)} δ(q 0, b, A) = {(q 0, B)} δ(q 1, a, B) = {(q 1, ɛ)} δ(q 1, b, B) = {(q 1, ɛ)} δ(q 1, ɛ, A) = {(q 2, ɛ)} (a) Representa o autómato M por um diagrama de transições. (b) Indica todas as mudanças de configuração do autómato com a palavra aba, começando na configuração (q 0, aba, A). (c) Indica quais das seguintes palavras pertencem a L(M), isto é, à linguagem aceite pelo autómato por estados finais: L(M) = {x (q 0, x, A) M (q 2, ɛ, γ)} aa aba baa bab abb baaaa (d) Verifica que neste caso N(M) = {x (q 0, x, A) M (q, ɛ, ɛ)}, a linguagem aceite pelo autómato por pilha vazia, é igual a L(M) (e) Descreve L(M) em linguagem corrente. 8.2 Seja o autómato de pilha P = ({q 0, q 1, q 2 }, {a, b, c}, {Z, B}, δ, q 0, Z, {q 1 }) onde as transições δ são: δ(q 0, a, Z) = {(q 1, Z)} δ(q 0, b, Z) = {(q 0, BZ)} δ(q 0, a, B) = {(q 1, B)} δ(q 1, b, B) = {(q 2, ɛ)} δ(q 2, ɛ, Z) = {(q 2, ɛ)} δ(q 1, a, Z) = {(q 1, Z), (q 1, ɛ)} δ(q 0, b, B) = {(q 0, BB)} δ(q 1, a, B) = {(q 1, B)} δ(q 2, b, B) = {(q 2, ɛ)} (a) Representa o autómato P por um diagrama de transições. (b) Indica todas as mudanças de configuração do autómato com a palavra aaaa, começando na configuração (q 0, aaaa, Z). (c) Mostra que qualquer palavra da linguagem descrita por aa é aceite pelo autómato por estados finais e por pilha vazia. (d) Mostra que qualquer palavra da linguagem descrita por bbaa é aceite pelo autómato por estados finais mas não por pilha vazia. (e) Mostra que nenhuma palavra da linguagem descrita por bbb aa b é reconhecida pelo autómato por estados finais ou por pilha vazia. (f) Descreva informalmente N(P ) (a linguagem aceite por P por pilha vazia) e L(P ) (a linguagem aceite por P por estados finais). Comenta a afirmação: L(P ) pode ser aceite por um autómato finito determinístico mas N(P ) não. (g) Indica uma gramática independente de contexto que gere N(P ). 8.3 Descreve autómatos de pilha que reconheçam (por pilha vazia ou por estados finais) cada uma das linguagens seguintes. Dep. Ciência de Computadores/FCUP 2004 2005 1

(a) {x@x R {a, b, @} x R é a inversa de x, e x {a, b} } (b) {x {a, b} x é capícua} (c) Seja x {0, 1} representemos por x o número inteiro que tem aquela representação em binário, {x : y {0, 1, :} x, y {0, 1} \ {ɛ}, e x y (mod 3)} (d) {w : w contém mais 1s que 0s} (e) O complemento da linguagem {0 n 1 n : n 0} (f) {w {0, 1} 3 divide a diferença entre o número de 0 s e 1 s em w} (g) {a i b j c k i = j ou j = k} (h) {a i b j c k i j ou j k} (i) {a i b i+j c j {a, b, c} i 0, j 0} (j) {0 n 1 m {0, 1} n 0, m n} (k) Todas as palavras de {0, 1} que não são da forma ww. 8.4 Mostra que qualquer linguagem que é reconhecida por um autómato de pilha por estados finais pode ser reconhecida por algum autómato de pilha por pilha vazia e vice-versa. 8.5 Considera a linguagem PAREN 2 { (, ), [, ] } } das palavras com dois tipos de parêntesis bem casados. Definimos PAREN 2 indutivamente como o menor conjunto tal que: 1. ɛ PAREN 2 2. se x PAREN 2 então ( x ) PAREN 2 e [ x ] PAREN 2 3. se x, y PAREN 2 então xy PAREN 2 Por exemplo [ ( [ ] ) [ ] ( ) ] PAREN 2 e [ ( ] ) / PAREN 2. (a) Descreve um autómato de pilha que aceite PAREN 2 por pilha vazia. 8.6 Considera a seguinte linguagem M de alfabeto Σ = {a, b, c}, M = {a n b m c l b m l, m, n N, m 0}. (a) Descreve um autómato de pilha que aceite M por estados finais. (b) Indica o papel desempenhado por cada um dos estados. (c) Determina as mudanças de configuração do autómato no processamento das seguintes palavras: (a) aabbbb (b) abccbb 8.7 Considera a seguinte linguagem M de alfabeto Σ = {0, 1, 2}, M = {xyz x, z {0, 1}, y {1, 2}, z = x R }. (a) Descreve um autómato de pilha que aceite M por estados finais. (b) Indica o papel desempenhado por cada um dos estados. (c) Determina as mudanças de configuração do autómato no processamento das seguintes palavras: (a) 101121101 (b) 101121010 Dep. Ciência de Computadores/FCUP 2004 2005 2

Resolução de exercícios resolvidos 8.6 (a) Um autómato que reconhece a linguagem dada por estados finais é com {{s 0, s 1, s 2, s 3, s 4 }, {a, b, c}, {A, B}, δ, s 0, A, {s 4 }} δ(s 0, a, A) = {(s 0, A)} δ(s 0, b, A) = {(s 1, A)} δ(s 1, b, A) = {(s 1, BA), (s 4, A)} δ(s 1, b, B) = {(s 1, BB), (s 3, ɛ)} δ(s 1, c, B) = {(s 2, B)} δ(s 2, c, B) = {(s 2, B)} δ(s 2, b, B) = {(s 3, ɛ)} δ(s 2, b, A) = {(s 4, B)} δ(s 3, b, B) = {(s 3, ɛ)} δ(s 3, b, A) = {(s 4, A)} (b) s 0 : palavras da forma a n ; s 1 : palavras da forma a n b m, e a pilha do autómato tem a forma B m A; s 2 : palavras da forma a n b m c l, a pilha tem a forma B m A; s 3 : palavras da forma a n b m c l b k com k < m, a pilha tem a forma B m k A; s 4 : palavras da forma a n b m c l b m. (c) (a) (b) (s 0, aabbbb, A) (s 0, abbbb, A) (s 0, bbbb, A) (s 1, bbb, A) (s 1, bb, BA) (s 3, b, A) (s 4, ɛ, A) (s 0, abccbb, A) (s 0, bccbb, A) (s 1, ccbb, A) (s 2, cbb, A) (s2, bb, A) (s 4, b, A)... e o autómato encrava! 8.7 (a) Um autómato de pilha que reconhece esta linguagem é em que: {s 0, s 1, s 2, s 3 }, {0, 1, 2}, {A, Z, U}, δ, s 0, A, {s 3 }} δ(s 0, 0, X) = {(s 0, ZX)} com X {A, Z, U} δ(s 0, 1, X) = {(s 0, UX)} com X {A, Z, U} δ(s 0, ɛ, X) = {(s 1, X)} com X {A, Z, U} δ(s 1 )1, X) = {(s 1, X)} com X {A, Z, U} δ(s 1, 2, X) = {(s 1, X)} com X {A, Z, U} δ(s 1, ɛ, X) = {(s 2, X)} com X {A, Z, U} δ(s 2, 0, Z) = {(s 2, ɛ)} δ(s 2, 1, U) = {(s 2, ɛ)} δ(s 2, ɛ, A) = {(s 3, A)}. (b) s 0 : palavras da forma x, x {0, 1}, a pilha tem a forma [0/Z, 1/U]x R A; s 1 : palavras da forma xy, x {0, 1}, y {1, 2}, a pilha tem a forma [0/Z, 1/U]x R A; Dep. Ciência de Computadores/FCUP 2004 2005 3

s 3 : palavras da forma xyz, x, z {0, 1}, y {1, 2} com z R sufixo (próprio) de x, a pilha tem a forma [0/Z, 1/U]w R A com x wz R ; s 3 : palavras da forma xyz, x, z {0, 1}, y {1, 2} com z R x. (c) (a) (b) (s 0, 101121101, A) (s 0, 01121101, UA) (s 0, 1121101, ZUA) (s 0, 121101, UZUA) (s 0, 21101, UUZUA) (s 1, 21101, UUZUA) (s 1, 1101, UUZUA) (s 2, 1101, UUZUA) (s 2, 101, UZUA) (s 2, 01, ZUA) (s 2, 1, UA) (s 2, ɛ, A) (s 3, ɛ, A) (s 0, 101121010, A) (s 0, 01121010, UA) (s 0, 1121010, ZUA) (s 0, 121010, UZUA) Autómatos de Pilha e Gramáticas (s 0, 21010, UUZUA) (s 1, 21010, UUZUA) (s 1, 1010, UUZUA) (s 2, 1010, UUZUA) (s 2, 010, UZUA)... e encrava! 8.8 Seja L(G) a linguagem independente de contexto gerada pela gramática seguinte: G = ({A, B}, {a, b}, {A a, A abb, B b, B baa}, A) Descreve um autómato de pilha que aceite L(G) por pilha vazia. 8.9 Converte o autómato de pilha P = ({p, q}, {0, 1}, {X, Z}, δ, q, Z) para uma gramática independente de contexto, onde δ é dado por: δ(q, 1, Z) = {(s, X, Z)} δ(q, 1, X) = {(s, X, X)} δ(q, 0, X) = {(p, X)} δ(q, ɛ, X) = {(q, ɛ)} δ(p, 1, X) = {(p, ɛ)} δ(p, 0, Z) = {(q, Z)} Autómatos de Pilha Determinísticos 8.10 Seja L a linguagem aceite por estados finais pelo autómato de pilha M = ({s 0, s 1, s 2, s 3, s 4, s 5 }, {a, b, c}, {Z, B}, δ, s 0, Z, {s 5 }) em que δ é assim definida δ(s 0, a, Z) = {(s 0, Z)} δ(s 0, b, Z) = {(s 0, BZ)} δ(s 0, b, B) = {(s 0, BB)} δ(s 0, c, B) = {(s 1, B)} δ(s 1, c, B) = {(s 2, B)} δ(s 2, c, B) = {(s 1, B)} δ(s 2, b, B) = {(s 3, B)} δ(s 3, b, B) = {(s 4, B)} δ(s 4, b, B) = {(s 5, ɛ)} δ(s 5, b, B) = {(s 3, B)} (a) Determina as mudanças de configuração do autómato ao processar cada uma das palavras seguintes: bcbbb, bbbb, aaaabbccccbbbbbbb, e aaaabbccccbbbbbb. Quais são aceites pelo autómato (por estados finais)? (b) Seja S = {s 0, s 1, s 2, s 3, s 4, s 5 }, Σ = {a, b, c} e Γ = {Z, B}. Mostra que, para o autómato M se tem: (a) M é determinístico, i.e., quaisquer que sejam s, s S, x, x Σ, X, X Γ, e n N, se x ɛ e (s, xx, X) n (s, x, X ) então (s, X ) é único e n = x. (b) x, w Σ n N (s 0, wx, Z) n (s 0, x, Z) sse w = a n Dep. Ciência de Computadores/FCUP 2004 2005 4

(c) w, x Σ n N m N (s 0, wx, Z) n+m (s 0, x, B m Z) sse w = a n b m (d) w, x Σ m N p N (s 0, wx, B m Z) 2p+1 (s 1, x, B m Z) sse w = c 2p+1 (e) w, x Σ m N p N (s 0, wx, B m Z) 2p+2 (s 2, x, B m Z) sse w = c 2p+2 (f) w, x Σ m N (s 2, wx, B m Z) 3 (s 5, x, B m 1 Z) sse w = bbb (g) w, x Σ m N (s 2, wx, B m Z) 3m (s 5, x, Z) sse w = b 3m (h) Baseando-se na alínea anterior, descreve a linguagem L. (i) Descreve uma gramática independente de contexto que gere L. (j) Descreve um autómato de pilha que aceite L por pilha vazia. (k) Descreva um autómato de pilha que aceite {a n b m c p b m n, p N m N} por estados finais. Verifica que o autómato que descreveste é não-determinístico. Tenta explicar por que é que não existe um autómato de pilha determinístico que aceite essa linguagem. 8.11 Indica se os autómatos de pilha construídos nos exercícios 7.21 e 7.22 são determinísticos. Propriedades das linguagens independentes de contexto 8.12 Usa o lema da repetição para linguagens independentes de contexto para mostrar que as seguintes linguagens não são independentes de contexto: (a) {a n b n c m n 0, m n} (b) {a i b j c k 0 i j k} (c) {0 p p é primo} (d) {0 n2 n 0} 8.13 A classe das linguagens independentes de contexto não é fechada para a complementação. (a) Mostra que L = {ww w {0, 1} } não é independente de contexto, usando o lema da repetição. (b) Mostra que L = {0, 1} \ L é independente de contexto. Sugestão: Nota que qualquer palavra em L ou tem comprimento ímpar ou é da forma x1yx0w ou x0yx1w em que x, y, w Σ, y = w. 8.14 A intersecção de uma linguagem independente de contexto com uma regular é uma linguagem independente de contexto. Usando este facto, mostra que a linguagem não é independente de contexto. {x {a, b, c} x contém o mesmo número de a s, b s e c s} 8.15 Em geral as linguagens independentes de contexto não são fechadas para a complementação nem para a intersecção. (a) Dá um exemplo de duas linguagens L 1 e L 2 independentes de contexto, tais que L 1 L 2 não seja independente de contexto. (b) Dá um exemplo de duas linguagens L 1 e L 2 independentes de contexto, mas não regulares, tais que L 1 L 2 seja independente de contexto. (c) Dá um exemplo duma linguagem L 1 independente de contexto, tal que Σ \ L 1 não seja independente de contexto. 8.16 Apenas uma das seguintes afirmações é verdadeira. Dá contra-exemplo para cada uma das falsas e uma demonstração para a verdadeira. Dep. Ciência de Computadores/FCUP 2004 2005 5

(a) Para toda L Σ, se L é regular, então {xx x L} também o é. (b) Para toda L Σ, se L é regular, então {x xx L} também o é. (c) Para toda L Σ, se L é independente de contexto, então {xx x L} também o é. (d) Para toda L Σ, se L é independente de contexto, então {x xx L} também o é. 8.17 Verdade ou Falsidade? Para cada uma das seguintes questões justifica a sua resposta encontrando uma prova ou um contra-exemplo. (a) O complementar de uma linguagem regular é uma linguagem independente de contexto. (b) A linguagem {(ab) n (cd) n c n n 0} de alfabeto {a, b, c, d} não é independente de contexto. (c) Se L é uma linguagem independente de contexto que não é regular, o seu complementar Σ \L nunca é independente de contexto. (d) Qualquer linguagem independente de contexto que não seja aceite por autómatos de pilha determinísticos é ambígua. (e) Qualquer linguagem que seja reconhecida por autómato de pilha determinístico é não ambígua. 8.18 Para cada uma das seguintes gramáticas em FNC, determina se geram linguagens finitas ou infinitas. (a) {S AB, A BC a, B CC b, C a} (b) {S AB BC, A BA a, B CC b, C AB a} 8.19 Considerando a gramática ({S, A, B}, {a, b}, {S AB, A a, B AB b}, S) simula o algoritmo de análise sintáctica CKY para a palavra aab. Desenha a tabela correspondente. 8.20 (a) Modifica o algoritmo CKY de modo a permitir contar o número de árvores sintácticas para uma dada palavra (b) Testa o teu algoritmo para gramática e a palavra a + a + a + a. ({S, T, B}, {a, +}, {S ST a, T BS, B +}, S) (c) Implementa o algoritmo numa linguagem de programação à tua escolha. 8.21 Averigua se as seguintes linguagens são independentes de contexto, justificando devidamente a resposta (i.e. demonstrando no caso negativo ou encontrando uma gramática no caso positivo). (a) A linguagem formada pelas palavras da forma a n3 com n N. (b) A linguagem {a, b} \ {ww R w {a, b} } 8.22 Averigua se as seguintes linguagens são independentes de contexto, justificando devidamente a resposta (i.e. demonstrando no caso negativo ou encontrando uma gramática no caso positivo). (a) A linguagem formada pelas palavras da forma a n b n2 com n N. (b) A linguagem das palavras da forma a n b m c k com m = 2n ou k = n (m, n, k N). Dep. Ciência de Computadores/FCUP 2004 2005 6

Resolução de exercícios resolvidos 8.11 No exercício 7.21 autómato é n~ao determinístico pois s c T, δ(s, c, T ) > 1. Exemplo: δ(s 1, b, B) = {(s 1, BB), (s 3, ɛ)}. Nota: Apesar deste autómato não ser determinístico era possível encontrar um autómato determinístico que reconheça a linguagem por estados finais: com {{s 0, s 1, s 2, s 3, s 4, s 5 }, {a, b, c}, {A, B}, δ, s 0, A, {s 2, s 5 }} δ(s 0, a, A) = (s 0, A) δ(s 0, b, A) = (s 1, BA) δ(s 1, b, B) = (s 2, BB) δ(s 1, c, B) = (s 3, B) δ(s 2, b, B) = (s 1, BB) δ(s 2, c, B) = (s 3, B) δ(s 3, c, B) = (s 3, B) δ(s 3, b, B) = (s 4, ɛ) δ(s 4, b, B) = (s 4, ɛ) δ(s 4, ɛ, A) = (s 5, A) No exercício 7.22 o autómato é n~ao determinístico pois existe um terno ordenado (s, c, T ) com c Σ para o qual δ(s, c, T ) e δ(s, ɛ, T ). Tal exemplo pode ser δ(s 0, 0, U) = {(s 0, ZU)} δ(s 0, ɛ, U) = {(s 1, U)} 8.21 (a) Suponhamos, por absurdo, que a linguagem era independente de contexto. Então existiria n N nas condições do lema da repetição. Como a n3 pertence a esta linguagem, e pelo lema da repetição então x, y, z, w, v Σ, a n3 = xyzwv yzw n yw ɛ tal que para qualquer i N, xy i zw i v também pertence à linguagem. Tomemos então i = 2, a n3 = n 3 < xy 2 zw 2 v = x + 2 y + z + 2 w + v = = xyzwv + yw = = n 3 + yw n 3 + n < n 3 + 3n 2 + 3n + 1 = (n + 1) 3 Portanto a n3 < xy 2 zw 2 v < a (n+1)3. Logo xy 2 zw 2 v não pode pertencer à linguagem, o que contradiz o lema da repetição. O absurdo resultou da suposição que a linguagem era independente de contexto, pelo que fica provado que não o é. (b) Queremos considerar a linguagem formada pelas palavras de alfabeto {a, b} que não são formadas pela concatenação de uma palavra com a sua inversa (ww R ). Esta linguagem é formada pelas palavras de tamanho ímpar, ou pelas de tamanho par que da forma yaxx R by ou ybxx R ay com y = y. Portanto é possivel encontrar uma gramatica que gere tal linguagem: L P I I aib bia aia bib a b P ap b bp a ap a bp b A A abb bba B aba bbb ɛ. Dep. Ciência de Computadores/FCUP 2004 2005 7

De outra forma e com uma gramática mais simples: L at b bt a ala blb a b T at bt ɛ Pelo que a linguagem é evidentemente independente de contexto. 8.22 (a) Vamos mostrar que esta linguagem não é independente de contexto, para tal basta mostrar que não se verifica o lema da repetição, ou seja que para qualquer n N, existe uma palavra s pertencente à linguagem, s n tal que quaisquer subpalavras x, y, z, w, v, com s = xyzwv com yzw n e yw ɛ, e existe i N tal que xy i zw i v não pertence à linguagem. Seja então n N, a n b n2 pertence à linguagem e tem comprimento maior do que n. Tomemos uns quaisquer x, y, z, w, v tais que a n b n2 = xyzwv, com yzw n e yw ɛ. a n b n2 = n + n 2 < xy 2 zw 2 v = x + 2 y + z + 2 w + v = xyzwv + yw = (n 2 + n) + yw n 2 + n + n = n 2 + 2n < n 2 + 3n + 2 = (n + 1) 2 + (n + 1). Portanto a n b n2 < xy 2 zw 2 v < a (n+1) b (n+1)2. Logo xy 2 zw 2 v não pertence à linguagem, ficando provado que o lema da repetição não se verifica, e portanto a linguagem não pode ser independente de contexto. (b) Esta linguagem é claramente a reunião da linguagem das palavras da forma a n b 2n c k que é gerada pela gramática: A Ac B B abbb ɛ com a linguagem formada pelas palavras da forma a n b m c n que é gerada pela gramática: C acc D D Db ɛ. Portanto como é a reunião de duas linguagens independentes contexto é trivialmente uma linguagem independente de contexto. Problemas Obrigatórios A Seja A = {0 k 10 l 10 m k, l 0 e m k + l} (a) Descreve um autómato de pilha que aceite A, indicando se é por estados finais ou por pilha vazia e o papel desempenhado por cada um dos estados. (b) Determina as mudanças de configuração do autómato no processamento das seguintes palavras, indicando se as palavras são ou não aceites: (a) 0100100 (b) 0011000 B Seja B = {x {a, b, c} x em que o número de cs não excede a soma do número de as e do número de bs} (a) Descreve um autómato de pilha que aceite B, indicando se é por estados finais ou por pilha vazia e o papel desempenhado por cada um dos estados. (b) Determina as mudanças de configuração do autómato no processamento das seguintes palavras, indicando se as palavras são ou não aceites: Dep. Ciência de Computadores/FCUP 2004 2005 8

(a) aacbbcc (b) cccaacb C Para a Σ e x Σ denota-se por a(x) o número de as em x. Considera as seguintes linguagens: C 1 = {u2 n v u {0, 1}, v {2, 3}, 1(u) = 3(v) = 2n} C 2 = {u2 n+m v u {0, 1}, v {2, 3}, 1(u) = n e 3(v) = m} Destas linguagens uma não é independente de contexto. Para essa demonstra que não o é, utilizando o lema da repetição (que deves enunciar). Para a outra, descreve um autómato pilha que a aceite (indicando se o autómato é ou não determinístico). D Considera as seguintes linguagens de alfabeto Σ = {0, 1, 2, 3}: D 1 = {0 i 1 j 2 i 3 j i, j 0} D 2 = {0 i 1 j 2 j 3 i i, j 0} Destas linguagens uma não é independente de contexto. Para essa demonstra que não o é, utilizando o lema da repetição (que deves enunciar). Para a outra, descreve um autómato pilha que a aceite (indicando se o autómato é ou não determinístico). Dep. Ciência de Computadores/FCUP 2004 2005 9