Prova 1 de INF1626 Linguagens Formais e Autômatos

Documentos relacionados
Prova 2 de INF1626 Linguagens Formais e Autômatos

Linguagens Formais e Autômatos (LFA)

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

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

Linguagens Regulares. Prof. Daniel Oliveira

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

Linguagens Formais e Autômatos P. Blauth Menezes

Expressões e Gramáticas Regulares e Autómatos Finitos

Linguagens Formais e Problemas de Decisão

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

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

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

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

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

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

Compiladores Aula 4. Celso Olivete Júnior.

LINGUAGENS FORMAIS E AUTÔMATOS

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

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

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

Lista de exercícios 1

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

Linguagens Formais - Preliminares

Fundamentos da Teoria da Computação

Autômatos com Pilha: Reconhecedores de LLCs

IBM1088 Linguagens Formais e Teoria da

Linguagens Formais e Autômatos P. Blauth Menezes

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

Linguagens Livres de Contexto

Alfabeto, Cadeias, Operações e Linguagens

Expressões Regulares e Gramáticas Regulares

Linguagens livres de contexto e autômatos de pilha

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

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

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

a n Sistemas de Estados Finitos AF Determinísticos

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos P. Blauth Menezes

Prova 1 de INF1626 Linguagens Formais e Autômatos

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

Linguagens Livres de Contexto

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

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

Linguagens Formais e Autômatos P. Blauth Menezes

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

Exercícios Associados à Aula 02 (14/08/2013)

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

Aula de 26/08/2013. Processadores Simbólicos Aspectos de Arquitetura e Implementação

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

Hierarquia de Chomsky Exemplos de gramáticas

Gramáticas e Linguagens Independentes de Contexto

UNIVERSIDADE DA BEIRA INTERIOR

Autómatos de Pilha e Linguagens Livres de Contexto

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Autómatos Finitos Determinísticos (AFD)

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

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

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1

Linguagens, Reconhecedores e Gramáticas

Fundamentos da Teoria da Computação

Aula 7: Autômatos com Pilha

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

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

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

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas

Linguagens Formais e Autômatos (LFA)

Introdução Definição Conceitos Básicos de Linguagem

Linguagens Formais e Autômatos (LFA)

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

Conceitos básicos de Teoria da Computação

Linguagens Livres de Contexto

Teoria da Computação

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

Gramáticas e Linguagens independentes de contexto

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

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

Aula 8: Gramáticas Livres de Contexto

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

Automata e Linguagens Formais

Modelos de Computação

Capítulo II Gramáticas

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Marcos Castilho. DInf/UFPR. 21 de março de 2019

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

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo

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

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA)

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

Linguagens e Autômatos

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

Capítulo II Gramáticas

Linguagens e Programação Gramáticas. Paulo Proença

Aula de 28/10/2013. sticas; Implementação. em Ruby

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

Transcrição:

Prova 1 de INF1626 Linguagens Formais e Autômatos Aluno(a): Matrícula: Atenção: O tempo total de prova é de 110 minutos (09:05 às 10:55). Durante a prova não é permitido o uso de qualquer aparelho eletrônico (por exemplo: telefone celular, ipod ou MP3 Player, Tablets, etc.). Se alguém insistir em usar um, sua prova será anulada. Os alunos não devem se ausentar da sala durante a prova. Caso isto ocorra, o(a) professor(a) terá a opção de acatar ou não as questões respondidas após o retorno do aluno à sala. As provas só podem ser entregues depois de decorridos 45 minutos do tempo de realização. Pedidos de revisão de questões feitas a lápis poderão ser acatados ou não, dependendo do estado do manuscrito de prova. Qualquer pedido de revisão deve ser apresentado por escrito, conforme tiver sido comunicado à turma em sala de aula ou por email. Boa prova a todos! 1. [1 Ponto] Classifique as seguintes gramáticas pela Hierarquia de Chomsky. (Tipo 3: Regular; Tipo 2: Livre de Contexto; Tipo 1 Sensível a Contexto; Tipo 0: Irrestrita) a. Gramática 1 S aa A as B bc C bd D b Tipo 3 (Regular) A ab D bb b. Gramática 2 S as S aabb A ε A aabb Tipo 2 (Livre de contexto) c. Gramática 3 S XYZ S ab B PQ B S Z as Tipo 2 (Livre de contexto) d. Gramática 4 S ε Tipo 3 (Regular) e. Gramática 5 S asb S AB S SC A Ab A a B bb B b bc C C c Tipo 0 (Irrestrita) P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 1

2. [1 Ponto] A Gramática 2 tem duas regras cujos lados direitos são exatamente iguais: S aabb e A aabb. Se eliminássemos a regra A aabb da Gramática 2, geraríamos exatamente a mesma linguagem que a Gramática 2 original gera? (S/N) Por quê? Houve dois tipos de erro nesta questão: 1) Alunos que não perceberam que a retirada da regra A aabb faz a linguagem gerar cadeias muito diferentes. Confiram: Gramática 2 "original" S as S aabb A aabb A ε Gera por exemplo cadeias do tipo a(aa(aa(aabb)bb)bb) que combinadas com as derivações de S as, por exemplo as(as(as(as))), nos permitem ver que o padrão de cadeias da linguagem original é a+(bb)+. Gramática 2 "modificada" S as S aabb A ε Gera por exemplo cadeias do tipo aεbb que combinadas com as derivações de S as, por exemplo as(as(as(as))), nos permitem ver que o padrão de cadeias da linguagem original é a+bb. O que se perde é a recursão de 1 a infinitos 'sufixos' bb ao final das cadeias da linguagem. Teremos sempre um sufixo único bb. 2) Alunos que confundiram o que é uma linguagem ter INFINITAS CADEIAS (que tanto a G2 original garante, quanto a G2 modificada também), com as CADEIAS SEREM "INFINITAS" (i.e. terem tamanho infinito, o que não é possível). TODA CADEIA de TODA linguagem tem de ser FINITA. O que é infinito é o NÚMERO de cadeias da linguagem (cardinalidade do conjunto da linguagem e não o módulo de suas cadeias). Uma "cadeia infinita" seria uma cadeia que não termina nunca de ser derivada (logo, uma contradição com a noção de boa formação gramatical). 3. [1 Ponto] Há autômatos finitos correspondentes às Gramáticas 1 e 5? Caso haja, quais são eles? (Para responder quais são, DESENHE os autômatos cabíveis.) Exemplos de Derivações de G1 As regras S aa, A as e A ab geram aa(as(aa(as(aa(as...aa(ab...)))))) = (aa)+... As regras B bc, C bd, D b e D bb geram...bc(bd(bb(bc(bd(bb...bc(bd(b))))))) = (bbb)+ P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 2

Resposta: qualquer autômato que aceite um número n>1 de aa e m>1 de bbb, (aa)+(bbb)+ Exemplo de autômato correspondente a G1 A G5 é uma Gramática Irrestrita (que contém não apenas regras de transformação estrutural do tipo bc C, como também regras com mais de um não terminal no lado direito da produção, do tipo S AB). Na aula 4, em que tratamos da Hierarquia de Chomsky, foi demonstrado em sala, com o JFLAP, como os autômatos correspondentes a linguagens de tipo mais complexo que as regulares correspondem a autômatos que não são autômatos finitos. Nos slides da aula damos um exemplo, para linguagem livre de contexto. Os autômatos inclusive usam memória auxiliar. Logo, a G5 não tem autômato finito correspondente. Houve quem tentasse apresentar um AF que reconhece cadeias com os mesmos terminais que os terminais das estruturas geradas por G5. O problema -- como discutido em aula -- é que a ESTRUTURA da cadeia no caso da linguagem regular, não tem nada a ver com a ESTRUTURA (árvore ou grafo de derivação) da cadeia no caso da linguagem irrestrita. 4. [1 Ponto] A especificação formal de RECONHECEDORES (mecanismos de decisão sobre se cadeias de símbolos pertencem ou não a determinada linguagem a eles associadas) inclui, centralmente, a especificação de: a. Um estado inicial q0 b. Um conjunto de estados finais F c. Um conjunto Γ de transições na forma de tuplas (q i, σ, q j ) onde i. qi é o estado corrente, em que o autômato se encontra ii. σ é um símbolo lido na fita de entrada iii. q j é o estado destino, para o qual o autômato do reconhecedor transiciona (i.e. vai para ) se lê, na fita de entrada, o símbolo σ Se, na especificação de um autômato A, qualquer, Γ possui duas tuplas iniciadas pelo mesmo estado q i (q i, _, _) e (q i, _, _), onde _ é apenas um marcador genérico da ocorrência de um elemento da tupla (símbolo ou estado) isto é necessariamente um indicador de que A é um autômato não determinístico? (S/N) Por quê? Dica: Tudo o que sabemos é que as duas tuplas em questão começam pelo mesmo estado corrente (q i ). Nada sabemos sobre que símbolos ou que estados destino aparecem nas outras duas posições de cada tupla. P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 3

Não. Para o autômato ser não determinístico, é necessário que haja pelo menos duas tuplas que indicam transição de um mesmo estado para estados diferentes com base no mesmo símbolo de entrada. Ou seja, para ser um indicador de que é um AFND, devem existir pelo menos duas tuplas (q i, σ 1, q j ) e (q i, σ 2, q k ) em Γ tais que σ 1 =σ 2 e q j q k. 5. [1 Ponto] Considere os seguintes trechos de código em Ruby, em que são implementados dois autômatos finitos determinísticos, A1 e A2. P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 4

a. Os dois reconhecem a cadeia aaaab? (S/N) Mostre por que a reconhecem ou não, apresentando a sequência de transições do Autômato A1 e do Autômato A2, ao processarem a cadeia em questão. Sugestão: use uma tabela semelhante à Tabela 1, a seguir. Autômato A1 q0 a <preencha> avança para o Autômato A2 q0 a <preencha> avança para o Autômato A1 q0 a q1 avança para o q1 b q2 Fim da entrada A1 aceita a cadeia aaaab pois a execução termina em q2, que é um estado final, e toda a entrada foi consumida. Autômato A2 q0 a q1 avança para o q1 b q2 Fim da entrada P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 5

A2 aceita a cadeia aaaab pois a execução termina em q2, que é um estado final, e toda a entrada foi consumida. b. A1 reconhece aaaa? E A2? Como aaaa é um prefixo da cadeia do item anterior, podemos usar as mesmas tabelas como base para responder este item. A1 não aceita a cadeia aaaa porque a execução termina em q1, que não é um estado final. A2 aceita a cadeia aaaa, pois termina a sua execução no estado q1, que é final, e consome toda a cadeia de entrada. c. Algum dos dois autômatos reconhece ε? (S/N) Por quê? A2 reconhece ε, pois seu estado inicial q0 é também um estado final. Alguns alunos disseram que nenhum dos dois autômatos reconhece a cadeia vazia porque o símbolo correspondente à cadeia vazia não está definido nas transições de nenhum deles. Ora, não apenas o mero fato de o estado inicial ser também um estado final garante que este autômato aceita qualquer coisa (inclusive a cadeia vazia), como também era esperado que os alunos tivessem estudado as implementações dos autômatos em Ruby, sabendo como representar a cadeia vazia, como oferecê-la como entrada, etc. Este tipo de estudo teria dado noção de como a implementação funciona e como é processada a cadeia vazia. 6. [1 Ponto] Sejam as seguintes linguagens abaixo definidas: L1 contém cadeias w w = a*b + L2 contém cadeias w w = a n b n e n 0 L3 contém cadeias w w {a,b}* L4 contém cadeias w w = (ab)* Assinale se as afirmativas a seguir são verdadeiras (V) ou falsas (F) e diga por quê. (Atenção: a ausência da resposta para por quê implica pontuação nula para o item correspondente.) a. L1 L3 (V/F) Por quê? V. L3 contém todas as cadeias possíveis de serem formadas com o alfabeto {a,b}, o que inclui as cadeias de L1. b. L2 = L4 (V/F) Por quê? F. Contra-exemplos: a cadeia aabb pertence a L2 e não pertence a L4, abab pertence a L4 e não pertence a L2. c. L2 L3 (V/F) Por quê? V. O argumento é o mesmo do item a. d. L3 L4 = (V/F) Por quê? F. Novamente usando o argumento do item (a), todas as cadeias de L4 pertencem a L3, ou seja, L4 L3. Portanto, L3 L4 = L4. P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 6

e. L1 L2 = L3 (V/F) Por quê? F. Contra-exemplo: a cadeia abab não pertence a L1 nem a L2, mas pertence a L3. Comentário: Nesta questão apareceu bastante gente derrapando na notação, confundindo representação de cadeias e concatenações entre elas com a notação de conjuntos de cadeias (e concatenações entre elas). A partir daí, todas as operações sobre conjuntos foram sacrificadas nas resposta. Além disto, houve quem não percebesse que a linguagem L3 é o fechamento reflexivo e transitivo do alfabeto {a,b}, que por definição inclui todas as concatenações possíveis de a s e b s, inclusive a concatenação nula (cadeia vazia), o que tornava a resposta de 4 dos 5 itens da questão 6 extremamente simples e rápida. Recomenda-se fortemente aos alunos que obtiveram menos do 60% da pontuação total desta questão que revisitem os fundamentos de teoria de conjuntos e as definições de fechamento reflexivo e transitivo de um alfabeto de símbolos. 7. [1 Ponto] Construa uma Gramática Regular e um Autômato Finito a ela equivalente que definam uma linguagem L tal que as cadeias que a ela pertencem são formadas de acordo com a expressão x j : j > 0 e j / 3 = n + r para n > 0 e r 0. (Atenção: x é a única letra do alfabeto de L.) Nesta questão, aceitamos diferentes interpretações consistentes apresentadas pelos alunos. Primeira, a de que as cadeias de L são cadeias de j símbolos x para qualquer j múltiplo de 3 (j/3 = n+r j = 3(n+r), sendo n um número Natural maior do que zero e r um Inteiro diferente de zero). Autômato Finito Exemplo 1 Gramática Regular Correspondente S xa A xb B xc B x C xa Segunda, a de que as cadeias L são cadeias de j símbolos x para qualquer j múltiplo de 3 e maior do que 6 (j/3 = n+r j = 3(n+r), sendo n,r números Naturais diferentes de zero). Autômato Finito Exemplo Gramática Regular Correspondente S xa A xb B xc C xd D xe E xe E x P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 7

Alunos que apresentaram autômatos não equivalentes aos acima apresentados e que não mostraram como e por que tais autômatos correspondem a uma interpretação da equação que aparece no enunciado da questão não alcançaram pontuação. Alunos que construíram apenas o autômato ou apenas a gramática e justificaram por que ele ou ela atendem à restrição das cadeias expressa pela equação do enunciado obtiveram 50% dos pontos da questão. 8. [0,5 Pontos] Considere as seguintes linguagens: Lx = {} (uma linguagem vazia) e Ly = {ε} (uma linguagem que contém uma única cadeia, vazia). Qual o conjunto P de produções αβ de cada uma delas? Px = {} Py = { Sε } 9. [1 Ponto] Desenhe os autômatos finitos que reconhecem a seguintes linguagens: Li = (a)* (ab) Lj = (a)*. (b)* Lk = Li Lj L = Li Lj -- o sinal. marca a operação de concatenação Exemplos de autômatos que reconhecem Li ou Exemplos de autômatos que reconhecem Lj ou Autômato que reconhece Lk: é o mesmo de Lj, pois Li Lj Autômato que reconhece L: é o mesmo de Li, pois Li Lj 10. [1,5 Pontos] Defina e explique o que é um autômato não determinístico, fornecendo especificamente: a. A definição em si; Um autômato não determinístico possui no seu conjunto de transições pelo menos duas tuplas (q i, σ, q j ) e (q i, σ, q k ) que possuem o mesmo estado de P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 8

origem q i, mesmo símbolo de entrada σ e dois estados de destino diferentes q j e q k tais que q j q k. b. A especificação completa de um autômato AFND = {Estado_Inicial, Estados_Finais, Transições} que seja não determinístico, aceite a cadeia vazia ε e ilustre a definição apresentada em 10(a); Exemplo de solução: AFND = { q0, {q0,q1,q2}, { (q0,a,q1), (q0,a,q2), (q1,a,q1), (q2,b,q2) } } c. Uma gramática G = {V,Σ,S,P} equivalente à especificação do AFND apresentado em 10(b); e G = { V,Σ,S,P } onde Σ = { a, b } V = { S, A, B, a, b, ε } P = { S aa, S ab, S ε, A aa, A ε, B bb, B ε } d. Um exemplo de como AFND aceita uma cadeia w com w 4, preenchendo uma tabela como ilustrada abaixo. Autômato AFND q0 <preencha> <preencha> avança para o Autômato AFND Cadeia abbb q0 a (clone1) q1 (clone2) q2 avança para o q1 q2 b (clone1) FIM (clone2) q2 (clone2) avança para o -- b -- (clone2) avança para q2 -- q2 (clone2) q2 b -- (clone2) q2 o (clone2) fim da entrada P1 de INF1626 Turma 3WA / 4 de setembro de 2013 de 09:05 às 10:55 horas p. 9