professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020q1-lfa/automatos.p… ·...
TRANSCRIPT
Autômatos finitosMCTA015-13 - Linguagens Formais e Autômata
Profa. Carla Negri [email protected]/∼carla.negri
Centro de Matemática, Computação e Cognição – Universidade Federal do ABC
1
Determinismo
Autômatos finitos determinísticos
Um autômato finito determinístico (AFD) é uma 5-upla(Q,Σ, δ, q0,F) em que
• Q é um conjunto finito de estados• Σ é um alfabeto• δ : Q × Σ → Q é uma função de transição• q0 ∈ Q é o estado inicial• F ⊆ Q é o conjunto de estados finais
2
Autômatos finitos determinísticos - Exemplo
M1 = (Q1,Σ1, δ1, q1,F1) com Q1 = {q1, q2, q3, q4, q5},Σ1 = {a, b}, F1 = {q5} e δ1 dada por
δ1 a bq1 q1 q2q2 q3 q2q3 q1 q4q4 q5 q2q5 q5 q5
é um AFD.
3
Autômatos finitos determinísticos - Exemplo
M1 também pode ser definido por um diagrama de estados:
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
4
Autômatos finitos determinísticos - Computação
Ideia: o estado inicial fica ativo; uma transição com rótulo x pode ser seguida a partirde um estado ativo sempre que x for lido na entrada; o estado atingido pela transiçãoque foi seguida fica ativo.
A todo momento, existe uma (e apenas uma) possibilidade de transição a ser seguida.
q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
Leu a: q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
Leu b: q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
5
Autômatos finitos determinísticos
Dado um AFD M = (Q,Σ, δ, q0,F), definimos a função detransição estendida de M, δ̂ : Q × Σ∗ → Q como
δ̂(q, ω) =
q se ω = ε
δ(δ̂(q, α), x) se ω = αx e x ∈ Σ
Ou seja, δ̂(q, ω) é o estado ativo em M após computar toda umacadeia ω a partir do estado q.
6
Autômatos finitos determinísticos
Dado um AFD M = (Q,Σ, δ, q0,F), definimos a função detransição estendida de M, δ̂ : Q × Σ∗ → Q como
δ̂(q, ω) =
q se ω = ε
δ(δ̂(q, α), x) se ω = αx e x ∈ Σ
Ou seja, δ̂(q, ω) é o estado ativo em M após computar toda umacadeia ω a partir do estado q.
6
Autômatos finitos determinísticos - Transição estendida
Considere M1 novamente:
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
• δ̂1(q1, aabba) = q3
• δ̂1(q2, ε) = q2
• δ̂1(q4, abbba) = q5
7
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1
aabbabaaq1 aabbabaaq1 aabbabaaq2 aabbabaaq2 aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1
aabbabaaq1 aabbabaaq2 aabbabaaq2 aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1 aabbabaaq1
aabbabaaq2 aabbabaaq2 aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1 aabbabaaq1 aabbabaaq2
aabbabaaq2 aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1 aabbabaaq1 aabbabaaq2 aabbabaaq2
aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1 aabbabaaq1 aabbabaaq2 aabbabaaq2 aabbabaaq3
aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1 aabbabaaq1 aabbabaaq2 aabbabaaq2 aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 aabbabaaq1 aabbabaaq1 aabbabaa
q2 = δ̂1(q1, aab) aabbabaaq2 aabbabaaq3 aabbabaaq4 aabbabaaq5 aabbabaaq5 aabbabaa
8
Computando ω = aabbabaa em M1
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
estados ativos símbolo lidoq1 = δ̂1(q1, ε) aabbabaaq1 = δ̂1(q1, a) aabbabaaq1 = δ̂1(q1, aa) aabbabaaq2 = δ̂1(q1, aab) aabbabaaq2 = δ̂1(q1, aabb) aabbabaaq3 = δ̂1(q1, aabba) aabbabaaq4 = δ̂1(q1, aabbab) aabbabaaq5 = δ̂1(q1, aabbaba) aabbabaaq5 = δ̂1(q1, aabbabaa) aabbabaa
8
Autômatos finitos determinísticos
Seja M = (Q,Σ, δ, q0,F) um AFD e seja ω ∈ Σ∗.Dizemos que M aceita ω se δ̂(q0, ω) ∈ F.Caso contrário, M rejeita ω.
Seja M = (Q,Σ, δ, q0,F) um AFD.Dizemos que L(M) = {ω ∈ Σ∗ | M aceita ω} é a linguagemreconhecida por M.
9
Autômatos finitos determinísticos
M1 q1 q2 q3 q4 q5
a b a,b
b a b aa
a
b
L(M1) = {ω ∈ {a, b}∗ | ω contém baba como subcadeia }
Pois:
• δ̂1(q1, α) = q1 ⇔ α ∈ Σ∗ não contém o padrão desejado• δ̂1(q1, α) = q2 ⇔ α = βb para β ∈ Σ∗
• δ̂1(q1, α) = q3 ⇔ α = βba para β ∈ Σ∗
• δ̂1(q1, α) = q4 ⇔ α = βbab para β ∈ Σ∗
• δ̂1(q1, α) = q5 ⇔ α = βbabaγ para β, γ ∈ Σ∗
10
Linguagens regulares
Uma linguagem é dita regular se algum AFD a reconhece.
Todas as linguagens do universo
Linguagens regulares(AFD)
11
Não determinismo
Autômatos finitos não determinísticos
Um autômato finito não determinístico (AFN) é uma 5-upla(Q,Σ, δ, q0,F) em que
• Q é um conjunto finito de estados• Σ é um alfabeto• δ : Q × (Σ ∪ {ε}) → P(Q) é uma função de transição• q0 ∈ Q é o estado inicial• F ⊆ Q é o conjunto de estados finais
12
Autômatos finitos não determinísticos - Exemplo
N1 = (Q1,Σ1, δ1, 1,F1) com Q1 = {1, 2, 3, 4, 5}, Σ1 = {a, b},F1 = {5} e δ1 dada por
δ1 a b ε
1 {1} {1, 2} ∅2 {3} ∅ {3}3 ∅ {4} ∅4 {5} ∅ ∅5 {5} {5} ∅
é um AFN.
13
Autômatos finitos não determinísticos - Exemplo
N1 também pode ser definido por um diagrama de estados:
N1 1 2 3 4 5
a,b a,b
b a,ε b a
14
Autômatos finitos não determinísticos - Exemplo
N2 = (Q2,Σ2, δ2, q1,F2) com Q2 = {q1, q2, q3, q4, q5, q6},Σ2 = {0, 1}, F2 = {q4, q6} e δ2 dada por
δ2 0 1 ε
q1 {q3} ∅ {q2}q2 ∅ {q4} {q3, q5}q3 {q5} ∅ ∅q4 {q6} ∅ {q5}q5 ∅ ∅ {q6}q6 {q6} ∅ ∅
é um AFN.
15
Autômatos finitos não determinísticos - Exemplo
N2 também pode ser definido por um diagrama de estados:
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0
ε 0
ε
16
Autômatos finitos não determinísticos - Computação
Ideia: o estado inicial fica ativo; uma transição com rótulo x pode serseguida a partir de um estado ativo apenas quando x for lido na entrada;uma transição com rótulo ε pode ser seguida a partir de um estado ativosem que nada da entrada seja lido; o estado atingido pela transição quefoi seguida fica ativo.
A todo momento pode haver mais de uma possibilidade de transição aser seguida. Nesse caso, é criada uma cópia da máquina para cadapossibilidade.
A cópia desaparece quando não consegue mais seguir transições.
17
Autômatos finitos não determinísticos - Computação
N1 1 2 3 4 5
a,b a,b
b a,ε b a
Leu b:
1 2 3 4 5
a,b a,b
b a,ε b a
1 2 3 4 5
a,b a,b
b a,ε b a
1 2 3 4 5
a,b a,b
b a,ε b a
18
Autômatos finitos não determinísticos - Computação
N1 1 2 3 4 5
a,b a,b
b a,ε b a
Leu b:
1 2 3 4 5
a,b a,b
b a,ε b a
1 2 3 4 5
a,b a,b
b a,ε b a
1 2 3 4 5
a,b a,b
b a,ε b a
18
Autômatos finitos não determinísticos - Computação
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6
0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6
0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6
0
ε
0 ε ε
1
0ε 0
ε
Leu 0:
Leu 0: q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
19
Autômatos finitos não determinísticos - Computação
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6
0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6
0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6
0
ε
0 ε ε
1
0ε 0
ε
Leu 0: q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε19
Autômatos finitos não determinísticos
Seja N = (Q,Σ, δ, q0,F) um AFN.Para q ∈ Q, o ε-fechamento de q, denotado E(q), é o conjuntodefinido da seguinte forma:
• q ∈ E(q);• se r ∈ E(q) e s ∈ δ(q, ε), então s ∈ E(q).
Ou seja:
• E(q) é o conjunto de estados que são alcançáveis a partir de qseguindo 0 ou mais transições com rótulo ε.
• E(q) é o conjunto dos estados que ficam ativos no mesmoinstante em que q fica ativo.
20
Autômatos finitos não determinísticos
Seja N = (Q,Σ, δ, q0,F) um AFN.Para q ∈ Q, o ε-fechamento de q, denotado E(q), é o conjuntodefinido da seguinte forma:
• q ∈ E(q);• se r ∈ E(q) e s ∈ δ(q, ε), então s ∈ E(q).
Ou seja:
• E(q) é o conjunto de estados que são alcançáveis a partir de qseguindo 0 ou mais transições com rótulo ε.
• E(q) é o conjunto dos estados que ficam ativos no mesmoinstante em que q fica ativo.
20
Autômatos finitos não determinísticos
Seja N = (Q,Σ, δ, q0,F) um AFN.Para q ∈ Q, o ε-fechamento de q, denotado E(q), é o conjuntodefinido da seguinte forma:
• q ∈ E(q);• se r ∈ E(q) e s ∈ δ(q, ε), então s ∈ E(q).
Ou seja:
• E(q) é o conjunto de estados que são alcançáveis a partir de qseguindo 0 ou mais transições com rótulo ε.
• E(q) é o conjunto dos estados que ficam ativos no mesmoinstante em que q fica ativo.
20
Autômatos finitos não determinísticos - ε-fechamento
Considere N2 novamente:
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0
ε 0
ε
• E(q1) = {q1, q2, q3, q5, q6}
• E(q2) = {q2, q3, q5, q6}
• E(q3) = {q3}
• E(q4) = {q4, q5, q6}
• E(q5) = {q5, q6}
• E(q6) = {q6}
21
Abusos de notação
Seja N = (Q,Σ, δ, q0,F) um AFN, seja S ⊆ Q e seja x ∈ Σ.
Usaremosδ(S, x) =
∪q∈S
δ(q, x)
para denotar quais estados ficam ativos ao seguir transições rotuladascom x a partir dos estados de S.
UsaremosE(S) =
∪q∈S
E(q)
para denotar quais estados ficam ativos no mesmo instante em que osestados de S ficam ativos.
22
Autômatos finitos não determinísticos
Dado um AFN N = (Q,Σ, δ, q0,F), definimos a função detransição estendida de N, δ̂ : Q × Σ∗ → P(Q) como
δ̂(q, ω) =
E(q) se ω = ε
E(δ(δ̂(q, α), x)) se ω = αx e x ∈ Σ
Ou seja, δ̂(q, ω) é o conjunto de estados ativos em N apóscomputar toda uma cadeia ω a partir do estado q.
23
Autômatos finitos não determinísticos
Dado um AFN N = (Q,Σ, δ, q0,F), definimos a função detransição estendida de N, δ̂ : Q × Σ∗ → P(Q) como
δ̂(q, ω) =
E(q) se ω = ε
E(δ(δ̂(q, α), x)) se ω = αx e x ∈ Σ
Ou seja, δ̂(q, ω) é o conjunto de estados ativos em N apóscomputar toda uma cadeia ω a partir do estado q.
23
Autômatos finitos não determinísticos - Transição estendida
N1 1 2 3 4 5
a,b a,b
b a,ε b a
• δ̂1(1, ε) = E(1) = {1}
• δ̂1(1, a) = E(δ1(δ̂1(1, ε), a)) = E(δ1({1}, a)) = E({1}) = {1}
• δ̂1(1, ab) = E(δ1(δ̂1(1, a), b)) = E(δ1({1}, b)) = E({1, 2}) ={1, 2, 3}
• δ̂1(1, abb) = E(δ1(δ̂1(1, ab), b)) = E(δ1({1, 2, 3}, b)) =E({1, 2, 4}) = {1, 2, 3, 4}
• δ̂1(2, a) = E(δ1(δ̂1(2, ε), a)) = E(δ1({2, 3}, a)) = E({3}) = {3}
24
Autômatos finitos não determinísticos - Transição estendida
N1 1 2 3 4 5
a,b a,b
b a,ε b a
• δ̂1(1, ε) = E(1) = {1}
• δ̂1(1, a) = E(δ1(δ̂1(1, ε), a)) = E(δ1({1}, a)) = E({1}) = {1}
• δ̂1(1, ab) = E(δ1(δ̂1(1, a), b)) = E(δ1({1}, b)) = E({1, 2}) ={1, 2, 3}
• δ̂1(1, abb) = E(δ1(δ̂1(1, ab), b)) = E(δ1({1, 2, 3}, b)) =E({1, 2, 4}) = {1, 2, 3, 4}
• δ̂1(2, a) = E(δ1(δ̂1(2, ε), a)) = E(δ1({2, 3}, a)) = E({3}) = {3}
24
Autômatos finitos não determinísticos - Transição estendida
N1 1 2 3 4 5
a,b a,b
b a,ε b a
• δ̂1(1, ε) = E(1) = {1}
• δ̂1(1, a) = E(δ1(δ̂1(1, ε), a)) = E(δ1({1}, a)) = E({1}) = {1}
• δ̂1(1, ab) = E(δ1(δ̂1(1, a), b)) = E(δ1({1}, b)) = E({1, 2}) ={1, 2, 3}
• δ̂1(1, abb) = E(δ1(δ̂1(1, ab), b)) = E(δ1({1, 2, 3}, b)) =E({1, 2, 4}) = {1, 2, 3, 4}
• δ̂1(2, a) = E(δ1(δ̂1(2, ε), a)) = E(δ1({2, 3}, a)) = E({3}) = {3}
24
Autômatos finitos não determinísticos - Transição estendida
N1 1 2 3 4 5
a,b a,b
b a,ε b a
• δ̂1(1, ε) = E(1) = {1}
• δ̂1(1, a) = E(δ1(δ̂1(1, ε), a)) = E(δ1({1}, a)) = E({1}) = {1}
• δ̂1(1, ab) = E(δ1(δ̂1(1, a), b)) = E(δ1({1}, b)) = E({1, 2}) ={1, 2, 3}
• δ̂1(1, abb) = E(δ1(δ̂1(1, ab), b)) = E(δ1({1, 2, 3}, b)) =E({1, 2, 4}) = {1, 2, 3, 4}
• δ̂1(2, a) = E(δ1(δ̂1(2, ε), a)) = E(δ1({2, 3}, a)) = E({3}) = {3}
24
Autômatos finitos não determinísticos - Transição estendida
N1 1 2 3 4 5
a,b a,b
b a,ε b a
• δ̂1(1, ε) = E(1) = {1}
• δ̂1(1, a) = E(δ1(δ̂1(1, ε), a)) = E(δ1({1}, a)) = E({1}) = {1}
• δ̂1(1, ab) = E(δ1(δ̂1(1, a), b)) = E(δ1({1}, b)) = E({1, 2}) ={1, 2, 3}
• δ̂1(1, abb) = E(δ1(δ̂1(1, ab), b)) = E(δ1({1, 2, 3}, b)) =E({1, 2, 4}) = {1, 2, 3, 4}
• δ̂1(2, a) = E(δ1(δ̂1(2, ε), a)) = E(δ1({2, 3}, a)) = E({3}) = {3}
24
Autômatos finitos não determinísticos - Transição estendida
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0ε 0
ε
• δ̂2(q1, ε) = E(q1) = {q1, q2, q3, q5, q6}
• δ̂2(q1, 0) = E(δ2(δ̂2(q1, ε), 0)) = E(δ2({q1, q2, q3, q5, q6}, 0)) =E({q3, q5, q6}) = {q3, q5, q6}
• δ̂2(q1, 01) = E(δ2(δ̂2(q1, 0), 1)) = E(δ2({q3, q5, q6}, 1)) = E(∅) = ∅
25
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1
abbaababbaababbaababbaababbaababbaababbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1
abbaababbaababbaababbaababbaababbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3
abbaababbaababbaababbaababbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3 abbaab1, 2, 3, 4
abbaababbaababbaababbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3 abbaab1, 2, 3, 4 abbaab1, 3, 5
abbaababbaababbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3 abbaab1, 2, 3, 4 abbaab1, 3, 5 abbaab1, 5
abbaababbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3 abbaab1, 2, 3, 4 abbaab1, 3, 5 abbaab1, 5 abbaab
1, 2, 3, 5
abbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3 abbaab1, 2, 3, 4 abbaab1, 3, 5 abbaab1, 5 abbaab
1, 2, 3, 5 abbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido1 abbaab1 abbaab
1, 2, 3 abbaab{1, 2, 3, 4} = δ̂1(1, abb) abbaab
1, 3, 5 abbaab1, 5 abbaab
1, 2, 3, 5 abbaab
26
Computando ω = abbaab em N1
N1 1 2 3 4 5
a,b a,b
b a,ε b a
estados ativos símbolo lido{1} = δ̂1(1, ε) abbaab{1} = δ̂1(1, a) abbaab
{1, 2, 3} = δ̂1(1, ab) abbaab{1, 2, 3, 4} = δ̂1(1, abb) abbaab{1, 3, 5} = δ̂1(1, abba) abbaab{1, 5} = δ̂1(1, abbaa) abbaab
{1, 2, 3, 5} = δ̂1(1, abbaab) abbaab
26
Computando ω = 100 em N2
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0
ε 0
ε
estados ativos símbolo lido{q1, q2, q3, q5, q6} = δ̂2(q1, ε) 100
{q4, q5, q6} = δ̂2(q1, 1) 100{q6} = δ̂2(q1, 10) 100{q6} = δ̂2(q1, 100) 100
27
Autômatos finitos não determinísticos
Seja N = (Q,Σ, δ, q0,F) um AFN e seja ω ∈ Σ∗.Dizemos que N aceita ω se δ̂(q0, ω) ∩ F ̸= ∅.Caso contrário, N rejeita ω.
Seja N = (Q,Σ, δ, q0,F) um AFN.Dizemos que L(N) = {ω ∈ Σ∗ | N aceita ω} é a linguagemreconhecida por N.
28
Autômatos finitos não determinísticos
N1 1 2 3 4 5
a,b a,b
b a,ε b a
L(N1) = {ω ∈ {a, b}∗ | ω contém baba ou bba como subcadeia }
Pois:
• 1 ∈ δ̂1(1, α) ⇔ α ∈ Σ∗
• 2 ∈ δ̂1(1, α) ⇔ α = βb para β ∈ Σ∗
• 3 ∈ δ̂1(1, α) ⇔ α = βb ou α = βba para β ∈ Σ∗
• 4 ∈ δ̂1(1, α) ⇔ α = βbb ou α = βbab para β ∈ Σ∗
• 5 ∈ δ̂1(1, α) ⇔ α = βbbaγ ou α = βbabaγ para β, γ ∈ Σ∗
29
Autômatos finitos não determinísticos
N2 q1 q2
q3
q4
q5 q6 0
ε
0 ε ε
1
0
ε 0
ε
L(N2) = {ε} ∪ {10k | k ≥ 0} ∪ {00k | k ≥ 0}Pois:
• q1 ∈ δ̂2(q1, α) ⇔ α = ε
• q2 ∈ δ̂2(q1, α) ⇔ α = ε
• q3 ∈ δ̂2(q1, α) ⇔ α = ε ou α = 0• q4 ∈ δ̂2(q1, α) ⇔ α = 1• q5 ∈ δ̂2(q1, α) ⇔ α = ε ou α = 0 ou α = 00 ou α = 1• q6 ∈ δ̂2(q1, α) ⇔ α = 0k ou α = 00k ou α = 000k ou α = 10k ou
α = 100k, com k ≥ 0 30
Equivalência entre AFD e AFN
Definição de Equivalência
Dois autômatos M e N são equivalentes se L(M) = L(N), i.e., seambos reconhecem a mesma linguagem.
31
AFD vs. AFN
TeoremaTodo AFN tem um AFD equivalente.
Demonstração.Seja N = (Q,Σ, δ, q0,F) um AFN.
A ideia é criar um AFD que reconhece L(N) fazendo-o simular N. Paraisso, o AFD deve lembrar quais são os estados ativos do AFN em cadamomento da entrada.Seja M = (B,Σ, φ, p0,T) em que:
• B = P(Q)
• Para R ∈ B e x ∈ Σ, φ(R, x) =∪
q∈RE(δ(q, x))
• p0 = E(q0)
• T = {R ∈ B | R ∩ F ̸= ∅}
Note que L(M) = L(N) porque δ̂(q0, ω) = φ̂(p0, ω) para qualquerω ∈ Σ∗.
32
AFD vs. AFN
TeoremaTodo AFN tem um AFD equivalente.
Demonstração.Seja N = (Q,Σ, δ, q0,F) um AFN.A ideia é criar um AFD que reconhece L(N) fazendo-o simular N. Paraisso, o AFD deve lembrar quais são os estados ativos do AFN em cadamomento da entrada.
Seja M = (B,Σ, φ, p0,T) em que:
• B = P(Q)
• Para R ∈ B e x ∈ Σ, φ(R, x) =∪
q∈RE(δ(q, x))
• p0 = E(q0)
• T = {R ∈ B | R ∩ F ̸= ∅}
Note que L(M) = L(N) porque δ̂(q0, ω) = φ̂(p0, ω) para qualquerω ∈ Σ∗.
32
AFD vs. AFN
TeoremaTodo AFN tem um AFD equivalente.
Demonstração.Seja N = (Q,Σ, δ, q0,F) um AFN.A ideia é criar um AFD que reconhece L(N) fazendo-o simular N. Paraisso, o AFD deve lembrar quais são os estados ativos do AFN em cadamomento da entrada.Seja M = (B,Σ, φ, p0,T) em que:
• B = P(Q)
• Para R ∈ B e x ∈ Σ, φ(R, x) =∪
q∈RE(δ(q, x))
• p0 = E(q0)
• T = {R ∈ B | R ∩ F ̸= ∅}
Note que L(M) = L(N) porque δ̂(q0, ω) = φ̂(p0, ω) para qualquerω ∈ Σ∗.
32
AFD vs. AFN
TeoremaTodo AFN tem um AFD equivalente.
Demonstração.Seja N = (Q,Σ, δ, q0,F) um AFN.A ideia é criar um AFD que reconhece L(N) fazendo-o simular N. Paraisso, o AFD deve lembrar quais são os estados ativos do AFN em cadamomento da entrada.Seja M = (B,Σ, φ, p0,T) em que:
• B = P(Q)
• Para R ∈ B e x ∈ Σ, φ(R, x) =∪
q∈RE(δ(q, x))
• p0 = E(q0)
• T = {R ∈ B | R ∩ F ̸= ∅}
Note que L(M) = L(N) porque δ̂(q0, ω) = φ̂(p0, ω) para qualquerω ∈ Σ∗. 32
AFD vs. AFN
N3 1
3
2 a
ε
a
b
a,b
ε
33
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
a
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
ab
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
ab
a
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
ab
a
b
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
ab
a
b
a
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
ab
a
b
a
b
34
AFD vs. AFN
AFD gerado a partir de N3:
∅ {1}
{2} {3}
{1, 2} {1, 3}
{2, 3} {1, 2, 3}
ab
a
b
a
b
a,b
a
b
a
b
a
b
a,b
34
AFD vs. AFN - Exercício
N4 1
3
2 a
ε
a
b
a,b
35
AFD vs. AFN - Exercício
AFD gerado a partir de N4 (após remoção de estadosinalcançáveis):
{1, 3} {3} ∅
{2} {2, 3} {1, 2, 3}
a
b
a
b
a b
a
b
a,b
ab
36
Linguagens regulares
CorolárioUma linguagem é regular se e somente se algum AFN a reconhece.
Demonstração.(⇒) Se a linguagem é regular, então por definição um AFD a reconhecee todo AFD é um AFN.(⇐) Se um AFN reconhece a linguagem, então pelo teorema anteriorpodemos construir um AFD equivalente. Logo, por definição, alinguagem é regular.
Todas as linguagens do universo
Linguagens regulares(AFD,AFN)
37
Linguagens regulares
CorolárioUma linguagem é regular se e somente se algum AFN a reconhece.
Demonstração.(⇒) Se a linguagem é regular, então por definição um AFD a reconhecee todo AFD é um AFN.(⇐) Se um AFN reconhece a linguagem, então pelo teorema anteriorpodemos construir um AFD equivalente. Logo, por definição, alinguagem é regular.
Todas as linguagens do universo
Linguagens regulares(AFD,AFN)
37
Propriedades de linguagens regulares
Operações regulares
Sejam A e B linguagens.
São operações regulares:
• União: A ∪ B = {x | x ∈ A ou x ∈ B}• Concatenação: AB = {xy | x ∈ A e x ∈ B}• Estrela: A∗ = {x1x2 . . . xk | k ≥ 0 e xi ∈ A}
38
Operações regulares
Considere L = {1, 01, 010} e M = {ε, 11}.
L ∪ M = {ε, 1, 01, 11, 010}
LM = {1, 111, 01, 0111, 010, 01011}
ML = {1, 01, 010, 111, 1101, 11010}
L∗ = {ε, 1, 11, 101, 010, 0101, 1010, 11101010, . . .}
39
Propriedades das operações regulares
1. ∅ ∪ L = L ∪ ∅ = L2. {ε}L = L{ε} = L3. ∅L = L∅ = ∅4. L(M ∪ N) = LM ∪ LN5. (M ∪ N)L = ML ∪ NL6. L ∪ L = L7. (L∗)∗ = L∗
8. ∅∗ = {ε}9. {ε}∗ = {ε}
40
Propriedades de fechamento de linguagens regulares
• Uma coleção de objetos é fechada sob alguma operação se,aplicando-se essa operação a membros da coleção, recebe-seum objeto ainda na coleção.
• Por exemplo, números naturais são fechados sob a operação desoma.
• Por exemplo, números naturais não são fechados sob aoperação de divisão.
41
Propriedades de fechamento de linguagens regulares
As linguagens regulares são fechadas sob:
1. União (teorema a seguir)2. Concatenação (teorema a seguir)3. Estrela (teorema a seguir)4. Interseção (exercício)5. Complemento (respondido na parte 3 da lista 1)6. Diferença (exercício)7. Reverso (exercício na parte 3 da lista 1)
42
União
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares.
Por definição, existem AFDsM1 = (Q1,Σ, δ1, q1,F1) e M2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.A ideia é criar um AFD que reconhece A1 ∪ A2 fazendo-o simular M1 e M2simultaneamente. Para isso, o AFD precisa lembrar qual o estado ativo em M1 e qualo estado ativo em M2 em cada momento da entrada.Seja M = (Q,Σ, δ, q0,F) em que
• Q = Q1 × Q2 = {(r1, r2) | r1 ∈ Q1 e r2 ∈ Q2}• Para (r1, r2) ∈ Q e x ∈ Σ, δ((r1, r2), x) = ( δ1(r1, x), δ2(r2, x) )
• q0 = (q1, q2)
• F = {(r1, r2) | r1 ∈ F1 ou r2 ∈ F2}
Note que L(M) = A1 ∪ A2 porque
δ̂(q0, ω) = (ri, rj) ⇔ δ̂1(q1, ω) = ri e δ̂2(q2, ω) = rj .
43
União
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFDsM1 = (Q1,Σ, δ1, q1,F1) e M2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.
A ideia é criar um AFD que reconhece A1 ∪ A2 fazendo-o simular M1 e M2simultaneamente. Para isso, o AFD precisa lembrar qual o estado ativo em M1 e qualo estado ativo em M2 em cada momento da entrada.Seja M = (Q,Σ, δ, q0,F) em que
• Q = Q1 × Q2 = {(r1, r2) | r1 ∈ Q1 e r2 ∈ Q2}• Para (r1, r2) ∈ Q e x ∈ Σ, δ((r1, r2), x) = ( δ1(r1, x), δ2(r2, x) )
• q0 = (q1, q2)
• F = {(r1, r2) | r1 ∈ F1 ou r2 ∈ F2}
Note que L(M) = A1 ∪ A2 porque
δ̂(q0, ω) = (ri, rj) ⇔ δ̂1(q1, ω) = ri e δ̂2(q2, ω) = rj .
43
União
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFDsM1 = (Q1,Σ, δ1, q1,F1) e M2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.A ideia é criar um AFD que reconhece A1 ∪ A2 fazendo-o simular M1 e M2simultaneamente. Para isso, o AFD precisa lembrar qual o estado ativo em M1 e qualo estado ativo em M2 em cada momento da entrada.
Seja M = (Q,Σ, δ, q0,F) em que• Q = Q1 × Q2 = {(r1, r2) | r1 ∈ Q1 e r2 ∈ Q2}• Para (r1, r2) ∈ Q e x ∈ Σ, δ((r1, r2), x) = ( δ1(r1, x), δ2(r2, x) )
• q0 = (q1, q2)
• F = {(r1, r2) | r1 ∈ F1 ou r2 ∈ F2}
Note que L(M) = A1 ∪ A2 porque
δ̂(q0, ω) = (ri, rj) ⇔ δ̂1(q1, ω) = ri e δ̂2(q2, ω) = rj .
43
União
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFDsM1 = (Q1,Σ, δ1, q1,F1) e M2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.A ideia é criar um AFD que reconhece A1 ∪ A2 fazendo-o simular M1 e M2simultaneamente. Para isso, o AFD precisa lembrar qual o estado ativo em M1 e qualo estado ativo em M2 em cada momento da entrada.Seja M = (Q,Σ, δ, q0,F) em que
• Q = Q1 × Q2 = {(r1, r2) | r1 ∈ Q1 e r2 ∈ Q2}• Para (r1, r2) ∈ Q e x ∈ Σ, δ((r1, r2), x) = ( δ1(r1, x), δ2(r2, x) )
• q0 = (q1, q2)
• F = {(r1, r2) | r1 ∈ F1 ou r2 ∈ F2}
Note que L(M) = A1 ∪ A2 porque
δ̂(q0, ω) = (ri, rj) ⇔ δ̂1(q1, ω) = ri e δ̂2(q2, ω) = rj .
43
União
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFDsM1 = (Q1,Σ, δ1, q1,F1) e M2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.A ideia é criar um AFD que reconhece A1 ∪ A2 fazendo-o simular M1 e M2simultaneamente. Para isso, o AFD precisa lembrar qual o estado ativo em M1 e qualo estado ativo em M2 em cada momento da entrada.Seja M = (Q,Σ, δ, q0,F) em que
• Q = Q1 × Q2 = {(r1, r2) | r1 ∈ Q1 e r2 ∈ Q2}• Para (r1, r2) ∈ Q e x ∈ Σ, δ((r1, r2), x) = ( δ1(r1, x), δ2(r2, x) )
• q0 = (q1, q2)
• F = {(r1, r2) | r1 ∈ F1 ou r2 ∈ F2}
Note que L(M) = A1 ∪ A2 porque
δ̂(q0, ω) = (ri, rj) ⇔ δ̂1(q1, ω) = ri e δ̂2(q2, ω) = rj .
43
União - Outra demonstração
TeoremaA união de duas linguagens regulares é regular.
Ideia da demonstração.Criar um único AFN que reconhece A1 ∪ A2 se aproveitando da onisciência do nãodeterminismo:
44
União - Outra demonstração
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFNsN1 = (Q1,Σ, δ1, q1,F1) e N2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.
Construa N = (Q,Σ, δ, q0,F) em que• Q = {q0} ∪ Q1 ∪ Q2• Para q ∈ Q e x ∈ Σ ∪ {ε},
δ(q, x) =
δ1(q, x) se q ∈ Q1
δ2(q, x) se q ∈ Q2
{q1, q2} se q = q0 e x = ε
∅ se q = q0 e x ̸= ε
• F = F1 ∪ F2
Note que L(N) = A1 ∪ A2 porque …
45
União - Outra demonstração
TeoremaA união de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFNsN1 = (Q1,Σ, δ1, q1,F1) e N2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.Construa N = (Q,Σ, δ, q0,F) em que
• Q = {q0} ∪ Q1 ∪ Q2• Para q ∈ Q e x ∈ Σ ∪ {ε},
δ(q, x) =
δ1(q, x) se q ∈ Q1
δ2(q, x) se q ∈ Q2
{q1, q2} se q = q0 e x = ε
∅ se q = q0 e x ̸= ε
• F = F1 ∪ F2
Note que L(N) = A1 ∪ A2 porque …45
Concatenação
TeoremaA concatenação de duas linguagens regulares é regular.
Ideia da demonstração.Criar um único AFN que reconhece A1A2 se aproveitando da onisciência do nãodeterminismo:
46
Concatenação
TeoremaA concatenação de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFNsN1 = (Q1,Σ, δ1, q1,F1) e N2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.
Seja N = (Q,Σ, δ, q0,F) em que• Q = Q1 ∪ Q2• Para q ∈ Q e x ∈ Σ ∪ {ε},
δ(q, x) =
δ1(q, x) se q ∈ Q1 e q /∈ F1
δ1(q, x) se q ∈ F1 e x ̸= ε
δ1(q, x) ∪ {q2} se q ∈ F1 e x = ε
δ2(q, x) se q ∈ Q2
• q0 = q1• F = F2
Note que L(N) = A1A2 porque …
47
Concatenação
TeoremaA concatenação de duas linguagens regulares é regular.
Demonstração.Sejam A1 e A2 duas linguagens regulares. Por definição, existem AFNsN1 = (Q1,Σ, δ1, q1,F1) e N2 = (Q2,Σ, δ2, q2,F2) que as reconhecem,respectivamente.Seja N = (Q,Σ, δ, q0,F) em que
• Q = Q1 ∪ Q2• Para q ∈ Q e x ∈ Σ ∪ {ε},
δ(q, x) =
δ1(q, x) se q ∈ Q1 e q /∈ F1
δ1(q, x) se q ∈ F1 e x ̸= ε
δ1(q, x) ∪ {q2} se q ∈ F1 e x = ε
δ2(q, x) se q ∈ Q2
• q0 = q1• F = F2
Note que L(N) = A1A2 porque … 47
Estrela
TeoremaA estrela de uma linguagem regular é regular.
Ideia da demonstração.Criar um único AFN que reconhece A∗ se aproveitando da onisciência do nãodeterminismo:
48
Estrela
TeoremaA estrela de uma linguagem regular é regular.
Demonstração.Sejam A uma linguagem regular. Por definição, existe um AFNN1 = (Q1,Σ, δ1, q1,F1) que a reconhece.
Seja N = (Q,Σ, δ, q0,F) em que• Q = {q0} ∪ Q1• Para q ∈ Q e x ∈ Σ ∪ {ε},
δ(q, x) =
δ1(q, x) se q ∈ Q1 e q /∈ F1
δ1(q, x) se q ∈ Q1 e x ̸= ε
δ1(q, x) ∪ {q1} se q ∈ F1 e x = ε
{q1} se q = q0 e x = ε
∅ se q = q0 e x ̸= ε
• F = {q0} ∪ F1
Note que L(N) = A∗ porque …
49
Estrela
TeoremaA estrela de uma linguagem regular é regular.
Demonstração.Sejam A uma linguagem regular. Por definição, existe um AFNN1 = (Q1,Σ, δ1, q1,F1) que a reconhece.Seja N = (Q,Σ, δ, q0,F) em que
• Q = {q0} ∪ Q1• Para q ∈ Q e x ∈ Σ ∪ {ε},
δ(q, x) =
δ1(q, x) se q ∈ Q1 e q /∈ F1
δ1(q, x) se q ∈ Q1 e x ̸= ε
δ1(q, x) ∪ {q1} se q ∈ F1 e x = ε
{q1} se q = q0 e x = ε
∅ se q = q0 e x ̸= ε
• F = {q0} ∪ F1
Note que L(N) = A∗ porque …49
Estrela
Por que a demonstração do fechamento sob estrela precisou criarum estado inicial novo?
q1 q2 q3
a,b
b a
50