A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Informática Teórica Engenharia da Computação. Autômatos Finitos Operações Regulares Em aritmética, os objetos básicos são números e as ferramentas são.

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação. Autômatos Finitos Operações Regulares Em aritmética, os objetos básicos são números e as ferramentas são."— Transcrição da apresentação:

1 Informática Teórica Engenharia da Computação

2 Autômatos Finitos Operações Regulares Em aritmética, os objetos básicos são números e as ferramentas são operações para manipulá-los, tais como + e. Em aritmética, os objetos básicos são números e as ferramentas são operações para manipulá-los, tais como + e. Na teoria da computação os objetos são linguagens e as ferramentas incluem operações especificamente projetadas para manipulá-las. Na teoria da computação os objetos são linguagens e as ferramentas incluem operações especificamente projetadas para manipulá-las. Definimos três operações sobre linguagens, chamadas operações regulares, e as usamos para estudar propriedades de linguagens regulares. Definimos três operações sobre linguagens, chamadas operações regulares, e as usamos para estudar propriedades de linguagens regulares.

3 Definição Operações Regulares Sejam A e B linguagens. Definimos as operações regulares união, concatenação, e estrela da seguinte forma. Sejam A e B linguagens. Definimos as operações regulares união, concatenação, e estrela da seguinte forma. União: A B = {x | x A ou x B}. União: A B = {x | x A ou x B}. Concatenação: A B = {xy | x A e y B}. Concatenação: A B = {xy | x A e y B}. Estrela: A* = {x 1 x 2...x k | k0 e cada x i A}. Estrela: A* = {x 1 x 2...x k | k0 e cada x i A}.

4 Operações regulares Exemplo Suponha que o alfabeto seja o alfabeto padrão de 26 letras {a, b,..., z}. Se A = {legal, feliz} e B = {garoto; garota}, então Suponha que o alfabeto seja o alfabeto padrão de 26 letras {a, b,..., z}. Se A = {legal, feliz} e B = {garoto; garota}, então A B = {legal, feliz, garoto, garota}, A B = {legal, feliz, garoto, garota}, A B = {legalgaroto, legalgarota, felizgaroto, felizgarota}, e A B = {legalgaroto, legalgarota, felizgaroto, felizgarota}, e A* = {, legal, feliz, legallegal, legalfeliz, felizlegal, felizfeliz, legallegallegal; legallegalfeliz,legalfelizlegal, A* = {, legal, feliz, legallegal, legalfeliz, felizlegal, felizfeliz, legallegallegal; legallegalfeliz,legalfelizlegal, legalfelizfeliz,...}. legalfelizfeliz,...}.

5 Definição Operações Regulares Como linguagens são conjuntos, então todas as operações sobre conjuntos que estudamos em matemática discreta também são válidas para linguagens. Como linguagens são conjuntos, então todas as operações sobre conjuntos que estudamos em matemática discreta também são válidas para linguagens. A novidade aqui foi a operação estrela e a concatenação de conjuntos A novidade aqui foi a operação estrela e a concatenação de conjuntos Vamos estudar a operação estrela com mais detalhes. Vamos estudar a operação estrela com mais detalhes.

6 Definição Potências de um conjunto As potências A n de um conjunto são definidas indutivamente como a seguir: As potências A n de um conjunto são definidas indutivamente como a seguir: A 0 = { } A 0 = { } A n+1 = AA n A n+1 = AA n Em outras palavras, o conjunto A n é formado pela concatenção de n cópias de A. Em outras palavras, o conjunto A n é formado pela concatenção de n cópias de A. Temos também a seguinte propriedade A m+n = A m A n Temos também a seguinte propriedade A m+n = A m A n

7 Definição Potências de um conjunto. Exemplos. {ab,cd} 0 = {ab,cd} 0 = { } { } {ab,cd} 1 = {ab,cd} 1 = {ab,cd} {ab,cd} {ab,cd} 2 = {ab,cd} 2 = {abcd,abab,cdab,cdcd} {abcd,abab,cdab,cdcd} {ab,cd} 3 = {ab,cd} 3 = {ababab,ababcd,abcdab,cdabab,cdcdab, cdcdcd,cdabcd,abcdcd} {ababab,ababcd,abcdab,cdabab,cdcdab, cdcdcd,cdabcd,abcdcd}

8 Definição Operação Estrela A * é a união de todas as potências finitas de A: A * é a união de todas as potências finitas de A: A * = A n, n 0 A * = A n, n 0 A * = A 0 A 1 A 2 A 3 … A * = A 0 A 1 A 2 A 3 … Definimos também A + = AA n = A n, n>0 Definimos também A + = AA n = A n, n>0

9 Propriedades Operação Concatenação { }A = A{ } = A { }A = A{ } = A A = A = A = A = Associatividade: Associatividade: –(AB)C = A(BC)

10 Propriedades Operação Concatenação Distributiva em relação à união: Distributiva em relação à união: –A(B C) = AB BC –(A B)C = AC BC Você acha que a concatenação é distributiva em relação à interseção? Tente construir um exemplo. Você acha que a concatenação é distributiva em relação à interseção? Tente construir um exemplo. Seja A={a,ab}, B={b} e C={ } Seja A={a,ab}, B={b} e C={ } Compute A(B C) e AB AC Compute A(B C) e AB AC

11 Propriedades Operação Estrela A*A* = A* A*A* = A* A** = A* A** = A* A* = { } AA* = { } A*A A* = { } AA* = { } A*A * = { } * = { }

12 Operações Regulares Teorema: A classe de linguagens regulares é fechada sob a operação de união. Teorema: A classe de linguagens regulares é fechada sob a operação de união. Em outras palavras, se A 1 e A 2 são linguagens regulares, o mesmo acontece com A 1 A 2. Em outras palavras, se A 1 e A 2 são linguagens regulares, o mesmo acontece com A 1 A 2. Idéia da Prova: Se A 1 e A 2 são linguagens regulares, então existem AFs M 1 e M 2 que as reconhecem, respectivamente. Idéia da Prova: Se A 1 e A 2 são linguagens regulares, então existem AFs M 1 e M 2 que as reconhecem, respectivamente. Vamos fazer uma prova construtiva, ou seja, vamos construir um AF M, que reconheça A 1 A 2, a partir de M 1 e M 2. Vamos fazer uma prova construtiva, ou seja, vamos construir um AF M, que reconheça A 1 A 2, a partir de M 1 e M 2.

13 Operações Regulares Como vamos construir um AF M, que reconheça A 1 A 2, a partir de M 1 e M 2 ? Como vamos construir um AF M, que reconheça A 1 A 2, a partir de M 1 e M 2 ? Simulando M 1 e M 2 simultaneamente. Simulando M 1 e M 2 simultaneamente. Para controlar ambas as simulações é preciso guardar o estado em que cada máquina estaria se ela tivesse lido até um ponto na entrada. Para controlar ambas as simulações é preciso guardar o estado em que cada máquina estaria se ela tivesse lido até um ponto na entrada. Consequentemente, você precisa guardar um par de estados. Consequentemente, você precisa guardar um par de estados. Quantos pares de estados existem? Quantos pares de estados existem?

14 Operações Regulares Vamos ver um exemplo. Seja M 1 um AF que reconheça as cadeias de bits com um número par de 1s e M 2 reconhece aquelas com um número ímpar de zeros. Vamos ver um exemplo. Seja M 1 um AF que reconheça as cadeias de bits com um número par de 1s e M 2 reconhece aquelas com um número ímpar de zeros. q1q1 q2q q3q3 q4q

15 Operações Regulares Construindo M 1 M 2 Construindo M 1 M 2 q1q1 q2q q3q3 q4q M 1 =(Q 1, 1, 1,q 1,F 1 ), M 2 =(Q 2, 2, 2,q 3,F 2 ) M =(Q 1 Q 2,,,(q 1, q 3 ),F) q 1, q 3 q 1, q q 2, q 3 q 2, q ((r 1, r 2 ),a)=( 1 (r 1,a), 2 (r 2,a)) F= (F 1 Q 2 ) (Q 1 F 2 ) Atenção: Para a linguagem resultante ser a interseção F seria F 1 F 2.

16 Operações Regulares Teorema: A classe de linguagens regulares é fechada sob a operação de concatenação. Teorema: A classe de linguagens regulares é fechada sob a operação de concatenação. Em outras palavras, se A 1 e A 2 são linguagens regulares, o mesmo acontece com A 1 A 2. Em outras palavras, se A 1 e A 2 são linguagens regulares, o mesmo acontece com A 1 A 2. De modo análogo à prova do teorema anterior, vamos construir um autômato M para reconhecer A 1 A 2 a partir de M 1 e M 2. De modo análogo à prova do teorema anterior, vamos construir um autômato M para reconhecer A 1 A 2 a partir de M 1 e M 2. M aceita sua entrada se ela puder ser quebrada em duas partes, onde M 1 aceita a primeira parte e M 2 aceita a segunda parte. M aceita sua entrada se ela puder ser quebrada em duas partes, onde M 1 aceita a primeira parte e M 2 aceita a segunda parte. O problema é que M não sabe onde quebrar sua entrada. Para resolver esse problema introduzimos uma nova técnica chamada não-determinismo. O problema é que M não sabe onde quebrar sua entrada. Para resolver esse problema introduzimos uma nova técnica chamada não-determinismo.


Carregar ppt "Informática Teórica Engenharia da Computação. Autômatos Finitos Operações Regulares Em aritmética, os objetos básicos são números e as ferramentas são."

Apresentações semelhantes


Anúncios Google