Você está na página 1de 31

BCC244

Aumato Finito Determinstico

Mquinas de Estados Finitos


As mquinas de estados finitos so mquinas abstratas que capturam partes essenciais de algumas mquinas concretas. Tipos
Transdutoras mquinas com entradas e sada Reconhecedoras possuem duas sadas possveis, aceita e rejeita.

A memria de uma mquina de estados finitos limitada e organizada em torno do conceito de estado.

Exemplo 1
Um homem, um leo, um coelho e um repolho devem atravessar um rio usando uma canoa, com a restrio de que o homem deve transportar no mximo um dos trs de cada vez de uma margem a outra. Alm disso, o leo no pode ficar na mesma margem que o coelho sem a presena do homem, e o coelho no pode ficar com o repolho sem a presena do homem. O problema consiste em determinar se possvel fazer a travessia.

Exemplo 2
Projetar uma mquina que, dada uma seqncia de 0s e 1s, determinar se o nmero representado por ela na base 2 divisvel por 6.

Autmato Finito Determinstico


Mais parecido com computer:
esta seta denota inicio
0 0 1 1 1 0

crculo duplo denota aceita

entrada em fita lida da esquerda p/ direita

0 1

Autmato Finito Determinstico


0 0 1 1 1 0

0 1

Autmato Finito Determinstico


0 0 1 1 1 0

0 1

Autmato Finito Determinstico


0 0 1 1 1 0

0 1

Autmato Finito Determinstico


0 0 1 1 1 0

0 1

Autmato Finito Determinstico


0 0 1 1 1 0

0 1

Autmato Finito Determinstico


0 0 1 1 1 0

0 1
REJEITA!

Autmato Finito Determinstico


0 0 1 1 1 0

Q: Que tipos de bitstrings so aceitos?

Autmato Finito Determinstico


0 0 1 1 1 0

R: Bitstrings que representam nmeros binrios pares.

Autmato Finito Determinstico


Exerccio: Projete uma mquina que determina quando um string de entrada um nmero na base-10 divisvel por 3 Qual deve ser o alfabeto? Como voc pode determinar se um nmero divisvel por 3?

Autmato Finito Determinstico


Soluo:
1,4,7 0,3,6,9

1 mod 3
2,5,8

0 mod 3
2,5,8 0,3,6,9 1,4,7

2,5,8

1,4,7

2 mod 3
0,3,6,9

Definio Formal de FA
DEF: Um autmato finito (determinstico) (FA) consiste de um conjunto de estados Q, um alfabeto , transies rotuladas entre estados , um estado inicial q0 Q, e um conjunto de estados de aceitao F. M = (Q, , , q0, F )

Definio Formal de FA
Note que o string de entrada, assim como a fita que contm o string de entrada, so implcitos na definio de um FA. Ou seja, a definio prov apenas uma viso esttica. necessria explicao adicional para entender como um FA interage com a sua entrada.

Porque Determinstico?
Determinstico significa que existe informao suficiente para sempre determinar qual o prximo estado para o qual vai o Autmato, ao ler um dado smbolo. Nosso Exemplo de Mquina de Venda de fato no era determinstico porque, depois de terem sido depositados $.45, os efeitos de depsitos adicionais so indefinidos.

0,3,6,9

0 mod 3
0,3,6,9 1,4,7 Exercicio: Obtenha a descrio formal deste autmato.

1,4,7 2,5,8 2,5,8

1 mod 3
2,5,8

1,4,7

2 mod 3
0,3,6,9

Definio de FA, exemplo


Q = { 0 mod 3, 1 mod 3, 2 mod 3 } renomeie: {q0, q1, q2} ) = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } q0 = 0 mod 3 F = { 0 mod 3 } requer explicao adicional (

A funo de transio
Determina o estado para o qual vai o autmato, dado o estado corrente e o smbolo corrente na entrada. I.e., dado um estado q Q e um smbolo a , define um nico estado alvo q Q. Em outras palavras, uma funo do produto Cartesiano Q x em Q :

:Q Q

A funo de transio
:Q Q ( q0 ,2) = q2 , ( q0 ,9) = q0 , ( q1 ,2) = q0 , ( q1 ,7 ) = q2 , ( q2 ,3) = q2 , ( q2 ,5) = q1 . Questo : ( qi , j ) = ?

A funo de transio

(qi , j) = q(i + j ) mod3


Usualmente a funo de transio no tem uma definio tal como nesse caso, dada por uma frmula simples.

Definio Formal de FA: Dinmica


Como um FA opera sobre um string? Existe implicitamente a noo de uma fita auxiliar que contm o string. O FA l a fita da esquerda para a direita e cada caractere faz com que o autmato v para um novo estado, definido pela funo . Quando o string lido completamente, ele aceito ou no, conforme o estado final do FA seja ou no um estado de aceitao.

Definio Formal de FA: Dinmica


DEF: Um string u aceito por um autmato sse o caminho a partir do estado inicial q0 que rotulado por u termina em um estado de aceitao.

Linguagem Aceita por um FA


DEF: A linguagem aceita por um FA M o conjunto de todos os strings que so aceitos por M e denotada por L (M ). Intuitivamente, pense em todos os possveis caminhos que levam do estado inicial a um estado de aceitao do autmato. Ento pense em todas as possveis maneiras de rotular esses caminhos (caso existam mltiplos rtulos em algumas setas).

Linguagens Regulares
Veremos mais adiante que nem toda linguagem pode ser descrita como uma linguagem aceita por um FA. Uma linguagem que aceita por algum FA exibe um alto grau de regularidade. DEF: Uma linguagem L chamada linguagem regular se existe um FA M tal que L = L (M ).

Funo de transio estendida


Seja um AFD M=(Q, , , q0, F). A funo de , uma funo de Q x * transio estendida para Q, definida recursivamente como:

(q, ) = q (q, ay ) = ( (e, a), y ) para todo a e y *.

L( M ) = {w * | (q0 , w) F }

Algumas propriedades
Sejam os AFDs M1=(Q1, , 1, i1, F1) e M2 =(Q2, , 2, i2, F2). Existem AFDs para as seguintes linguagens.
(1) ( 2) (3) L( M 1 ) L( M 1 ) L( M 2 ) L( M 1 ) L( M 2 )

(1) Pode ser obtido a partir de M1 simplesmente colocando-se como estados finais aqueles que no so finais em M1.

Algumas propriedades
(2) Seja o AFD M3= (Q1xQ2, , 3, [i1,i2], F3), construdo com
3([e1,e2],a) = [1(e1, a), 2(e2, a)] F3 = F1 x F2

(3) Seja o AFD M3= (Q1xQ2, , 3, [i1,i2], F3), construdo com


3([e1,e2],a) = [1(e1, a), 2(e2, a)] F3 = {[e1,e2] Q1xQ2 | e1 F1 ou e2 F2}

Exerccio
Defina um AFD que aceita a linguagem L sobre o alfabeto {0,1} cujos strings possuem tamanho mltiplo de 3 ou terminam com 1. Defina um AFD que aceita a linguagem L sobre o alfabeto {0,1} cujos strings comeam com 0 e terminam com 10 ou com 11

Você também pode gostar