Autómatos Finitos Determinísticos



Documentos relacionados
Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

Sistemas de Numerações.

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

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

Só Matemática O seu portal matemático FUNÇÕES

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

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

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

Projeto de Máquinas de Estado

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Arquitetura de Rede de Computadores

Orientação a Objetos

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

CAP. I ERROS EM CÁLCULO NUMÉRICO

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

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

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

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Algoritmos e Estrutura de Dados III. Árvores

2. Representação Numérica

ARQUITETURA DE COMPUTADORES

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

LÓGICA DE PROGRAMAÇÃO

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

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

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

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

$XWyPDWRV)LQLWRV'HWHUPLQLVWDV$)' A= (Q, È, G,q 0,F)

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

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

Sistemas de numeração

1. Sistemas de numeração

Projeção ortográfica da figura plana

RELAÇÕES BINÁRIAS Produto Cartesiano A X B

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Aula 2 Modelo Simplificado de Computador

1 Transmissão digital em banda base

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

COMPILADORES E INTERPRETADORES

Capítulo 7 Medidas de dispersão

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

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

Matéria: Matemática Assunto: Divisores e Múltiplos Prof. Dudan

UM TEOREMA QUE PODE SER USADO NA

FUNÇÃO REAL DE UMA VARIÁVEL REAL

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

Diagrama de transição de Estados (DTE)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Autómatos Finitos Determinísticos (AFD)

SISTEMAS DE INFORMAÇÃO PARA GESTÃO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano

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

Faculdade de Computação

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

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

1. Introdução ao uso da calculadora

2aula TEORIA DE ERROS I: ALGARISMOS SIGNIFICATIVOS, ARREDONDAMENTOS E INCERTEZAS. 2.1 Algarismos Corretos e Avaliados

1. CAPÍTULO COMPUTADORES

Projeto de Circuitos. Introdução ao Computador 2008/01 Bernardo Gonçalves

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

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

Contagem I. Figura 1: Abrindo uma Porta.

AULA 5 QUANTIFICADORES, PREDICADOS E VALIDADE

a 1 x a n x n = b,

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

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

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

Programa de Formação Contínua em Matemática para Professores do 1.º e 2.º Ciclos do Ensino Básico. I. Conjuntos

Associação de resistores

Sistemas Numéricos e a Representação Interna dos Dados no Computador

ARQUITETURA DE COMPUTADORES - CONCEITUAL

Organização de programas em Python. Vanessa Braganholo

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Lista de Exercícios Sistemas de Numeração

Informática II Cap. 3

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

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

Projeto e Desenvolvimento de Algoritmos

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

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

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Lista de Exercícios 4: Soluções Sequências e Indução Matemática

(a 1 + a 100 ) + (a 2 + a 99 ) + (a 3 + a 98 ) (a 50 + a 51 ).

Tópico 2. Conversão de Unidades e Notação Científica

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

SISTEMAS DE NUMERAÇÃO

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

Unidade 5: Sistemas de Representação

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Transcrição:

Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades de entrada e saída c) A memória Um Autómato Finito (AF) não é mais do que um computador amputado de algumas partes: a memória e a unidade de saída 1 (ver figura 2.1. Apesar destas limitações os AF permitem resolver problemas importantes, seja no campo das linguagens de programação seja como modelos de processos. Esta folha destina-se a exercitar alguns aspectos dos AFs. Antes de passarmos aos exercícios alguns aspectos importantes que deve ter em conta. a) A definição de Autómato Finito Determinista dada supõe que a função de transição δ é total. Isso significa, entre outras coisas que para todos os estados do autómato e para todos os símbolos do alfabeto de entrada existe uma (e só uma) transição para outro 2 estado; 1 Existem máquinas que produzem saída, os transdutores, como teremos ocasião de ver. 2 Eventualmente o mesmo. 2

Figura 2.1: Autómato Finito como Máquina de Estados b) Como método de construção de um AF, nem sempre é importante considerar desde logo a obrigatoriedade acima referida. Muitas vezes o problema resolve-se nos seus aspectos essenciais deixando alguns estados sem transição para algumas entradas. Essas transições acrescentam-se depois e vão para o mesmo estado único denominado estado ratoeira (trap state). c) A função de transição estendida, δ, materializa a ideia da dinâmica do autómato. 3 d) Não possuindo memória, será possível resolver problemas que envolvam essa característica? Nalguns casos sim! A memória pode estar associada ao estado ou ainda a determinados caminhos envolvendo estados e transições. e) Nalguns problemas, é mais simples desenhar o autómato que reconhece a linguagem complementar e, depois, transformar os estados finais em não finais e vice-versa. f) As linguagens associadas aos autómatos finitos dizem-se regulares. g) Em problemas do tipo Desenhe um autómato que reconheça a linguagem sobre o alfabeto Σ={a 1,a 2,...,a n } cujas palavras têmaca- 3 Esta mesma ideia pode ser capturada através de uma relação binária envolvendo configurações. Uma configuração é um par (estado,palavra). A dinâmica é neste caso dada pelo fecho reflexivo e transitivo da relação binária. 3

racterística x..., o método usual é começar por desenhar a parte do autómato que satisfaz a característica x e depois preocuparmo-nos como o facto de todas as transições terem que estar definidas. h) Um AF pode ser representado por um grafo de transição (também chamado de diagrama de estados) ou por uma tabela de transição. 2.2 Os autómatos finitos como modelos Problema 1 Imagine uma porta automática com duas zonas de sensores (entrada, saída)(ver figura 2.2). Figura 2.2: Porta Automática Modele por meio de um autómato finito o funcionamento da porta automática. Sugestão: comece por identificar as situações possíveis, e os estados do seu autómato. Problema 2 Acontece com frequência a necessidade de determinar a presença de determinado padrão. Suponha que um autómato deve ler uma sequência binária e determinar quais as sequências que contêm um número ímpar de 1 s 4. Como implementaria o seu autómato? 2.3 O método Problema 3 Admita um alfabeto de entrada Σ = {0, 1}. Desenhe um autómato finito determinista sobre este alfabeto, que aceite todas as palavras: a) Com exactamente um 1; 4 Trata-se de um exemplo simples de um detector de paridade ímpar 4

b) Com pelo menos um 1; c) Sem qualquer 1; d) Em que todas as posições ímpares têm um 1; e) Que começam porum1eterminam com um 0; f) Com pelo menos três símbolos, sendo que o terceiro é zero; g) Que não contêm a sequência 110; 2.4 A memória Problema 4 Admita um alfabeto de entrada Σ = {0, 1}. Desenhe um autómato sobre este alfabeto, que aceita a linguagem em que todas as palavras: a) São da forma w 1 01w 2, com w 1 e w 2 {0, 1} ; b) Têm o símbolo inicial e final diferentes; c) Todas as palavras são da forma vwv, com v =2 e v, w {0, 1} ; d) (difícil) Todas as palavras que, quando interpretadas como um número binário, resultam num número x>0, tal que x mod 5 = 0. e) Têm pelo menos dois 1s consecutivos mas não contêm dois 0s consecutivos. f) Que contenha a sequência 0101 2.5 Autómatos e Linguagens Problema 5 Defina, usando a notação de conjuntos, a linguagem aceite pelos autómatos da figura 2.3. Para além disso proponha uma caracterização verbal, simples, dessa linguagem. Problema 6 Seja L uma linguagem num alfabeto Σ e seja a um símbolo do alfabeto. O quociente O quociente L/a de L por a, é a linguagem composta por todas as cadeias w de Σ tais que wa L. Por exemplo, para Σ = {0, 1}, L = {0, 01, 10, 001, 100} e a =0,L/a = {λ, 1, 10}. Dado um autómato finito determinista que aceita L, como se poderá obter um para L/a? 5

Exemplo 1 Exemplo 2 Figura 2.3: Autómatos Finitos Deterministas 2.6 JFLAP: Uma ferramenta simples Problema 7 Implemente no JFLAP os seguintes autómatos e caracterize a linguagem por eles aceite. Pode usar as diferentes funcionalidades do JFLAP para o ajudar na tarefa. Autómato 1 Autómato 2 Figura 2.4: Autómatos Finitos Deterministas Problema 8 Admita um alfabeto de entrada Σ = {0, 1}. Implemente no 6

JFLAP um autómato finito determinista que aceite todas as palavras que não contêm sequências de 0s ou 1s de comprimento inferior a 3. Problema 9 (Moroso) Implemente no JFLAP um autómato finito determinista que aceite a linguagem de composta por todas as palavras em Σ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} tais que a soma dos algarismos da palavra é divisível por 7 (por exemplo λ, 7, 07, 86, 16). Problema 10 Implemente no JFLAP um autómato finito determinista que aceite a palavra TELA com tolerância de um carácter (isto é, também aceita as palavras *ELA, T*LA, TE*A, TEL*, em que * quer dizer qualquer carácter do alfabeto Σ = {a, b,..., z}). Sugestão: Para evitar trabalho repetitivo, poderá considerar um alfabeto mais reduzido. 7