Linguagens e Autômatos

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

Lista de exercícios 1

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

Autómatos de Pilha e Linguagens Livres de Contexto

Alfabeto, Cadeias, Operações e Linguagens

Linguagens Formais e Problemas de Decisão

Modelagem e CLP Linguagens e Expressões Regulares

Linguagens Regulares. Prof. Daniel Oliveira

Fundamentos da Teoria da Computação

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

Aula 7: Autômatos com Pilha

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

Capítulo 1: Alfabetos, cadeias, linguagens

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

IV Gramáticas Livres de Contexto

Histórico e motivaçã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

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

Aula 3: Autômatos Finitos

Linguagens Formais - Preliminares

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

Linguagens Formais e Autômatos

Linguagem (formal) de alfabeto Σ

Modelagem e CLP Autômatos

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

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

Universidade Federal de Alfenas

Revisões de Conjuntos

Linguagens Formais e Autômatos

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

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

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

Linguagens, Reconhecedores e Gramáticas

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Linguagens Formais e Autômatos P. Blauth Menezes

DIAGNOSTICABILIDADE E DIAGNOSE ON-LINE DE FALHAS DE SISTEMA A EVENTOS DISCRETOS MODELADOS POR AUTÔMATOS FINITOS. Thiago Cerqueira de Jesus

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

Modelos de Computação

Folha 2 Autómatos e respectivas linguagens

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

LINGUAGENS FORMAIS E AUTÔMATOS

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

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

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

Como construir um compilador utilizando ferramentas Java

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

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

Universidade Federal de Alfenas

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

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang

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

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos

Máquinas de Turing - Computabilidade

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

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

Expressões Regulares e Gramáticas Regulares

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

I.2 Introdução a Teoria da Computação

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Linguagens Formais e Autômatos P. Blauth Menezes

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

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

Linguagens Formais e Autômatos (LFA)

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 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

Aula 3: 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.

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

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

Aulas 10 e 11 / 18 e 20 de abril

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

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

Prova 1 de INF1626 Linguagens Formais e Autômatos

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

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

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

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

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

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

CONTROLE SUPERVISÓRIO ROBUSTO DE SISTEMAS A EVENTOS DISCRETOS SUJEITOS A PERDAS INTERMITENTES DE OBSERVAÇÃO. Marcos Vinícius Silva Alves

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

Expressões Regulares. Tiago Alves de Oliveira

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

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

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

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

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

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

INF1010 Lista de Exercícios 2

OBTENÇÃO DE BASES MÍNIMAS PARA O DIAGNÓSTICO DE FALHAS DE SISTEMAS A EVENTOS DISCRETOS UTILIZANDO VERIFICADORES. Leonardo Pascoal Motta Santoro

Linguagens Formais e Autômatos (LFA)

Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.

Transcrição:

167657 - Controle para Automação Curso de Graduação em Engenharia de Controle e Automação Departamento de Engenharia Elétrica Universidade de Brasília Linguagens e Autômatos Geovany A. Borges gaborges@ene.unb.br

Conceitos básicos de linguagem para SEDs Linguagens em SEDs: usadas para representar seqüências de eventos Formadas a partir de um alfabeto representado pelo conjunto de eventos E. Seqüência de eventos do alfabeto forma uma palavra (ou string) Algumas interpretações do formalismo: Pode-se construir um sistema que fala uma determinada língua? Que língua este sistema fala? Pode-se alterar o dialeto? Autômato: modelo que permite representar a linguagem de um SED. 1

Conceitos básicos de linguagem para SEDs Definição de linguagem: conjunto de strings de tamanho finito formado a partir de eventos de E. String formado por nenhum evento: ε ε / E mas também ε /. s Comprimento do string s, que é tomado pelo número de eventos que o compõem, mesmo que estejam repetidos. Por convenção, ε = 0. Uma linguagem pode ou não conter ε. Exemplos: sendo E = {a, c, x}, tem-se como exemplos de linguagens L 1 = {ε, a, ccac} L 2 = {conjunto de todos strings de tamanho 3 iniciando com o evento a}. Verifique que L 2 = 9. 2

Conceitos básicos de linguagem para SEDs 2 E : conjunto potência de E, que corresponde ao conjunto de todos os subconjuntos de E. Exemplo: sendo E = {a, c, x} 2 E = {{a}, {c}, {x}, {a, c}, {a,x}, {c, x}, {a, c, x}} Concatenação: abc é resultado da concatenação dos strings a e bc. ε é o operador identidade da concatenação: εs = sε = s para qualquer string s. 3

Conceitos básicos de linguagem para SEDs Fechamento de Kleene: conjunto E formado por todos os strings formados a partir de elementos de E, mas que inclui ε. Sendo E = {a, b} então E = {ε, a, b, aa,ab, ba, bb, aaa,aab, aba,abb, } Pode-se verificar que E = Uma linguagem contruída a partir de E é um subconjunto de E Sendo s = abcd, então define-se a é prefixo de s e v é sufixo ε, b, c,bc, abc,bcd e abcd são substrings de s ε e s são prefixos, sufixos e prefixos de s. 4

Operações com linguagens Pode-se perceber que linguagens são na verdade conjuntos. Portanto, todas as operações de teoria dos conjuntos se aplicam a linguagens. Concatenação: seja L a, L b E, então L a L b := {s E : (s = s a s b ) e (s a = L a ) e (s b = L b )} Fechamento de prefixo: seja L E L := {s E : t E tal que (st L)} que é o conjunto formado por todos os prefixos de todos os strings de L. Linguagem de prefixo fechado: L = L. Se L então ε L. 5

Operações com linguagens Fechamento de Kleene de uma linguagem: seja L E Deve ser observado que (L ) = L. L = {ε} L LL LLL 6

Operações com linguagens Exercício 1: Sendo E = {a, b, g} e as linguagens L 1 = {ε, a, abb} e L 4 = {g}, responda: I. Estas linguagens são de prefixo fechado? II. Determine L 1 L 4, L 4 e L 1 Exercício 2: As afirmativas abaixo são verdadeiras ou falsas? I. baa {a} {b} {a} {b} II. {b} {a} {a} {b} = {a} {b} 7

Operações com linguagens Exercício 3: Considere um buffer de uma porta de comunicação que pode comportar no máximo 2 mensagens que ainda não foram processadas. Considere que o buffer esteja inicialmente vazio, que E = {r, p} com r = mensagem recebida e p = mensagem processada, e que apenas uma mensagem pode ser processada por vez. Determine a linguagem deste sistema. Exercício 4: Considere E = {c,i, f, d} eventos de uma máquina de manufatura: c = chegada de material, i = início do procedimento de corte, f = conclusão do procedimento de corte e d = despacho do material. Considere também que I. não existe limite para o número de materias à espera de processamento II. os materiais são despachados logo após a conclusão do procedimento de corte III. apenas um material pode estar em procedimento de corte por vez Dê exemplos de palavras da linguagem deste processo. 8

Autômato Ferramenta de representação compacta de linguagens em SEDs. Por quê? Tente usar a notação de conjunto para representar uma linguagem tal que L =. Definição informal: 9

Autômato Autômato determinístico: dado pela sextupla G = (X, E, f,γ, x 0, X m ) X: conjunto de estados; E: conjunto finito de eventos associados às transições de G; f : X E X: função de transição, que pode ser parcial. Algumas vezes usa-se a forma recursiva: f(x, ab) = f(f(x, a), b) para a E e b E. Γ : X 2 E : função de eventos ativos (conjunto de eventos factíveis para cada estado). Informação redundante pois pode ser obtida a partir de f; X m X: conjunto de estados marcados. Como fica o modelo do autômato da transparência anterior? 10

Linguagens representadas pelo autômato Linguagem representada pelo autômato G: L(G) := {s E : f(x 0, s) está definido} Linguagem marcada pelo autômato G: L m (G) := {s L(G) : f(x 0, s) X m } Lista de Exercícios: 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11, 2.12 e 2.13. 11

Linguagens representadas pelo autômato Exercício: Modelamento de uma máquina de refrigerantes E = {10,20} X = {x 0, x 10, x 20, x 30, x 40 } em que X m = {x 40 } Limitações do modelo? Solução usando autômato evento/saída. 12

Equivalência de Autômatos G 1 e G 2 são ditos equivalentes se L(G 1 ) = L(G 2 ) e L m (G 1 ) = L m (G 2 ). Exemplo de autômatos equivalentes: 13

Bloqueio Se um autômato atingir um estado x para o qual Γ(x) = e x / X m, então tem-se uma situação de deadlock. Se existir um sub-conjunto de estados não marcados de tal forma que, se um deles for alcançado, não existe evento que faça o autômato sair do sub-conjunto de estados, então tem-se uma situação de livelock. Um autômato é dito bloqueável se L m (G) L(G) e não-bloqueável se L m (G) = L(G) 14

Bloqueio Exemplo: o que dizer a respeito do string ag? O que dizer dos estados 3 e 4? 15

Autômato não-determinístico Característica principal de autômatos não-determinísticos: dois ou mais estados podem estar ativos simultaneamente. Situações de uso: Quando não se sabe ao certo qual estado o sistema se encontra após ocorrido um evento (problema de observabilidade) O símbolo ε pode vazer parte explícita do conjunto de eventos Definição: um autômato não-determinístico é dado pela sextupla G nd = (X, E {ε}, f nd,γ, x 0, X m ) com f nd : X E {ε} 2 X e x 0 X podendo x 0 1. 16

Autômato não-determinístico Exemplo: determine L(G nd ) e L m (G nd ) para o autômato abaixo: Um equivalente determinístico pode ser o autômato seguinte: 17

Autômato observador Definição: sendo G nd um autômato não-determínstico. G obs é um autômato determinístico equivalente a G nd ; G obs desempenha o mesmo papel de um observador de estados G nd = (X,E {ε}, f nd, Γ, x 0, X m ) = G obs = (X obs, E, f obs, Γ, x 0,obs, X m,obs ) 18

Autômato observador Exemplo de um autômato observador: 19

Autômato observador Algoritmo de obtenção do autômato observador (interpretação do livro-texto): I. Prepare uma tabela para representar candidatos x obs 2X versus eventos e E. Deixe algumas linhas em branco para novos estados. Preencha as primeiras linhas apenas com os estados do conjunto X. II. Dermine novos estados candidatos x obs = f nd(x, eε n ), com n = 0, 1,2,..., em função do evento e. Observe que os novos estados x obs são conjuntos. III. Partindo de cada x obs obtido de x 0, gere novos estados candidatos buscando fazer uso, na medida do possível, da seguinte propriedade: f nd (x obs, eε n ) = x x obs f nd (x, eε n ) com n = 0,1, 2,.... IV. Partindo de x 0, determine x 0,obs = f nd (x 0, ε n ). Monte o autômato mantendo apenas os estados candidatos x obs dentre os x obs alcancáveis a partir de x 0,obs. Será marcado todo estado x obs que possuir entre seus elementos um estado marcado do conjunto inicial X m. 20

Autômato observador Exemplo: obtenha um autômato observador para o G nd abaixo. 21

Autômato observador Exercício: obtenha um autômato observador para o G nd abaixo (Fig. 2.24, pp113). 22

Autômato observador Exercício: problema 2.29 (pp128). Substituir a por ε. 23

Autômato com entradas e saídas Autômato de Moore: autômato com saídas associadas aos estados. 24

Autômato com entradas e saídas Autômato de Mealy: autômato com arcos rotulador por evento de endrada/ evento de saída. 25

Estimação de estados e diagnóstico O autômato observador nada mais é do que um estimador de estados para sistemas em que nem todos os eventos são detectáveis. Se todos os eventos são mensuráveis, então G obs = G. Uma interpretação para ε em um autômato não-determinístico: eventos não observáveis (não mensuráveis, ou não detectáveis ou simplesmente não modelados). Partição de E: E = E o E u com E o representando os eventos observáveis e E u os eventos não observáveis. Problema do diagnóstico: por meio de obervações de E o, determinar, com certeza ou não, a ocorrência de eventos de E u. Será considerado apenas o caso de diagnosticar a ocorrência um único evento e d E u. 26

Estimação de estados e diagnóstico Algoritmo de obtenção do autômato diagnosticador G diag para o evento e d : mesmos procedimentos usados para a construção do autômato observador, mas com as alterações seguintes: Alteração 1: no passo 2 do algoritmo para obter G obs Associe o rótulo N para estados que podem ser alcançados a partir de x 0 por strings de [E u \{e d }] ; Associe o rótulo Y para estados que podem ser alcançados a partir de x 0 por strings de [E] que contenham pelo menos uma ocorrência de e d ; Se existir um estado x que pode ser alcançado a partir de x 0 por strings de [E] com e sem a ocorrência de e d, então cria-se dois estados candidatos de G diag : xn e xy. Alteração 2: Aplique as regras do algoritmo original para obtenção de G obs, mas procurando aplicar as regras da Alteração 1 acima. Propague Y : qualquer novo estado derivado do estado zy deve conter também o rótulo Y, indicando que e d já ocorreu desde a condição inicial. 27

Estimação de estados e diagnóstico Exercício: construir G diag para o G nd abaixo considerando E u = {e d, u, v} (Fig. 2.24). 28

Referências 29