LPROG
Autómatos finitos
Formalismo, que permite representar de uma forma clara, um qualquer processo composto por um conjunto de estados e transições entre esses estados.
16 de março de 2016Paulo Proença – [email protected]
LPROG
Representação formal
𝐴𝐴 = (𝑆𝑆, Σ, 𝑠𝑠0,𝐹𝐹, 𝛿𝛿)
S é um conjunto finito de estados não vazio Σ é o alfabeto de entrada s0 é o estado inicial F é o conjunto de estados finais δ é a função de transição
• Recebe como argumentos– um estado– um símbolo de entrada
• Devolve um novo estado
16 de março de 2016Paulo Proença – [email protected]
LPROG
Representação formal
Exemplo: AF capaz de processar números binários terminados em 10
Expressão regular: (0|1)*10
Autómato Finito: 𝐴𝐴 = ( 𝑠𝑠0, 𝑠𝑠2, 𝑠𝑠2 , 0,1 , 𝑠𝑠0, 𝑠𝑠2 , 𝛿𝛿)
𝛿𝛿 𝑠𝑠0, 0 = {𝑠𝑠0}𝛿𝛿 𝑠𝑠0, 1 = {𝑠𝑠0, 𝑠𝑠1}𝛿𝛿 𝑠𝑠1, 0 = {𝑠𝑠2}
16 de março de 2016Paulo Proença – [email protected]
LPROG
Representação de um AF
Tabela de transições
Representação gráfica
16 de março de 2016Paulo Proença – [email protected]
0 1→s0 {s0} {s0, s1}
s1 {s2} ∅
*s2 ∅ ∅
LPROG
Exercícios Propostos1. Para a linguagem constituída por todas as strings
no alfabeto {a, b, c, d} em que o primeiro “b” (se existir) é precedido de um “a”;
a) Represente graficamente o autómato capaz de reconhecer a linguagem
16 de março de 2016Paulo Proença – [email protected]
(a|c|d)*(ab(a|b|c|d)*)?
LPROG
Exercícios Propostos1. Para a linguagem constituída por todas as strings
no alfabeto {a, b, c, d} em que o primeiro “b” (se existir) é precedido de um “a”;
b) Defina formalmente o autómato de acordo com a fórmula 𝐴𝐴 = (𝑆𝑆, Σ, 𝑠𝑠0,𝐹𝐹, 𝛿𝛿)
16 de março de 2016Paulo Proença – [email protected]
A=( {q0,q1,q2},{a,b,c,d},q0,{q0,q2},d)
d(q0,a)={q0,q1}, d(q0,c)={q0}, d(q0,d)={q0},d(q1,b)={q2},d(q2,a)={q2},d(q2,b)={q2}, d(q2,c)={q2}, d(q2,d)={q2}
LPROG
Exercícios Propostos1. Para a linguagem constituída por todas as strings
no alfabeto {a, b, c, d} em que o primeiro “b” (se existir) é precedido de um “a”;
c) Elabore a tabela de transições respetiva
16 de março de 2016Paulo Proença – [email protected]
a b c d→*q0 {q0,q1} φ {q0} {q0}
q1 φ {q2} φ φ*q2 {q2} {q2} {q2} {q2}
LPROG
Exercícios Propostos2. Considere a seguinte expressão regular: (a|b)*abb
a) Represente graficamente o autómato correspondente
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Propostos2. Considere a seguinte expressão regular: (a|b)*abb
b) Defina formalmente o autómato de acordo com a fórmula 𝐴𝐴 = (𝑆𝑆, Σ, 𝑠𝑠0,𝐹𝐹, 𝛿𝛿)
16 de março de 2016Paulo Proença – [email protected]
A=( {q0,q1,q2,q3},{a,b},q0,{q3},d)
d(q0,a)={q0,q1}, d(q0,b)={q0},d(q1,b)={q2},d(q2,b)={q3}
LPROG
Exercícios Propostos2. Considere a seguinte expressão regular: (a|b)*abb
c) Elabore a tabela de transições respetiva
16 de março de 2016Paulo Proença – [email protected]
a b→q0 {q0,q1} {q0}q1 φ {q2}q2 φ {q3}
*q3 φ φ
LPROG
Exercícios Propostos4. Represente graficamente e através da tabela de
transições, os AF capazes de reconhecer as seguintes ER e classifique-os em Determinísticos ou Não Determinísticos.a) aa*|bb*
16 de março de 2016Paulo Proença – [email protected]
a b→q0 {q1} {q2}*q1 {q1} φ*q2 φ {q2}
LPROG
Exercícios Propostos4. Represente graficamente e através da tabela de
transições, os AF capazes de reconhecer as seguintes ER e classifique-os em Determinísticos ou Não Determinísticos.b) (a|b)*abb(a|b)*
16 de março de 2016Paulo Proença – [email protected]
a b→q0 {q0,q1} {q0}q1 φ {q2}q2 φ {q3}
*q3 {q3} {q3}
LPROG
Exercícios Propostos6. Considerando o alfabeto Σ = {0,1}, represente as
seguintes linguagens utilizando um AF.a) L(A) = {u ∈ Σ*: u é um número binário múltiplo de 4}
16 de março de 2016Paulo Proença – [email protected]
0|1(0|1)*00
LPROG
Exercícios Propostos6. Considerando o alfabeto Σ = {0,1}, represente as
seguintes linguagens utilizando um AF.a) L(A) = {u ∈ Σ*: u é um número binário múltiplo de 4}b) L(A) = {u ∈ Σ*: 111 é fator de u}
16 de março de 2016Paulo Proença – [email protected]
(0|1)*111(0|1)*
LPROG
Exercícios Propostos6. Considerando o alfabeto Σ = {0,1}, represente as
seguintes linguagens utilizando um AF.a) L(A) = {u ∈ Σ*: u é um número binário múltiplo de 4}b) L(A) = {u ∈ Σ*: 111 é fator de u}c) L(A) = {u ∈ Σ*: u tem um número par de 1’s}
16 de março de 2016Paulo Proença – [email protected]
(0*10*10*)+|0*
LPROG
Exercícios Propostos6. Considerando o alfabeto Σ = {0,1}, represente as
seguintes linguagens utilizando um AF.a) L(A) = {u ∈ Σ*: u é um número binário múltiplo de 4}b) L(A) = {u ∈ Σ*: 111 é fator de u}c) L(A) = {u ∈ Σ*: u tem um número par de 1’s}d) L(A) = {u ∈ Σ*: u é vazia ou tem dígitos todos iguais, sendo de
comprimento par as sequencias de 0’s e de comprimento impar as sequencias de 1’s}
16 de março de 2016Paulo Proença – [email protected]
(00)*|1(11)*
LPROG
Exercício de Aula
Converta o seguinte AFN num AFD e minimize-o.
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercicio de Aula
1. Conversão para AFD1. Criação da tabela de transições
16 de março de 2016Paulo Proença – [email protected]
0 1→A {A,E} {A,B}B {C} φC φ {D}D {G} {G}E φ {F}F {D} φ
*G {G} {G}
LPROG
Exercicio de Aula
1. Conversão para AFD2. Definição nos novos estados
16 de março de 2016Paulo Proença – [email protected]
0 1→A AE ABAE AE ABFAB ACE AB
0 1→A {A,E} {A,B}B {C} φC φ {D}D {G} {G}E φ {F}F {D} φ
*G {G} {G}
LPROG
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A AE ABAE AE ABFAB ACE ABABF ACDE ABACE AE ABDF
0 1→A {A,E} {A,B}B {C} φC φ {D}D {G} {G}E φ {F}F {D} φ
*G {G} {G}
1. Conversão para AFD2. Definição nos novos estados
LPROG
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A AE ABAE AE ABFAB ACE ABABF ACDE ABACE AE ABDF
ACDE AEG ABDFGABDF ACDEG ABG
0 1→A {A,E} {A,B}B {C} φC φ {D}D {G} {G}E φ {F}F {D} φ
*G {G} {G}
1. Conversão para AFD2. Definição nos novos estados
LPROG
Exercicio de Aula
1. Conversão para AFD1. Criação da tabela de transições
16 de março de 2016Paulo Proença – [email protected]
0 1→A {A,E} {A,B}B {C} φC φ {D}D {G} {G}E φ {F}F {D} φ
*G {G} {G}
0 1→A AE ABAE AE ABFAB ACE ABABF ACDE ABACE AE ABDF
ACDE AEG ABDFGABDF ACDEG ABG*AEG AEG ABFG
*ABDFG ACDEG ABG*ACDEG AEG ABDFG*ABG ACEG ABG
LPROG
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A AE ABAE AE ABFAB ACE ABABF ACDE ABACE AE ABDF
ACDE AEG ABDFGABDF ACDEG ABG*AEG AEG ABFG
*ABDFG ACDEG ABG*ACDEG AEG ABDFG*ABG ACEG ABG*ABFG ACDEG ABG*ACEG AEG ABDFG
0 1→A {A,E} {A,B}B {C} φC φ {D}D {G} {G}E φ {F}F {D} φ
*G {G} {G}
1. Conversão para AFD2. Definição nos novos estados
LPROG
Exercicio de Aula
1. Conversão para AFD3. Renomear os estados
16 de março de 2016Paulo Proença – [email protected]
0 1→A AE ABAE AE ABFAB ACE ABABF ACDE ABACE AE ABDF
ACDE AEG ABDFGABDF ACDEG ABG*AEG AEG ABFG
*ABDFG ACDEG ABG*ACDEG AEG ABDFG*ABG ACEG ABG*ABFG ACDEG ABG*ACEG AEG ABDFG
0 1→A B CB B DC E CD F CE B GF H IG J K*H H L*I J K*J H I*K M K*L J K*M H I
Reno
mea
r
LPROG
Exercicio de Aula
1. Conversão para AFD
16 de março de 2016Paulo Proença – [email protected]
0 1→A B CB B DC E CD F CE B GF H IG J K*H H L*I J K*J H I*K M K*L J K*M H I
LPROG
2. Minimização1ª Iteração
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A B NF C NF
B B NF D NF
C E NF C NF
D F NF C NF
E B NF G NF
F H FI I FI
G J FI K FI
*H H FI L FI
*I J FI K FI
*J H FI I FI
*K M FI K FI
*L J FI K FI
*M H FI I FI
NF
FI
LPROG
2. Minimização1ª Iteração
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A B NF C NF
B B NF D NF
C E NF C NF
D F NF C NF
E B NF G NF
F H FI I FI
G J FI K FI
*H H FI L FI
*I J FI K FI
*J H FI I FI
*K M FI K FI
*L J FI K FI
*M H FI I FI
NF
FI
N
O
LPROG
2. Minimização2ª Iteração
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A B N C N
B B N D N
C E N C N
D F O C N
E B N G O
F H FI I FI
G J FI K FI
*H H FI L FI
*I J FI K FI
*J H FI I FI
*K M FI K FI
*L J FI K FI
*M H FI I FI
N
FI
O
LPROG
2. Minimização2ª Iteração
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A B N C N
B B N D N
C E N C N
D F O C N
E B N G O
F H FI I FI
G J FI K FI
*H H FI L FI
*I J FI K FI
*J H FI I FI
*K M FI K FI
*L J FI K FI
*M H FI I FI
N
FI
P
QR
O
LPROG
2. Minimização3ª Iteração
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A B P C P
B B P D Q
C E R C P
D F O C P
E B P G O
F H FI I FI
G J FI K FI
*H H FI L FI
*I J FI K FI
*J H FI I FI
*K M FI K FI
*L J FI K FI
*M H FI I FI
P
FI
STU
O
QR
LPROG
2. Minimização3ª Iteração
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→A B T C U
B B T D Q
C E R C U
D F O C U
E B T G O
F H FI I FI
G J FI K FI
*H H FI L FI
*I J FI K FI
*J H FI I FI
*K M FI K FI
*L J FI K FI
*M H FI I FI
S
FI
O
QR
TU
0 1→S T UT T QU R UQ O UR T OO FI FI
*FI FI FI
LPROG
2. Minimização
Exercicio de Aula
16 de março de 2016Paulo Proença – [email protected]
0 1→S T UT T QU R UQ O UR T OO FI FI
*FI FI FI
LPROG
Exercícios Propostos7. Converta os seguintes AFN em AFD e minimize-os.
a)
Conversão para AFD
16 de março de 2016Paulo Proença – [email protected]
0 1→A {A,B} {A}B {B,C} {A}
*C φ {C}{A,B} {A,B,C} {A}
*{B,C} {B,C} {A,C}*{A,C} {A,B} {A,C}
*{A,B,C} {A,B,C} {A,C}
0 1→A {A,B} {A}
{A,B} {A,B,C} {A}*{A,C} {A,B} {A,C}
*{A,B,C} {A,B,C} {A,C}
0 1→S0 S1 S0S1 S3 S0*S2 S1 S2*S3 S3 S2
LPROG
7. Converta os seguintes AFN em AFD e minimize-os.a)
Conversão para AFD
Exercícios Propostos
16 de março de 2016Paulo Proença – [email protected]
0 1→S0 S1 S0S1 S3 S0*S2 S1 S2*S3 S3 S2
LPROG
7. Converta os seguintes AFN em AFD e minimize-os.a)
Minimização:
Exercícios Propostos
16 de março de 2016Paulo Proença – [email protected]
0 1→S0 S1 S0S1 S3 S0*S2 S1 S2*S3 S3 S2
estados finais (F)
estados não finais (NF)
NF NF
F NF
NF F
F F
LPROG
7. Converta os seguintes AFN em AFD e minimize-os.b)
Conversão e Minimização:
Exercícios Propostos
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Propostos8. Considerando o Σ={A,B,C,…,Z, a, b, c, …, z},
represente as seguintes linguagens utilizando um AF:a) L(A) = {u ∈ Σ*: u começa por um carácter minúsculo e
tem no máximo duas maiúsculas}
b) L(A) = {u ∈ Σ*: u começa por uma maiúscula e termina sempre numa vogal}
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Propostos9. Considerando o Σ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
represente as seguintes linguagens utilizando um AF:a) L(A) = {u ∈ Σ*: u é uma sequência numérica crescente}
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Propostos11.Indique uma expressão regular e um autómato
finito determinístico que reconheça a mesma linguagem que o seguinte autómato finito não determinístico.
Expressão Regular: b((a|e)b)*ab
AFD:
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Complementares6. Implemente um AFD para as linguagens:
a) Em Σ = {a,b,c,d}, qualquer palavra com um número par de símbolos “b”.
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Complementares6. Implemente um AFD para as linguagens:
b) Em Σ = {0,1}, qualquer palavra com um número par de zeros e um número par de uns.
16 de março de 2016Paulo Proença – [email protected]
LPROG
Exercícios Complementares7. Para cada um dos seguintes AFD indique a ER:
a)
b)
16 de março de 2016Paulo Proença – [email protected]
a*b
a*bb+
LPROG
Exercícios Complementares8. Represente as seguintes linguagens por uma
expressão regular e por um automato finito deterministicoa) Para o alfabeto Σ = {0, 1}
L(A)={u∈Σ*:u começa por 1 e tem um número par de 1's}
Expressão Regular: (10*10*)+
16 de março de 2016Paulo Proença – [email protected]
AFD:
LPROG
3.3.2.a) Minimize o seguinte AFD
Exercícios Complementares
16 de março de 2016Paulo Proença – [email protected]
LPROG
3.3.2.a)Construção da Tabela de transições
Exercícios Complementares
16 de março de 2016Paulo Proença – [email protected]
0 1→A A BB C B
*C E DD F BE E D
*F A B
LPROG
3.3.2.a)1ª Iteração
Exercícios Complementares
16 de março de 2016Paulo Proença – [email protected]
0 1
NF
→A A NF B NF
B C F B NF
D F F B NF
E E NF D NF
F*C E NF D NF
*F A NF B NF
LPROG
3.3.2.a)2ª Iteração
Exercícios Complementares
16 de março de 2016Paulo Proença – [email protected]
0 1
G→A A G B H
E E G D H
HD F F B H
B C F B H
F*C E G D H
*F A G B H
LPROG
3.3.2.a)Autómato minimizado
Exercícios Complementares
16 de março de 2016Paulo Proença – [email protected]
0 1→G G HH F H
*F G H
Top Related