Conversão de um NFA para um DFA com um exemplo
description
Transcript of Conversão de um NFA para um DFA com um exemplo
Aula 71
Conversão de um NFA para um DFA com um exemplo
Compiladores, Aula Nº 7 (suplementos)
João M. P. Cardoso
Aula 72
NFA para DFA NFA para (0 | 1)*.(0 | 1)*
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
Aula 73
NFA para DFA Começar pelo estado início do NFA (estado 1)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
Aula 74
NFA para DFA Agrupar todos os estado que possam ser
alcançados do estado 1 com transições
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
Aula 75
NFA para DFA O agrupamento forma o estado início do DFA
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8
Aula 76
NFA para DFA Agora determinamos as transições sobre o
alfabeto que podem ocorrer deste estado
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8
Aula 77
NFA para DFA Agora determinamos as transições sobre o
alfabeto que podem ocorrer deste estado
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8
0
1
Aula 78
NFA para DFA Para cada transição vamos encontrar no NFA os estados
destino a partir dos estados agrupados no DFA
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8
0
1
Aula 79
NFA para DFA Para a transição do “.” (ocorre do estado 8 para
o 9)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8
Aula 710
NFA para DFA O estado é dado pelo agrupamento dos estados que
sendo alcançáveis com . são depois alcançáveis com
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,16
Aula 711
NFA para DFA Como o estado 16 é um estado de aceitação no NFA
então o estado (9, 10, 11, 12, 16) é um estado de aceitação no DFA pois inclui o estado 16
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,16
Aula 712
NFA para DFA Para a transição do “1” (ocorre do estado 3
para o 5)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
Aula 713
NFA para DFA O estado é dado pelo agrupamento dos estados que
sendo alcançáveis com 1 são depois alcançáveis com
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
Aula 714
NFA para DFA Para a transição do “0” (ocorre do estado 4
para o 6)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0
Aula 715
NFA para DFA O estado é dado pelo agrupamento dos estados que
sendo alcançáveis com 0 são depois alcançáveis com
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
Aula 716
NFA para DFA Percorremos todas as transições possíveis do
estado início do DFA
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
Aula 717
NFA para DFA Agora vamos fazer o mesmo para os outros
estados entretanto adicionados ao DFA
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
Aula 718
NFA para DFA Vamos começar por exemplo pelo estado (5, 7,
2, 3, 4, 8)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
Aula 719
NFA para DFA Para a transição do “1” (ocorre do estado 3
para o 5)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
1
Aula 720
NFA para DFA O estado é dado pelo agrupamento dos estados que
sendo alcançáveis com 1 são depois alcançáveis com
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
1
Aula 721
NFA para DFA Para a transição do “0” (ocorre do estado 4
para o 6)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
1
Aula 722
NFA para DFA O estado é dado pelo agrupamento dos estados que
sendo alcançáveis com 0 são depois alcançáveis com
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
1
0
Aula 723
NFA para DFA Para a transição do “.” (ocorre do estado 8
para o 9)
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
1
0
Aula 724
NFA para DFA O estado é dado pelo agrupamento dos estados que
sendo alcançáveis com . são depois alcançáveis com
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8
0 6,7,2,3,4,8
1
0
Aula 725
NFA para DFA Da continuação da aplicação do algoritmo
resultaria
1 2
3
4
5
6
1
0
7
8
9 10
11
12
13
14
1
0
15
16
.
1,2,3,4,8
5,7,2,3,4,8
6,7,2,3,4,8
9,10,11,12,16
13,15,10,11,12,16
14,15,10,11,12,16
1
0
1
0
10
10
00
1 1