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

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

WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE

Apresentações semelhantes


Apresentação em tema: "WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE"— Transcrição da apresentação:

1 WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE

2 Ementa Bibliografia Introdução Autômatos Finitos Expressões Regulares Gramáticas Regulares Equivalência entre os modelos Propriedades de Linguagens Regulares Gramáticas Livre de Contexto Autômatos a Pilha Máquina de Turing Autômatos Linear - Bounded Linguagens Sensíveis ao Contexto A Hierarquia de Chomsky Introduction to Automata Therory, Languages and Computation John E. Hopcroft, Jeffrey D. Ulman. Notas de Teoria da Computação: Benedito M. Acioly e Benjamin R.C. Bedregal. Disponível Eletronicamente em

3 Motivação O objetivo do curso é entender os fundamentos da computação. O que significa uma função ser computável Existem funções não - computáveis Como a capacidade computacional depende das estruturas de programação

4 Conceitos Estado Transição Não - Determinismo Redução

5 Modelos de Computação Autômato Finito, Expressões Regulares Autômato a Pilha Autômatos Lineares Limitados Máquinas de Turing Hierarquia de Chomsky Linguagens e Gramáticas Regulares Linguagens e Gramáticas Livre de Contexto Linguagens e Gramáticas Sensível ao Contexto Linguagens e Gramáticas sem Restrição

6 Definições Preliminares Símbolo - letras e dígitos Alfabeto - Conjunto finito de símbolos Ex: = { 0,1,2,…,9} = {a,b,c,…,z} = {0,1 } cadeia (string) (sobre ): qualquer seqüência finita de elementos de. Ex.: = { a,b } aabab, bb, abab Notação: x, y, z.

7 tamanho de uma Cadeia x é o número de símbolos em x. Notação: | x | Ex: | aabab | = 5 | abab | = 4 Cadeia Vazia : ou λ | λ | = 0 a n Significa uma cadeia de a s de tamanho n. Ex.:a 5 = aaaaa a 1 = a a 0 = λ

8 Concatenação de x com y é gerar uma cadeia xy colocando x junto de y. obs.: xy yx Ex: x = aa y = bb xy = aabb yx = bbaa

9 Propriedades da Concatenação Monóide Associatividade (xy) z = x (yz) Identidade da Cadeia Vazia λ x = x λ = x |xy| = | x| + | y| a m a n = a m+n m,n 0

10 OPERAÇÕES SOBRE CADEIAS * é o conjunto de todas as cadeias sobre o alfabeto. Ex.: {a,b}* = {, a,b,aa,ab,ba,bb,…} { a }* = {λ, a,aa,aaa,aaaa,…} = { a n | n 0}. é o conjunto vazio. * = {λ} por definição.

11 Diferença entre cadeias e conjuntos. {a,b} = {b,a}, mas ab ba {a,a,b} = {a,b}, mas aab ab conjunto com nenhum elemento; vazio. {λ} conjunto com 1 elemento, a cadeia vazia. λ cadeia vazia, que não é conjunto.

12 ESTADO O Estado de um sistema é uma descrição do sistema; uma fotografia da realidade congelada no tempo. Um estado dá todas as informações relevantes necessárias para determinar como o sistema pode evoluir a partir daquele ponto.

13 TRANSIÇÕES São mudanças de Estados: Expontâneas Em resposta a uma entrada externa Instantâneas Exemplos de sistemas de transições de estado: Circuitos Eletrônicos Relógios Digitais Elevadores O jogo da vida

14 Sistemas de Transições de Estados Finitos: Consiste de somente vários estados finitos e transições sobre estes estados. Modelado através de Autômatos Finitos

15 AUTÔMATOS FINITOS autômato finito determinístico : M = (Q,,, s 0, F), onde: Q é um conjunto finito; os elementos de Q são chamados os estados; é um conjunto finito; o alfabeto de entrada; : Q x Q é a função de transição. Se M estar no estado Q e vê a entrada a, o autômato vai para o estado (q,a); s 0 Q é o estado inicial; F Q; os elementos de F são os estados finais ou estados de aceitação.

16 EXEMPLO 1 M = (Q,,, q 0, F) Q = {q 0, q 1, q 2, q 3 } ={ a, b} (q 0,a) = q 1 (q 1,a) = q 2 (q 2,a) = (q 3,a) = q 3 (q,b) = q ; q { q 0, q 1, q 2, q 3 } F = { q 3 }

17 TABELA DE TRANSIÇÃO Estados Entradas a b Õ q 0 q 1 q 0 q 1 q 2 q 1 q 2 q 3 q 2 q 3 F q 3 q 3

18 DIAGRAMA DE TRANSIÇÃO q0q0 q1q1 q2q2 q3q3 a a a b b b a, b

19 x L(M) x = baaba (q 0,b) = q 0 (q 0,a) = q 1 (q 1, a) = q 2 q 3 F X L(M) (q 2,b) = q 2 (q 2,a) = q 3

20 x L(M) x = bbaba (q 0,b) = q 0 (q 0,a) = q 1 q 2 F X L(M) (q 1,b) = q 1 (q 1,a) = q 2

21 EXEMPLO 1 M estará no estado q 0 ao ver nenhum a M estará no estado q 1 ao ver um a M estará no estado q 2 ao ver dois as M estará no estado q 3 ao ver três ou mais as.

22 FUNÇÃO DE TRANSIÇÃO GENERALIZADA * : Q x * Q * (q, ) = q (1) * (q, xa) = ( * (q,x), a)(2) * Mapeia um estado q e uma cadeia x em um novo estado * (q, x). * É uma versão de múltiplos passos de.

23 observações Eq.1 é a base da indução e diz que sem ler um símbolo de entrada o autômato não pode mudar de estado. Eq. 2 é o passo da indução e diz como encontrar o estado depois de ler uma cadeia não-vazia xa. encontre o estado, p = * (q, x), depois de ler x e compute o estado (p, a). * e são iguais em cadeias de tamanho 1. * (q,a)= * (q, a) a = a = ( * (q, ), a) por 2, x= = (q,a) por 1.

24 ACEITAÇÃO DE CADEIAS uma cadeia x é aceita por M se * (s 0, x) F e rejeitada por M se * (s 0, x) F conjunto ou linguagem aceita por M L(M) = { x * | * (s 0, x) F} A * é REGULAR se A = L(M) para algum autômato finito M. {x {a,b)* | x contém pelo menos três as} é um conjunto REGULAR.

25 EXEMPLO 2 M = (Q,,, q 0, F) Q = {q 0, q 1, q 2, q 3 = {0, 1} F = {q 0 } x = (q 0,1) = q (q 1,1) = q 0 * (q 0, 11) = q 0 q 0 F q 2 q 1 (q 0,0) = q 2 * (q 0, 110) = q 2 q 1 q 3 q 0 (q 2,1) = q 3 * (q 0, 1101) = q 3 q 2 q 0 q 3 (q 3, 0) = q 1 * (q 0, 11010)=q 1 q 3 q 1 q 2 (q 1,1) = q 0 * (q 0, )=q 0 q 0 F x L(M)

26 EXEMPLO 2 L(M) é o conjunto de cadeias com um número par de zeros e um número par de uns. q2q2 q1q1 q3q3 q0q

27 EXEMPLO 3 Considere o conjunto {xaaay | x,y {a,b}*} a b q 0 q 1 q 0 baabaaab L(M) q 1 q 2 q 0 babbabab L(M) q 2 q 3 q 0 q 3 F q 3 q 3

28 EXEMPLO 3 Usar os estados para contar o número de as consecutivos que vimos. Se você não viu 3 as consecutivos e você vê um b, volte para o começo. Uma vez visto 3 as consecutivos permaneça no estado de aceitação. q0q0 q1q1 q2q2 q3q3 b aa a a, b b b

29 EXEMPLO 4 Considere o conjunto {x {o,1}* | x representa um múltiplo de 3 em binário}. zeros na frente são permitidos representa o número zero binário decimal

30 EXEMPLO 4 q0q0 q1q1 q2q

31 Propriedades das Linguagens Regulares Para A, B * temos as seguintes definições: A B = { x | x A ou x B} A B = { x | x A e x B} ~A = { x * | x A} Mostraremos que para A e B regulares: A B, A B e ~A também são regulares.

32 A Construção do Produto Assuma que A e B são regulares, logo existem autômatos M 1 = (Q 1,, 1, s 1, F 1 ) M 2 = (Q 2,, 2, s 2, F 2 ) com L(M 1 ) = A e L(M 2 ) = B Para mostrar que A B é regular, vamos construir o autômato M 3 tal que L(M 3 ) = A B.

33 M 3 terá os estados de M 1 e M 2 codificado de alguma maneira no seus estados. Para uma entrada x *, M 3 simulará M 1 e M 2 simultaneamente em x, aceitando x se somente se ambos M 1 e M 2 aceitarem. Intuitivamente...

34 M 3 terá os estados de M 1 e M 2 codificado de alguma maneira no seus estados. Para uma entrada x *, M 3 simulará M 1 e M 2 simultaneamente em x, aceitando x se somente se ambos M 1 e M 2 aceitarem. Intuitivamente...

35 Formalmente... Seja M 3 = (Q 3,, 3, s 3, F 3 ) onde Q 3 = Q 1 x Q 2 = { (p,q) | p Q 1 e q Q 2 } F 3 = F 1 x F 2 = { (p,q) | p F 1 e q F 2 } s 3 = (s 1,s 2 ) 3 : Q 3 x Q 3 a função transição definida por: 3 ( (p,q), a) = ( 1 (p,a), 2 (q,a)) * ((p,q)), ) = (p,q) 3 * ((p,q)), xa) = 3 ( 3 * ((p,q),x),a)

36 Lema: Para todo x *, 3 * ((p,q)), x) = ( * 1 (p,x), * 2 ((q, x)) Prova: Por indução em |x| Base: Para |x| = 0, i.e., x = 3 ((p,q)), ) = (p,q) = ( 1 (p, ), 2 ((q, )). Passo: Assumindo que o lema é válido para x *, mostraremos que é válido para xa, onde a. 3 ((p,q)), xa) = 3 ( 3 ((p,q), x), a) Def. de 3 = 3 ( ( 1 (p, x), 2 (q, x) ), a) hipótese da ind. = ( 1 ( 1 (p, x), a), 2 ( 2 (q, x) a) Def. de 3 = ( 1 (p, xa), 2 (q, xa) ) Def. de 1 e 2 q.e.d.

37 Teorema. L(M 3 ) = L(M 1 ) L(M 2 ) Prova: Para todo x *, x L(M 3 ) 3 (s 3, x) F 3 definição de aceita 3 ((s 1,s 2 ),x) F 1 x F 2 definição de s 3 e F 3 ( 1 (s 1,x), 2 (s 2,x)) F 1 x F 2 lema 1 (s 1,x) F 1, e 2 (s 2,x) F 2 definição do x x L(M 1 ) e x L(M 2 ) def. de aceita. x L(M 1 ) x L(M 2 ) def. de interesse q.e.d.

38 Para mostrar que ~A é Regular: Tome o autômato aceitando A e torne os estados finais com os não-finais. O autômato resultante aceita exatamente o que o autômato original rejeita, logo o conjunto ~A A B = ~ ( ~A ~B)

39 AUTÔMATO FINITO NÃO-DETERMINÍSTICO O próximo estado não é necessariamente unicamente determinado pelo estado atual e pelo símbolo de entrada. Podemos ter zero, uma ou mais transições de estado com o mesmo símbolo de entrada.

40 A A Não - determinístico: - q 1 tem duas transições com o símbolo 1. - q 6 não tem transições. q3q3 q1q1 q2q2 q4q4 q5q5 q6q6 1 0,1 Exemplo 1: A = { x {0, 1}* | o quinto símbolo da direita para esquerda é 1}

41 Exemplo 2 q 0 tem duas transições com 0 e duas com 1 q 1 não tem transição com 0 q 3 não tem transição com 1 q1q1 q2q2 0,1 1 1 q0q0 q3q3 q4q4 0 0

42 Exemplo 2 (cont.) Uma seqüência de entrada a 1 a 2 …a n é aceita por um autômato finito não determinístico se existe uma seqüência de transições, correspondendo a seqüência de entrada, que leva do estado inicial algum dos estados finais é aceita por este autômato pois a seqüência de transições é q 0 q 0 q 0 q 3 q 4 q 4 aceita todos as cadeais com dois 1s ou dois 0s consecutivos.

43 Obs.: Autômatos determinísticos são um caso especial de autômatos não determinísticos. q 0 q 0 q 0 q 0 q 0 q 0 q 3 q 1 q 3 q 3 q 1 q 4 q

44 Definição: Um autômato finito não - determinístico (AFND) é uma 5 - upla (Q,,,q 0,F) onde Q,, q 0, e F tem o mesmo significado que para autômato finitos determinísticos (AFD) e é um mapeamento de Q x 2 Q. (q, a) é o conjunto de todos os estados p tal que existe uma transição (com o símbolo a) de q para p.

45 A função do autômato anterior é dada abaixo. Entrada Estado 0 1 q 0 {q 0, q 3 } {q 0, q 1 } q 1 {q 2 } q 2 {q 2 } {q 2 } q 3 {q 4 } q 4 {q 4 } {q 4 }

46 : Q x * 2 Q 1) (q, ) = {q} 2) (q,wa) = { p | para algum r (q,w), p (r, a)} Começando em q e lendo a cadeia w seguida do símbolo a nós podemos estar no estado p sss um estado possível de se estar após ler w é r e de r podemos ir para p lendo a.

47 X = (q 0, 0) = {q 0, q 3 } (q 0, 01) = ( (q 0, 0), 1) = ( {q 0, q 3 }, 1) = (q 0,1) (q 3,1) = { q 0, q 1 } (q 0, 010) = { q 0, q 3 } (q 0, 0100) = {q 0, q 3, q 4 } (q 0, 01001) = {q 0, q 1, q 4 }


Carregar ppt "WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE"

Apresentações semelhantes


Anúncios Google