Você está na página 1de 60

Linguagens Formais

Profa. Andria Gentil Bonfante

17/12/2012

Autmatos e Linguagens Linguagens Regulares


O que um computador? Mais complicado do que imaginamos
a ponto de permitir-nos elaborar, a partir dele, uma teoria matemtica computador idealizado (modelo computacional)
2
17/12/2012

TC e Ling. Formais

Autmato Finito
Bons modelos para os computadores
porm com memria limitada

No entanto, faz coisas muito teis


faz parte de diversos dispositivos eletromecnicos
3
17/12/2012

TC e Ling. Formais

Exemplo: Controle de uma porta automtica

Sensor frontal

Sensor traseiro

17/12/2012

TC e Ling. Formais

Diagrama de Estados
Atrs Ambos Nenhum Fechado Frente Aberto Nenhum
Sinal de entrada Nenhum Estado Fechado Aberto Fechado Fechado Frente Aberto Aberto Atrs Fechado Aberto Ambos Fechado Aberto
TC e Ling. Formais

Frente Atrs Ambos

17/12/2012

Porta Automtica
vantajoso pensar na porta como um autmato
Dois estados 1 bit de memria capaz de gravar em qual dos dois estados o controlador est

17/12/2012

TC e Ling. Formais

Autmatos Finitos Viso Matemtica


O que so? O que podem fazer? Podemos ter essa noo atravs do estudo do modelo terico

17/12/2012

TC e Ling. Formais

Autmato Finito M1
0 1 q1 q2 0,1 1 0 q3

17/12/2012

TC e Ling. Formais

Cont.
Figura um diagrama de estados
Trs estados: q1, q2, q3 Estado Inicial: q1 (seta) Estado final (aceitao): q2 (2 circ.) Transies: setas de um estado para outro
9
17/12/2012

TC e Ling. Formais

Cont.
Recebida uma cadeia, comea a processar a partir do estado inicial Produz com sada
cadeia aceita cadeia no aceita
10
17/12/2012

TC e Ling. Formais

Implementaes
Jflap
http://www.jflap.org/

Dynalab FSA
www.cs.montana.edu/~dynalab/fsa/fsa.html

Automaton Simulator
www.users.csbsju.edu/~cburch/proj/fasim/

Deterministic Machine Simulator


www.cs.virginia.edu/~sgd2z/uva/theory/project/

Finite State Machine Explorer


11

www.belgarath.demon.co.uk/java/fsme.html
17/12/2012

TC e Ling. Formais

Definio Formal de um AF
Um autmato uma 5-tupla (Q, , , q0, F)
Q o conjunto finito de estados o alfabeto (conjunto finito de smbolos) a funo de transio Q x Q q0 o estado inicial F Q o conjunto de estados aceitveis
12
17/12/2012

TC e Ling. Formais

0 q1 Qual a definio formal do exemplo?


Q = {q1, q2, q3} = {0, 1} q0 = q1 F = {q2}
13

1 q2 q3 0,1 1 q2 q2 q2
TC e Ling. Formais

Definio Formal do Exemplo M1 1 0

q1 q2 q3
17/12/2012

0 q1 q3 q2

Linguagem do Autmato M
L(M) = A
A o conjunto de todas as cadeias reconhecidas pelo AF M A a linguagem de M
M reconhece/aceita A

14

17/12/2012

TC e Ling. Formais

Definio Formal de Computao


Considere
O autmato M = (Q, , , q0, F) E = 123... , uma cadeia sobre

M aceita se houver uma seqncia de estados r0, r1, ..., r em Q tal que
r0 = q0 (ri, i+1) = ri+1 para i = 0, ..., -1 r F
15
17/12/2012

TC e Ling. Formais

Definio Formal de Computao


Diz-se que um autmato M reconhece a linguagem A se...
A = { | M aceita }

Linguagem regular
Se e somente se um autmato finito a reconhece
16
17/12/2012

TC e Ling. Formais

Autmato
Pode aceitar vrias cadeias, mas s reconhece uma linguagem
Se aceitar nenhuma cadeia? Reconhece a linguagem vazia ()

17

17/12/2012

TC e Ling. Formais

1 1 0 q2 q3 0,1

Linguagem
q1

Qual a linguagem reconhecida pelo AF ao lado?

A = {w | w contm pelo menos um 1}


18
17/12/2012

TC e Ling. Formais

Exerccio1

0 1 q1 q1 q2 q2 q1 q2

Desenhe o AF da definio que se segue


M2 =({q1, q2}, {0, 1}, , q1, {q2})

Qual a linguagem que M2 reconhece?


19
17/12/2012

TC e Ling. Formais

Exerccio2
Dado o AF, defina-o formalmente Qual a linguagem que M3 reconhece?
0 1 q1 0
20
17/12/2012

1
q2
TC e Ling. Formais

Exerccio 3
Defina o AF M4 e descreva a linguagem reconhecida por ele
a q1 b a b
21

b a s a
17/12/2012

r1 a b r2
TC e Ling. Formais

q2

Descreva, em Exerccio 4 portugus, o que ele Construa um AF M5 tal que reconhece!! Q = {q0, q1, q2}
= {0, 1, 2, <RESET>} q0 = q0 F = {q0}
(qj, 0) = qj (qj, 1) = qk | k = j + 1 mod 3 (qj, 2) = qk | k = j + 2 mod 3 (qj, <RESET>) = q0
17/12/2012

22

TC e Ling. Formais

RespExer4

0,RESET

q0 1

1, RESET

0 q2

2, RESET 1

q1 0

cadeia
10<RESET>212<RESET>012

M aceita ??? L(M) = { | soma dos smbolos em mltiplo de 3, exceto pelo <RESET>, que reinicia o contador em 0}
23
17/12/2012

TC e Ling. Formais

Exerccio 5
Construa um autmato finito que reconhece L
= {0, 1} L(M) = { | 001 seja sub-cadeia de }

24

17/12/2012

TC e Ling. Formais

No-determinismo
At ento, apenas um caminho a seguir a cada evento
Ao ler o prximo smbolo, sabido o estado-destino

Em alguns autmatos, possvel ter vrias escolhas em um ponto


25
17/12/2012

TC e Ling. Formais

No-determinismo
Diferenas visuais Autmato Finito Determinstico (sigla em ingls: DFA) tem apenas um arco de sada para cada smbolo; Autmato Finito No Determinstico (sigla em ingls: NFA) pode ter 0, 1 ou vrios Em um DFA, os rtulos dos arcos so smbolos do alfabeto; no NFA pode ser o
26
17/12/2012

TC e Ling. Formais

No-determinismo
0,1 1 q1 q2 0, q3 1 q4

0,1

Exemplo: com movimentos vazios

27

17/12/2012

TC e Ling. Formais

Como um NFA computa?


Cadeia= 010110

0
q1 q1

1
q3 q2 q1

0
q3 q1
0,1

1
q4 q3 q2 q1

1
q4 q4 q3 q2 q1

0
q4 q4

0,1 1 q1 q2 0, q3 1

q3 q1

q4

28

17/12/2012

TC e Ling. Formais

Como um NFA computa?


O que acontece com a cadeia 010110?
NFA duplica-se, e cpias computam em paralelo (0) Volta para q1 (1) fica em q1 e sai para q2; sai pra q3 (0) fica em q1 sai de q2 para q3 e remove q3 ...

29

17/12/2012

TC e Ling. Formais

Como um NFA computa?


E com a cadeia 010?

30

17/12/2012

TC e Ling. Formais

Como um NFA computa


Um NFA til em vrios aspectos Um NFA pode ser convertido para um DFA correspondente
Um NFA , geralmente, mais simples, menor e mais fcil de entender
31
17/12/2012

TC e Ling. Formais

Exemplo de NFA
L(A) = { | haja um 1 na antepenltima posio
0,1 1 q1
32

0,1 q2
17/12/2012

0,1 q3 q4
TC e Ling. Formais

...
0 0
q000

0,1 1 q1

q2

0,1

q3

0,1

q4

Qual o DFA correspondente???


0 0

q100
1

q010

q110

0 1 q101 1 q011 0 1 0

q001

0 1

q111

33

17/12/2012

TC e Ling. Formais

Exemplo de NFA
Qual a linguagem reconhecida pelo NFA?
0,1 1 q1
34

0,1, q2

0,1, q3 q4

17/12/2012

TC e Ling. Formais

Definio Formal de um NFA


Diferena chave na funo
DFA
Estado + smbolo produz novo estado

NFA
Estado + (smbolo ) produz conjunto de estados

P(Q) = powerset de Q = { }
35
17/12/2012

TC e Ling. Formais

Definio Formal de um NFA


NFA uma 5-tupla (Q, , , q0, F)
Q = conjunto de estados = alfabeto finito : Q x P(Q) = funo de transio q0 Q = estado inicial F Q = estados finais aceitveis
36

17/12/2012

TC e Ling. Formais

Exemplo
Q = {q1, q2, q3, q4} 0 = {0, 1} q1 {q1} q0 = q1 q2 {q3} q3 F = { q4} q4 {q4}
1
37 1 {q1,q2} {q4} {q4} {q3}

0,1

0,1 0, q2 q3
17/12/2012

1 q4
TC e Ling. Formais

q1

Computao de um NFA
Quase igual computao de um DFA M aceita se houver uma seqncia de estados r0, r1, ..., r em Q tal que
r0 = q0 ri+1 (ri, i+1), para i = 0, ..., -1
(ri, i+1) um conjunto, logo ri+1 deve pertencer ao conjunto
38

r F

17/12/2012

TC e Ling. Formais

0,1

Exerccios

1 q1 q2

0,1 q3

0,1 q4

Defina os NFAs
0 s z 0 x
39
17/12/2012

0 0 0

TC e Ling. Formais

Equivalncia de NFA e DFA


DFA e NFA reconhecem a mesma classe de linguagens
Aparentemente NFA so mais potentes As vezes mais fcil descrever um NFA que um DFA para a mesma linguagem

Mquinas equivalentes reconhecem a mesma linguagem


40
17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Teorema
Todo o NFA possui um DFA equivalente

Idia de prova
Se um NFA reconhece uma linguagem, necessrio mostrar que h um DFA que tambm a reconhece equivalentes
41
17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Como simular um NFA atravs de um DFA?
Necessidade de acompanhar as mudanas de estado

42

17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Idia de prova
Havendo k estados no NFA, 2k subconjuntos Cada subconjunto corresponde a um possvel estado que o DFA deve manter Nmero de estados no DFA = 2k estados Encontrar estados inicial e finais
43

Primeiro sem os ...


17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Considere um NFA N = (Q, , , q0, F) reconhecendo a linguagem A

44

17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Construir um DFA M = (Q, , , q0, F) que reconhea a mesma linguagem A
Q = P(Q) Para (R Q) e (a ) faa
(R, a) = { q Q | q (r, a) para r Q} (R, a) = rR(r,a) unio de todos os conjuntos (r,a) para cada possvel r em R
45
17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Considere NFA N = (Q, , , q0, F) reconhecendo a linguagem A Construir um DFA M = (Q, , , q0, F) que reconhea a mesma linguagem A
q0 = { q0 } F = { R Q | R contenha um estado aceitvel de N }
46
17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Para considerar os ...
Para cada estado R em M, definir E(R)
Coleo de estados que podem ser alcanados a partir de R navegando, apenas, por arcos E(R) = { q | q pode ser alcanado a partir de R atravs de 0 ou mais arcos }

47

17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Modificar a funo de transio
(R, a) = { q Q | q E((r,a)) para um r R }

Modificar os estados iniciais


q0 = E({ q0 })

48

17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


Corolrio (algo que pode ser concludo a partir da prova) do teorema
Uma linguagem regular se, e somente se, algum NFA a reconhece.
49
17/12/2012

TC e Ling. Formais

Equivalncia de NFA e DFA


L NFA
NFA pode virar um DFA, ento, se um NFA reconhece, algum DFA deve reconhecer

NFA

Se L regular, ento algum NFA reconhece


50
17/12/2012

TC e Ling. Formais

Exemplo
Converter o NFA abaixo para um DFA
Descrio formal do N1
N1 = ({1, 2, 3}, {a, b}, , 1, {1})
a 1 b a
51

3 a,b
17/12/2012

TC e Ling. Formais

cont. exemplo
Converso de N1 para D
Q = P({1, 2, 3})
Q = {, {1}, {2}, {3}, {1, 2}, {1,3}, {2, 3}, {1, 2, 3}}
a 1 b a
52

3 a,b
17/12/2012

TC e Ling. Formais

a 1 b a 2 3 a,b

cont. exemplo
Converso de N1 para D
q0 = E({1}) por ?
E({1}) = {1, 3}

como chegar em 1

F conjunto de estados de Q que contm F


F = {{1}, {1, 2}, {1, 3}, {1, 2, 3}}
53
17/12/2012

TC e Ling. Formais

a 1 b a 2 3 a,b

cont. exemplo
Construir

Cada estado em D vai para um estado com a, e outro estado com b

54

17/12/2012

TC e Ling. Formais

a 1 b a 2 3 a,b

cont. exemplo
Converso de N1 para D
Construir
Em D, estado {2} vai para...
{2, 3} com entrada a { 3 } com entrada b

Em D, estado {1} vai para...


com entrada a { 2 } com entrada b

Em D, estado {3} vai para...


55 {1, 3} com entrada a 17/12/2012 com entrada b
TC e Ling. Formais

a 1 b a 2 3 a,b

cont. exemplo
Converso de N1 para D
Construir

Em D, estado {1, 2} vai para...


{2, 3} com entrada a (1 vai para e 2 vai para {2, 3} e nenhum vai para lugar algum com ) {2, 3} com entrada b

Continuando...
56
17/12/2012

TC e Ling. Formais

a 1 b a 2 3 a,b

cont. exemplo
Converso de N1 para D
Situao semi-final
a,b b b {3} a {1,3} a b
17/12/2012

{1}

b b

{2} a {2,3}
b

{1,2} a,b a a {1,2,3}


TC e Ling. Formais

57

a 1 b a 2 3 a,b

cont. exemplo

Simplificando alguns estados Situao Final


a,b b b {3} a {1,3} a b {2,3} b b {2} a a a {1,2,3}
TC e Ling. Formais

58

17/12/2012

Exerccio
Produza os DFAs equivalentes aos NFAs abaixo
0,1 1
q1 q2

0,1 0,
q3

1
q4

59

17/12/2012

TC e Ling. Formais

cont. exerccio
0,RESET 2 q0 1, RESET 1 2, RESET 2 1 q1 0 q2 0

0,1 1
q1 q2

0,1

0 0 1
q3

q4

60

17/12/2012

TC e Ling. Formais