Exercícios de Teoria da Computação Autómatos finitos não deterministas



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

HABILITAÇÃO COMPONENTE TITULAÇÃO

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

Autómatos Finitos Determinísticos

Linguagens Formais e Autômatos. Alfabetos, Palavras, Linguagens e Gramáticas

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

UNOESTE - Universidade do Oeste Paulista F I P P - Faculdade de Informática de Presidente Prudente

BCC242. Alfabeto, Strings, Linguagens. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste material.

3. Tipos de Dados, Constantes e Variáveis.

Roteiro da Aula 3. Sintaxe. 2 Exemplos. 4 Propriedades de Fechamento. Teoria da Aula 3. Roteiro

Autómatos finitos não determinísticos (AFND)

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Processamento da Informação Teoria. Algoritmos e Tipos de dados

DGES DIRECÇÃO GERAL DO ENSINO SUPERIOR MINISTÉRIO DA CIÊNCIA, TECNOLOGIA E ENSINO SUPERIOR

Critérios de Avaliação

1 Autómatos finitos deterministas

O que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Algoritmos e Programação de Computadores I. Prof. Eduardo

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

UNOESTE - Universidade do Oeste Paulista F I P P - Faculdade de Informática de Presidente Prudente

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Exercícios de Teoria da Computação Autómatos, gramáticas e expressões regulares

Regulamento do Curso de. Mestrado Integrado em Engenharia Informática

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

Introdução a Algoritmos Parte 04

Instituto Superior Técnico Teoria da Computação - LEIC, LERC 2012/2013 Aula prática 6. 1 Palavras e linguagem gerada por gramática

Gramáticas Livres de Contexto

TÉCNICAS DE PROGRAMAÇÃO 1 ESTRUTURAS DE CONTROLE

Técnico em Informática

Lógica. Everson Santos Araujo

Contagem. George Darmiton da Cunha Cavalcanti CIn - UFPE

PROVA MODELO Duração da prova: 120 minutos

ECO039 Linguagens Formais

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/mesquita/

UNIVERSIDADE DO ESTADO DE SANTA CATARINA CENTRO DE CIÊNCIAS TECNOLÓGICAS CCT. Lista de Exercícios 01.

Requisitos de Titulação Processo Seletivo de Docentes, N.º 064/09/2011

Introdução a Programação

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Programação Funcional. Aula 5. Funções Recursivas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011.

Linguagem algorítmica: Portugol

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Resolução de problemas e desenvolvimento de algoritmos

Aula 10 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

UNIVERSIDADE FEDERAL DE SANTA MARIA

AMBIENTE DE PROGRAMAÇÃO PYTHON

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Fundamentos da Teoria da Computação

1 Descrição do Trabalho

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Introdução a Informática. Prof.: Roberto Franciscatto

Renata de Freitas e Petrucio Viana. IME, UFF 12 de março de 2015

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA DISCUSSÃO DOS EXERCÍCIOS E CONSTRUÇÃO DE PROGRAMAS SEQUENCIAIS. Prof. Dr. Daniel Caetano

ESTRUTURA CONDICIONAL

ESTRUTURAS DE DADOS II

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Sistemas Numéricos Eletrônica Digital PROFESSOR LUCAS KOEPSEL ROSA

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

AULA 6 LÓGICA DOS CONJUNTOS

Linguagens de Programação Algoritmos. Introdução à Programação. Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação

Apostila 03 Linguagens Livres de Contexto

Estruturas Discretas INF 1631

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Introdução à Computação para o Ensino Médio. Centro Técnico Científico

FUNÇÃO REAL DE UMA VARIÁVEL REAL

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Portas Lógicas Básicas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

10/02/2015. As linguagens. Algoritmos e Lógica de programação. Os produtos. Os ingredientes. Introdução. Atuais:.Net Java Delphi PHP

Dadas a base e a altura de um triangulo, determinar sua área.

Outras Máquinas de Turing

Introdução à Lógica de Programação

Lista n 0 1 de Exercícios de Teoria da Computação

AULA TEÓRICA 10 Tema 9. Introdução à programação. Desenho de Algoritmos

Estruturas de Repetição

ICC - Aula 6. Ivan da Silva Sendin. November 17, Bits, portas logicas, flip-flops,... Numeros e Simbolos Exercicios

O VESTIBULAR DA UENF FUNCIONA DA SEGUINTE FORMA:

REGIME DE TRANSIÇÃO DO CURSO DE LICENCIATURA EM MATEMÁTICA APLICADA PARA O CURSO DE LICENCIATURA EM ESTATÍSTICA E APLICAÇÕES

Complexidade de Algoritmos

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

1.1. Organização de um Sistema Computacional

Pró-Reitoria de Ensino de Graduação P L A N O D E E N S I N O

Introdução à Programação e Algoritmos. Aécio Costa

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS

Disciplina A Disciplina B Código Disciplina C/H Curso Disciplina C/H Código Curso Ano do Currículo

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

ÁREA DISCIPLINAR DE CIÊNCIA E TECNOLOGIA DA PROGRAMAÇÃO. Tem sob a sua responsabilidade as seguintes unidades curriculares:

Espectro da Voz e Conversão A/D

Introdução à Engenharia de Computação

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Programação de Computadores III

Transcrição:

Licenciatura em Engenharia Informática e de Computadores - LEIC Licenciatura em Engenharia de Redes de Comunicações - LERC Exercícios de Teoria da Computação Autómatos finitos não deterministas Secção Ciência da Computação Departamento de Matemática Instituto Superior Técnico 2008/2009

1 Linguagens reconhecidas por autómatos finitos não deterministas Considere o seguinte autómato finito não determinista sem movimentos-ɛ A = (Q, I, δ, q 0, F ) Q = {p, q, r} I = {0, 1, 2} δ(p, 0) = {q}, δ(p, 1) = {p, q} δ(p, 2) = {p} δ(q, 1) = {q, r} δ(r, 2) = {r} δ(q, 0) = δ(q, 2) = δ(r, 0) = δ(r, 1) = q 0 = p F = {q, r}. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato A: (i) 11 (ii) 10 (iii) 120 (iv) 212 (v) 2112 (vi) 2212 (vii) 0112 2. Considere o seguinte autómato finito não determinista sem movimentos-ɛ A = (Q, I, δ, q 0, F ) Q = {p, q, r} I = {x, y, z} δ(p, y) = δ(p, z) = δ(q, x) = {p} δ(r, z) = {q} δ(r, y) = {r} δ(p, x) = δ(q, z) = {q, r} δ(q, y) = δ(r, x) = q 0 = p F = {r}. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato A: (i) xy (ii) zx (iii) xxz (iv) yxy (v) 2112 (vi) zyxx (vii) xzxx 3. Considere o autómato finito não determinista A ɛ = ({q 0, q 1, q 2 }, {0, 1, 2}, δ, q 0, {q 2 }) δ 0 1 2 ɛ q 0 {q 0 } {q 1 } q 1 {q 1 } {q 2 } q 2 {q 2 } 2

Verifique se as sequências (i) 00 (ii) 012 (iii) 022 (iv) 122 (v) 2112 fazem parte da linguagem reconhecida por A ɛ e caracterize a linguagem reconhecida pelo autómato. 4. Considere o autómato finito não determinista A ɛ = ({q 0, q 1, q 2, q 3, q 4, q 5 }, {0, 1, a, b}, δ, q 0, {q 5 }) δ 0 1 a b ɛ q 0 {q 1, q 2 } q 1 {q 3 } {q 1 } q 2 {q 4 } {q 2 } q 3 {q 5 } q 4 {q 5 } q 5 Verifique se as sequências (i) 110 (ii) 101 (iii) ba (iv) abb fazem parte da linguagem reconhecida por A ɛ e caracterize a linguagem reconhecida pelo autómato. 5. Verifique se as sequências (i) ɛ (ii) cc (iii) aba (iv) abb fazem parte da linguagem reconhecida pelo autómato A ɛ = ({q 0, q 1, q 2, q 3 }, {a, b, c}, δ, q 0, {q 2, q 3 }) δ a b c ɛ q 0 {q 1 } {q 3 } q 1 {q 1, q 2 } {q 1 } q 2 {q 0 } q 3 {q 3 } e caracterize a linguagem reconhecida por este autómato. 6. Verifique se as sequências (i) ɛ (ii) 01 (iii) 011 (iv) 1aba fazem parte da linguagem reconhecida pelo autómato A ɛ = ({q 0, q 1, q 2, q 3 }, {0, 1, a, b}, δ, q 0, {q 2 }) 3

δ 0 1 a b ɛ q 0 {q 0 } {q 1 } q 1 {q 1 } {q 0 } {q 2 } q 2 {q 3 } {q 2 } q 3 {q 2 } {q 3 } e caracterize a linguagem reconhecida por este autómato. 2 Concepção de autómatos finitos não deterministas Seja L o conjunto das palavras sobre o alfabeto {0, 1} que têm 1 na penúltima posição. (a) Defina um autómato finito não determinista cuja linguagem seja L. (b) Defina um autómato finito determinista cuja linguagem seja L. 2. Seja L o conjunto das das palavras sobre o alfabeto {0, 1} que têm 1 na antepenúltima posição. (a) Defina um autómato finito não determinista cuja linguagem seja L. (b) Defina um autómato finito determinista cuja linguagem seja L. 3. Seja L o conjunto das sequências não vazias de a s, b s e c s nas quais o último símbolo ocorre pelo menos duas vezes em toda a sequência. Defina um autómato finito não determinista cuja linguagem seja L. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato: (i) aca (ii) bbc (iii) abcb 4. Seja L o conjunto das sequências não vazias de a s, b s e c s nas quais o último símbolo ocorre uma única vez em toda a sequência. Defina um autómato finito não determinista cuja linguagem seja L. Verifique se as seguintes sequências fazem parte da linguagem reconhecida pelo autómato: (i) aca (ii) bbc (iii) accb 5. Seja L a linguagem constituída pelas palavras sobre o alfabeto {0, 1, 2} do tipo α 1 α 2 α 3 onde α 1 {0}, α 2 {1} +, α 3 {2} e se α 1 é ɛ então α 2 é Defina um autómato finito não determinista A, com três estados, L A = L. 6. Seja L a linguagem constituída pelas palavras sobre {a, b, c} do tipo αβ onde α é uma sequência não vazia e β {a} + ou β {b} +. Defina um autómato finito não determinista A, com três estados, L A = L. 4

3 Eliminação dos movimentos ɛ (a) Considere o autómato finito não determinista sem movimentos ɛ A = ({q 0, q 1, q 2 }, {0, 1, 2}, δ A, q 0, {q 0, q 2 }) δ A 0 1 2 q 0 {q 0, q 1, q 2 } {q 1, q 2 } {q 2 } q 1 {q 1, q 2 } {q 2 } q 2 {q 2 } Caracterize a linguagem de A e compare-a com a linguagem do autómato finito não determinista do exercício 3 da secção Compare os dois autómatos. (b) Considere o autómato finito não determinista sem movimentos ɛ A = ({q 0, q 1, q 2, q 3, q 4, q 5 }, {0, 1, a, b}, δ A, q 0, {q 5 }) δ 0 1 a b q 0 {q 3, q 5 } {q 1 } {q 4, q 5 } {q 2 } q 1 {q 3, q 5 } {q 1 } q 2 {q 4, q 5 } {q 2 } q 3 q 4 q 5 Caracterize a linguagem de A e compare-a com a linguagem do autómato finito não determinista do exercício 4 da secção Compare os dois autómatos. (c) Proponha um algoritmo que a partir de um autómato finito não determinista, A ɛ, construa um autómato finito não determinista sem movimentos ɛ, A, L A = L A ɛ. 2. Use um algoritmo que conheça para construir autómatos finitos não deterministas sem movimentos ɛ que reconheçam as linguagens dos autómatos finitos não deterministas referidos nos exercícios 3, 4, 5 e 6 da secção 4 Eliminação do não determinismo (a) Seja I = {a, b} e considere os autómatos A = (Q A, I, δ A, q0 A, F A) no qual se tem Q A = {q 0, q 1 }, q0 A = q 0, F A = {q 1 } e δ A a b q 0 {q 0, q 1 } {q 1 } q 1 5

D = (Q D, I, δ D, q D 0, F D) no qual se tem Q D = {q 0, q 1, q 0 q 1, }, q D 0 = q 0, F D = {q 1, q 0 q 1 } e δ D a b q 0 q 0 q 1 q 1 q 1 q 0 q 1 q 0 q 1 q 1 Caracterize as linguagens L A e L D. Compare os autómatos A e D. (b) Seja I = {0, 1, 2} e considere os autómatos A = (Q A, I, δ A, q A 0, F A) no qual se tem Q A = {q 0, q 1, q 2, q 3 }, q A 0 = q 0, F A = {q 3 } e δ A 0 1 2 q 0 {q 1, q 2, q 3 } q 1 {q 1, q 3 } q 2 {q 2, q 3 } q 3 {q 3 } D = (Q D, I, δ D, q D 0, F D) no qual se tem Q D = {q 0, q 3, q 1 q 3, q 2 q 3, q 1 q 2 q 3, }, q D 0 = q 0, F D = {q 3, q 1 q 3, q 2 q 3, q 1 q 2 q 3 } e δ D 0 1 2 q 0 q 1 q 2 q 3 q 3 q 3 q 1 q 3 q 1 q 3 q 3 q 2 q 3 q 3 q 2 q 3 q 1 q 2 q 3 q 1 q 3 q 3 q 2 q 3 Caracterize as linguagens L A e L D. Compare os autómatos A e D. (c) Proponha um algoritmo que a partir de um autómato finito não determinista sem movimentos-ɛ A construa um autómato finito determinista D L D = L A. 2. Use um algoritmo que conheça para construir autómatos finitos deterministas que reconheçam as linguagens dos autómatos finitos não deterministas referidos nos exercícios (a) 1a e 1b. (b) 1 e 2 da secção (c) 1, 2, 3, 4, 5 e 6 da secção 2. 6

5 Reunião, concatenação e fecho de Kleene de linguagens (a) Esboce um algoritmo que a partir de dois autómatos finitos não deterministas A 1 e A 2 construa autómato finito não determinista A L A = L A1 L A2. (b) Usando o algoritmo proposto defina um autómato finito cuja linguagem seja L A1 L A2 em que δ 1 0 1 2 p {p, q} {p} {p} A 1 = ({p, q, r}, {0, 1, 2}, δ 1, p, {r}) e q {r} r {r} {r} {r} A 2 = ({s, t, u, v}, {0, 1, 2}, δ 2, s, {v}) e δ 2 0 1 2 s {t} t {t} {u} u {u} {v} v {v} (c) Usando o algoritmo proposto defina dois autómatos finitos cuja linguagem seja L A1 L A2 onde A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (d) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagem seja L A1 L A2 onde A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (e) Tirando partido do algoritmo proposto defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) não têm a s consecutivos; (ii) têm um número ímpar de c s. (f) Tirando partido do algoritmo proposto defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) têm pelo menos dois a s; (ii) têm um número par de c s. 2. (a) Esboce um algoritmo que a partir de dois autómatos finitos não deterministas A 1 e A 2 construa um autómato finito não determinista A L A = L A1 L A2. (b) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagens sejam, respectivamente, L A1 L A2 e L A2 L A1 onde A 1 e A 2 são os autómatos apresentados no exercício 1b desta secção. 7

(c) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagens sejam, respectivamente, L A1 L A2 e L A2 L A1 onde A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (d) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagens sejam, respectivamente, L A1 L A2 e L A2 L A1 onde A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção 3. (a) Esboce um algoritmo que a partir de um autómato finito não determinista A construa um autómato finito não determinista A L A = (L A ). (b) Usando o algoritmo proposto defina dois autómatos finitos cujas linguagem sejam respectivamente, (L A1 ) e (L A2 ) onde A 1 e A 2 são os autómatos apresentados no exercício 1b desta secção. (c) Usando o algoritmo proposto defina um autómato finito cuja linguagem sejam (L A ) onde A é i. o autómato apresentado no exercício 1 da secção ii. o autómato apresentado no exercício 2 da secção iii. o autómato A ɛ apresentado no exercício 3 da secção iv. o autómato A ɛ apresentado no exercício 5 da secção v. o autómato apresentado no exercício 1b da secção 4. 6 Soma, composição sequencial e iteração de autómatos Construa o autómato soma(a 1, A 2 ) e relacione a linguagem deste autómato com as linguagens dos autómatos A 1 e A 2 em que (a) A 1 e A 2 são os autómatos apresentados no exercício 1b da secção 5. (b) A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (c) A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção 2. Tirando partido da operação de soma de autómatos defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) não têm a s consecutivos; (ii) têm um número ímpar de c s. 3. Tirando partido da operação de soma de autómatos defina um autómato finito cuja linguagem seja o conjunto das sequências de a s e b s e c s que verifiquem pelo menos um dos seguintes requisitos: (i) têm pelo menos dois a s; (ii) têm um número par de c s. 4. Construa o autómato compseq(a 1, A 2 ) e relacione a linguagem deste autómato com as linguagens dos autómatos A 1 e A 2 em que 8

(a) A 1 e A 2 são os autómatos apresentados no exercício 1b da secção 5. (b) A 1 é o autómato apresentado no exercício 1 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção (c) A 1 é o autómato apresentado no exercício 2 da secção 1 e A 2 é o autómato apresentado no exercício 5 da secção 5. Construa o autómato iteração(a) e relacione a linguagem deste autómato com a linguagem do autómato A onde A é (a) o autómato apresentado no exercício 1 da secção (b) o autómato apresentado no exercício 2 da secção (c) o autómato A ɛ apresentado no exercício 3 da secção (d) o autómato A ɛ apresentado no exercício 5 da secção (e) o autómato apresentado no exercício 1b da secção 4. 9