Anda di halaman 1dari 14

MATEMTICA DISCRETA

AUTMATO FINITO

Prof. Luciano Braga de Lacerda

Autmato Finito

O que um Autmato Finito?


Sistema de Estados Finitos e PrDefinidos. Estado: O que o Autmato est executando.

Um autmato verifica se uma

Palavra w pertence a uma linguagem L. Estrutura do Autmato:

Fita: Dispositivo de Entrada que contm a informao a ser processada; Unidade de Controle: Reflete o Estado corrente do autmato. Possui uma unidade de leitura. Move-se apenas para a direita; Programa: Funo de Transio que comanda as leituras e define o Estado do autmato.
Prof. Luciano Braga de Lacerda

Autmato Finito

Programa
Funo Parcial tal que, dependendo do Estado Corrente da Mquina e do Smbolo lido, determina o novo Estado do Autmato. O conjunto de todas as transies constitui o programa do autmato.

Fita (Entrada)

Unidade de Controle

Contm: Cabea de Leitura E o Programa do Autmato

Nodo: Estado do Autmato

Arco: Transio ou Computao

Prof. Luciano Braga de Lacerda

Autmato Finito

Processamento do Autmato
O processamento de um Autmato Finito a sucessiva aplicao de Computaes Atmicas.
q1

a b

q0 a qf a,b

b q2 b Programa
Estado q0 q0 Lido a b a b a b a b Transio q1 q2 qf q2 q1 qf qf qf

q0: Estado Inicial qf: Estado Final

q1 q1 q2 q2 qf qf

Prof. Luciano Braga de Lacerda

Autmato Finito

Processamento do Autmato
O processamento de um Autmato Finito a sucessiva aplicao de Computaes Atmicas.

Programa
Estado q0 q0 q1 q1 q2 q2 qf qf Lido a b a b a b a b Transio q1 q2 qf q2 q1 qf qf qf

2 a

q1 b q1 q2 b b a

3 Processamento: a b b a a

q2 b q2 qf b b a

q0 a q0 q1

qf a qf qf

Prof. Luciano Braga de Lacerda

Autmato Finito

Funo Parcial e Programa


Funo Parcial
uma relao funcional

Programa
Funo parcial tal que,

f A x B. Uma funo Parcial uma Relao na qual cada elemento do Domnio est relacionado com, no mximo um elemento do Contradomnio (Imagem) O par (a,b) f denotado por f(a) = b

dependendo do estado corrente e do smbolo lido, determina o prximo Estado prog((e,s)) pe No exemplo anterior: prog((q0,a)) q1

Prof. Luciano Braga de Lacerda

Autmato Finito

Funo Parcial e Programa


Supondo um conjunto finito de Estados Q e, um alfabeto , o programa de um autmato finito pode ser definido como uma funo parcial, denominada Funo Programa: : Q x Q (a,q) = p

Outra representao de programa (a,q) = p (sendo o smbolo a, o Estado transita de q para p)

Do exemplo anterior:
Sintaxe: ((q,a),p) ((q0,a),q1) ((q0,b),q2) ((q1,a),qf) ((q1,b),q2) ((q2,a),q1) ((q2,b),qf) ((qf,a),qf)

((qf,b),qf)
Prof. Luciano Braga de Lacerda

Autmato Finito

Representaes de Programa
Tabela
Estado q0 q0 q1 q1 q2 Lido a b a b a Transio q1 q2 qf q2 q1

Funo
Sintaxe: ((q,a),p) ((q0,a),q1) ((q0,b),q2) ((q1,a),qf) ((q1,b),q2) ((q2,a),q1) ((q2,b),qf) ((qf,a),qf) ((qf,b),qf)
Prof. Luciano Braga de Lacerda

q2
qf

b
a

qf
qf

qf

qf

Autmato Finito Q = {q0,q1,q2,q3,q4}

Exemplo:
Representar uma mquina que fornece ou doce, ou biscoito, ou refrigerante (refri).

={moeda,tecla_doce,tecla_biscoito,tecla_refri, libera_doce,libera_biscoito,libera_refri}

q0
moeda

q1
tecla_doce libera_doce tecla_refri

q4
tecla_biscoito

libera_refri

q2

q3
libera_biscoito Prof. Luciano Braga de Lacerda

Autmato Finito

q0
moeda

Exemplo:
Representar uma mquina que fornece ou doce, ou biscoito, ou refrigerante (refri).

tecla_doce

q1 tecla_refri
libera_refri

q2
libera_doce

q4
tecla_biscoito

libera_biscoito

q3
Sintaxe: ((q,a),p) ((q0,m),q1) ((q1,d),q2) ((q1,b),q3) ((q1,r),q4) ((q2,ld),q0) ((q3,lb),qo) ((q4,lr),q0)

Estado q0 q1 q1 q1 q2
q3
q4

Lido moeda doce biscoito refri libDoce

Transio q1 q2 q3 q4 q0

libBisc
libRef

q0
q0

Prof. Luciano Braga de Lacerda

Autmato Finito

Note que:
Um autmato verifica se uma Palavra w pertence a uma linguagem L, ou seja, verifica se w L ou se w L.

No caso, se q0 = moeda ento vai para q1 se q0 moeda ento NADA Ou seja, verificou se w L.

Sintaxe: ((q,a),p) Estado q0 q1 q1 q1 q2


q3
q4

Lido moeda doce biscoito refri libDoce

Transio q1 q2 q3 q4 q0

((q0,m),q1) ((q1,d),q2) ((q1,b),q3) ((q1,r),q4) ((q2,ld),q0) ((q3,lb),qo) ((q4,lr),q0)

libBisc
libRef

q0
q0

Prof. Luciano Braga de Lacerda

Autmato Finito Entrada: moeda opo

Estudo de Caso
Implementar o autmato da mquina de lanches em uma linguagem de programao funcional, no caso, Haskell.

Sendo: moeda = {0,1} opo = {1,2,3}

Sada: Cdigo correspondente ao produto, conforme : Prod = {(1,doce),(2,biscoito),(3,refri)} onde, (cod_produto,nome_produto)

Prof. Luciano Braga de Lacerda

Autmato Finito
--------------------------------------- IFF/Campus Maca ---------------------------------------- Matemtica Discreta (2010.1) ---------------------------------------- Implementao de Autmato Finito ---------------------------------------- Mquina de Lanches ---------------------------------------- Autor: Luciano B. de Lacerda ----------------------------------------------------------------------------- Funes: -- maq_lanc: Chamadora -- sel_lanc: Seletora -- fdoce: Simula entrega de doce -- fbisc: Simula entrega de biscoito -- frefri:Simula entrega de refi ----------------------------------------------------------------------------------------- > maq_lan -------------------------------------------------maq_lan:: Int->Int->Int maq_lan 0 _ = 0 maq_lan 1 x = if((x>= 1)&&(x<=3)) then sel_lanc(x) else 0 ---------------------------------------------------------------------------------------------------- > sel_lanc -------------------------------------------------sel_lanc::Int->Int sel_lanc x = if(x==1) then fdoce(x) else if(x==2) then fbisc(x) else frefri(x) ---------------------------------------------------------------------------------------------------- > fdoce -------------------------------------------------fdoce:: Int->Int fdoce x = x ---------------------------------------------------------------------------------------------------- > fbisc -------------------------------------------------fbisc:: Int->Int fbisc x = x ---------------------------------------------------------------------------------------------------- > frefri -------------------------------------------------frefri:: Int->Int frefri x = x --------------------------------------------------

Estudo de Caso
Assinatura da Funo:
maq_lan:: Int->Int->Int

Nome_funo :: Tipos de dados dos parmetros de Entrada Tipo do dado de Sada &&, significa AND. _ significa qq coisa.

Prof. Luciano Braga de Lacerda

Autmato Finito q0
moeda tecla_doce

((q0,m),q1)

Estudo de Caso
Comparando as chamadas s funes do programa com a representao do autmato da mquina de lanches, verifica-se que so correspondentes, logo, o programa implementa o referido autmato.

((q1,d),q2) ((q1,b),q3) ((q1,r),q4) ((q2,ld),q0) ((q3,lb),qo) ((q4,lr),q0)

q1 tecla_refri
libera_refri

q2
libera_doce libera_biscoito

q4
tecla_biscoito

q3

2 0 maq_lanc 1 Sel_lanc

2 4

fdoce

frefri 3 4 3 fbisc

Prof. Luciano Braga de Lacerda

Anda mungkin juga menyukai