0% acharam este documento útil (0 voto)
61 visualizações14 páginas

At 11

1) A aula teórica discute a conversão de autômatos finitos não determinísticos (AFNs) em autômatos finitos determinísticos (AFDs); 2) Explica-se que as linguagens aceitas por AFNs e AFDs são as mesmas, embora os modelos sejam diferentes; 3) Propõe-se processar palavras em AFNs de forma "paralela", explorando todos os caminhos possíveis simultaneamente e tratando conjuntos de estados como estados únicos, o que recupera o comport
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
61 visualizações14 páginas

At 11

1) A aula teórica discute a conversão de autômatos finitos não determinísticos (AFNs) em autômatos finitos determinísticos (AFDs); 2) Explica-se que as linguagens aceitas por AFNs e AFDs são as mesmas, embora os modelos sejam diferentes; 3) Propõe-se processar palavras em AFNs de forma "paralela", explorando todos os caminhos possíveis simultaneamente e tratando conjuntos de estados como estados únicos, o que recupera o comport
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 14

Teoria da Computação

Aula Teórica 11:


Conversão de NFAs para DFAs

António Ravara

Departamento de Informática

21 de Abril de 2020
A intuição Contexto

Relação entre Expressões Regulares e AFDs

Expressividade de um modelo computacional


Conjunto de programas que processa.
I Um programa implementa um algoritmo para calcular uma função.
I Considerando cada instrução for um símbolo, um programa é uma
“palavra” e o conjunto de programas válidos que se podem escrever,
uma “linguagem”.

ERs vs. AFDs


L(ER) = L(AFD)
Vai-se mostrar que L(ER) ⊆ L(AFD) e L(ER) ⊇ L(AFD).

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 2 / 14
A intuição Contexto

O resultado pretendido

Linguagens regulares ⊆ Linguagens aceites por AFDs


Uma linguagem denotada por uma ER é linguagem de um AFD.
I A função Compile ⊆ RegExp(Σ) → AFN Σ fornece o resultado para a
linguagem de um AFN.
I A linguagem de um AFN será “mais que regular”?
Consegue-se representar com um AFN um sistema que não se
consegue representar com um AFD?
I A diferença em termos de palavras processadas por AFNs e AFDs são
as transições-.
Mas o  é o elemento neutro da concatenação de palavras...
I O conjunto das linguagens aceites por AFNs deve coincidir com o das
linguagens aceites por AFDs.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 3 / 14
A intuição Contexto

Linguagens de AFN Σ e AFDΣ coincidem?

I Obviamente, qualquer AFD é também um AFN, ou seja,


AFDΣ ⊆ AFN Σ .
Logo qualquer linguagem aceite por um AFD é também uma
linguagem aceite por algum AFN.
I O desafio é provar a inclusão inversa:
qualquer linguagem aceite por um AFN é também uma linguagem
aceite por algum AFD.
I É necessário ver se há uma forma de converter AFNs em AFDs.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 4 / 14
A intuição Contexto

Linguagens de AFN Σ são linguagens de AFDΣ ?

Como proceder?
Para ver se dada palavra w é aceite num AFN pode-se explorar
simultaneamente todos os possíveis caminhos, em paralelo:
I Parte-se do símbolo inicial da palavra e do estado inicial do autómato,
e regista-se o conjunto de estados para onde se pode transitar pela
mesma acção.
sendo w = a w 0 então hs, |a w 0 i −→ hT , a | w 0 i com
T = {t ∈ S | hs, |a w 0 i −→ ht, a | w 0 i}
I Itera-se o processo para cada estado no conjunto obtido, consumindo
os símbolos da palavra.
I Os conjuntos de estados são tratados como estados “únicos” – o nome
do estado é o conjunto.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 5 / 14
A intuição Processamento paralelo

Processamento em “paralelo” de uma palavra num AFN

Um exemplo: o AFN BOB

S2
1 
1
0 0
S1 S5 S4

0
1 0
S3

BOB aceita 100 e 010?

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 6 / 14
A intuição Processamento paralelo

Processamento de 100 no AFN BOB

1
I hS1 , |100i →
− hS2 , 1|00i porque (S1 , 1, S2 ) ∈ ∆
1
I hS1 , |100i →
− hS3 , 1|00i porque (S1 , 1, S3 ) ∈ ∆
1
I hS1 , |100i → − hS4 , 1|00i porque 1 = 1 , (S1 , 1, S2 ) ∈ ∆ e
(S2 , , S4 ) ∈ ∆
1
Logo, h{S1 }, |100i →
− h{S2 , S3 , S4 }, 1|00i
0
I hS2 , 1|00,i →

6 porque não há transições por 0 de S2
0
I hS3 , 1|00i →

6 porque não há transições (por 0) de S3
0
I hS4 , 1|00i →
− hS3 , 10|0i porque (S4 , 0, S3 ) ∈ ∆
0
Logo, h{S2 , S3 , S4 }, 1|00i →
− h{S3 }, 10|0i.
Como S3 não tem transições, a palavra não é aceite.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 7 / 14
A intuição Processamento paralelo

Processamento de 010 no AFN BOB

0
I hS1 , |010i →
− hS5 , 0|10i porque (S1 , 0, S5 ) ∈ ∆
0
Logo, h{S1 }, |010i →
− h{S5 }0|10i
1
I hS5 , 0|10i →
− hS2 , 01|0i porque (S5 , 1, S2 ) ∈ ∆
1
I hS5 , 0|10i → − hS4 , 01|0i porque 1 = 1 , (S5 , 1, S2 ) ∈ ∆ e
(S2 , , S4 ) ∈ ∆
1
Logo, h{S5 }, 0|10i →
− h{S2 , S4 }, 01|0i.
0
I hS2 , 01|0i →

6 porque não há transições por 0 de S2
0
I hS4 , 01|0i →
− hS3 , 010|i porque (S4 , 0, S3 ) ∈ ∆
0
Logo, h{S2 , S4 }, 01|0i →
− h{S3 }, 010|i.
Como S3 é estado final, a palavra é aceite.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 8 / 14
A intuição Processamento paralelo

Como se procedeu?

I Exploraram-se todas as possíveis transições não deterministas em


paralelo.
I Registaram-se os conjuntos de estado acessíveis por dada acção, em
vez estados individuais (como na relação de transição).
I Ao definir as transições entre conjuntos de estados, recuperou-se o
comportamento determinista (a relação de transição é de novo uma
função).
Como proceder então para obter o AFD dBOB, equivalente ao AFN BOB?

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Novadede2020
Lisboa) 9 / 14
Determinização A ideia

“Determinização” de BOB - dBOB


Os estados de dBOB são conjuntos de estados de BOB.
I O estado inicial de dBOB é um conjunto com os estados de BOB
acessíveis do seu estado inicial por transições-.
Então seja R1 = {S1 } o estado inicial.
I Que transições partem de R1 ?
Por 1 chega-se a R2 = {S2 , S3 , S4 }. Logo, δdBOB (R1 , 1) = R2 .
Por 0 chega-se a R3 = {S5 }. Logo δdBOB (R1 , 0) = R3 .
I Que transições partem de R2 ?
Por 0 chega-se a R4 = {S3 }. Logo, δdBOB (R2 , 0) = R4 .
De S2 , S3 e S4 não há transições por 1 — o conjunto de estados
acessíveis é o vazio. Fica δdBOB (R2 , 1) indefinido.
I Que transições partem de R3 ?
Por 0 chega-se a R5 = {S3 , S4 }. Logo, δdBOB (R3 , 0) = R5 .
Por 1 chega-se a R6 = {S2 , S4 }. Logo,δdBOB (R3 , 1) = R6 .
I Analisam-se igualmente as transições de R5 e de R6 .
António Ravara (Departamento de Informática, Faculdade
Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Nova
de de
2020
Lisboa) 10 / 14
Determinização A ideia

O AFD dBOB, equivalente ao AFN BOB


Os estados finais de dBOB são os que contém algum estado final de BOB
(quando algum é alcançado, termina-se o processamento).
R2

R4
{S2 , S3 , S4 } 0
R1 R5 {S3 }
1
0
{S1 } R3 {S3 , S4 }
0 0
{S5 } 0
1
{S2 , S4 }

R6
António Ravara (Departamento de Informática, Faculdade
Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Nova
de de
2020
Lisboa) 11 / 14
Determinização Construção de Rabin-Scott

A construção de “determinização”
I O processo visa obter um AFD de um AFN, equivalente no sentido
que reconhece a mesma linguagem.
I A conversão chama-se “Rabin-Scott powerset construction” e foi
proposta em 1959.
I Usa duas noções auxiliares:
I Fecho- de um conjunto de estados (U ⊆ SA ) de um AFN A: conjunto
de estados acessíveis dos estados em U por transições-.
closeempty ⊆ ℘(S) → ℘(S)
closeempty = {U 7→ V | V = {s | ∃t.t ∈ U ∧ stepA (t, , s)}}
I Fecho-a de um conjunto de estados (U ⊆ SA ) de um AFN AΣ , com
a ∈ Σ: conjunto de estados acessíveis dos estados em U por
transições-a.
move ⊆ ℘(S) × Σ → ℘(S)
move = {U × a 7→ V | V = {s | ∃t.t ∈ U ∧ (t, a, s) ∈ ∆A }}

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Nova
de de
2020
Lisboa) 12 / 14
Determinização Construção de Rabin-Scott

Rabin-Scott Powerset Construction

Dado um A = hSA , ΣA , sA , ∆A , FA i obtém-se um AFD


D = hSA , ΣD , sD , δD , FD i da seguinte forma:
I SD = ℘(SA ).
Os estados de D são subconjuntos de estados de A
(mas basta considerar os acessíveis do estado inicial).
I ΣD = ΣA
I sD = closeempty ({sA })
I δD = {(s, a) 7→ s 0 ∈ SD × ΣD × SD | s 0 = closeempty (move({s}, a))}
I FD = {s ∈ SD | s ∩ FA 6= ∅}
Os estados finais de D são os que contêm pelo menos um estado final
de A.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Nova
de de
2020
Lisboa) 13 / 14
Determinização Construção de Rabin-Scott

Conversão de AFNs em AFDs

I É fácil mostrar que um AFD D que resulta da conversão de um AFN


A reconhece exactamente a linguagem de A.
Prova-se que A e D se simulam mutuamente para cada possível
palavra.
I A construção gera um AFD potencialmente com um grande número
de estados:
O número de estados de um AFD D obtido por conversão de um AFN
A é exponencialmente maior: #SD = 2#SA .
I Por um lado, um AFN expressa uma linguagem regular de forma muito
compacta, sendo um bom mecanismo de especificação.
I Um AFN não é prático de implementar, mas um AFD, que se
implementa facilmente, pode usar muito mais memória.

António Ravara (Departamento de Informática, Faculdade


Teoria dadeComputação
Ciências e Tecnologia, Universidade
21 de Abril
Nova
de de
2020
Lisboa) 14 / 14

Você também pode gostar