47
WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE http://www.di.ufpe.br/~wrdo/ http:// www.di.ufpe.br/ ~if114/

WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Embed Size (px)

Citation preview

Page 1: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

WILSON ROSA DE OLIVEIRADEPARTAMENTO DE INFORMÁTICA

UFPE

http://www.di.ufpe.br/~wrdo/

http://www.di.ufpe.br/~if114/

Page 2: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

http:/www.di.ufpe.br/~if114

Page 3: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

Page 4: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Conceitos

• Estado

• Transição

• Não - Determinismo

• Redução

Page 5: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Modelos de Computação

•Autômato Finito, Expressões Regulares•Autômato a Pilha•Autômatos Lineares Limitados•Máquinas de Turing

Hierarquia de ChomskyHierarquia 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

Page 6: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Definições PreliminaresSímbolo - letras e dígitosAlfabeto - Conjunto finito de símbolosEx: = { 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, ababNotação: x, y, z.

Page 7: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.: a5 = aaaaa a1 = a

a0 = λ

Page 8: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

Page 9: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

Page 10: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 11: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 12: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 13: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

Page 14: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

Page 15: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

AUTÔMATOS FINITOS

autômato finito determinístico :M = (Q, , , s0, 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);

• s0 Q é o estado inicial;

• F Q; os elementos de F são os estados finais ou estados de aceitação.

Page 16: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

EXEMPLO 1

M = (Q, , , q0, F)

Q = {q0, q1, q2, q3 }

={ a, b} (q0,a) = q1

(q1,a) = q2

(q2,a) = (q3,a) = q3

(q,b) = q ; q { q0, q1, q2, q3 }

F = { q3 }

Page 17: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

TABELA DE TRANSIÇÃO

Estados Entradas a b

q0 q1 q0

q1 q2 q1

q2 q3 q2

q3 F q3 q3

Page 18: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

DIAGRAMA DE TRANSIÇÃO

q0 q1 q2 q3

a a a

b b b a, b

Page 19: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

x L(M)

x = baaba(q0,b) = q0

(q0,a) = q1

(q1,a) = q2 q3 F X L(M)

(q2,b) = q2

(q2,a) = q3

Page 20: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

x L(M)

x = bbaba(q0,b) = q0

(q0,b) = q0

(q0,a) = q1 q2 F X L(M)

(q1,b) = q1

(q1,a) = q2

Page 21: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 22: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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 .

Page 23: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 24: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

ACEITAÇÃO DE CADEIAS•uma cadeia x é aceita por M se

*(s0, x) F

•e rejeitada por M se *(s0, x) F

• conjunto ou linguagem aceita por M L(M) = { x * | * (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.

Page 25: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

EXEMPLO 2

M = (Q, , , q0, F)

Q = {q0, q1, q2, q3

= {0, 1}F = {q0 }

x = 110101 (q0 ,1) = q1

0 1 (q1 ,1) = q0 * (q0, 11) = q0

q0F q2 q1 (q0 ,0) = q2 * (q0, 110) = q2

q1 q3 q0 (q2 ,1) = q3 * (q0, 1101) = q3

q2 q0 q3 (q3, 0) = q1 * (q0, 11010)=q1

q3 q1 q2 (q1 ,1) = q0 * (q0, 110101)=q0

q0 F x L(M)

Page 26: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

EXEMPLO 2•L(M) é o conjunto de cadeias com um número par de zeros e um número par de uns.

q2

q1

q3

q00

0 1

10

1

0

1

Page 27: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

EXEMPLO 3Considere o conjunto {xaaay | x,y {a,b}*}

a b q0 q1 q0 baabaaab L(M)

q1 q2 q0 babbabab L(M)

q2 q3 q0

q3 F q3 q3

Page 28: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

q0 q1 q2 q3

b

a a a

a, b

bb

Page 29: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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 decimal0 011 3110 61001 9

1100 121111 1510010 18

Page 30: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

EXEMPLO 4

q0 q1 q21

10

0

0 1

Page 31: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 32: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

A Construção do Produto

• Assuma que A e B são regulares, logo existem autômatos

M1 = (Q1, , 1, s1, F1)

M2 = (Q2, , 2, 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 .

Page 33: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

• 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.

Intuitivamente ...

Page 34: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

• 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.

Intuitivamente ...

Page 35: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Formalmente ...

• Seja M3 = (Q3 , ,3, s3, F3 ) onde

Q3 = Q1 x Q2 = { (p,q) | p Q1 e q Q2 }

F3 = F1 x F2 = { (p,q) | pF1 e qF2}

s3 = (s1,s2)

3 : Q3 x Q3 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)

Page 36: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 37: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Teorema. L(M3) = L(M1) L(M2)

Prova: Para todo x *, x L(M3)

3 (s3, x) F3 definição de aceita

3 ((s1,s2),x) F1 x F2 definição de s3 e F3

(1 (s1,x),2

(s2,x)) F1 x F2 lema

1(s1,x)F1, e 2

(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.

Page 38: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

• 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)

Page 39: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 40: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

11010010 A 11000010 A

Não - determinístico:- q1 tem duas transições com o símbolo 1.

- q6 não tem transições.

q3q1 q2 q4 q5q6

10,1

0,1

0,1 0,10,1

Exemplo 1:A = { x {0, 1}* | o quinto símbolo da

direita para esquerda é 1}

Page 41: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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

q1

q2

0,1

1

1

0,1

q0q3

q4

0 00,1

Page 42: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

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.

Page 43: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Obs.: Autômatos determinísticos são um caso especial de autômatos não determinísticos.

q0 q0 q0 q0 q0 q0

q3 q1 q3 q3 q1

q4 q4

1

1

0010

0

0

0010

Page 44: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

Definição: Um autômato finito não - determinístico (AFND) é uma 5 - upla (Q,,,q0,F) onde Q, , q0, e F tem o mesmo significado que para autômato finitos determinísticos (AFD) e é um mapeamento de Q x 2Q.

(q, a) é o conjunto de todos os estados p tal que existe uma transição (com o símbolo a) de q para p.

Page 45: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

A função do autômato anterior é dada abaixo.

Entrada Estado 0 1

q0 {q0,q3} {q0, q1}

q1 {q2 }

q2 {q2 } {q2 }

q3 {q4 }

q4 {q4 } {q4 }

Page 46: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

: Q x * 2Q

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.

Page 47: WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE wrdo/ if114

X = 01001 (q0 , 0) = {q0, q3 }

(q0, 01) = ( (q0, 0), 1)

= ( {q0, q3}, 1)

= (q0 ,1) (q3,1)

= { q0, q1}

(q0, 010) = { q0, q3 }

(q0, 0100) = {q0, q3, q4 }

(q0, 01001) = {q0, q1, q4 }