Autômatos Finitos Determinís3cos (AFD)

Documentos relacionados
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

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

BCC242. Auômato Finito Determinístico

Autômatos de Pilha (AP)

Variações de Máquinas de Turing

LR's: Lema do Bombeamento e Propriedades de Fechamento

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. Autômatos Finitos Determinísticos (AFD)

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

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

Máquinas de Estados Finitos

Máquinas de Turing (MT)

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

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

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

Linguagens Regulares. Prof. Daniel Oliveira

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

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

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

Linguagens Formais e Autômatos Apresentação da Disciplina

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Aula 7: Autômatos com Pilha

Fundamentos da Teoria da Computação

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Linguagens Formais e Autômatos P. Blauth Menezes

Gramá3ca Livre de Contexto (GLC)

Teoria da Computação. Máquinas Universais Máquina com Pilhas

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

Autómatos Finitos Determinísticos (AFD)

Autômatos Finitos e Não-determinismo

Linguagens Formais e Autômatos (LFA)

LLC's: Lema do Bombeamento e Propriedades de Fechamento

Aula 9: Máquinas de Turing

Aula 3: Autômatos Finitos

Linguagens Formais e Problemas de Decisão

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

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Aula 3: Autômatos Finitos

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

Fundamentos da 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.

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

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

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Autômatos finitos não-determinísticos

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

Como construir um compilador utilizando ferramentas Java

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

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

SCC 205 Teoria da Computação e Linguagens Formais

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

Linguagens recursivamente enumeráveis

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

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

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Máquinas de Turing - Computabilidade

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

Teoria da Computação. Máquinas Universais Máquina de Turing

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

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

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

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.

Universidade Federal de Alfenas

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

Introdução a Computação

Linguaguens recursivamente enumeráveis e recursivas

Máquina de Turing. Controle finito

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

Linguagens Formais e Autômatos P. Blauth Menezes

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

a n Sistemas de Estados Finitos AF Determinísticos

PCC104 - Projeto e Análise de Algoritmos

Linguagens Formais e Autômatos

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

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

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

Teoria da Computação

Linguagens Formais e Autômatos Decidibilidade

Transcrição:

Linguagens Formais e Autômatos Autômatos Finitos Determinís3cos (AFD) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira)

Introdução Exemplos Sumário Autômatos Finitos Determinís>cos (AFD)

INTRODUÇÃO Linguagens Formais e Autômatos

Introdução O que são máquinas de estado-finito? São máquinas abstratas que capturam as partes essenciais de algumas máquinas concretas Essas máquinas são conhecidas como autômatos finitos Embora existam máquinas mais poderosas, as máquinas de estado-finito são adequadas tanto do ponto de vista teórico quanto prá>co Permitem modelar um amplo espectro de máquinas, como máquinas mecânicas, eletrônicas, de solware,...

Introdução Existem dois >pos de máquinas de estado-finito Transdutores: Os transdutores são máquinas com entrada e saída Reconhecedores: Os reconhecedores (ou aceitadores) de linguagens são máquinas também com entrada e saída, mas aceita somente duas saídas possíveis: aceitação ou rejeição da entrada

Introdução As linguagens reconhecidas por máquinas de estado-finito são denominadas linguagens regulares Existem duas notações úteis para a especificação de linguagens regulares: expressões regulares e gramá3cas regulares Uma máquina de estado-finito possui uma memória limitada, que é organizada exclusivamente em torno do conceito de estado

EXEMPLOS Linguagens Formais e Autômatos

Exemplos Para introduzir os principais conceitos e a terminologia associada a autômatos finitos, serão u>lizados três exemplos simples Um quebra-cabeças Um problema de matemá>ca Um elevador

Modelagem Mas antes de entrar na solução, é preciso fazer uma modelagem do problema, na qual a) As informações relevantes são iden>ficadas (abstração) b) As informações relevantes são estruturadas (representadas) de forma a facilitar a solução Menos informações = solução mais fácil/eficiente

Modelagem O problema pode ser visto como Estado: fotografia da realidade Transição: mudança de um estado para outro provocado por uma ação Solução: sequência de ações que levam de um estado inicial a um estado final Um diagrama de estados representa o espaço de estados e transições através de um grafo Estados: vér>ces do grafo Inicial: seta que o aponta Final: oval dupla Transição: aresta de e para e' com rótulo s

Quebra-Cabeças Problema: O leão, o coelho e o repolho Um homem, um leão, um coelho e um repolho devem atravessar um rio usando uma canoa, com a restrição de que o homem deve transportar no máximo um dos três de cada vez de uma margem à outra. Além disso, o leão não pode ficar na mesma margem que o coelho sem a presença do homem, e o coelho não pode ficar com o repolho sem a presença do homem. O problema consiste em determinar se é possível fazer a travessia.

Quebra-Cabeças Modelagem Abstração: informações relevantes a) Em um dado instante, em que margem do rio estão o homem, o leão, o coelho e o repolho? b) A sequência de movimentações entre as margens que propiciou a situação indicada em (a) Representação: das informações a) A {h,l, c,r} representa que os elementos em A estão na margem esquerda e os em {h,l, c,r} A na margem direita b) a 0 a 1...a n representa uma palavra em que cada a i pode ser s,l,c,r representa a sequência de movimentos até a solução

Quebra-Cabeças Modelagem Estado: um subconjunto de Inicial: Final: {h,l, c,r} {} Transição: Uma das ações Solução: Uma palavra do alfabeto A {h,l,c, r} s,l,c,r Σ = {s,l, c, r}

Quebra-Cabeças Diagrama de estados do quebra-cabeças Dada w {s,l,c,r} * w é reconhecida se o caminho correspondente vai do estado inicial ao estado final w é rejeitada caso contrário

Quebra-Cabeças Durante o processamento de w pode se obter uma configuração instantânea [e, y], onde e: o estado atual após processar um prefixo de w y: o sufixo ainda não processado (Assim w = xy) Com isso pode-se definir a relação, onde [e 1, w] [e 2, y] se existe uma transição de e 1 para e 2 sob a e w = ay Exemplo de computação [{l, r}, sllr] [{h,l,r},llr] [{r},lr] [{h,l,r},r] [{l}, λ]

Quebra-Cabeças O autômato finito para esse quebra-cabeças possui as seguintes caracterís>cas Para cada transição existe uma transição inversa Há um único estado final Para cada par (estado, símbolo) existe, no máximo, uma transição (determinismo) O conjunto de estados é finito O único mecanismo de memória para AFD's é o conjunto de estados

Problema da Matemá>ca Problema: binário divisível por 6 Seja o problema de projetar uma máquina que, dada uma sequência de 0s e 1s, determine se o número representado por ela na base 2 é divisível por 6. O que se deseja é um projeto independente de implementação, ou seja, que capture apenas a essência de tal máquina, não importando se ela será mecânica, eletrônica, um programa ou o que quer que seja.

Problema da Matemá>ca Modelagem Suponha que η(x) é o número representado pela palavra x na base binária A palavra x0 é 2η(x) A palavra x1 é 2η(x) +1 Sabendo que η(x) mod 6 = r, então η(x0) mod 6 = 2r mod 6 η(x1) mod 6 = (2r +1) mod 6

Problema da Matemá>ca Modelagem Estado: um para cada resto (0 a 5) Inicial: estado 0 Final: estado 0 Transição: do estado cujo resto é r emanam 2 transições Sob 0: para o estado correspondente a 2r mod 6 Sob 1: para o estado correspondente a (2r+1) mod 6 Solução: Um número na base 2

Problema da Matemá>ca Diagrama de estados do problema da matemá>ca

Elevador Problema: simular o funcionamento de um elevador Modelar um elevador des>nado a servir a um prédio de três andares, sa>sfazendo: a) caso não haja chamada, o elevador fica parado onde es>ver b) o elevador dá prioridade ao chamado mais próximo no sen>do em que es>ver se movimentando c) um chamado do elevador pode ser desligado manualmente. Assim, por exemplo, é possível exis>r uma chamada para um andar em certo instante e, logo em seguida, não exis>r mais, sem que o elevador se mova

Elevador Modelagem Informações relevantes para o problema O andar em que o elevador se encontra O sen>do em que o elevador está se movendo Os andares em que o elevador está sendo solicitado A ação do elevador: subir, descer ou ficar imóvel Outras informações sobre o funcionamento do elevador Se o elevador está sendo chamado para o andar em que já está ele fica parado O elevador dá preferência para o sen>do em que está se movendo

Modelagem Estado: 1, 2, 2, 3 Elevador Captura duas informações importantes: o andar atual do elevador e o sen>do do movimento Não tem o conceito de estado inicial e final Transição: Andares que estão solicitando o elevador Solução: Saída com todos os movimentos realizados pelo elevador, e Chamada de Máquina de Mealey

Elevador Diagrama de estados do problema do elevador

Elevador O problema do elevador tem uma configuração instantânea [e, x, y], em que e: é o estado atual x: é um sufixo a ser processado y: é uma sequência de saídas emi>das até o momento Exemplo de computação [1,{2,3}{1,3}{1}, λ] [2,{1,3}{1}, ] [3,{1}, ] [2, λ, ]

AUTÔMATOS FINITOS DETERMINÍSTICOS (AFD) Linguagens Formais e Autômatos

Autômatos Finitos Determinís>cos Um autômato finito determinís>co (AFD) é uma quíntupla (E, Σ,δ,i, F) em que E é um conjunto finito não vazio de estados Σ é um alfabeto δ : E Σ E é uma função de transição (função total) i E é o estado inicial F E é o conjunto de estados finais

Propriedades de AFD's Determinismo: Cada par (estado, símbolo) leva a um único estado; a par>r do estado inicial, só é possível a>ngir um único estado para uma palavra de entrada Função de transição total: para toda palavra de entrada, a>nge-se um estado consumindo-se toda a palavra Um único estado inicial: ter mais de um estado inicial não aumenta o poder computacional Vários estados finais: com apenas um estado final, o poder computacional é menor Conjunto finito de estados: com conjunto infinito de estados, o poder computacional é maior

AFD's de Exemplo AFD para o problema do quebra-cabeças

AFD's de Exemplo AFD para o problema da matemá>ca

AFD's Simplificados Se não existe transição de e sob a no diagrama de estados, então existe um estado e' (estado de erro) tal que Existe uma transição de e para e' sob a e' não é um estado final Existe um transição de e' para e' sob cada símbolo do alfabeto Um diagrama sem os estados de erros é chamado de diagrama simplificado

Função de Transição Estendida A função de transição estendida : E Σ * E para um AFD M = (E, Σ,δ,i, F) definida recursivamente como a) δ^(e, λ) = e b) δ^ (e, ay) = δ^ (δ(e, a), y), a Σ, y Σ * δ^ Exemplo de transição para o problema da matemá>ca A função de transição estendida pode ser usada para definir a linguagem aceita ou reconhecida por um AFD

Linguagens Reconhecidas A linguagem aceita (reconhecida) por um AFD M = (E, Σ,δ,i, F) é o conjunto L(M ) = {w Σ * δ^(i, w) F} Uma determinada palavra w = Σ * é dita ser reconhecida por M se a função de transição estendida do estado i sob a palavra w chega a um estado final F: δ^(i, w) F

Algoritmo para AFD's Existe um algoritmo simples para simular um AFD Qual a complexidade desse algoritmo?

Aplicação Uma aplicação clássica de AFD's é para a análise léxica em compiladores Um exemplo de autômato para literais numéricos

AFD's Equivalentes Dois AFD's M 1 e M 2 são ditos equivalentes se, e somente se, L(M 1 ) = L(M 2 ) Logo faz sen>do perguntar Existe um AFD mais eficiente (em termos de?) para reconhecer uma linguagem? É possível criar um AFD, par>r de AFD's M 1 e M 2 que reconheça L(M 1 ) L(M 2 ) L(M 1 ) L(M 2 ) L(M 1 ) L(M 2 ) L(M 1 )L(M 2 ) L(M 1 ) * Para ambas as perguntas a resposta é SIM!

Exercícios Desenvolva AFD's que reconheçam as seguintes linguagens sob Σ = {0,1} a) Toda palavra possui um número ímpar de 1s e um número ímpar de 0s b) Toda palavra possui pelo menos uma ocorrência de 00 c) Toda palavra possui exatamente duas ocorrências de 00 d) Toda palavra é tal que toda ocorrência de 1 é imediatamente seguida por um número ímpar de 0s

ISSO É TUDO PESSOAL! Linguagens Formais e Autômatos