Вы находитесь на странице: 1из 156

LINGUAGENS REGULARES

Prof. Ronaldo R. Goldschmidt


ronaldo.rgold@gmail.com
LINGUAGENS REGULARES
LINGUAGENS REGULARES
So linguagens mais simples, segundo Chomsky
Tambm chamadas de Linguagens do Tipo 3
Permitem desenvolver algoritmos de:
Reconhecimento de formalismos (*)
Gerao de formalismos (*)
Converso entre formalismos (*)
Possuem fortes limitaes de expressividade
Ex: Linguagens com duplo balanceamento no so regulares
Pascal, C, Java, dentre outras
Exemplo de aplicao: Anlise Lxica
(*) de pouca complexidade, grande eficincia e fcil implementao
LINGUAGENS REGULARES
Sistema de Estados Finitos:
Modelo matemtico de sistemas com entradas e sadas discretas.
Pode assumir um nmero finito e predefinido de estados.
Cada estado resume informaes do passado necessrias para
determinar as aes sobre a entrada seguinte.
Ex. Clssico: Elevador
No memoriza requisies anteriores.
Cada estado indica andar corrente e
direo movimento.
Entradas so requisies pendentes.
LINGUAGENS REGULARES
Um autmato Finito um sistema de estados finitos.
Constitui modelo computacional do tipo seqencial, comum em diversos
estudos terico-formais da computao.
Pode ser:
Determinstico (AFD) Estado corrente e smbolo lido determinam um
nico estado.
No Determinstico (AFN) Estado corrente e smbolo lido
determinam um conjunto de estados.
Com Movimentos Vazios Dependendo do estado corrente e sem ler
qualquer smbolo, o sistema pode assumir um conjunto de estados.
Movimentos vazios podem ser vistos como transies encapsuladas nas
quais, alm de uma eventual mudana de estado, nada mais pode ser
observado. Ideia anloga ao conceito de encapsulamento das Linguagens
de Programao.
Autmato Finito
LINGUAGENS REGULARES
Pode ser interpretado como uma mquina com controle finito constituda de:
Fita
Unidade de Controle
Programa (Funo Programa ou Funo Transio)
Autmato Finito Determinstico (AFD)
Fita finita, dividida em clulas, cada uma armazenando um smbolo do alfabeto de entrada.
No possvel gravar sobre a fita.
Unidade de controle possui nmero finito e predefinido de estados.
Unidade de controle se desloca para a direita.
a a b c c b a a b c
Controle
LINGUAGENS REGULARES
Formalmente: AFD=(,Q,o,q
0
,F)
um alfabeto de smbolos de entrada
Q um conjunto finito de estados possveis
o uma funo parcial denominada funo programa
o: Q x Q
o(p, a) = q uma transio do estado p para o estado q
q
0
um elemento de Q, chamado estado inicial
F _ Q, denominado conjunto de estados finais
Autmato Finito Determinstico (AFD)
LINGUAGENS REGULARES
Autmato Finito Determinstico (AFD) Representao Grfica
Representao por meio de grafos dirigidos.
Estados so ns (vrtices)

Transies so arestas, ligando os ns
correspondentes. Ex: o(p, a)=q


Estados iniciais e finais possuem
representao distinta dos demais.


Representaes de Transies Paralelas
(mesma origem e destino)

LINGUAGENS REGULARES
Autmato Finito Determinstico (AFD) Representao Grfica
Representaes Alternativas Outros Autores:
LINGUAGENS REGULARES
Autmato Finito Determinstico (AFD)
Representao do Processamento
a a b b
Controle
Finito
fita com a cadeia w de entrada
Cabea
de leitura
Incio do processo
de reconhecimento
pelo estado inicial q
o
LINGUAGENS REGULARES
Representao alternativa de uma funo programa: tabela de dupla entrada.
o a b
q
0
q
1
q
2
q
1
q
f
q
2
q
2
q
1
q
f

q
f
q
f
q
f

Autmato Finito Determinstico (AFD)
Exemplo de uma funo programa:
Argumentos:
- Estado Atual
- Valor de Entrada
Sada:
- Prximo Estado
LINGUAGENS REGULARES
Exemplo: AFD que reconhece strings binrias com um nmero mpar de
smbolos 1.

Forma Tabular: Forma Grfica:
Autmato Finito Determinstico (AFD)
o 0 1
q
o
q
1
q
o
q
1
q
1
q
o
q
o
q
1
0
1
1
0
LINGUAGENS REGULARES
Exemplo: Seja a cadeia 01110 e o AFD do exemplo anterior. Veja o
processamento:
Autmato Finito Determinstico (AFD)
0 1 1 1 0
Controle
Finito
Cabea
de leitura
q
1
e F
0 1 1 1 0
Controle
Finito
o(q
0
, 0) = q
0

Cabea
de leitura
Incio do
AFD em q
0
0 1 1 1 0
Controle
Finito
o(q
0
, 1) = q
1
Cabea
de leitura
q
0
0 1 1 1 0
Controle
Finito
o(q
1
, 1) = q
0

Cabea
de leitura
q
1
0 1 1 1 0
Controle
Finito
o(q
0
, 1) = q
1

Cabea
de leitura
q
0
0 1 1 1 0
Controle
Finito
o(q
1
, 0) = q
1

Cabea
de leitura
q
1
LINGUAGENS REGULARES
A computao de um autmato finito, para uma palavra de
entrada w, consiste na sucessiva aplicao da funo
programa para cada smbolo de w (da esquerda para a direita)
at ocorrer uma condio de parada.
Autmato Finito (AF)
Obs: AF sempre pra (palavra tem comprimento finito)
AF:

aceita W quando aps ltimo smbolo processado, o estado final
rejeita W quando aps ltimo smbolo processado, o estado no final.
ou quando a funo programa indefinida para o argumento
LINGUAGENS REGULARES
Exemplo: AFD que reconhece palavras de E
*
, onde E={a}

M = (, Q, o, q
o
, F)

Q = { q
o
}, = { a }, F = { q
0
}


Forma Tabular : Forma Grfica :

Autmato Finito Determinstico (AFD)
o a
q
o
q
o
q
o
a
LINGUAGENS REGULARES
Exemplo: AFD que reconhece palavras sobre E={a},
iniciadas com a letra a.

M = (, Q, o, q
o
, F)

Q = {q
o
, q
1
}, = { a }, F = { q
1
}

Forma Tabular : Forma Grfica :

Autmato Finito Determinstico (AFD)
o a
q
o
q
1
q
1
q
1
q
o
q
1
a
a
LINGUAGENS REGULARES
Ex: Considere a linguagem L = {w / w possui aa ou bb como subpalavra}
O AFD M a seguir reconhece L.
M = ({a,b}, {q
0
, q
1
, q
2
, q
f
}, o
1
, q
0
, {q
f
})
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
o
1
a b
q
0
q
1
q
2
q
1
q
f
q
2
q
2
q
1
q
f

q
f
q
f
q
f

Obs: Os estados q
1
e q
2
so usados para representar a ocorrncia anterior de a e b, respectivamente.
E quanto a q
0
e q
f
? Para que servem?
Autmato Finito Determinstico (AFD)
LINGUAGENS REGULARES
Exerccio: Represente a funo programa e os componentes (, Q, o, q
o
, F)
do AFD M1 abaixo. Em seguida, indique a sequncia de processamento de
M1 diante da cadeia 001122120. Qual o tipo de cadeia reconhecida (ou
aceita) por M1?
Autmato Finito Determinstico (AFD)
LINGUAGENS REGULARES
Exerccio: Considere o AFD M2 = ({a,b}, {q
0
, q
f
}, o
2
, q
0
, {q
f
}) cuja
funo programa encontra-se definida abaixo. Indique a representao
grfica de M2. Em seguida, indique a sequncia de processamento de M2
diante da cadeia aaba. Qual o tipo de cadeia reconhecida (ou aceita) por
M2?
o
2
a b
q
0
q
0
q
f
q
f
q
0
q
f

Autmato Finito Determinstico (AFD)
LINGUAGENS REGULARES
Exerccio: Represente a funo programa e os componentes (, Q, o, q
o
, F)
do AFD M3 abaixo. Em seguida, indique a sequncia de processamento de
M3 diante da cadeia aabbccabc. Quais os tipos de cadeia reconhecidos por
M3?
Autmato Finito Determinstico (AFD)
LINGUAGENS REGULARES
Seja M=(,Q,o,q
0
,F) um AFD. A Funo Programa Estendida
ou Computao de M, denotada por:
o
*
: Q x
*
Q
a funo programa o: Q x Q estendida para palavras e
indutivamente definida como segue:
(i) o
*
(q, ) = q (base da induo)
(ii) o
*
(q, aw) = o
*
(o

(q,a), w) (passo indutivo)

Portanto, a funo programa estendida consiste na sucessiva
aplicao da funo programa para cada smbolo da palavra, a
partir de um dado estado.

Autmato Finito Determinstico (AFD)
LINGUAGENS REGULARES
Exemplo de Funo Programa Estendida:
Cadeia de entrada: abaa
Computao de abaa:
o
*
(q
0
, abaa) =
o
*
(o(q
0
,a), baa) =
o
*
(q
1
, baa) =
o
*
(o(q
1
,b), aa) =
o
*
(q
2
, aa) =
o
*
(o(q
2
,a), a) =
o
*
(q
1
, a) =
o
*
(o(q
1
,a), ) =
o
*
(q
f
, ) = q
f


Autmato Finito Determinstico (AFD)
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
Portanto, a cadeia abaa aceita pelo AFD
LINGUAGENS REGULARES
Outro exemplo de Funo Programa Estendida:
Cadeia de entrada: babab
Complete a computao de babab:
o
*
(q
0
, babab) =


Autmato Finito Determinstico (AFD)
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
A cadeia babab aceita ou rejeitada pelo AFD ?
LINGUAGENS REGULARES
Seja M=(,Q,o,q
0
,F) um AFD; A Linguagem Aceita ou
Linguagem Reconhecida por M, denotada por ACEITA(M) ou
L(M) o conjunto de todas as palavras de
*
aceitas por M a
partir do seu estado inicial q
0
.

Linguagem Aceita
L(M)={w/o
*
(q
0
,w)eF}, onde o
*
a Funo Programa Estendida

Analogamente, a Linguagem Rejeitada por M:
REJEITA(M)={w/o
*
(q
0
,w)eF ou o
*
(q
0
,w) indefinida}
LINGUAGENS REGULARES
Exemplo: Seja M=(,Q,o,q
0
,F) o AFD abaixo; A Linguagem
Aceita ou Linguagem Reconhecida por M formada por cadeias
que possuem subcadeias aa ou bb.

= {a, b}, Q = {q
0
, q
1
, q
2
, q
f
}, F = {q
f
}


Linguagem Aceita
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
LINGUAGENS REGULARES
ACEITA(M) REJEITA(M)=*
ACEITA(M) REJEITA(M)=
* - ACEITA(M) = REJEITA(M)
* - REJEITA(M) = ACEITA(M)

Todo autmato M define partio sobre *


ACEITA(M)


REJEITA(M)
*
Partio de *, induzida por um Autmato Finito M
LINGUAGENS REGULARES
Exemplo: Seja M=(,Q,o,q
0
,F) o AFD abaixo.
ACEITA(M)={e | e possui aa ou bb como subcadeias}.
REJEITA(M)={e | e no possui aa nem bb como subcadeias}.

= {a, b}, Q = {q
0
, q
1
, q
2
, q
f
}, F = {q
f
}


Linguagem Aceita e Linguagem Rejeitada
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
LINGUAGENS REGULARES
Diferentes autmatos finitos podem aceitar uma mesma
linguagem.

Assim, sendo M
1
e M
2
autmatos finitos:

M
1
equivalente a M
2

se, e somente se
ACEITA(M
1
)=ACEITA(M
2
)
Autmato Finitos Equivalentes
LINGUAGENS REGULARES
Exemplo: Sejam os autmatos M1 e M2 abaixo. Eles so
equivalentes?
Autmato Finitos Equivalentes
M1 = (, Q, o, q
o
, F)

Q = {q
o
, q
1
, q
2
}, = { a,b }, F = { q
1
}
M2 = (, Q, o, q
o
, F)

Q = {q
o
, q
1
, q
2
, q
3
}, = { a,b }, F = { q
1
}
q
o
q
1
a
a, b
q
2
b
a, b
q
o
q
1
a
a, b
q
2
b
a, b
q
3
a, b
LINGUAGENS REGULARES
Exemplo: Sejam os autmatos M1 e M2 abaixo. Eles so
equivalentes?
Autmato Finitos Equivalentes
M1 = (, Q, o, q
o
, F)

Q = { q
o
}, = { a }, F = { q
0
}
M2 = (, Q, o, q
o
, F)

Q = { q
o
}, = { a }, F = { q
0
}
q
o
a
q
o
q
1
a
a
LINGUAGENS REGULARES
Construa autmatos finitos determinsticos que reconheam cada uma
das seguintes linguagens sobre E ={a,b}
a) {e e E
*
: cada a em e imediatamente precedido por um b}
b) {e e E
*
: e possui baba como subcadeia}
c) {e e E
*
: e no possui aa nem bb como subcadeias}
d) {e e E
*
: e possui um nmero mpar de a e um nmero par de b}
e) {e e E
*
: e possui aa e bb como subcadeias}

Exerccios:
Ateno:
Utilizar a ferramenta JFLAP para implementar e testar cada um dos AFDs
construdos no exerccios anterior.
LINGUAGENS REGULARES
L dita uma Linguagem Regular (ou Linguagem do tipo 3) se
existe pelo menos um AFD que aceita L.

Linguagem Regular (Tipo 3)
Ex: Considere a linguagem L = {w / w possui aa ou bb como subpalavra}
Como vimos, o AFD M abaixo reconhece L. Portanto L uma linguagem
regular.
M = ({a,b}, {q
0
, q
1
, q
2
, q
f
}, o
1
, q
0
, {q
f
})
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
o
1
a b
q
0
q
1
q
2
q
1
q
f
q
2
q
2
q
1
q
f

q
f
q
f
q
f

Atividades Prticas
Lista de Exerccios III Exerccios 1 e 5
Exerccio 8 da Lista III: Desenvolva um programa em computador (linguagem a
sua escolha) que simule o processamento de qualquer autmato finito
determinstico como segue: (a) Entradas: Alfabeto, conjunto de estados, funo
de transio, estado inicial, conjunto de estados finais e as palavras a serem
processadas; (b) Sadas: Condio de parada ACEITA/REJEITA e identificao
do estado de parada.
Exerccio de T1 (Valendo Nota)
LINGUAGENS REGULARES
LINGUAGENS REGULARES
Autmato Finito No Determinstico (AFN)
LINGUAGENS REGULARES
Autmato Finito No Determinstico (AFN)
O no determinismo uma importante generalizao dos modelos
de mquinas, sendo de fundamental importncia no estudo de
modelos para concorrncia e das linguagens formais.
A facilidade do no determinismo para AF expressa no programa,
sendo este uma funo parcial que: dependendo do estado corrente e
do smbolo lido, determina um conjunto de estados do autmato.
Um Autmato Finito No Determinstico (AFN) pode assumir um
conjunto de estados alternativos, como se existisse uma
multiplicao de unidades de controle, uma para cada alternativa,
sem compartilhar recursos com as demais. Da a importncia para
modelos concorrentes.
Qualquer AFN pode ser simulado por um AFD, contribuindo para a
simplificao dos modelos.
LINGUAGENS REGULARES
Autmato Finito No Determinstico (AFN)
Formalmente: AFN=(,Q,o,q
0
,F)
um alfabeto de smbolos de entrada
Q um conjunto finito de estados possveis
o uma funo parcial denominada funo programa
o:Qx2
Q

o(p, a) = {q
1
, q
2
, ..., q
n
}
q
0
um elemento de Q, chamado estado inicial
F _ Q, denominado conjunto de estados finais
LINGUAGENS REGULARES
Representao diagramtica em um AFN de uma transio
do tipo: o(p, a) = {q
1
, q
2
, ..., q
n
}

Autmato Finito No Determinstico (AFN)
LINGUAGENS REGULARES
De forma anloga a um AFD, a computao de uma palavra de
entrada w por um AFN consiste na aplicao da funo programa
para cada smbolo de w (esquerda direita) at ocorrer condio de
parada.
Condies de parada em um AFN:
Aceita a entrada w, quando aps processar o ltimo smbolo,
existe pelo menos um estado pertencente ao conjunto de estados
finais.
Rejeita a entrada w, quando:
Aps processar o ltimo smbolo, todos os estados
alcanados no pertencem ao conjunto de estados finais.
Em algum momento durante o processamento de w, a
funo programa indefinida para o argumento.
Autmato Finito No Determinstico (AFN)
LINGUAGENS REGULARES
Ex: AFN para reconhecer palavras que contenham aa ou bb.
Autmato Finito No Determinstico (AFN)
o a b
q
0
{q
0
,q
1
}

{q
0
,q
2
}

q
1
{q
f
} -

q
2
- {q
f
}
q
f
{q
f
} {q
f
}
q
0
q
1
q
2
q
f
a
a
b
b
a,b
a,b
Com este AFN existem 3 caminhos:
O ciclo em q
0
aps passar em toda a entrada
O caminho q
0
/q
1
/q
f
garante a ocorrncia de aa
O caminho q
0
/q
2
/q
f
garante a ocorrncia de bb
LINGUAGENS REGULARES
Seja M=(,Q,o,q
0
,F) um AFN. A Funo Programa Estendida
ou Computao de M, denotada por:
o
*
: 2
Q
x
*
2
Q

a funo programa o: Q x 2
Q
estendida para palavras e
conjuntos de estados, indutivamente definida como segue:
(i) o
*
(P, ) = P (base da induo)
(ii) o*(P,aw)= o*(
qeP
o(q,a),w) (passo indutivo)

Transio estendida:
o*({q
1
, q
2
,..., q
n
},a) = o(q
1
, a) o(q
2
, a) ... o(q
n
, a)


Autmato Finito No Determinstico (AFN)
LINGUAGENS REGULARES
Exemplo de Funo Programa Estendida:
Cadeia de entrada: abaa
Computao de abaa:
o
*
({q
0
}, abaa) =
o
*
(o(q
0
, a), baa) =
o
*
({q
0
, q
1
}, baa) =
o
*
(o(q
0
,b) o(q
1
,b), aa) =
o
*
({q
0
, q
2
}, aa) =
o
*
(o(q
0
,a) o(q
2
,a), a) =
o
*
({q
0
, q
1
}, a) =
o
*
(o(q
0
,a) o(q
1
,a), ) =
o
*
({q
0
, q
1
, q
f
}, ) = {q
0
, q
1
, q
f
} F = C

Autmato Finito No Determinstico (AFN)
Portanto, a cadeia abaa aceita pelo AFN
q
0
q
1
q
2
q
f
a
a
b
b
a,b
a,b
LINGUAGENS REGULARES
Outro exemplo de Computao:
Cadeia de entrada: abbaba
Computao de abbaba:
o
*
({q
0
}, abbaba) =


Autmato Finito No Determinstico (AFN)
A cadeia abbaba aceita pelo AFN ?
q
0
q
1
q
2
q
f
a
a
b
b
a,b
a,b
LINGUAGENS REGULARES
Outro exemplo de Computao:
Cadeia de entrada: ababa
Computao de ababa:
o
*
({q
0
}, ababa) =


Autmato Finito No Determinstico (AFN)
A cadeia ababa aceita pelo AFN ?
q
0
q
1
q
2
q
f
a
a
b
b
a,b
a,b
LINGUAGENS REGULARES
Autmato Finito No Determinstico (AFN) e Linguagem Aceita
Seja M=(,Q,o,q
0
,F) um AFN; A Linguagem Aceita ou
Linguagem Reconhecida por M, denotada por ACEITA(M) ou
L(M) o conjunto de todas as palavras de
*
tais que existe pelo
menos um caminho alternativo que aceita a palavra a partir do
seu estado inicial {q
0
}.

L(M) = {w / o
*
({q
0
},w) F = C}

Analogamente, a Linguagem Rejeitada por M:
REJEITA(M)={w / o
*
({q
0
},w) F = C ou o
*
({q
0
},w) indefinida}
LINGUAGENS REGULARES
Exemplo: Seja M=(,Q,o,q
0
,F) o AFN abaixo; A Linguagem
Aceita ou Linguagem Reconhecida por M formada por cadeias
que possuem subcadeias aa ou bb.

= {a, b}, Q = {q
0
, q
1
, q
2
, q
f
}, F = {q
f
}


q
0
q
1
q
2
q
f
a
a
b
b
a,b
a,b
Autmato Finito No Determinstico (AFN) e Linguagem Aceita
LINGUAGENS REGULARES
Exemplo: Seja a linguagem L={w / w possui aaa como sufixo}
sobre o alfabeto {a,b}. Construa um AFN M tal que
L=ACEITA(M).

M=({a,b}, {q
0
, q
1
, q
2
, q
f
}, o, q
0
, {q
f
})





Os estados q
1
, q
2
e q
f
so os marcadores das ocorrncias de a.
Autmato Finito No Determinstico (AFN) e Linguagem Aceita
LINGUAGENS REGULARES
Exerccio: Seja a linguagem L={w / w possui aaa como sufixo}
sobre o alfabeto {a,b}. Construa um AFD M tal que
L=ACEITA(M).

Autmato Finito No Determinstico (AFN) e Linguagem Aceita
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Teorema: A classe dos Autmatos Finitos Determinsticos
equivalente classe dos Autmatos Finitos No Determinsticos.

Demonstrao: (Menezes, 2005, p.58)

1. Mostrar que a partir de um AFD qualquer M
D
possvel construir um AFN M
N
que
realiza as mesmas computaes do M
D
. Isso imediato pois basta adaptar a funo
programa de M
D
de forma que as sadas sejam conjuntos unitrios formados pelos
estados definidos na funo original, ou seja, sendo:

o
D
: Q x Q, tal que: o(p, a) = q, faz-se a seguinte adaptao:

o
N
:Qx2
Q
, tal que: o(p, a) = {q}


AFD AFN
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Demonstrao: (cont.1)
2. Mostrar que a partir de um AFN qualquer M
N
possvel construir um AFD M
D
que
realiza as mesmas computaes do M
N
.

Seja M
N
= (E, Q
N
, o
N
, q
0
, F
N
) um AFN qualquer.

Construmos um AFD M
D
= (E, Q
D
, o
D
, < q
0
>, F
D
) da seguinte forma:

a) Q
D
o construdo a partir de todas as combinaes, sem repeties, de estados de Q
N
.
Cada estado de Q
D
denotado por: < q
1
q
2
... q
n
>, onde q
i
e Q
N
, para i e {1, 2, ..., n}

importante observar que a ordem dos elementos no distingue os estados.
Exemplo: < q
u
q
v
> = < q
v
q
u
>

LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Demonstrao: (cont.2)
2. Mostrar que a partir de um AFN qualquer M
N
possvel construir um AFD M
D
que
realiza as mesmas computaes do M
N
.

Seja M
N
= (E, Q
N
, o
N
, q
0
, F
N
) um AFN qualquer.

Construmos um AFD M
D
= (E, Q
D
, o
D
, < q
0
>, F
D
) da seguinte forma:

b) o
D
: Q
D
x E Q
D
tal que:
o
D
(<q
1
...q
n
>, a) = <p
1
...p
m
>, se e somente se, o
N
*

({q
1
, ..., q
n
}, a) = {p
1
...p
m
}

c) < q
0
> o estado inicial

d) F
D
o conjunto de todos os estados < q
1
q
2
...q
n
> e Q
D
tal que alguma componente q
i
pertence a F
N
, para i e {1, 2, ..., n}
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Demonstrao: (cont.3)
A demonstrao de que o AFD M
D
simula as mesmas computaes do AFN M
N
. por
induo no tamanho de uma palavra qualquer w e E
*
.
Deve-se mostrar que:
o
D
*
(<q
0
>, w) = <q
1
...q
u
>, se e somente se, o
N
*

({q
0
}, w) = {q
1
, ..., q
u
}

a) Base de Induo. Seja w tal que |w| = 0. Portanto, w = c, e:
o
D
*
(<q
0
>, c) = <q
0
>, se e somente se, o
N
*

({q
0
}, c) = {q
0
} verdadeiro pela definio de
funo programa estendida;

b) Hiptese de Induo. Seja w tal que |w| = n e n > 1. Suponha verdadeiro que:
o
D
*
(<q
0
>, w) = <q
1
...q
u
>, se e somente se, o
N
*

({q
0
}, w) = {q
1
, ..., q
u
};


LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Demonstrao: (cont.4)

b) Hiptese de Induo. Seja w tal que |w| = n e n > 1. Suponha verdadeiro que:
o
D
*
(<q
0
>, w) = <q
1
...q
u
>, se e somente se, o
N
*

({q
0
}, w) = {q
1
, ..., q
u
};

c) Passo de Induo. Seja w tal que |wa| = n + 1 e n > 1. Ento, deseja-se mostrar que:

o
D
*
(<q
0
>, wa) = <p
1
...p
v
>, se e somente se, o
N
*

({q
0
}, wa) = {p
1
, ..., p
v
}. Essa afirmao
equivale, pela hiptese de induo, a:

o
D
(< q
1
...q
u
>, a) = <p
1
...p
v
>, se e somente se, o
N
*

({q
1
, ..., q
u
}, a) = {p
1
, ..., p
v
}, o que
verdadeiro pela prpria definio de o
D
.

Logo, M
D
simula M
N
e, portanto, as classes de AFD e AFN so equivalentes.

LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Teorema: A classe dos Autmatos Finitos Determinsticos
equivalente classe dos Autmatos Finitos No Determinsticos.




Obs: Determinismo x No Determinismo
Muitas vezes mais fcil desenvolver um AFN do que um AFD,
pois as solues deterministas, em geral, so no triviais e
envolvem um nmero possivelmente grande de estados. Em
seguida, a partir do AFN pode-se construir o AFD.

AFD AFN
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Exemplo: Considere o AFN reconhecedor da linguagem L={w / w possui aaa
como sufixo} sobre o alfabeto {a,b}:
M=({a,b}, {q
0
, q
1
, q
2
, q
f
}, o, q
0
, {q
f
})





Construa um AFD a partir dele.
Seja M
D
=({a,b}, Q
D
, o
D
, (q
0
), F
D
)
Q
D
= {(q
0
), (q
1
), (q
2
), (q
f
), (q
0
q
1
), (q
0
q
2
), ..., (q
0
q
1
q
2
q
f
)}
F
D
= {(q
f
), (q
0
q
f
), (q
1
q
f
), (q
2
q
f
), ..., (q
0
q
1
q
2
q
f
)}
Obs: Q
D
e F
D
so combinaes de estados de Q e F
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Exemplo (cont.): M=({a,b}, {q
0
, q
1
, q
2
, q
f
}, o, q
0
, {q
f
})


M
D
=({a,b}, Q
D
, o
D
, (q
0
), F
D
)
Q
D
= {(q
0
), (q
1
), (q
2
), (q
f
), (q
0
q
1
), (q
0
q
2
), ..., (q
0
q
1
q
2
q
f
)}
F
D
= {(q
f
), (q
0
q
f
), (q
1
q
f
), (q
2
q
f
), ..., (q
0
q
1
q
2
q
f
)}






Por simplicidade, foram explicitados os estados para os quais a funo programa est
definida. Alm disso, os estados foram renomeados para p
0
(q
0
), p
1
(q
0
q
1
), p
2
(q
0
q
1
q
2
) e p
f
(q
0
q
1
q
2
q
f
).
o
D
a b
(q
0
) (q
0
q
1
) (q
0
)
(q
0
q
1
) (q
0
q
1
q
2
) (q
0
)
(q
0
q
1
q
2
) (q
0
q
1
q
2
q
f
) (q
0
)
(q
0
q
1
q
2
q
f
) (q
0
q
1
q
2
q
f
) (q
0
)
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Exemplo: Considere o AFN reconhecedor da linguagem L={w / w possui aa
ou bb como subcadeias} sobre o alfabeto {a,b}:
M=({a,b}, {q
0
, q
1
, q
2
, q
f
}, o, q
0
, {q
f
})








Construa um AFD a partir dele.
q
0
q
1
q
2
q
f
a
a
b
b
a,b
a,b
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Exemplo: Elabore um AFN reconhecedor da linguagem L={w / w possui aa
ou bb como subcadeias e ccc como sufixo} sobre o alfabeto {a,b,c} e, em
seguida, converta-o em um AFD.
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Exerccios: Converta os AFN a seguir em AFD:

a)






b)
LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Exerccios: Converta os AFN a seguir em AFD:

c)







LINGUAGENS REGULARES
Equivalncia entre AFD e AFN
Como:
Toda linguagem L regular se existe pelo menos um AFD M tal que
ACEITA(M)=L.
A classe dos AFN equivalente classe dos AFD

Podemos concluir que:
Dada uma linguagem L, se existe pelo menos um AFN M tal que
ACEITA(M)=L, ento L uma linguagem regular.


Linguagens Aceitas por AFN so, portanto, Linguagens Regulares (Tipo 3)
LINGUAGENS REGULARES
Autmato Finito com Movimentos Vazios
Movimentos vazios generalizam os movimentos no
determinsticos.
Um movimento vazio uma transio sem leitura de smbolo algum
da fita.
AFs com movimentos vazios facilitam construes e demonstraes
relacionadas a autmatos.

Definio: Um AFN com Movimentos Vazios (AFN
c
) um autmato
M tal que: M=(,Q,o,q
0
,F), onde:
o:Q x ({c})2
Q
e
o(p, c) = {q
1
, q
2
, ..., q
n
} um movimento vazio ou transio vazia do
autmato.

LINGUAGENS REGULARES
Autmato Finito com Movimentos Vazios
Supondo um AFN
c
=(,Q,o,q
0
,F) tal que:
o(q, c) = {p
0
}
o(q, a
1
) = {p
1
}
...
o(q, a
n
) = {p
n
}
Ilustrao diagramtica:

q

p
0
p
1
p
n
...

a
1
a
n
c

LINGUAGENS REGULARES
Autmato Finito com Movimentos Vazios
Exemplo: Considere o AFN

abaixo que aceita a linguagem


L={a
i
b
j
/ i, j > 0}

LINGUAGENS REGULARES
Autmato Finito com Movimentos Vazios
Exemplo: Considere o AFN

abaixo que aceita a linguagem


L={a
i
b
j
c
k
a
m
/ i, j, k, m > 0}



Compare com a complexidade do AFD abaixo:

LINGUAGENS REGULARES
Equivalncia entre AFN e AFN

Teorema: A classe dos Autmatos Finitos com Movimentos
Vazios equivalente classe dos Autmatos Finitos No
Determinsticos.

Demonstrao: (Menezes, 2005, p.65)

Obs:
Linguagens aceitas por autmatos finitos com movimentos
vazios so, portanto, Linguagens Regulares (Tipo 3).

AFN

AFN
LINGUAGENS REGULARES
Equivalncia entre AFD, AFN e AFN

Teorema: A classe dos Autmatos Finitos com Movimentos
Vazios equivalente classe dos Autmatos Finitos
Determinsticos.

Demonstrao: (Transitividade)

AFN

AFN AFD

LINGUAGENS REGULARES
Toda linguagem regular pode ser descrita por uma Expresso
Regular.

Trata-se de um formalismo denotacional, porm gerador, pois
se pode inferir como construir as palavras de uma linguagem.

Expresses regulares so consideradas adequadas para a
comunicao humano x humano e, principalmente, para a
comunicao humano x mquina.
Expresses Regulares
LINGUAGENS REGULARES
Expresses regulares so notaes padronizadas para
caracterizar sequncias de textos.

Possuem muita aplicao prtica no contexto de busca na
web, recuperao de informao, processamento de textos,
clculo de freqncias de termos em corpora (colees de
documentos), dentre outras.

Formalmente, uma expresso regular uma notao algbrica
para caracterizar um conjunto de strings.
Expresses Regulares
LINGUAGENS REGULARES
Exemplo de aplicao no Google para busca na Web:

Linguagens Formais Pginas contendo combinao exata

Linguagens Formais Pginas contendo ambas as palavras

Linguagens OR Formais Pginas contendo pelo menos uma

Linguagens Formais Pginas contendo somente a primeira

Parnteses definem precedncia (T1 OR T2) T3
Expresses Regulares
LINGUAGENS REGULARES
Definio: Uma Expresso regular (abreviada por ER) sobre um alfabeto E
indutivamente definida como:

a) Base de Induo
Para qualquer x e E, a expresso x regular e representa a linguagem {x}
A expresso C regular e representa a linguagem vazia
A expresso regular e representa a linguagem {}

b) Passo de Induo: Se r e s so expresses regulares e representam as linguagens R
e S, respectivamente, ento a expresso:
(r + s) regular e representa a linguagem R S (Unio)
(rs) regular e representa a linguagem RS={uv / u e R e v e S} (Concatenao)
(r
*
) regular e representa a linguagem R
*
(Concatenao Sucessiva)
Expresses Regulares
LINGUAGENS REGULARES
Se r uma expresso regular, a linguagem que ela representa
chamada Linguagem Gerada por r, cuja notao :
L(r) ou GERA(r)

A omisso de parnteses em uma ER usual, respeitando as
seguintes convenes:
A concatenao sucessiva tem precedncia sobre a
concatenao e a unio.
A concatenao tem precedncia sobre a unio.
Expresses Regulares
LINGUAGENS REGULARES
A tabela abaixo apresenta exemplos de expresses regulares e
as correspondentes linguagens geradas:
Expresses Regulares
Expresso Regular Linguagem Gerada
aa Somente a palavra aa
ba* Todas as palavras iniciadas por b, seguidas por zero ou
mais a
(a+b)* Todas as palavras sobre {a, b}
(a+b)*aa(a+b)* Todas as palavras contendo aa como subpalavra
a*ba*ba* Todas as palavras contendo exatamente dois b
(a+b)*(aa+bb) Todas as palavras terminadas por aa ou bb
(a+)(b+ba)* Todas as palavras que no possuem dois a consecutivos
LINGUAGENS REGULARES
Exemplo: Detalhe a linguagem gerada pela expresso regular
(a+b)*(aa+bb):
a e b denotam {a} e {b}, respectivamente
a + b denota {a} {b} = {a, b}
(a + b)* denota {a, b}*
aa denota {a}{a}={aa} e bb denota {b}{b}={bb}
(aa+bb) denota {aa} {bb} = {aa, bb}
(a+b)*(aa+bb) denota {a,b}*{aa, bb}
Portanto, GERA ((a+b)*(aa+bb)) corresponde linguagem:
{aa, bb, aaa, abb, baa, bbb, aaaa, aabb, abaa, abbb, baaa, babb, bbaa,
bbbb, ...}

Expresses Regulares
LINGUAGENS REGULARES
Exerccio:
Defina expresses regulares para as seguintes linguagens sobre {a,b}:
a) Cadeias que possuam aa como prefixo e bb como sufixo.
b) Cadeias que s possuam trs a no necessariamente consecutivos.
c) Cadeias em que todo a seja seguido de um nico b.
d) Cadeias em que todo a seja precedido de um nico b.
e) Cadeias que no possuam dois b consecutivos.
f) Cadeias iniciadas por aa ou bb e que possuam ab como subcadeia.
g) Cadeias sem ocorrncias de b.
h) Cadeias aa ou bb ou ab.



Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.

Demonstrao: (Menezes, 2005, p.68)

Seja r uma expresso regular, precisamos mostrar que existe um AF M tal que
ACEITA(M) = GERA(r).

Na construo de M, ACEITA(M) = GERA(r) demonstrada por induo no
nmero de operadores.

Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.1)
a) Base de Induo. Seja r uma expresso regular com zero operadores.
Ento r s pode ser da forma:
r = C ou r = c ou r = x (onde x e E)
Os AF abaixo aceitam as linguagens acima:
M
1
= (C, {q
0
}, o
1
, q
0
, C)
M
2
= (C, {q
f
}, o
2
, q
f
, {q
f
})
M
3
= ({x}, {q
0
, q
f
}, o
3
, q
0
, {q
f
})

Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.2)
b) Hiptese de Induo. Seja r uma expresso regular com at n > 0
operadores. Suponha que seja possvel definir um AF M tal que:
ACEITA(M) = GERA(r)

c) Passo de Induo. Seja r uma expresso regular com at n + 1
operadores. Ento r pode ser representada por um dos seguintes casos
(onde r
1
e r
2
possuem juntos, no mximo, n operadores):
r = r
1
+ r
2
r = r
1
r
2
r = r
1
*

Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.3)
c) Passo de Induo. Seja r uma expresso regular com at n + 1
operadores. Ento r pode ser representada por um dos seguintes casos
(onde r
1
e r
2
possuem juntos, no mximo, n operadores):
r = r
1
+ r
2
r = r
1
r
2
r = r
1
*

Por hiptese de induo, possvel construir os autmatos:
M
1
= (E
1
, Q
1
, o
1
, q
01
, {q
f1
}) e M
2
= (E
2
, Q
2
, o
2
, q
02
, {q
f2
})

tais que:
ACEITA(M
1
) = GERA(r
1
) e ACEITA(M
2
) = GERA(r
2
)
Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.4)
c) Por hiptese de induo, possvel construir os autmatos:
M
1
= (E
1
, Q
1
, o
1
, q
01
, {q
f1
}) e M
2
= (E
2
, Q
2
, o
2
, q
02
, {q
f2
})
tais que: ACEITA(M
1
) = GERA(r
1
) e ACEITA(M
2
) = GERA(r
2
)

Sem perda de generalidade, assume-se que M
1
e M
2
possuem exatamente um
estado final e que Q
1
Q
2
= C.

Assim, os seguintes AFN
c
que aceitam GERA(r) podem ser construdos para
cada operao:
Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.5)
c) Assim, os seguintes AFN
c
que aceitam GERA(r) podem ser construdos
para cada operao: (i) r = r
1
+ r
2

Seja M = (E
1
E
2
, Q
1
Q
2
{q
0
, q
f
}

, o, q
0
, {q
f
}):





A partir de q
0
, M realiza transies para os estados q
01
e q
02
. M
1
e M
2

processam de forma no determinstica e, basta que um deles aceite a
entrada , para que M tambm aceite.

Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.6)
c) Assim, os seguintes AFN
c
que aceitam GERA(r) podem ser construdos
para cada operao: (ii) r = r
1
r
2

Seja M = (E
1
E
2
, Q
1
Q
2
, o, q
01
, {q
f2
}):




Ao processar os mdulos M
1
e M
2
em sequncia, M aceita uma entrada
se, e somente se, o prefixo pertencer a ACEITA(M
1
) e o sufixo pertencer
a ACEITA(M
2
).


Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.
Demonstrao: (Cont.7)
c) Assim, os seguintes AFN
c
que aceitam GERA(r) podem ser construdos
para cada operao: (iii) r = r
1
*


Seja M = (E
1
, Q
1
{q
0
, q
f
}

, o, q
0
, {q
f
}):





A transio vazia de q
0
para q
f
garante a aceitao da palavra vazia e o
ciclo de q
f1
para q
01
permite o sucessivo processamento de M
1
para
assegurar o reconhecimento de duas ou mais concatenaes sucessivas.

Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.

Demonstrao: (Concluso)

Assim, dada r uma expresso regular, mostramos que sempre possvel
construir um AF M tal que ACEITA(M) = GERA(r).

Portanto, como existe tal autmato, por definio, GERA(r) uma linguagem
regular.

Expresses Regulares
LINGUAGENS REGULARES
Teorema: Se r uma expresso regular, ento GERA(r) uma linguagem
regular.

Exemplo: (a+b)*aa expresso regular.
L=GERA ((a+b)*aa) = {aa, aaa, baa, aaaa, abaa, baaa, ...}


O AFD ao lado aceita L.


Portanto, L regular.
Expresses Regulares
q
0
q
1
q
2
q
f
a
a
a b
b
a
b
b
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular, ento existe uma expresso regular r
tal que: GERA(r)=L

Demonstrao: (Menezes, 2005, p.71)

Exemplo: L = {w / w possui aa ou bb como subpalavra} uma linguagem
regular.


O AFD aceita L:


Gera((a+b)*(aa+bb)(a+b)*) = L

Expresses Regulares
q
0
q
1
q
2
q
f
a
a
a b
b
b
a,b
LINGUAGENS REGULARES
Exerccio: Construa um AFN que aceita GERA(a
*
(aa+bb))











Obs: Os estados foram omitidos para fins de simplificao dos esquemas.

Expresses Regulares
LINGUAGENS REGULARES
Exerccio: Construa um AFN que aceita GERA(a
*
(aa+bb)) (cont.)










Sugesto: Experimente o recurso de converso disponvel no JFLAP
Expresses Regulares
LINGUAGENS REGULARES
O conceito de gramtica pode ser usado para definir tanto
linguagens regulares como linguagens no regulares.

Entretanto, possvel estabelecer restries nas regras de
produo de forma a definir a Classe das Linguagens Regulares.

Existe mais de uma forma de definir uma Gramtica Regular. Na
sequncia so apresentadas quatro dessas formas, denominadas
Gramticas Lineares.
Gramtica Regular
LINGUAGENS REGULARES
Seja G=(V,T,P,S) uma gramtica. Sejam A e B elementos de V e w uma
palavra de T*. Diz-se que G uma Gramtica Linear se todas as suas
produes encontram-se em uma e somente uma das seguintes formas:
Gramtica Linear Direita (GLD): A wB ou A w
Gramtica Linear Esquerda (GLE): A Bw ou A w
Gramtica Linear Unitria Direita (GLUD): Como GLD e |w| s 1
Gramtica Linear Unitria Esquerda (GLUE): Como GLE e |w| s 1

Nota-se que, nas gramticas lineares, o lado direito de uma produo
constitudo por, no mximo, uma varivel. Adicionalmente, esta varivel, se
existir, sempre antecede (linear esquerda) ou sucede (linear direita)
qualquer sub-palavra (eventualmente vazia) de smbolos terminais.
Gramtica Regular
LINGUAGENS REGULARES
Exemplos de Gramticas Lineares:

Gramtica Linear Direita: G=({S, A}, {a, b}, P, S), sendo que P possui as
seguintes produes: S aA e A baA |

Gramtica Linear Esquerda: G=({S}, {a, b}, P, S), sendo que P possui a
seguinte produo: S Sba | a

Gramtica Linear Unitria Direita: G=({S, A}, {a, b}, P, S), sendo que P
possui as seguintes produes: S aA e A bA |

Gramtica Linear Unitria Esquerda: G=({S}, {a, b}, P, S), sendo que P
possui a seguinte produo: S Sb | a


Gramtica Regular
LINGUAGENS REGULARES
Definio: Uma gramtica G dita ser uma Gramtica Regular (GR) se G
uma gramtica linear.

Definio: Seja G=(V,T,P,S) uma gramtica G. A Linguagem Gerada por G
(denotada por L(G) ou GERA(G)) tal que L(G)={w e T
*
/ S + w}

Exemplo: A Linguagem a(ba)* gerada pelas seguintes gramticas regulares:

Linear Direita: G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes
produes: S aA e A baA |

Linear Esquerda: G=({S}, {a, b}, P, S), sendo que P possui a seguinte
produo: S Sba | a


Gramtica Regular
LINGUAGENS REGULARES
Observao: Gramtica Linear Esquerda e Linear Direita.
Supondo |w| > 1, se uma gramtica tiver simultaneamente produes do tipo
AwB (linear direita) e do tipo ABw (linear esquerda), ento a
linguagem gerada por ela poder no ser regular. A prpria gramtica no
seria regular.

Exemplo: L={a
n
b
n
/ n>0} no uma linguagem regular. Procure elaborar uma
gramtica que contenha tanto produes lineares direita quanto produes
lineares esquerda e que gere L.
Gramtica Regular
LINGUAGENS REGULARES
Teorema: Se L uma linguagem gerada por uma gramtica regular, ento L
uma linguagem regular.

Demonstrao: (Menezes, 2005, p. 75)

Exemplo: Seja L=GERA(G), onde G=({S, A}, {a, b}, P, S), sendo que P
possui as seguintes produes: S aA e A baA |
G linear direita, e, portanto, regular.

O AFD ao lado aceita L.


Portanto L regular.
Gramtica Regular
q
0
q
1
q
2
q
f
a
b
a
b
a
q
3
a
a,b
b
LINGUAGENS REGULARES
Exemplo de construo de um AFNc a partir de uma gramtica linear (esse
processo pode ser automatizado):

Considere a gramtica G = ({S, A, B}, {a,b}, P, S)
P = {S aA, A bB | c, B aA}

O AFN que reconhece GERA(G) : M = ({a,b}, {S, A, B, q
f
}, o, S, {q
f
}), onde:
Gramtica Regular
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular, ento existe G, gramtica regular
que gera L.

Demonstrao: (Menezes, 2005, p. 77)

Exemplo: L={a, aba, ababa, abababa, ...}=GERA(a(ba)*), L linguagem
regular.

G=({S, A}, {a, b}, P, S), sendo que P possui as seguintes produes: S aA
e A baA |

G uma gramtica regular tal que L=GERA(G). Logo existe G regular que
gera L.
Gramtica Regular
LINGUAGENS REGULARES
Exemplo de construo de uma gramtica regular a partir de um AFD (esse
processo pode ser automatizado):

Considere o AFD M = ({a,b,c}, {q
0
, q
1
, q
2
}, o, q
0
, {q
0
, q
1
, q
2
}), onde:




A gramtica regular correspondente G:

G = ({q
0
, q
1
, q
2
}, {a,b,c}, P, S), onde P construdo
como mostrado na tabela ao lado.
Gramtica Regular
Atividades Prticas
Lista de Exerccios III At o nmero 8 (Parte I)
Leituras Recomendadas
Cap. 3 Paulo Blauth Menezes
Sees 3.1 a 3.6 Marcus Ramos
Sees 2.1 a 2.3 Papadimitriou
Cap. 3 Hopcroft & Ullman
LINGUAGENS REGULARES
LINGUAGENS REGULARES
Uma das principais caractersticas das linguagens regulares o fato de serem
representadas por formalismos de pouca complexidade, grande eficincia e
fcil implementao.

Entretanto, por ser uma classe de linguagem relativamente simples, restrita e
limitada, levantando questes a serem analisadas:

Como determinar se uma linguagem regular?
A classe das linguagens regulares fechada para operaes de unio,
concatenao e interseo?
Como verificar se uma linguagem regular finita, infinita ou mesmo vazia?
possvel analisar duas linguagens regulares quaisquer e concluir se so
iguais ou diferentes?
Propriedades
LINGUAGENS REGULARES
Traduo dos Formalismos das Linguagens Regulares:
Propriedades
LINGUAGENS REGULARES
Com relao complexidade de algoritmos, autmatos finitos pertencem
classe de algoritmos mais eficientes em termos de tempo de processamento,
supondo que toda entrada necessita ser lida.

Propriedades
Complexidade Computacional: Seja f(n) funo no negativa para todo
n, n > 0. Dizemos de f(n) O(g(n)), se: Existem um inteiro n
0
e uma
constante c > 0 tais que: Para todo n > n
0
, f(n) scg(n)
Notao: f(n)=O(g(n))
LINGUAGENS REGULARES
Com relao complexidade de algoritmos, autmatos finitos pertencem
classe de algoritmos mais eficientes em termos de tempo de processamento,
supondo que toda entrada necessita ser lida.

De fato, qualquer autmato finito que solucione um problema igualmente
eficiente, a menos de eventual redundncia de estados, a qual no influi no
tempo de processamento.

Tal redundncia de estados pode ser eliminada, determinando-se um
Autmato Finito Determinstico Mnimo, ou simplesmente, Autmato Finito
Mnimo.
Propriedades
LINGUAGENS REGULARES
Lema do Bombeamento Ideia Bsica:
Se L uma linguagem regular, ento L aceita por um autmato finito
determinstico M que possui um nmero finito e predefinido de n estados.
Se M reconhece uma entrada w de comprimento maior ou igual ao nmero de
estados n, obrigatoriamente o autmato assume algum estado q mais de uma
vez (existindo, portanto, um ciclo na funo programa).
Logo, w pode ser dividida em trs subpalavras w=uvz tal que |uv| s n, |v| > 1,
onde v a parte de w reconhecida pelo ciclo.
Tal ciclo pode ser executado (bombeado) zero ou mais vezes. Portanto, para
qualquer i > 0, u v
i
z aceita por M (ou seja, palavra da linguagem).
Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Lema do Bombeamento:
Se L uma linguagem regular, ento:
existe uma constante n tal que,
para qualquer palavra w de L onde |w| > n, w pode ser definida como w=uvz
onde |uv| s n, |v| > 1,
e sendo que, para todo i, i > 0, u v
i
z palavra da L.

Demonstrao: (Menezes, 2005, p.85)
Seja L uma linguagem regular. Portanto, existe um AFD M = (E,Q,o, q
0
,F) tal
que ACEITA(M) = L.
Seja n a cardinalidade de Q.
Suponhamos w uma palavra de L tal que |w| = m e m > n
Portanto, w = a
1
a
2
... a
m

Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Lema do Bombeamento:
Demonstrao: (cont. 1)
Suponhamos w uma palavra de L tal que |w| = m e m > n
Portanto, w = a
1
a
2
... a
m
o(q
0
, a
1
) = q
1
, o(q
1
, a
2
) = q
2
, ..., o(q
m-1
, a
m
) = q
m

Como m > n, ento existem r e s tais que: 0 r < s n e
q
r
=q
s
o
*
(q
0
, a
1
... a
r
) = q
r
o
*
(q
r
, a
r+1
... a
s
) = q
s
o
*
(q
s
, a
s+1
... a
m
) = q
m


Ou seja, M passa mais de uma vez no estado q
r
=q
s


Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Lema do Bombeamento:
Demonstrao: (cont. 2)
o
*
(q
0
, a
1
... a
r
) = q
r
o
*
(q
r
, a
r+1
... a
s
) = q
s
o
*
(q
s
, a
s+1
... a
m
) = q
m

Ou seja, M passa mais de uma vez no estado q
r
=q
s

Assim, sejam :
u = a
1
... a
r
v = a
r+1
... a
s
z = a
s+1
... a
m

Como r < s n, ento: | v | > 1 e | uv | n

Como q
r
=q
s
, ento v reconhecida em um ciclo. Portanto, para todo i > 0, uv
i
z
palavra de L.
Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Lema do Bombeamento:
Se L uma linguagem regular, ento:
existe uma constante n tal que,
para qualquer palavra w de L onde |w| > n, w pode ser definida como w=uvz
onde |uv| s n, |v| > 1,
e sendo que, para todo i, i > 0, u v
i
z palavra da L.

Exemplo: Considerando o autmato abaixo (qual a linguagem regular definida
por ele?), n=4 e, no caso particular de w=abbba, vale que: u=a, v=bb, z=ba
Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
O Lema do Bombeamento garante que os formalismos regulares so capazes de
expressar diversos bombeamentos (mltiplas aplicaes do lema).

Por exemplo, as seguintes linguagens so regulares (quais seriam os AF?):
Bombeamento Duplo: {a
n
b
m
/ n > 0 e m > 0}
Bombeamento Triplo: {a
n
b
m
a
r
/ n > 0, m > 0 e r > 0}
Bombeamento Qudruplo: {a
n
b
m
a
r
b
s
/ n > 0, m > 0, r > 0 e s > 0}
etc...

Cada conjunto de repeties sucessivas de uma subpalavra pode ser associado a
um estado distinto, caracterizando uma aplicao do lema do bombeamento.
Assim, mais de um conjunto de repeties sucessivas caracteriza mltiplas
aplicaes do lema.


Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Exemplo de aplicao do Lema do Bombeamento:

Mostre que a linguagem L sobre {a,b} no regular (ou no-regular):
L={w / w possui o mesmo nmero de smbolos a e b}

Demonstrao (por reduo ao absurdo):
Suponhamos que L seja regular. Ento existe um AFD M com n estados que
aceita L (teorema anterior).

Seja w=a
n
b
n
palavra de L, sendo |w| = 2n > n
Pelo lema do bombeamento, w pode ser definida como w = uvz tal que:
|uv| s n e |v| > 1.
Portanto, uv formado apenas de smbolos a.
Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Exemplo de aplicao do Lema do Bombeamento:
Mostre que a linguagem L sobre {a,b} no regular (ou no-regular):
L={w / w possui o mesmo nmero de smbolos a e b}
Demonstrao (cont.):
Pelo lema do bombeamento, w pode ser definida como w = uvz tal que:
|uv| s n e |v| > 1
Portanto, uv formado apenas de smbolos a.
Tambm pelo lema do bombeamento, para todo i, i > 0, u v
i
z palavra da L.
Logo, se tomarmos i=2, u v
2
z palavra da L, o que um absurdo, pois a nova
palavra teria mais smbolos a do que smbolos b. Portanto, L no-regular.

Sugesto: Utilize o JFLAP para exercitar a aplicao do lema do
bombeamento com esta e outras linguagens no regulares. Deixe o computador
iniciar o jogo e apresente parties de w que ilustrem a no aplicao do lema.
Propriedades Bombeamento para Linguagens Regulares
LINGUAGENS REGULARES
Operaes sobre linguagens podem ser usadas para:
Construir novas linguagens regulares a partir de LR conhecidas
Provar propriedades
Construir algoritmos

Teorema: A Classe das Linguagens Regulares fechada para as seguintes
operaes:
Unio (de LR resulta em uma LR)
Concatenao (de LR resulta em uma LR)
Complemento (de LR resulta em uma LR)
Interseo (de LR resulta em uma LR)

Demonstrao: (Menezes, 2005, p.88)
Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
Teorema: A Classe das Linguagens Regulares fechada para as seguintes
operaes: Unio, Concatenao; Complemento e Interseo

Demonstrao: (Menezes, 2005, p.88)

As provas referentes aos casos de unio e concatenao decorrem diretamente
da definio de expresso regular. Verifique porque.

No caso do complemento, suponha L uma LR sobre E*. Ento existe um AFD
M = (E, Q, o, q
0
, F) tal que ACEITA(M) = L

A ideia inverter as condies de ACEITA / REJEITA de M para reconhecer
~L. No entanto, como M pode rejeitar por indefinio, necessrio M para
garantir que ele ir parar apenas aps ler toda a entrada.
Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
Teorema: A Classe das Linguagens Regulares fechada para as seguintes
operaes: Unio, Concatenao; Complemento e Interseo

Demonstrao: (cont.)
A ideia inverter as condies de ACEITA / REJEITA de M para reconhecer
~L. No entanto, como M pode rejeitar por indefinio, necessrio adaptar M
para garantir que ele ir parar apenas aps ler toda a entrada.

Para tanto, suficiente introduzir um novo estado final d, o qual ser destino de
todas as transies originalmente indefinidas. Alm disso, d dever conter um
ciclo para todos os smbolos do alfabeto (a fim de assegurar a leitura de toda a
entrada).

Assim, temos o novo AFD: M
C
= (E, Q
C
, o
C
, q
0
, F
C
) tal que ACEITA(M
C
) = ~L
Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
Teorema: A Classe das Linguagens Regulares fechada para as seguintes
operaes: Unio, Concatenao; Complemento e Interseo

Demonstrao: (cont. 2)
Assim, temos o novo AFD: M
C
= (E, Q
C
, o
C
, q
0
, F
C
) tal que ACEITA(M
C
) = ~L
(suponhamos d e Q)
Q
C
= Q {d} e F
C
= Q
C
F
o
C
como o
,
com as seguintes transies adicionais (para todo a eE e q e Q):
o
C
(q, a) = d, se o(q,a) no estiver definida
o
C
(d, a) = d

Assim, ACEITA(M
C
) = ~L, ou seja, ACEITA(M
C
)=REJEITA(M)
Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
Teorema: A Classe das Linguagens Regulares fechada para as seguintes
operaes: Unio, Concatenao; Complemento e Interseo

Demonstrao: (cont. 3)
No caso da interseo, suponha L
1
e L
2
linguagens regulares. Como
consequncia da propriedade de DeMorgan para conjuntos, a seguinte
igualdade se verifica:

L
1
L
2
= ~(~L
1
~L
2
)

Como a classe das Linguagens Regulares fechada para as operaes de unio
e complemento, ela tambm fechada para a operao de interseo.

Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
Exemplo de Complemento: Considere o AFD (com transies indefinidas):
M = ({a,b}, {q
0
, q
1
, q
2
, q
f
}, o, q
0
,{q
f
}) abaixo:



Quem ACEITA(M) = L?
Seguindo a demonstrao do algoritmo anterior, o AFD:
M
C
= ({a,b}, {q
0
, q
1
, q
2
, q
f
, d}, o
C
, q
0
,{q
0
, q
1
, q
2
, d}), ACEITA(M
C
) = ~L
Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
Teorema: A Classe das Linguagens Regulares fechada para as seguintes
operaes: Unio, Concatenao; Complemento e Interseo

Exemplo: Sejam as linguagens regulares sobre E={a, b}:
L
1
= {aae / e e {a,b}*} GERA(aa(a+bb)*) = L
1
L
2
= {ebb / e e {a,b}*} GERA((a+bb)*bb) = L
2

L
1
L
2
={/(=aae ou =ebb) e e e E*} GERA((aa(a+b)*)+((a+b)*bb))
L
1
L
2
={aaebb / e e E*} GERA(aa(a+b)*bb)
E* - L
1
= GERA(((ab+b)(a+b)*) + )
L
1
L
2
={aaebb / e e E*} GERA(aa(a+b)*bb)

As linguagens geradas L
1
L
2
, L
1
L
2
, E* - L
1
, L
1
L
2
so regulares.
Propriedades Fechamento sobre Linguagens Regulares
LINGUAGENS REGULARES
O teorema a seguir assegura que existe um algoritmo para verificar se uma
linguagem regular representada por um autmato finito vazia, finita ou
infinita.

Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n
Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n

Demonstrao: (Menezes, 2005, p.89)
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n

Demonstrao ():
Suponhamos que M aceita uma palavra w tal que n s |w| < 2n.

Seja w tal palavra.

Ento pelo lema do bombeamento, w pode ser definida como w = uvz tal que:
|uv| n e |v| > 1, sendo que: para todo i > 0, uv
i
z palavra de L.

Portanto, L infinita.
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n

Demonstrao (:):
Suponhamos que L seja infinita.
Ento obviamente existe w tal que n s |w|. Assim:
1. Caso) |w| < 2n
Neste caso, n s |w| < 2n, como queramos demonstrar.
2. Caso) |w| > 2n
Suponhamos por absurdo que no existe palavra menor que 2n.
Ento suponhamos que w seja a menor palavra tal que |w| > 2n

Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n

Demonstrao (: cont.1):
2. Caso) |w| > 2n
Suponhamos por absurdo que no existe palavra menor que 2n.
Ento suponhamos que w seja a menor palavra tal que |w| > 2n
Pelo lema do bombeamento, w = uvz tal que:
|uv| n e |v| > 1, sendo que: para todo i > 0, uv
i
z palavra de L.
Em particular, 1 s |v| s n (pois |uv| n).
Por outro lado, uz palavra de L (basta tomar i = 0), o que um absurdo (como
veremos em seguida):
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n

Demonstrao (: cont.2):
2. Caso) |w| > 2n
Por outro lado, uz palavra de L (basta tomar i = 0), o que um absurdo, pois:

a) Se |uz| > 2n, isso contradiz a suposio de que w a palavra de menor
comprimento tal que :|w| > 2n (pois |w| = |uvz| > |uz| > 2n)

b) Se |uz| < 2n, ento n s |uz| < 2n (pois |uvz| > 2n e 1 s |v| s n) e, portanto,
isso contradiz a suposio de que no existe w tal que: n s |w| < 2n
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n

Demonstrao (por contraposio (p q) (~p ~q)):

Esta parte do teorema equivalente ao caso anterior:

Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n



Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q, o,
q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n

Demonstrao:
( por absurdo)
Suponhamos L uma linguagem regular vazia e que exista uma palavra w, |w| < n,
aceita por M.

Como w aceita por M, w e L, o que absurdo pois L = C, por hiptese.

Logo, se L vazia, ento M no aceita qualquer palavra w tal que |w| < n
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E,
Q, o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n

Demonstrao: (: por absurdo)
Suponhamos que no exista w, |w| < n, aceita por M.
Suponhamos por absurdo que L no seja vazia. Logo existe w, we L.
Em funo da hiptese acima, |w| > n. Pelo Lema do Bombeamento, w pode
ser particionada em uvz, tal que |uv| n, |v| > 1 e qqs i > 0, uv
i
z e L.
Em particular, para i = 0, uz e L.
Considerando a nova palavra de L w=uz, repetimos a aplicao do lema do
bombeamento at que |w| = n. Ao aplicar mais uma vez o lema, temos que w
pode ser particionada em xyq, de tal forma que xq e L, e |xq| < n, o que um
absurdo, pois conflita com a hiptese. Logo L precisa ser vazia.
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
Teorema: Se L uma linguagem regular aceita por um autmato finito M=(E, Q,
o, q
0
, F) com n estados (a cardinalidade de Q n), ento L :
Vazia, se e somente se, M no aceita qualquer palavra w tal que |w| < n
Finita, se e somente se, M no aceita palavra alguma w tal que n s |w| < 2n
Infinita, se e somente se, M aceita uma palavra w tal que n s |w| < 2n

Exemplo de aplicao:
Considere o autmato M abaixo. Pelo teorema anterior, a linguagem por ele
aceita infinita se e somente se, o autmato aceitar uma palavra w tal que n s |w|
< 2n.
Se tomarmos w=aabaa, 3 s |w| < 6. Portanto, a linguagem aceita por M infinita.

Qual a linguagem aceita por M ?
Propriedades LR Vazia, Finita ou Infinita
LINGUAGENS REGULARES
O teorema a seguir assegura que existe um algoritmo para verificar se dois
autmatos finitos so equivalentes, ou seja, reconhecem a mesma linguagem.

Teorema: Se M
1
e M
2
so autmatos finitos, ento existe um algoritmo para
determinar se ACEITA(M
1
) = ACEITA(M
2
)

Demonstrao:
Sejam M1 e M2 autmatos finitos e L
1
=ACEITA(M
1
) e L
2
=ACEITA(M
2
)
Seja L
3
=(L
1
~L
2
) (~L
1
L
2
). L
3
Linguagem Regular.
Da Teoria de Conjuntos, L
3
=C se, e somente se, L
1
=L
2
Se L
1
=L
2
ento L
3
vazia
Do teorema anterior, existe um algoritmo para verificar se L
3
, LR, vazia.
Logo, existe um algoritmo para verificar se L
1
=L
2
.
Propriedades Igualdade de Linguagens Regulares
LINGUAGENS REGULARES
Em termos prticos, dadas duas Linguagens Regulares sobre {a,b}, L
1
e L
2
, para
verificarmos se L
1
=L
2
, devemos verificar se L
3
=(L
1
~L
2
) (~L
1
L
2
)=C

Sejam
L1 = GERA((a+b)*) ~L1=C
L2 = GERA(a*b*(a+b)*) ~L2= C

L
3
=(L
1
~L
2
) (~L
1
L
2
)=(L
1
C) (C L
2
) = C C = C

Portanto L
1
=L
2


Propriedades Igualdade de Linguagens Regulares
Atividades Prticas
Lista de Exerccios III At o nmero 11 (Parte II)
Leituras Recomendadas
Cap. 4 Paulo Blauth Menezes
Sees 3.9 e 3.10 Marcus Ramos
Seo 2.4 Papadimitriou
LINGUAGENS REGULARES
LINGUAGENS REGULARES
O tempo de processamento necessrio a um AFD para aceitar ou rejeitar uma
entrada diretamente proporcional ao tamanho da entrada, e no depende do
autmato considerado. Ou seja, qualquer AFD que reconhea a linguagem ter
a mesma eficincia. Entretanto, uma otimizao possvel a minimizao do
nmero de estados.

Dado um AFD qualquer, o objetivo da minimizao gerar o autmato finito
equivalente com o menor nmero de estados possvel, denominado Autmato
Finito Determinstico Mnimo, ou simplesmente, Autmato Finito Mnimo.

Um autmato finito mnimo nico (a menos de isomorfismos). Assim, dois
autmatos distintos que aceitam a mesma linguagem, ao serem minimizados,
geram o mesmo autmato finito mnimo, diferenciando-se, eventualmente, na
identificao dos estados. Nestes casos, os conjuntos de estados so isoformos.
Propriedades Minimizao de AFD
LINGUAGENS REGULARES
Definio: Seja M=(E, Q, o, q
0
, F) um AFD qualquer. Dois estados q e p de Q
so ditos Estados Equivalentes se, e somente se, para qualquer palavra w
pertencente a E
*
, o(q,w) e o(p,w) resultam simultaneamente em estados finais,
ou no finais.

Portanto, o processamento de uma entrada qualquer a partir de estados
equivalentes resulta na mesma condio de aceita/rejeita.

Definio: Para uma dada linguagem regular L, o Autmato Finito Mnimo
um AFD M
m
=(E, Q
m
, o
m
, q
0m
, F
m
) tal que ACEITA(M
m
) = L e que, para
qualquer outro AFD M=(E, Q, o, q
0
, F) tal que ACEITA(M)=L, ocorre que:

#Q > #Q
m

Propriedades Minimizao de AFD
LINGUAGENS REGULARES
Pr-Requisitos do Algoritmo de Minimizao:
O autmato deve ser determinstico
Todos os estados do autmato devem ser estados alcanveis a partir do
estado inicial. Ou seja, o autmato no pode ter estados inacessveis.
A funo programa deve ser total. Ou seja, a partir de qualquer estado, so
previstas transies para todos os smbolos do alfabeto.

Algoritmo de Minimizao:
Passo 1: Construo da tabela relacionando os estados distintos
Passo 2: Marcao dos estados trivialmente no equivalentes (finais e no finais)
Passo 3: Marcao dos estados no equivalentes
Passo 4: Unificao dos estados equivalentes
Passo 5: Excluso dos estados inteis
Propriedades Minimizao de AFD
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:






Passo 1: Construo da tabela relacionando os estados distintos.
Cada par no ordenado ocorre somente uma vez.
Propriedades Minimizao de AFD
q
1
q
2

q
3

q
4

q
5

q
0
q
1
q
2
q
3
q
4

LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:






Passo 2: Marcao dos estados trivialmente no equivalentes (finais e no finais)

Propriedades Minimizao de AFD
Estados finais e no finais
no podem ser equivalentes
Marcar todos os pares do tipo
{estado final, estado no final}
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Passo 3: Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Para cada par {q
u
, q
v
} no marcado e para cada
smbolo a do alfabeto, suponha que: o(q
u
, a)=p
u
e
o(q
v
, a)=p
v
. Assim:
Se p
u
=p
v
, ento so equivalentes para o smbolo a
e o par no deve ser marcado.
Se p
u
=p
v
e o par (p
u
, p
v
) no est marcado, ento
inclui {q
u
, q
v
} em uma lista a partir de {p
u
,p
v
} para
posterior anlise.
Se p
u
=p
v
e o par (p
u
, p
v
) est marcado, ento:
{q
u
, q
v
} no equivalente e deve ser
marcado.
Se {q
u
, q
v
} encabea uma lista de pares,
ento marcar todos os pares da lista (e,
recursivamente, se algum par da lista
encabea outra lista).
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Processamento do Passo 3 no exemplo:
Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Anlise do par {q
0
, q
4
}:

o(q
0
, a) = q
2
o(q
0
, b) = q
1

o(q
4
, a) = q
3
o(q
4
, b) = q
2


Como {q
2
, q
3
} e {q
1
, q
2
} so no-marcados,
ento {q
0
, q
4
} includo nas listas encabeadas
por {q
2
, q
3
} e {q
1
, q
2
}
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
0
, q
4
}
{q
0
, q
4
}
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Processamento do Passo 3 no exemplo:
Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Anlise do par {q
0
, q
5
}:

o(q
0
, a) = q
2
o(q
0
, b) = q
1

o(q
5
, a) = q
2
o(q
5
, b) = q
3


Como {q
1
, q
3
} no-marcado e como {q
2
, q
2
}
trivialmente equivalente, ento {q
0
, q
5
}
includo na lista encabeada por {q
1
, q
3
}
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
0
, q
4
}
{q
0
, q
4
}
{q
0
, q
5
}
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Processamento do Passo 3 no exemplo:
Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Anlise do par {q
1
, q
2
}:

o(q
1
, a) = q
1
o(q
1
, b) = q
0

o(q
2
, a) = q
4
o(q
2
, b) = q
5


Como {q
1
, q
4
} marcado ento {q
1
, q
2
}
tambm marcado.

Como {q
1
, q
2
} encabea uma lista, o par {q
0
,
q
4
} tambm marcado
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
0
, q
4
}
{q
0
, q
4
}
{q
0
, q
5
}
x
x
x
x
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Processamento do Passo 3 no exemplo:
Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Anlise do par {q
1
, q
3
}:

o(q
1
, a) = q
1
o(q
1
, b) = q
0

o(q
3
, a) = q
5
o(q
3
, b) = q
4


Como {q
1
, q
5
} e {q
0
, q
4
} so marcados ento
{q
1
, q
3
} tambm marcado.

Como {q
1
, q
3
} encabea uma lista, o par {q
0
,
q
5
} tambm marcado
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
0
, q
5
}
x
x
x
x
x
x
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Processamento do Passo 3 no exemplo:
Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Anlise do par {q
2
, q
3
}:

o(q
2
, a) = q
4
o(q
2
, b) = q
5

o(q
3
, a) = q
5
o(q
3
, b) = q
4


Como {q
4
, q
5
} no marcado ento {q
2
, q
3
}
includo na lista encabeada por {q
4
, q
5
} q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
2
, q
3
}
x
x
x
x
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Processamento do Passo 3 no exemplo:
Marcao dos estados no equivalentes.

Propriedades Minimizao de AFD
Anlise do par {q
4
, q
5
}:

o(q
4
, a) = q
3
o(q
4
, b) = q
2

o(q
5
, a) = q
2
o(q
5
, b) = q
3


Como {q
2
, q
3
} no marcado, ento {q
4
, q
5
}
includo na lista encabeada por {q
2
, q
3
}. q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
4
, q
5
}
{q
2
, q
3
}
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Passo 4: Unificao dos estados equivalentes.

Propriedades Minimizao de AFD
Os estados de pares no marcados so equivalentes e
podem ser unificados como segue:
A equivalncia dos estados transitiva.
Pares de estados no finais equivalentes podem ser
unificados como um nico estado no final.
Pares de estados finais equivalentes podem ser
unificados como um nico estado final.
x
x
x
x
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
2
, q
3
}
{q
4
, q
5
}
LINGUAGENS REGULARES
Compreenso do Algoritmo de Minimizao a partir do exemplo abaixo:
Passo 5: Excluso de estados inteis.

Propriedades Minimizao de AFD
Um estado q dito estado intil se no final e a
partir de q no possvel atingir um estado final.
Todas as transies com origem ou destino em um
estado intil so excludas.
No exemplo, o algoritmo de minimizao no gerou
estados inteis.
x
x
x
x
q
1
x
q
2
x
q
3
x
q
4
x x x
q
5
x x x
q
0
q
1
q
2
q
3
q
4

{q
2
, q
3
}
{q
4
, q
5
}
LINGUAGENS REGULARES
Exerccio: Minimize o autmato abaixo:

Propriedades Minimizao de AFD
LINGUAGENS REGULARES
Teorema: O autmato finito determinstico mnimo de uma linguagem
nico, a menos de um isomorfismo.

Assim, dois autmatos distintos que aceitam a mesma linguagem, ao
serem minimizados, geram o mesmo autmato finito mnimo,
diferenciando-se, eventualmente, na identificao dos estados.

Como um autmato finito mnimo nico, a menos de um isomorfismo,
usual ser referido como o (e no como um) autmato finito mnimo.

Propriedades Unicidade do Autmato Finito Mnimo
Atividades Prticas
Lista de Exerccios II Exerccios 12 e 13 (Parte II)
Leituras Recomendadas
Cap. 4 Paulo Blauth Menezes
Sees 3.7 a 3.12 Marcus Ramos
Sees 2.4 a 2.6 Papadimitriou
Cap. 4 Hopcroft & Ullman
LINGUAGENS REGULARES
LINGUAGENS REGULARES
Autmato Finito com Sada
LINGUAGENS REGULARES
O conceito bsico de autmato finito possui aplicaes prticas restritas, pois
a informao de sada limitada lgica binria aceita/rejeita.

Sem alterar a classe de linguagens reconhecidas, possvel estender a
definio de AF para incluir a gerao de uma palavra de sada.

As sadas podem ser associadas:
s transies (Mquina de Mealy)
aos estados (Mquina de Moore)

Em ambas as mquinas, a sada no pode ser lida (usada como memria
auxiliar).

Autmato Finito com Sada
LINGUAGENS REGULARES
Nas mquinas de Mealy e de Moore:
A sada definida sobre um alfabeto especial (alfabeto de sada);
A sada armazenada em uma fita de sada independente da de entrada;
A cabea da fita de sada move uma clula para a direita a cada smbolo
gravado;
O resultado do processamento do AF o seu estado final (condio de
aceita/rejeita) e a informao contida na fita de sada.

As mquinas de Mealy e de Moore so modificaes sobre autmatos finitos
determinsticos.

Ambas as mquinas so equivalentes em termos de capacidade de
processamento.

Autmato Finito com Sada
LINGUAGENS REGULARES
Definio: Uma Mquina de Mealy um AFD=(,Q,o,q
0
,F,A) com sada
associada s transies, onde:
um alfabeto de smbolos de entrada
Q um conjunto finito de estados possveis
o uma funo parcial denominada funo programa
o: Q x Q x A
*

q
0
um elemento de Q, chamado estado inicial
F _ Q, denominado conjunto de estados finais
A um alfabeto de smbolos de sada (que pode ser igual a )

A funo programa pode ser representada como um diagrama como nos AF
adicionando-se na etiqueta de cada transio, a sada associada, quando
diferente da palavra vazia.
Autmato Finito com Sada Mquina de Mealy
LINGUAGENS REGULARES
A computao em uma Mquina de Mealy, para uma palavra de entrada w,
consiste na sucessiva aplicao da funo programa para cada smbolo de w
(da esquerda para a direita) at ocorrer uma condio de parada.


A palavra vazia como sada da funo programa indica que nenhuma
gravao realizada, no movimentando a cabea da fita de sada.


Se todas as transies geram sada vazia, ento a Mquina de Mealy processa
como se fosse um autmato finito.

Autmato Finito com Sada Mquina de Mealy
LINGUAGENS REGULARES
Exemplo: Dilogo entre Programa e Usurio. Simbologia adotada:

<...> entrada fornecida pelo usurio (em um teclado, por ex)
... sada gerada pelo programa (em um vdeo, por ex.)
[...] ao interna do programa, sem comunicao com o usurio
(...) resultado de ao interna ao programa (usado como entrada no diagrama)


A Mquina de Mealy:

M=(E, {q
0
, q
1
,... q
8
, q
f
}, o, q
0
, {q
f
}, A)

E e A so conjuntos de smbolos
(palavras em Portugus) de entrada e sada
vlidos no dilogo.
Autmato Finito com Sada Mquina de Mealy
LINGUAGENS REGULARES
Definio: Uma Mquina de Moore um AFD=(,Q,o,q
0
,F,A,o
S
) com sada
associada aos estados, onde:
um alfabeto de smbolos de entrada
Q um conjunto finito de estados possveis
o uma funo parcial denominada funo programa o: Q x Q
q
0
um elemento de Q, chamado estado inicial
F _ Q, denominado conjunto de estados finais
A um alfabeto de smbolos de sada (que pode ser igual a )
o
S
uma funo total denominada funo de sada o
S
: Q A
*

A funo programa pode ser representada como um diagrama como nos AF
adicionando-se na etiqueta de cada estado, a sada associada, quando diferente
da palavra vazia.
Autmato Finito com Sada Mquina de Moore
LINGUAGENS REGULARES
Exemplo: Hiperdocumento. A Mquina de Moore: M=(E, Q, o, q
0
, {q
f
}, A, o
S
)
E = {prxima, exerccio, anterior, resumos, sada}
A = {A,B,C,D,E,F,G,H,I,J,K,L,M},
onde cada letra, corresponde ao seguinte fragmento
de hipertexto na base de dados:
A Introduo ao AF; B Definio de AFD
C Exemplo de AFD; D Exerccio sobre AFD
E Introduo aos AF com Sada
F Definio de Mquina de Mealy
G Exemplo de Mquina de Mealy
H Exerccio sobre Mquina de Mealy
I Definio de Mquina de Moore
J Exemplo de Mquina de Moore
K Exerccio sobre Mquina de Moore
L Concluses; M Fim

Observaes:
Fragmentos so concatenados compondo pginas
Reuso de fragmentos em mais de uma pgina
Alterao de fragmento no BD leva atualizao no AF
Smbolos do alfabeto de entrada so rtulos de ponteiros

Autmato Finito com Sada Mquina de Moore
LINGUAGENS REGULARES
A estruturao de um hipertexto/hipermdia como um AF com sada possui as
seguintes vantagens:
Alto grau de modularizao dos recursos que constituem a base de dados.
Facilidade de reuso desses recursos.
Independncia da estrutura navegacional (funo de transio) do contedo das
pginas. Assim, modificaes na estrutura navegacional no influem no
contedo das pginas e vice-versa.
Facilidade de criao e manuteno de hipertextos/hipermdia.
Interface grfica simples e direta (decorrente da representao de um AF como
um diagrama).
Facilidade de implementao (lembrando a simplicidade de implementao de
um simulador de AF).
Autmato Finito com Sada Aplicao em Hipertexto
LINGUAGENS REGULARES
A equivalncia dos dois modelos de mquina de autmato finito com sada no
vlida para a entrada vazia. Neste caso:
Mquina de Moore gera a palavra correspondente ao estado inicial
Mquina de Mealy no gera qualquer sada, pois no executa transio alguma

Teorema: Toda Mquina de Moore pode ser simulada por uma Mquina de Mealy
Demonstrao: (Menezes, 2005, p. 105)

Teorema: Toda Mquina de Mealy pode ser simulada por uma Mquina de Moore
Demonstrao: (Menezes, 2005, p. 106)

Autmato Finito com Sada Equivalncia de Mquinas
Atividades Prticas
Lista de Exerccios III Completar
LINGUAGENS REGULARES
Leituras Recomendadas
Cap. 5 Paulo Blauth Menezes
Seo 3.8 Marcus Ramos

Вам также может понравиться