Você está na página 1de 57

Prof José Rui

2. Linguagens Regulares

2 – Linguagens Regulares
Aula 07
Prof José Rui
2. Linguagens Regulares

Sumário
Capítulo 2 – Linguagens Regulares
2.1. Definição
2.1.1. Linguagem Tipo 3
2.1.2. Sistema de estados finitos
2.2. Formalismos
2.2.1. Autômatos
a. Autômato Finito Determinístico (AFD)
b. Autômato Finito Não-Determinístico
c. Autômato Finito com Movimentos Vazios
d. Equivalência entre autômatos
e. Minimização de autômatos
2.2.2. Expressão Regular
2.2.3. Gramática Regular
Prof José Rui
2. Linguagens Regulares

Sumário
Capítulo 2 – Linguagens Regulares
2.2.1. Autômatos
d. Equivalência entre autômatos
– Transformar AFN para AFD
– Transformar AFNε para AFN
Prof José Rui
2. Linguagens Regulares

Equivalência entre autômatos


● Teorema: A classe de autômatos finitos determinísticos é equivalente a
classe dos autômatos finitos não determinísticos

● Portanto:
– Para todo AFN existe um AFD equivalente

● Na prática:
– Dependendo da complexidade do problema, monta-se um AFN
– Por ser mais fácil
– E, posteriormente converte para AFD
Prof José Rui
2. Linguagens Regulares

Algoritmo de conversão, AFN → AFD


1º - Tabela de transição AFN
2º - Tabela de transição AFD
– Estados: todas as possíveis combinações do AFN
– Total de estados: 2n
– Quando um estado for um conjunto, o novo será a união das transições
3º - Marcar os novos estados finais
– Todos os conjuntos que contém algum estado final do AFN
4º - Eliminar os estados:
– Inalcançáveis
– Que não possuem saídas e não são finais
5º - Verificar no desenho do grafo se tem algum ciclo inalcançável
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo

δ a b
q0 {q0,q1} {q0}

q1 {q2} -

q2 {q2} {q2}

Tabela de transição do AFN


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo

δ a b
q0 {q0,q1} {q0}

q1 {q2} -

q2 {q2} {q2}

Tabela de transição do AFN

2º - Criar tabela de transição AFD


● Todas as combinações dos estados AFN
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0}

{q1}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
2º - Criar tabela de transição AFD
Ø
● Todas as combinações dos estados AFN

Tabela de transição do AFD


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0}

{q1}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q0
Ø

Tabela de transição do AFD


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0}

{q1}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q0
Ø
– AFN ao processar “a” vai para {q0,q1}
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1}

{q1}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q0
Ø
– AFN ao processar “a” vai para {q0,q1}
– Logo, no AFD também irá para {q0,q1} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1}

{q1}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q0
Ø
– AFN ao processar “b” vai para {q0}
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q0
Ø
– AFN ao processar “b” vai para {q0}
– Logo, no AFD também ira para {q0} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2}

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q1
Ø
– AFN ao processar “a” vai para {q2}
– Logo, no AFD também ira para {q2} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q1
Ø
– AFN ao processar “b” vai para -
– Logo, no AFD também ira para - Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q2
Ø
– AFN ao processar “a” vai para {q2}
– Logo, no AFD também ira para {q2} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado q2
Ø
– AFN ao processar “b” vai para {q2}
– Logo, no AFD também ira para {q2} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “a” vai para {q0,q1} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “a” vai para {q0,q1} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “a” vai para {q0,q1} Tabela de transição do AFD

– AFN, q1 ao processar “a” vai para {q2}


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “a” vai para {q0,q1} Tabela de transição do AFD

– AFN, q1 ao processar “a” vai para {q2}


{q0,q1} U {q2} = {q0,q1,q2}
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “b” vai para {q0} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q1}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “b” vai para {q0} Tabela de transição do AFD

– AFN, q1 ao processar “b” vai para -


{q0} U - = {q0}
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q2}
Ø
– São dois estados, logo será a união deles
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q2}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “a” vai para {q0,q1} Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q2}
Ø
– São dois estados, logo será a união deles
– AFN, q0 ao processar “a” vai para {q0,q1} Tabela de transição do AFD

– AFN, q2 ao processar “a” vai para {q2}


{q0,q1} U {q2} = {q0, q1, q2}
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q2}
Ø
– AFN, q0 ao processar “b” vai para {q0}
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q0,q2}
Ø
– AFN, q0 ao processar “b” vai para {q0}
– AFN, q2 ao processar “b” vai para {q2} Tabela de transição do AFD

– {q0} U {q2} = {q0,q1}


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q1,q2}
Ø

Tabela de transição do AFD


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q1,q2}
Ø
– AFN, q1 ao processar “a” vai para {q2}
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2} {q2}
Tabela de transição do AFN

{q0,q1,q2}
● Estado {q1,q2}
Ø
– AFN, q1 ao processar “a” vai para {q2}
– AFN, q2 ao processar “a” vai para {q2} Tabela de transição do AFD

– {q2} U {q2} = {q2}


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2} {q2} {q2}


Tabela de transição do AFN

{q0,q1,q2}
● Estado {q1,q2}
Ø
– AFN, q1 ao processar “b” vai para -
– AFN, q2 ao processar “b” vai para {q2} Tabela de transição do AFD

– - U {q2} = {q2}
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2} {q2} {q2}


Tabela de transição do AFN

{q0,q1,q2} {q0,q1,q2}
● Estado {q0,q1,q2}
Ø
– AFN, q0 ao processar “a” vai para {q0,q1}
– AFN, q1 ao processar “a” vai para {q2} Tabela de transição do AFD

– AFN, q2 ao processar “a” vai para {q2}


{q0,q1} U {q2} U {q2} = {q0, q1, q2}
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

δ a b {q2} {q2} {q2}

qo {qo,q1} {q0}
{q0,q1} {q0,q1,q2} {q0}
q1 {q2} -
{q0,q2} {q0,q1,q2} {q0,q2}
q2 {q2} {q2}

{q1,q2} {q2} {q2}


Tabela de transição do AFN

{q0,q1,q2} {q0,q1,q2} {q0,q2}


● Estado {q0,q1,q2}
Ø
– AFN, q0 ao processar “b” vai para {q0}
– AFN, q1 ao processar “b” vai para - Tabela de transição do AFD

– AFN, q2 ao processar “b” vai para {q2}


{q0} U - U {q2} = {q0, q2}
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
{q0} {q0,q1} {q0}

{q1} {q2} -

{q2} {q2} {q2}

{q0,q1} {q0,q1,q2} {q0}

{q0,q2} {q0,q1,q2} {q0,q2}

{q1,q2} {q2} {q2}

{q0,q1,q2} {q0,q1,q2} {q0,q2}


● Vamos melhorar esta tabela
Ø - -
● Vamos dar nomes a estes novos estados
Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
S0 {q0} {q0,q1} {q0}

S1 {q1} {q2} -

S2 {q2} {q2} {q2}

S3 {q0,q1} {q0,q1,q2} {q0}

S4 {q0,q2} {q0,q1,q2} {q0,q2}

S5 {q1,q2} {q2} {q2}

S6 {q0,q1,q2} {q0,q1,q2} {q0,q2}


● Vamos melhorar esta tabela
S7 Ø - -
● Vamos dar nomes a estes novos estados
● Substutuindo as colunas “a” e “b” Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

S2 {q2} S2 S2

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4
● Vamos melhorar esta tabela
S7 Ø - -
● Vamos dar nomes a estes novos estados
● Substutuindo as colunas “a” e “b” Tabela de transição do AFD
Prof José Rui
2. Linguagens Regulares

Algoritmo de conversão
1º - Tabela de transição AFN
2º - Tabela de transição AFD
– Estados: todas as possíveis combinações do AFN
– Total de estados: 2n
– Quando um estado for um conjunto, o novo será a união das transições
3º - Marcar os novos estados finais
– Todos os conjuntos que contém algum estado final do AFN
4º - Eliminar os estados:
– Inalcançáveis
– Que não possuem saídas e não são finais
5º - Verificar no desenho do grafo se tem algum ciclo inalcançável
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo
φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

S2 {q2} S2 S2

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4
● Qual(is) era(m) final(is) no AFN?
S7 Ø - -

Tabela de transição do AFD


Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

S2 {q2} S2 S2

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4
● Qual(is) era(m) final(is) no AFN?
S7 Ø - -
● R: q2
● Agora basta marcar no AFD todos que tem esses estados
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

*S2 {q2} S2 S2

S3 {q0,q1} S6 S0

*S4 {q0,q2} S6 S4

*S5 {q1,q2} S2 S2

*S6 {q0,q1,q2} S6 S4
● Qual(is) era(m) final(is) no AFN?
S7 Ø - -
● R: q2
● Agora basta marcar no AFD todos que tem esses estados, eles serão os
novos estados finais
Prof José Rui
2. Linguagens Regulares

Algoritmo de conversão
1º - Tabela de transição AFN
2º - Tabela de transição AFD
– Estados: todas as possíveis combinações do AFN
– Total de estados: 2n
– Quando um estado for um conjunto, o novo será a união das transições
3º - Marcar os novos estados finais
– Todos os conjuntos que contém algum estado final do AFN
4º - Eliminar os estados:
– Inalcançáveis
– Que não possuem saídas e não são finais
5º - Verificar no desenho do grafo se tem algum ciclo inalcançável
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

S2 {q2} S2 S2

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4

S7 Ø - -
● Eliminar estados inalcançáveis
– Na prática é eliminar os estados que não aparecem nas colunas “a” e “b” de outro estado
– Ou seja, ninguém chega nele
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

S2 {q2} S2 S2

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4

S7 Ø - -
● Eliminar estados inalcançáveis
– Na prática é eliminar os estados que não aparecem nas colunas “a” e “b” de outro estado
– Ou seja, ninguém chega nele
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

S1 sai porque niguém o alcança. S2 {q2} S2 S2

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4

S7 Ø - -
● Eliminar estados inalcançáveis
– Na prática é eliminar os estados que não aparecem nas colunas “a” e “b” de outro estado
– Ou seja, ninguém chega nele
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S1 {q1} S2 -

Como S5 saiu S2 também S2 {q2} S2 S2


poderá sair
Afinal somente ele o alcança.
S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S5 {q1,q2} S2 S2

S6 {q0,q1,q2} S6 S4

S7 Ø - -
● Eliminar estados inalcançáveis
– Na prática é eliminar os estados que não aparecem nas colunas “a” e “b” de outro estado
– Ou seja, ninguém chega nele
Prof José Rui
2. Linguagens Regulares

Algoritmo de conversão
1º - Tabela de transição AFN
2º - Tabela de transição AFD
– Estados: todas as possíveis combinações do AFN
– Total de estados: 2n
– Quando um estado for um conjunto, o novo será a união das transições
3º - Marcar os novos estados finais
– Todos os conjuntos que contém algum estado final do AFN
4º - Eliminar os estados:
– Inalcançáveis
– Que não possuem saídas e não são finais
5º - Verificar no desenho do grafo se tem algum ciclo inalcançável
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S3 {q0,q1} S6 S0

S4 {q0,q2} S6 S4

S6 {q0,q1,q2} S6 S4

● Eliminar estados que não possuem saídas e não são finais


– Loop
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S3 {q0,q1} S6 S0

*S4 {q0,q2} S6 S4

*S6 {q0,q1,q2} S6 S4

● Eliminar estados que não possuem saídas e não são finais


– Loop
– Devemos relembrar quem são finais
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S3 {q0,q1} S6 S0

*S4 {q0,q2} S6 S4

*S6 {q0,q1,q2} S6 S4

● Por último, desenha o AFD


– Verificar desenho do grafo se tem
algum ciclo inalcançável
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S3 {q0,q1} S6 S0

*S4 {q0,q2} S6 S4

*S6 {q0,q1,q2} S6 S4

● Por último, desenha o AFD


– Verificar desenho do grafo se tem
algum ciclo inalcançável
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Exemplo Tabela de transição do AFD

φ a b
S0 {q0} S3 S0

S3 {q0,q1} S6 S0

δ a b *S4 {q0,q2} S6 S3

qo {qo,q1} {q0}
*S6 {q0,q1,q2} S6 S4
q1 {q2} -

q2 {q2} {q2}

Tabela de transição do AFN

● Pronto!
● Note que agora ele é determinístico
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Ex: Transforme os AFN abaixo para AFD, segundo o algoritmo apresentado
a)
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Ex: Transforme os AFN abaixo para AFD, segundo o algoritmo apresentado
a) b)
Prof José Rui
2. Linguagens Regulares

AFN to AFD
● Ex: Transforme os AFN abaixo para AFD, segundo o algoritmo apresentado
a) b)

● Para próxima aula

Você também pode gostar