Você está na página 1de 27

an

Sistemas de Estados Finitos


AF Determinsticos
(H&U, 1979) e (H;M;U, 2001)
1

Sistemas de Estados Finitos


Uma mquina de estados finitos um modelo
matemtico de um sistema com entradas e
sadas discretas.
O sistema pode estar em qualquer um de um
nmero finito de estados.
O estado do sistema sumariza a informao
relativa s entradas passadas que necessria
para determinar o comportamento do sistema
nas prximas entradas.
2

Memria Limitada
AF so exemplos de modelos de computadores
com memria limitada.
J vimos um exemplo na primeira aula de um AF
modelando um interruptor On/Off
O interruptor se lembra se ele est no estado on
ou off e permite o usurio apertar um boto cujo
efeito diferente, dependendo do seu estado.

Mas, o que um computador com memria limitada


pode fazer????

Muitas coisas teis!

Exemplos
Controlador de porta automtica que abre no meio
Tem um sensor na frente e outro atrs da porta (para
no bater em quem est atrs). O controlador est em 1
dos 2 estados: aberto, fechado e as transies seriam:

Frente (que faz a porta abrir e segurar aberta)


Atrs (que deixa a porta fechada ou mantm aberta)
Ambas (pessoas esto na frente atrs)
Nenhuma (no h pessoas nem na frente nem atrs)

Exemplos

Mecanismo de controle de um elevador


O mecanismo no se lembra das
requisies de servios anteriores,
cada estado sumariza somente as
informaes de andar atual e direo (para
cima ou para baixo).

As entradas para o sistema so as


chamadas a serem atendidas.
5

Exemplos

Na computao, um AF um modelo til para


projetar vrios tipos de sistemas:
Busca de cadeias em editores de textos. No Word,
por exemplo, podemos expressar as cadeias com os
caracteres curinga * e outros especiais.

Exemplos
Analisadores lxicos (AL) de compiladores. O AL
a interface entre o programa fonte e o resto
do compilador. Ele responsvel por:
empacotar os caracteres do programa e lhes dar um rtulo
que ser usado pelo analisador sinttico montar a rvore
sinttica.
Os rtulos so: identificadores, os nomes dos smbolos
simples (<, =, [, ), etc.), dos compostos (:= , <>, <=, etc.),
nmeros inteiros, nmeros reais, cadeias de caracteres, o
nome das palavras-chaves.
Eliminar caracteres brancos e comentrios e, se for pedido,
reeditar o texto fonte acrescentando nmero de linhas,
indentao, etc.
Reconhecer alguns erros lxicos como m-formao de
inteiros, de reais, de cadeias de caracteres, comentrio que
no fecha, caracteres no reconhecidos pela linguagem.
7

Problemas de IA

Descrio do Problema: um homem (H) com uma


couve (C), um lobo (L) e uma ovelha (O) esto na
margem esquerda de um rio. Existe um barco com 2
lugares para carregar o homem com um dos outros
trs.
Se o H deixa a O com a C ela a come ou o L com a O
ele a come.
possvel os quatro atravessarem o rio sem a ovelha
ou a couve serem comidas?

O problema pode ser modelado analisando os


ocupantes da margem esquerda e direita a cada
travessia. Cada um um estado menos os fatais (OC
HL, por exemplo).
8

Entradas: aes (transies) que o H toma


Atravessar sozinho (H)
Com o lobo (L)
Com a couve ( C )
Com a ovelha (O)
Estado Inicial: HLCO -
Estado Final (duplamente circulado): - HLCO
Existem 2 solues curtas e inmeras outras envolvendo caminhos
desnecessrios.
O
H

LC-HO

HLCO-

HLC-O

C-HLO
O

HCO-L

O
H

-HLCO

HO-LC

L-HCO
O

O
C

HLO-C

O-HLC

L
9

O sistema atpico pois:


Nele existe s um estado final MAS
podem existir vrios
Para cada transio existe uma reversa,
MAS isto no o caso geral
Depois do estado final no existe
computao, MAS pode existir
10

Definio formal de um AF Determinstico


Um AF Determinstico (AFD) denotado
formalmente por uma quntupla (Q, , , qo, F) onde:

Q o conjunto de estados
um alfabeto finito
qo Q o smbolo inicial
F Q o conjunto de smbolos finais
(delta) a funo de transio de estados
mapeando Q X Q.
(q,a) um estado para cada estado q e entrada a
11

Esquema da Mquina e Representao usando grafos

Esquema:
0

Fita com a
seqncia

de smbolos
de

Controle
Finito

p
estado
anterior

a
smbolo
lido

q
novo
estado

qo
estado
inicial

qf
estado
final
12

Aceitando cadeias funo de transio estendida


Estendemos a funo de transio para aceitar cadeias:
: Q X * Q
(q,w) um estado p que o AF vai estar depois de ler a cadeia w,
comeando do estado q. Isto , existe um caminho no diagrama de
transies de q para p denominado w
Definimos:
1)
(q,) = q
(sem ler um smbolo de entrada o AF no pode mudar de estado)
2) (q,wa) = ((q,w),a) para a como smbolo de entrada e w como cadeia de
entrada
(Diz como achar o estado depois de ler uma cadeia de entrada wa no
vazia. Isto , encontre o estado p = (q,w) depois de ler w. Ento
calcule (p,a))

Usaremos no lugar de pois (q,a) = ((q, ),a) = (q,a)


13

Linguagem aceita por um AF M


Uma cadeia x dita ser aceita pelo AFD M =
(Q, , , qo, F) se (qo,x) = p para algum p F.
Ou
L(M) = {x | (qo,x) F}
Def 1: Uma linguagem aceita por um AFD uma
linguagem regular (ou do tipo 3)
Def 2: Dois AF M1 e M2 so equivalentes se
L(M1) = L(M2)
14

Exerccio
Fazer um AFD M que aceita L(M) = {w | w possui um nro par de
0s e de 1s }
Exemplos de cadeias da linguagem:

Lambda
00
11
1010

0101
...

15

Exemplo 1
Fazer um AFD M que aceita L(M) = {w | w possui um nro par de 0s e de 1s }

Diagrama
de
Transio
de Estados

Cadeia aceita:
configurao final
VERDE
16

Cadeia no aceita:
configurao final
ROSA

17

Reconhecimento de 110101
(qo,1) = q1 e (q1,1) = qo
Assim: (qo,11) = ((qo,1),1) = (q1,1) = qo ... (qo,110101) = qo
Portanto 110101 est na L(M)

M = ({qo,q1,q2,q3}, {0,1}, , qo, {qo})


entradas
Funo de Transio
de Estados
: estados
0
1
(qo,0) = q2 (qo,1) = q1
qo
q2
q1
(q1,0) = q3 (q1,1) = q0
q1
q3
q0
Tabela de
(q2,0) = q0 (q2,1) = q3
Transio
q2
q0
q3
(q3,0) = q1 (q3,1) = q2
de Estados
q3
q1
q2
18

Como projetar um AF?


Tendo
somente uma
memria
finita,

s podemos
lembrar as
informaes
importantes e
associ-las
aos estados
Usamos os
estados para
armazenar a
paridade dos
nmeros
e no

os nmeros o
que exigiria
um nmero
infinito de
estados
(memria
infinita).

Linha
dos
0s

Linha
dos
1s

19

20

21

22

Quando o
estado final
o inicial a
cadeia vazia
aceita

Inicio de uma
simulao, entrada
em negrito
23

Exemplo 2

Fazer um AFD M que aceita


L(M) = {w {0,1}* |w possua pelo menos dois 0s consecutivos}

Garantindo
a
restrio...

24

Completando o AFD M e reconhecendo uma cadeia de L(M)


M = ({q0,q1,q2}, {0,1}, , q0,{q2})

Fim de uma
simulao,
entrada em cinza
25

Exemplo 3
Fazer um AFD M que aceita L(M) = {w {0,1}* |w possua
um nmero impar de 1s}
Garantindo
a
restrio...

26

Completando o AFD M e reconhecendo uma cadeia de L(M)


M = ({q0,q1}, {0,1}, , q0,{q1})

Aceitao no JFLAP = verde,


com indicao do estado que
parou ou ler a cadeia de
entrada
27

Você também pode gostar