Você está na página 1de 16

Universidade Catlica de Pelotas

Centro Politcnico
364018 Linguagens Formais e Autmatos
TEXTO 1

Linguagens Regulares e Autmatos Finitos


Prof. Luiz A M Palazzo
Maro de 2011

_______________________________________________

Hierarquia de Chomsky
Ling. Recursivamente Enumerveis ou do Tipo 0
Ling. Sensveis ao Contexto ou do Tipo 1
Ling. Livres de Contexto ou do Tipo 2
Linguagens
Regulares ou do
Tipo 3

Fig 1: Hierarquia de Chomsky (Lingstica)

O estudo das linguagens regulares (ou linguagens do tipo 3 na Hierarquia de


Chomsky, as mais simples, permitindo abordagens de pequena complexidade,
grande eficincia e fcil implementao) pode ser abordado atravs de 3
diferentes formalismos:

operacional ou reconhecedor:

Autmato Finito, que pode ser


determinstico, no determinstico ou com movimento vazio.

axiomtico ou gerador: Gramtica Regular


denotacional:
gerador).

Expresso Regular (tambm pode ser considerado

Sistemas de Estados Finitos


Um sistema de estados finitos um modelo matemtico de um
sistema com entradas e sadas discretas.

Pode assumir um nmero finito e pr-definido de estados.

Cada estado resume somente as informaes do passado necessrias


para determinar as aes para a prxima entrada.

Podem ser associados a diversos tipos de sistemas naturais e


construdos.

Exemplo: Elevador (1) No memoriza instrues anteriores. (2)


Cada estado sumariza as informaes: andar corrente e direo do
movimento. (3) As entradas para o sistema so requisies
pendentes.

Outros exemplos de sistemas de estados finitos: analisadores lxicos e


processadores de texto

SEF de difcil manipulao: (1) O crebro humano, com 235 clulas e


tamanha complexidade que esta abordagem se torna ineficiente. (2)
O computador onde o estudo adequado da computabilidade exige
uma memria sem limite pr-definido.

Autmatos Finitos
Um autmato finito determinstico, ou simplesmente autmato finito, pode ser
vista como uma mquina composta basicamente por trs partes:

b a

Controle
Figura 2: Autmato Finito como uma mquina com controle finito.

a. Fita: Dispositivo de entrada que contm a informao a ser processada.


A fita finita esquerda e direita. dividida em clulas onde cada uma
armazena um smbolo. Os smbolos pertencem a um alfabeto de entrada.
No possvel gravar sobre a fita. No existe memria auxiliar. Inicialmente
a palavra a ser processada, isto , a informao de entrada ocupa toda a fita.

b. Unidade de Controle: Reflete o estado corrente da mquina. Possui uma


unidade de leitura (cabea de leitura, que acessa uma unidade da fita de
cada vez. Pode assumir um nmero finito e pr-definido de estados. Aps
cada leitura a cabea move-se uma clula para a direita.

c. Programa ou Funo de Transio: Funo que comanda as leituras e define


o estado da mquina. Dependendo do estado corrente e do smbolo lido
determina o novo estado do autmato. Usa-se o conceito de estado para
armazenar as informaes necessrias determinao do prximo estado,
uma vez que no h memria auxiliar.

Definio: Autmato Finito Determinstico (AFD)


Um autmato finito determinstico (AFD), ou simplesmente autmato finito M
uma quntupla:
M = ( , Q, , q0, F),
onde:
Q-

Alfabeto de smbolos de entrada


Conjunto finito de estados possveis do autmato
Funo programa ou funo de transio

q0 -

Estado inicial tal que q0

F -

Conjunto de estados finais, tais que F

:Qx

Q
Q.

A funo programa pode ser representada como um grafo orientado finito


conforme representado abaixo:

smbolo
lido

estado
anterior

q
novo
estado

Figura 3: Representao da Funo programa como um grafo

q0

qf

Figura 4: Representao dos estados inicial e final como nodos de um grafo

O processamento de um autmato finito M para uma palavra de entrada w


consiste na sucessiva aplicao da funo programa para cada smbolo de w, da
esquerda para direita, at ocorrer uma condio de parada.
4

Exemplo: Autmato Finito


O autmato finito M1 = ({a, b}, {q0, q1, q2, qf}, 1, q0, {qf}) , onde
representada pela tabela abaixo, reconhece a linguagem

L1 = {w | w possui aa ou bb como subpalavra}


a

q0

q1

q2

q1

qf

q2

q2

q1

qf

qf

qf

qf

q0

b
q1

q2
a

qf

a, b
Figura 5: Grafo do autmato finito determinstico

O algoritmo apresentado usa os estados q1 e q2 para memorizar o smbolo


anterior. Assim q1 representa o smbolo anterior a e q2 representa o
smbolo anterior b. Aps identificar dois aa ou dois bb consecutivos o
autmato assume o estado qf (final) e varre o sufixo da palavra de entrada sem
5

qualquer controle lgico, somente para terminar o processamento. A figura 2.5


ilustra o processamento do autmato finito M1 para a palavra de entrada w =
abba, a qual aceita.

a
0

b
1

Figura 6: Seqncia de processamento

Note-se que um autmato finito sempre pra ao processar qualquer entrada,


pois como toda palavra finita e como um novo smbolo de entrada lido a
cada aplicao da funo programa, no existe a possibilidade de ciclo (loop)
infinito.
A parada do processamento pode ocorrer de duas maneiras:
aceitando ou rejeitando uma entrada w. As condies de parada so as
seguintes:
a. Aps processar o ltimo smbolo da fita o autmato finito assume um estado
final. O autmato para e a entrada w aceita.
b. Aps processar o ltimo smbolo da fita, o autmato finito assume um estado
no-final. O autmato para e a entrada w rejeitada
c. A funo programa indefinida para o argumento (estado corrente e smbolo
lido). O autmato para e a entrada w rejeitada.
Para definir formalmente o comportamento de um autmato finito (ou seja, dar
semntica sintaxe de um autmato finito) necessrio estender a definio
da funo programa, usando como argumento um estado e uma palavra.

Exerccio
Desenvolver AFDs que reconheam as seguintes linguagens sobre

= {a, b}:

a) {w | w possui aaa como subpalavra}


6

b) {w | o sufixo de w aa}
c) {w | w possui um nmero mpar de a e b}
d) {w | w possui nmero par de a e mpar de b ou vice-versa}
e) {w | o quinto smbolo da esquerda para a direita de w a}
Definio: Funo Programa Estendida
Seja M = ( , Q, , q0, F) um AFD. A funo programa estendida, denotada
por:
:Qx *

a funo programa : Q x
definida como se segue:

Q, estendida para palavras, e indutivamente

(q, ) = q
(q, aw) =

( (q, a), w)

Exemplo: Funo Programa Estendida


Seja o AFD M1 = ({a, b}, {q0,q1,q2,qf}, 1, q0, {qf}), definida no exemplo
anterior. Ento a funo programa estendida aplicada palavra abaa a partir
do estado inicial q0 como se segue:
(q0, abaa) =

funo estendida sobre abaa

( (q0, a), baa) = processa abaa


(q1, baa) =

funo estendida sobre baa

( (q1, b), aa) = processa baa


(q2, aa) =

funo estendida sobre aa

( (q2, a), a) =

processa aa

(q1, a) =

funo estendida sobre a

( (q1, a), ) =

processa abaa

(qf, ) = qf

funo estendida sobre . Fim da induo. A palavra


aceita.

Comentrios
Por simplicidade tanto

quanto

sero denotadas simplesmente por .

A linguagem aceita por um autmato finito M = ( , Q, , q0, F) denotada por


ACEITA(M), ou L(M), o conjunto de todas as palavras pertencentes a *
que so aceitas por M, ou seja: ACEITA(M) - {w | (q0, w) F}.
Analogamente, REJEITA(M) o conjunto de todas as palavras pertencentes a
* que so rejeitadas por M.
As seguintes afirmaes so verdadeiras
a. A interseco dos conjuntos ACEITA(M) e REJEITA(M) vazio.
b. A unio dos conjuntos ACEITA(M) e REJEITA(M) *.
c. REJEITA(M) o complemento de ACEITA(M) em *
d. ACEITA(M) o complemento de REJEITA(M) em *
Definio: Equivalncia de Autmatos Finitos
Dois autmatos M1 e M2 so equivalentes se e somente se:
ACEITA(M1) = ACEITA(M2)
Definio: Linguagens Regulares ou do Tipo 3
Uma linguagem aceita por um autmato finito uma Linguagem Regular ou do
Tipo 3.
Exemplo: Autmato Finito
Os autmatos M2 = ({a,b}, {q0}, 2, q0, ) e M3 = ({a, b}, {q0}, 3, q0,
{q0}) reconhecem respectivamente as linguagens L1 =
e L2 = *, onde 2
e 3 so representadas abaixo em forma de tabela.
M2
2

q0

q0

q0

M2
q0
a, b

M3
3

q0

q0

q0

M3
q0
a, b

Exemplo: Autmato Finito


O autmato M4 = ({a, b}, {q0, q1, qa2, q3},
linguagem:

, q0, {q0}), reconhece a

L4 = {w | w possui um nmero par de a e b}

M4

b
q0

q1
b

a
b

q2

q3
b

Autmato Finito No-Determinstico (AFN)


No-determinismo uma importante generalizao dos AFs, essencial para a
teoria da computao e para a teoria das linguagens formais.

Qualquer AFN pode ser simulado por um autmato finito determinstico

a
p0

p1

...

pn

Em AFNs, a funo programa leva de um par estado-smbolo a um conjunto


de estados possveis.

Pode-se entender que o AFN assume simultaneamente todas as


alternativas.de estados possveis {p0, p1, ..., pn} a partir do estado atual (q
Q) e do smbolo recebido ( a
), como se houvesse uma unidade de
controle para processar cada alternativa independentemente, sem
compartilhar recursos com as demais.

Assim o processamento de um caminho no influi no estado, smbolo lido e


posio da cabea dos demais caminhos alternativos.

10

Definio: Autmato Finito No-Determinstico (AFN)


Um AFN uma quntupla
M = ( , Q, , q0, F),
onde:
Q-

Alfabeto de smbolos de entrada


Conjunto finito de estados possveis do autmato
Funo programa ou funo de transio

q0 -

Estado inicial tal que q0

F -

Conjunto de estados finais, tais que F

:Qx

2Q, parcial.

Q
Q.

Portanto os componentes do AFN so os mesmos do AFD, com exceo da


funo programa (ver figura anterior).
O processamento de um AFN M para um conjunto de estados ao ler um
smbolo, a unio dos resultados da funo programa aplicada a cada estado
alternativo.
Definio: Funo Programa Estendida
Seja M = ( , Q, , q0, F) um AFN.
A funo programa estendida, denotada por:
: 2Q x *

2Q

a funo programa : Qx
definida como se segue:

2Q, estendida para palavras, e indutivamente

(P, ) = P
(P, aw) =

q P

(q, a), w)

Assim, tem-se que, para um conjunto de estados {q1, q2, ..., qn} e para um
smbolo a:
({q1, q2, ..., qn}, a) = (q1, a)

(q2, a)

...

(qn, a)

11

Por simplicidade tanto

quanto

sero denotadas simplesmente por .

A linguagem aceita por um AFN M = ( , Q, , q0, F) denotada por


ACEITA(M), ou L(M), o conjunto de todas as palavras pertencentes a *
tais que existe pelo menos um caminho alternativo que aceita a palavra, ou
seja:
ACEITA(M) = {w | existe q

(q0, w) tal que q

F}.

Analogamente, REJEITA(M) o conjunto de todas as palavras de * que so


rejeitadas por todos os caminhos alternativos de M a partir de q0.

Exemplo: Autmato Finito No-Determinstico


O AFN M5 = ({a, b}, {q0, q1, q2, qf}, 5, q0, {qf}),
reconhece a linguagem L5 = {w | w possui aa ou bb como sub-palavra},
onde 5 dada abaixo, na forma de tabela:
a

{q0, q1}
{qf}
{qf}

{q0, q2}
{qf}
{qf}

q0
q1
q2
qf

q0

a, b

q1

q2
a

b
qf
a, b

12

Exemplo: Autmato Finito No-Determinstico:


O AFN M6 = ({a,b}, {q0, q1, q2, qf}, 6, q0, {qf}), representado na figura
abaixo reconhece a linguagem L6 = { w | w possui aaa como sufixo }

q0

q1

q2

qf

a, b

Teorema: Equivalncia entre AFD e AFN

A classe dos AFD equivalente classe dos AFN.


A prova consiste em mostrar que para todo AFN M possvel construir um
AFD M que realiza o mesmo processamento, ou seja, M simula M.
A demonstrao apresenta um algoritmo para converter um AFN qualquer
em um AFD equivalente.
A idia central do algoritmo a construo de estados de M que simulem as
diversas combinaes de estados de M.
A transformao contrria - construir um AFN a partir de um AFD - no
necessita ser demonstrada, uma vez que decorre trivialmente das definies
(Por qu? Porque a funo programa do AFN contm a funo programa
do AFD).
Seja M = ( , Q, , q0, F) um AFN qualquer e seja M = ( , Q, , <q0>, F) um
AFD construdo a partir de M como se segue:
Q :

Conjunto de todas as combinaes, sem repeties, de estados de Q,


as quais so denotadas por <q1q2...qn> onde qi Q para i em {1,
2, ..., n}. Note-se que a ordem dos elementos no identifica mais
combinaes. Por exemplo: <quqv> = <qvqu>.

Tal que (<q1...qn>, a) = <p1...pm> sss ({q1, ..., qn}, a) = {p1,


..., pm}, ou seja, um estado de M representa uma imagem de todos
os estados alternativos de M.

<q0>:

Estado inicial.

F :

Conjunto de todos os estados <q1q2...qn>


componente qi F, para i {1, 2, ..., n}.

Q tal que alguma

13

PROVA:
A demonstrao de que o AFD M simula o processamento do AFN M
dada por induo sobre o tamanho da palavra. Deve-se provar que, para
uma palavra qualquer w de :
(<q0>, w) = <q1...qu> sse

({q0}, w) = {q1, ..., qu}

(A prova est no livro, na pgina 50).


Exemplo: Construo de um AFD a partir de um AFN.
Seja o AFN M6 = ({a,b}, {q0, q1, q2, qf}, 6, q0, {qf}), dado no exemplo
anterior e representado abaixo:
q0

q1

q2

qf

a, b

O AFD M6 = ({a, b}, Q, , <q0>, F), construdo conforme o algoritmo dado :


b
p0

b
p1

b
p2

pf
a

onde:
Q

= {<q0>,<q1>,<q2>,<qf>,<q0q1>,<q0q2>, ...,<q0q1q2qf>}

= {<qf>,<q0qf>,<q1qf>,...,<q0q1q2qf>}

= tal conforme os valores dados na tabela abaixo:


6

<q0>

<q0q1>

<q0>

<q0q1>

<q0q1q2>

<q0>

<q0q1q2>

<q0q1q2qf>

<q0>

<q0q1q2qf>

<q0q1q2qf>

<q0>

No grafo que representa M6, acima, p0, p1, p2 e pf denotam respectivaente


<q0>, <q0q1>, <q0q1q2>, <q0q1q2qf>.

14

Autmato Finito com Movimento Vazio


Movimentos vazios constituem uma generalizao dos AFN e so transies
que ocorrem sem que haja a leitura de smbolo algum

Os movimentos vazios podem ser interpretados como um no-determinismo


interno do autmato, que encapsulado.
A no ser por uma eventual mudana de estados, nada mais pode ser
observado sobre um movimento vazio..
Qualquer AF pode ser simulado por um autmato finito no-determinstico
Definio: Autmato Finito com Movimento Vazio (AF )
Um autmato finito no-determinstico e com movimento vazio (AFN ), ou
simplesmente autmato finito com movimento vazio (AF ), uma quntupla:
M = ( , Q, , q0, F),
onde:
Q-

Alfabeto de smbolos de entrada


Conjunto finito de estados possveis do autmato

Funo programa ou funo de transio


parcial.
q0 -

Estado inicial tal que q0

F -

Conjunto de estados finais, tais que F

:Qx(

{ })

2Q,

Q
Q.

Portanto os componentes do AF so os mesmos do AFN, com exceo da


funo programa (ver figura abaixo).

an

p1

...

a1
p0

pn

O processamento dos AF similar ao dos AFN. Por analogia o processamento


de uma transio para uma entrada vazia tambm no-determinstica. Assim
um AF ao processar uma entrada vazia assume simultaneamente os estados
de origem e destino da transio.
15

Exemplo: Autmato Finito com Movimento Vazio


O AF M7 = ({a,b}, {q0, qf}, 7, q0, {qf}), representado na figura abaixo
reconhece a linguagem L7 = { w | qualquer smbolo a antecede qualquer
smbolo b }, onde 7 representada na forma da tabela:
7

q0

{q0}

{qf}

qf

{qf}

q0
a

qf
b

16

Você também pode gostar