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

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

Linguagens e Máquinas http://www.di.ufpe.br/~if114/ WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE http://www.di.ufpe.br/~wrdo/

Apresentações semelhantes


Apresentação em tema: "Linguagens e Máquinas http://www.di.ufpe.br/~if114/ WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE http://www.di.ufpe.br/~wrdo/"— Transcrição da apresentação:

1 Linguagens e Máquinas http://www.di.ufpe.br/~if114/
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 : e ou λ | λ | = 0 a n Significa uma cadeia de a ‘s de tamanho n. Ex.: a5 = aaaaa a1 = a a0 = λ

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| aman = am+n  m,n  0

10 OPERAÇÕES SOBRE CADEIAS
å * é o conjunto de todas as cadeias sobre o alfabeto å . Ex.: {a,b}* = {e,a,b,aa,ab,ba,bb,…} { a }* = {λ,a,aa,aaa,aaaa,…} = { a n | n ³ 0}. f é o conjunto vazio. f * = {λ} 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 f ® 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, å, d, s0, F), onde: Q é um conjunto finito; os elementos de Q são chamados os estados; å é um conjunto finito; o alfabeto de entrada; d : 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 d (q,a); s0 Î 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, å, d, q0, F) Q = {q0, q1, q2, q3 } å ={ a, b}
d(q0,a) = q1 d(q1,a) = q2 d(q2,a) = d (q3,a) = q3 d(q,b) = q ; q Î { q0, q1, q2, q3 } F = { q3 }

17 TABELA DE TRANSIÇÃO Estados Entradas a b Õq0 q1 q0 q1 q2 q1 q2 q3 q2
q3 F q q3

18 DIAGRAMA DE TRANSIÇÃO b b b a, b a a a q0 q1 q2 q3

19 x Î L(M) x = baaba d(q0,b) = q0 d(q0,a) = q1
d(q1,a) = q2 q3 Î F Þ X Î L(M) d(q2,b) = q2 d(q2,a) = q3

20 x Ï L(M) x = bbaba d(q0,b) = q0 d(q0,a) = q1 q2 Ï F Þ X Ï L(M)

21 EXEMPLO 1 M estará no estado q0 ao ver nenhum a
M estará no estado q1 ao ver um a M estará no estado q2 ao ver dois a’s M estará no estado q3 ao ver três ou mais a’s.

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

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 = d*(q, x), depois de ler x e compute o estado d(p, a). d* e d são iguais em cadeias de tamanho 1. d*(q,a)= d*(q, Îa) a = Îa = d(d*(q,Î), a) por 2, x= Î = d(q,a) por 1.

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

25 EXEMPLO 2 M = (Q, å, d, q0, F) Q = {q0, q1, q2, q3 å = {0, 1}
d (q0 ,1) = q1 d (q1 ,1) = q0 d* (q0, 11) = q0 q0F q q d (q0 ,0) = q2 d* (q0, 110) = q2 q q q d (q2 ,1) = q3 d* (q0, 1101) = q3 q q q d (q3, 0) = q1 d* (q0, 11010)=q1 q q q d (q1 ,1) = q0 d* (q0, )=q0 q0 Î 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. 1 q1 q0 1 1 q2 q3 1

27 EXEMPLO 3 Considere o conjunto {xaaay | x,y Î {a,b}*} a b
q q q0 baabaaab Î L(M) q q q0 babbabab Ï L(M) q q q0 q3 F q q3

28 EXEMPLO 3 Usar os estados para contar o número de a’s consecutivos que vimos. Se você não viu 3 a’s consecutivos e você vê um b, volte para o começo. Uma vez visto 3 a’s consecutivos permaneça no estado de aceitação. b a, b a a a q0 q1 q2 q3 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 q0 q1 q2 1

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 M1 = (Q1, å, d1, s1, F1) M2 = (Q2, å, d2, s2, F2) com L(M1) = A e L(M2) = B Para mostrar que A Ç B é regular, vamos construir o autômato M3 tal que L(M3) = A Ç B .

33 Intuitivamente ... M3 terá os estados de M1 e M2 codificado de alguma maneira no seus estados. Para uma entrada x Î å*, M3 simulará M1 e M2 simultaneamente em x, aceitando x se somente se ambos M1 e M2 aceitarem.

34 Intuitivamente ... M3 terá os estados de M1 e M2 codificado de alguma maneira no seus estados. Para uma entrada x Î å*, M3 simulará M1 e M2 simultaneamente em x, aceitando x se somente se ambos M1 e M2 aceitarem.

35 Formalmente ... Seja M3 = (Q3 , å,d3, s3, F3 ) onde
Q3 = Q1 x Q2 = { (p,q) | p Î Q1 e q Î Q2 } F3 = F1 x F2 = { (p,q) | pÎF1 e qÎF2} s3 = (s1,s2) d3 : Q3 x å ® Q3 a função transição definida por: d3 ( (p,q), a) = (d1(p,a), d2(q,a)) d3* ((p,q)), e ) = (p,q) d3* ((p,q)), xa) = d3 (d3*((p,q),x),a)

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

37 Teorema. L(M3) = L(M1) Ç L(M2)
Prova: Para todo x Î å*, x Î L(M3) Û d3* (s3, x) Î F definição de aceita Û d3* ((s1,s2),x) Î F1 x F2 definição de s3 e F3 Û (d1* (s1,x),d2*(s2,x)) Î F1 x F2 lema Û d1*(s1,x)ÎF1, e d2*(s2,x)ÎF2 definição do x Û x Î L(M1) e x Î L(M2) def. de aceita. Û x Î L(M1) Ç x Î L(M2) 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 = { x Î {0, 1}* | o quinto símbolo da direita para esquerda é 1}
Exemplo 1: A = { x Î {0, 1}* | o quinto símbolo da direita para esquerda é 1} 0,1 Î A Ï A Não - determinístico: - q1 tem duas transições com o símbolo 1. - q6 não tem transições. 0,1 0,1 0,1 1 0,1 q1 q2 q3 q6 q4 q5

41 Exemplo 2 q0 tem duas transições com 0 e duas com 1
q1 não tem transição com 0 q3 não tem transição com 1 0,1 0,1 q3 q4 q0 1 q1 1 q2 0,1

42 Exemplo 2 (cont.) Uma seqüência de entrada a1a2 …an é 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. 01001 é aceita por este autômato pois a seqüência de transições é q0 q0 q0 q3 q4 q4 aceita todos as cadeais com dois 1’s ou dois 0’s consecutivos.

43 Obs.: Autômatos determinísticos são um caso especial de autômatos não determinísticos.
q q q q q q0 q3 q q q q1 q q4 1 1 1 1

44 Definição: Um autômato finito não - determinístico (AFND) é uma 5 - upla (Q,å,d,q0,F) onde Q, å, q0, e F tem o mesmo significado que para autômato finitos determinísticos (AFD) e d é um mapeamento de Q x å ® 2Q. d (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 d do autômato anterior é dada abaixo.
Entrada Estado q0 {q0,q3} {q0, q1} q f {q2 } q {q2 } {q2 } q {q4 } f q {q4 } {q4 }

46 d* : Q x å* ® 2Q 1) d*(q,e) = {q} 2) d*(q,wa) = { p | para algum rÎd*(q,w), pÎd (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 = 01001 d (q0 , 0) = {q0, q3 } d (q0, 01) = d (d (q0, 0), 1) = d ( {q0, q3}, 1) = d (q0 ,1) È d (q3,1) = { q0, q1} d (q0, 010) = { q0, q3 } d (q0, 0100) = {q0, q3, q4 } d (q0, 01001) = {q0, q1, q4 }


Carregar ppt "Linguagens e Máquinas http://www.di.ufpe.br/~if114/ WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE http://www.di.ufpe.br/~wrdo/"

Apresentações semelhantes


Anúncios Google