Fundamentos da Teoria da Computação

Documentos relacionados
Fundamentos da Teoria da Computação

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

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

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

Conceitos básicos de Teoria da Computação

Linguagens Formais e Problemas de Decisão

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

Lista de exercícios 1

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

Como construir um compilador utilizando ferramentas Java

Histórico e motivação

Autómatos Finitos Determinísticos (AFD)

Linguagens Formais e Autômatos P. Blauth Menezes

Autômatos Finitos Não Determinís5cos (AFN)

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Autómatos de Pilha e Linguagens Livres de Contexto

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

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

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

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

LR's: Lema do Bombeamento e Propriedades de Fechamento

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

IBM1088 Linguagens Formais e Teoria da

Conceitos Preliminares

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

Linguagens Formais e Autômatos P. Blauth Menezes

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

Linguagens Formais - Preliminares

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

Conceitos Preliminares

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

Aula 7: Autômatos com Pilha

Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares

SCC 205 Teoria da Computação e Linguagens Formais

Modelos de Computação

Alfabeto, Cadeias, Operações e Linguagens

Máquinas de Turing - Computabilidade

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

Linguagem (formal) de alfabeto Σ

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

Universidade Federal de Alfenas

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

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

BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal.

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

Linguagens Regulares. Prof. Daniel Oliveira

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

Expressões regulares

1 INTRODUÇÃO E CONCEITOS BÁSICOS

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

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

Autômatos de Pilha (AP)

Aula 3: Autômatos Finitos

Gramáticas e Linguagens Independentes de Contexto

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

Linguagens Não-Regulares

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

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

Expressões Regulares e Gramáticas Regulares

Aula 8: Gramáticas Livres de Contexto

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

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

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

Aulas 10 e 11 / 18 e 20 de abril

Propriedades das Linguagens Livres do Contexto

Revisões de Conjuntos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos

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

LINGUAGENS FORMAIS E AUTÔMATOS

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

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

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

Universidade Federal de Alfenas

Linguagens e Autômatos

Linguagens Formais e Autômatos P. Blauth Menezes

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

Linguagens Regulares, Operações Regulares

Autômatos Finitos Determinís3cos (AFD)

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

Linguagens e Programação Automátos Finitos. Paulo Proença

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

Prova 1 de INF1626 Linguagens Formais e Autômatos

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

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

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

Capítulo 2: Máquinas de Estados Finitos. Modelagem do problema. Quebra-cabeças. Newton José Vieira, Isabel Gomes Barbosa. 19 de agosto de 2010

Linguagens Formais e Autômatos P. Blauth Menezes

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

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

Transcrição:

Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Doutorando em Ciência da Computação Estagiário em docência II Departamento de Ciência da Computação Universidade Federal de Minas Gerais 29/03/2012 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 1 / 47

1) Faça definições recursivas das seguintes linguagens, considerando a concatenação como a operação básica no passo recursivo: 1 a) A = {0, 1} +. 0, 1 A Se x A então 0x A e 1x A 1 Veja a Seção 1.7, pág. 28, do livro-texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 2 / 47

1) Faça definições recursivas das seguintes linguagens, considerando a concatenação como a operação básica no passo recursivo: 2 b) A = {0, 1} {0}{0, 1}. 0 A Se x A então 0x A, 1x A, x0 A e x1 A 2 Veja a Seção 1.7, pág. 28, do livro-texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 3 / 47

1) Faça definições recursivas das seguintes linguagens, considerando a concatenação como a operação básica no passo recursivo: 3 c) A = {0}{0, 1} {0}. 00 A Se 0x0 A então 0x00, 0x10 A 3 Veja a Seção 1.7, pág. 28, do livro-texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 4 / 47

1) Faça definições recursivas das seguintes linguagens, considerando a concatenação como a operação básica no passo recursivo: 4 d) A = {0 n 1 3n n N}. λ A Se x A Então 0x111 A 4 Veja a Seção 1.7, pág. 28, do livro-texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 5 / 47

1) Faça definições recursivas das seguintes linguagens, considerando a concatenação como a operação básica no passo recursivo: 5 e) A = {ww R w {0, 1} }. λ A Se x A Então 0x1 A e 1x0 A 5 Veja a Seção 1.7, pág. 28, do livro-texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 6 / 47

1) Faça definições recursivas das seguintes linguagens, considerando a concatenação como a operação básica no passo recursivo: 6 f) {x 1 + + x n n 1 e x i {0, 1} + para i = 1,..., n}. A = x i = {0, 1} + 0, 1 A Se x A Então 0x A e 1x A B = {x 1 + + x n n 1} A B Se y B Então ya B 6 Veja a Seção 1.7, pág. 28, do livro-texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 7 / 47

2) Perguntinhas a) Que palavras tem cada uma das linguagens a seguir? ; λ + ; nenhuma {λ} ; λ {λ} + ; λ {0} ; {0 n n 0} {0} + ; {0 n n > 0} {λ, 0} ; {λ} {0 n n 1} {λ, 0} +. {λ} {0 n n 1} 7 7 Exemplo 47 do livro texto. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 8 / 47

2) Perguntinhas b) Que palavras tem cada uma das linguagens a seguir? Em que situações L e L + são finitas? L = ou L = λ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 9 / 47

2) Perguntinhas c) Seja Σ um alfabeto. Explique que palavras pertencem a cada uma das linguagens: Σ n para cada n 0; que valor tem Σ n? (Σ {λ}) n para cada n 0; que valor tem (Σ {λ}) n? Σ n para cada n 0; que valor tem Σ n? = {w w = n}; n = n. (Σ {λ}) n para cada n 0; que valor tem (Σ {λ}) n? ( {λ}) n = {w 0 w n}; ( {λ}) n = n k=0 ( k ); Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 10 / 47

2) Perguntinhas d) Sejam Σ = {a, b}, A = {a}σ + e B = Σ {b}. Apresente uma condição necessária e suficiente para que uma palavra de Σ pertença a AA, AB, BB, A B, A B e B A. AA = {a}σ + {a}σ + = ayay y contém pelo menos um a ou b AB = {a}σ + Σ {b} = aya y {a, b} + BB = Σ {b}σ {b} = ybyb y {a, b} A B = {a}σ + Σ {b} = conjunto de palavras que começam com a e terminam com b A B = {a}σ + Σ {b} começa com a e termina com a B A= Σ {b} {a}σ + termina e começa com b. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 11 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. a) O conjunto das palavras de prefixo 01. {01} {0, 1} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 12 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. b) O conjunto das palavras que não contêm 01 como sufixo. {0, 1} - {01} {0, 1} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 13 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. c) O conjunto das palavras que não contêm 01 como subpalavra. {0, 1} - {0, 1} {01} {0, 1} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 14 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. d) O subconjunto das palavras de {0} {1} com número par de 0s. {00} {1} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 15 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. e) O conjunto das palavras com no máximo vinte símbolos. {0, 1}n n 20 {0, 1, λ} 20 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 16 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. f) O conjunto das palavras que contêm pelo menos um 0 e um 1. {0, 1} 0 {0, 1} 1 {0, 1} {0, 1} 1 {0, 1} 0 {0, 1} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 17 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. g) O conjunto das palavras em que todo 0 é seguido de pelo menos dois símbolos. {1 {00 11}} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 18 / 47

3) Descreva as linguagens a seguir, todas sobre o alfabeto {0, 1}, usando apenas conjuntos finitos e operações de união, interseção complementação, concatenação e fecho de Kleene. Procure obter uma descrição bem concisa. h) O conjunto das palavras que contêm pelo menos um 00, mas nenhum 11. {0, 1} 00{0, 1} - {0, 1} {11}{0, 1} Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 19 / 47

4) Identifique as linguagens que são geradas pelas gramáticas a seguir: a) G 1 = ({P, X}, {a, b}, R 1, P). R 1 : P ap Xb λ X ap P ap apb λ a n b m n m 0 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 20 / 47

4) Identifique as linguagens que são geradas pelas gramáticas a seguir: b) G 2 = ({P, X}, {a, b}, R 2, P). R 2 : P aap Xb λ X ap P aap apb λ a (2n+k) b k n, k 0 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 21 / 47

4) Identifique as linguagens que são geradas pelas gramáticas a seguir: c) G 3 = ({P, A}, {0, 1}, R 3, P). R 3 : P apa A A bab λ a n b m b m a n n, m 0 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 22 / 47

4) Identifique as linguagens que são geradas pelas gramáticas a seguir: d) G 4 = ({A, X}, {0, 1}, R 4, A). R 4 : A XAX X X 0X0 1X1 0 1 {w 1, w 2,..., w n } tal que n seja impar e w palindrome. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 23 / 47

4) Identifique as linguagens que são geradas pelas gramáticas a seguir: e) G 5 = ({X, B}, {a, b, c}, R 5, X). R 5 : X abx abc Ba ab Bb bb Bc bcc abx ababc aabbc aabbc aabbcc a n b n c n n > 1 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 24 / 47

5) Obtenha gramáticas para as linguagens da questão 1. a) {0, 1} +. G 5 a = ({P}, {0, 1}, R 1, P) 8. R 1 : P 0 1 0P 1P 8 Procure usar todas as notações Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 25 / 47

5) Obtenha gramáticas para as linguagens da questão 1. b) {0, 1} {0}{0, 1}. P B0B 0 B 0B 1B λ Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 26 / 47

5) Obtenha gramáticas para as linguagens da questão 1. c) {0}{0, 1} {0}. P 0B0 B λ 0B 1B Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 27 / 47

5) Obtenha gramáticas para as linguagens da questão 1. d) {0 n 1 3n n N}. P λ 0P111 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 28 / 47

5) Obtenha gramáticas para as linguagens da questão 1. e) {ww R w {0, 1} }. P λ 0P0 1P1 Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 29 / 47

5) Obtenha gramáticas para as linguagens da questão 1. f) {x 1 + + x n n 1 e x i {0, 1} + para i = 1,..., n}. P XP X X 0 1 0X 1X Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 30 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. a) O conjunto das palavras de prefixo 01. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 31 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. b) O conjunto das palavras que não contêm 01 como sufixo. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 32 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. c) O conjunto das palavras que não contêm 01 como subpalavra. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 33 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. d) O subconjunto das palavras de {0} {1} com número par de 0s. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 34 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. e) O conjunto das palavras com no máximo vinte símbolos. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 35 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. f) O conjunto das palavras que contêm pelo menos um 0 e um 1. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 36 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. g) O conjunto das palavras em que todo 0 é seguido de pelo menos dois símbolos. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 37 / 47

6) Construa autômatos finitos determinísticos (AFDs) que reconheçam as linguagens da questão 3. Apresente apenas os diagramas de estados. h) O conjunto das palavras que contêm pelo menos um 00, mas nenhum 11. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 38 / 47

7) Construa AFDs que reconheçam as linguagens a seguir. Apresente apenas os diagramas de estados. a) {w {0, 1} w 2 e o primeiro e o penúltimo símbolos de w são 1}. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 39 / 47

7) Construa AFDs que reconheçam as linguagens a seguir. Apresente apenas os diagramas de estados. b) {w {0, 1} o último símbolo de w é diferente do primeiro}. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 40 / 47

7) Construa AFDs que reconheçam as linguagens a seguir. Apresente apenas os diagramas de estados. c){w {0, 1} os três últimos símbolos de w não são 000}. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 41 / 47

7) Construa AFDs que reconheçam as linguagens a seguir. Apresente apenas os diagramas de estados. d) {x10 n n 0, x {0, 1} e x tem número par de 0s}. Antes do último 1 é necessário ter um número par de 0. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 42 / 47

8 Faça AFDs que reconheçam: X = {0}{0, 1}. e Y = {0, 1} {1}. Bastam apenas os diagramas de estados. Em seguida, obtenha o produto dos dois AFDs e explicite que estados finais ele deve ter para reconhecer: Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 43 / 47

Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 44 / 47

8 Faça AFDs que reconheçam: X = {0}{0, 1}. e Y = {0, 1} {1}. Bastam apenas os diagramas de estados. Em seguida, obtenha o produto dos dois AFDs e explicite que estados finais ele deve ter para reconhecer: X Y. Estado final em x e y X Y. Estado final em x ou y X Y. Estado final em x e não é estado final em y Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 45 / 47

9) Explique porque se um AFD M reconhece uma palavra de tamanho maior ou igual ao número de estados de M, então L(M) é infinita. O automato precisa possuir um loop, logo pode-se passar por esse loop infinitas vezes. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 46 / 47

Obrigado pela atenção. Contato: http://www.dcc.ufmg.br/ mariano sergiomariano@gmail.com ou mariano@dcc.ufmg.br eventuais erros, gentileza informar por e-mail. Sérgio Mariano Dias (UFMG) Fundamentos da Teoria da Computação 29/03/2012 47 / 47