Escolar Documentos
Profissional Documentos
Cultura Documentos
Determinísticos
MCTA015-13 - Linguagens Formais e Automata
1
Aula de Hoje
💡 Objetivos de aprendizagem
• Aprendizado de conceitos de linguagens formais: alfabeto,
cadeia, linguagem, etc.
• Aprendizado do conceito de Automato Finito
Determinístico (AFD)
• Projetar um AFD para reconhecer uma determinada
linguagem
2
Cadeias e Linguagens
Cadeias e Linguagens
3
Cadeias e Linguagens
3
Cadeias e Linguagens
3
Cadeias e Linguagens
3
Cadeias e Linguagens
3
Cadeias e Linguagens
3
Cadeias e Linguagens
3
Cadeia
4
Cadeia
4
Cadeia
4
Cadeia
4
Cadeia
4
Cadeia
4
Cadeia
4
Cadeia
4
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Comprimento de uma Cadeia
5
Concatenação de cadeias
6
Concatenação de cadeias
αβ = vovojuju
6
Potência de cadeia
αk = αα · · · α}
| {z
k
7
Potência de cadeia
αk = αα · · · α}
| {z
k
📝 Exemplos
7
Potência de cadeia
αk = αα · · · α}
| {z
k
📝 Exemplos
7
Potência de cadeia (Cont.)
8
Potência de cadeia (Cont.)
8
Cadeia vazia
9
Cadeia vazia
ωϵ = ϵω = ω
9
Cadeia reversa
10
Cadeia reversa
10
Subcadeia
11
Subcadeia
aaa |{z}
ω = |{z} ab |{z}
bb
α β γ
11
Subcadeia
aaa |{z}
ω = |{z} ab |{z}
bb
α β γ
ω = |{z} 01 |{z}
ϵ |{z} 101
α β γ
11
Subcadeia
aaa |{z}
ω = |{z} ab |{z}
bb
α β γ
ω = |{z} 01 |{z}
ϵ |{z} 101
α β γ
ω = aaab ba |{z}
|{z} |{z} ϵ
α β γ 11
Potência de alfabetos
12
Potência de alfabetos
• Σ0 = {ϵ}
12
Potência de alfabetos
• Σ0 = {ϵ}
• Σ1 = {0, 1}
12
Potência de alfabetos
• Σ0 = {ϵ}
• Σ1 = {0, 1}
• Σ2 = {00, 01, 10, 11}
12
Potência de alfabetos
• Σ0 = {ϵ}
• Σ1 = {0, 1}
• Σ2 = {00, 01, 10, 11}
• Σ3 = {000, 001, 010, 011, 100, 101, 110, 111}
12
Fecho de Kleene e Fecho positivo de um alfabeto
Dado um alfabeto Σ,
• o fecho de Kleene de Σ, denotado por Σ∗ , é
∞
[
Σ∗ = Σi
i=0
13
Fecho de Kleene e Fecho positivo de um alfabeto
Dado um alfabeto Σ,
• o fecho de Kleene de Σ, denotado por Σ∗ , é
∞
[
Σ∗ = Σi
i=0
13
Fecho de Kleene e Fecho positivo de um alfabeto
Dado um alfabeto Σ,
• o fecho de Kleene de Σ, denotado por Σ∗ , é
∞
[
Σ∗ = Σi
i=0
13
Fecho de Kleene e Fecho positivo de um alfabeto
Dado um alfabeto Σ,
• o fecho de Kleene de Σ, denotado por Σ∗ , é
∞
[
Σ∗ = Σi
i=0
📝 Exemplos
Seja Σ = {0, 1}. Então
13
Fecho de Kleene e Fecho positivo de um alfabeto
Dado um alfabeto Σ,
• o fecho de Kleene de Σ, denotado por Σ∗ , é
∞
[
Σ∗ = Σi
i=0
📝 Exemplos
Seja Σ = {0, 1}. Então
📜 Definição
Uma linguagem L sobre um alfabeto Σ é um subconjunto de
Σ∗ , i.e.,
L ⊆ Σ∗ .
14
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
• L3 = {0n 1n ∈ {0, 1}∗ : n ≥ 1}
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
• L3 = {0n 1n ∈ {0, 1}∗ : n ≥ 1}
• L4 = {ai bj ∈ {0, 1}∗ : 1 ≥ i ≥ j}
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
• L3 = {0n 1n ∈ {0, 1}∗ : n ≥ 1}
• L4 = {ai bj ∈ {0, 1}∗ : 1 ≥ i ≥ j}
• L5 = {ϵ}
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
• L3 = {0n 1n ∈ {0, 1}∗ : n ≥ 1}
• L4 = {ai bj ∈ {0, 1}∗ : 1 ≥ i ≥ j}
• L5 = {ϵ}
• L6 = {}
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
• L3 = {0n 1n ∈ {0, 1}∗ : n ≥ 1}
• L4 = {ai bj ∈ {0, 1}∗ : 1 ≥ i ≥ j}
• L5 = {ϵ}
• L6 = {}
• L7 = {w ∈ {0, 1, 2}∗ : o quinto símbolo de w é 2}
15
Exemplos de Linguagem
📝 Exemplos
• L1 = {1, 10, 11, 100}.
• L2 = {w ∈ {0, 1}∗ : w contém o mesmo número de 0’s e 1’s}
• L3 = {0n 1n ∈ {0, 1}∗ : n ≥ 1}
• L4 = {ai bj ∈ {0, 1}∗ : 1 ≥ i ≥ j}
• L5 = {ϵ}
• L6 = {}
• L7 = {w ∈ {0, 1, 2}∗ : o quinto símbolo de w é 2}
• L8 = {w : w é um programa sintaticamente correto em C}
15
Problema de interesse
16
Autômatos Finitos Determinísticos
Autômatos Finitos Determinísticos (AFD)
17
Autômatos Finitos Determinísticos (AFD)
17
Autômatos Finitos Determinísticos (AFD)
17
Autômatos Finitos Determinísticos (AFD)
17
Autômatos Finitos Determinísticos (AFD)
17
Autômatos Finitos Determinísticos (AFD)
17
Diagrama de Estados
0 1
0
1
q1 q2 q3
0, 1
18
Diagrama de Estados
0 1
0
1
q1 q2 q3
0, 1
• três estados: q1 , q2 , q3 .
18
Diagrama de Estados
0 1
0
1
q1 q2 q3
0, 1
• três estados: q1 , q2 , q3 .
• O estado inicial (q1 ) é indicado por uma flecha vinda de lugar
algum.
18
Diagrama de Estados
0 1
0
1
q1 q2 q3
0, 1
• três estados: q1 , q2 , q3 .
• O estado inicial (q1 ) é indicado por uma flecha vinda de lugar
algum.
• Um estado final (q2 ) é indicado por um círculo com aro duplo.
18
Diagrama de Estados
0 1
0
1
q1 q2 q3
0, 1
• três estados: q1 , q2 , q3 .
• O estado inicial (q1 ) é indicado por uma flecha vinda de lugar
algum.
• Um estado final (q2 ) é indicado por um círculo com aro duplo.
• As flechas ligando estados são chamadas de transições.
18
Diagrama de Estados
0 1
0
1
q1 q2 q3
0, 1
• três estados: q1 , q2 , q3 .
• O estado inicial (q1 ) é indicado por uma flecha vinda de lugar
algum.
• Um estado final (q2 ) é indicado por um círculo com aro duplo.
• As flechas ligando estados são chamadas de transições.
• Quando o autômato recebe uma cadeia de entrada, ele
processa a cadeia e aceita ou rejeita ela.
18
Funcionamento de um autômato
0 1
0
1
q1 q2 q3
0, 1
✎ Exemplo
Vamos processar as seguintes cadeias com o autômato M∗
• 010101
19
Funcionamento de um autômato
0 1
0
1
q1 q2 q3
0, 1
✎ Exemplo
Vamos processar as seguintes cadeias com o autômato M∗
• 010101
• 011000
19
Funcionamento de um autômato
0 1
0
1
q1 q2 q3
0, 1
✎ Exemplo
Vamos processar as seguintes cadeias com o autômato M∗
• 010101
• 011000
• 100
19
Funcionamento de um autômato
0 1
0
1
q1 q2 q3
0, 1
✎ Exemplo
Vamos processar as seguintes cadeias com o autômato M∗
• 010101
• 011000
• 100
19
Funcionamento de um autômato
0 1
0
1
q1 q2 q3
0, 1
✎ Exemplo
Vamos processar as seguintes cadeias com o autômato M∗
• 010101
• 011000
• 100
20
Definição formal (matematiquês)
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do
mesmo estado com o mesmo símbolo do alfabeto?
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do
mesmo estado com o mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do
mesmo estado com o mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
• Um autômato pode ter mais do que um estado final?
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do
mesmo estado com o mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
• Um autômato pode ter mais do que um estado final?
• Cada estado precisa ter uma flecha saindo com cada
símbolo do alfabeto?
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do
mesmo estado com o mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
• Um autômato pode ter mais do que um estado final?
• Cada estado precisa ter uma flecha saindo com cada
símbolo do alfabeto?
20
Definição formal (matematiquês)
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do
mesmo estado com o mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
• Um autômato pode ter mais do que um estado final?
• Cada estado precisa ter uma flecha saindo com cada
símbolo do alfabeto?
20
Autômatos Finitos Determinísticos
📜 Definição
Uma autômato finito determinístico (AFD) é uma 5-upla
(Q, Σ, δ, q0 , F), onde
21
Autômatos Finitos Determinísticos
📜 Definição
Uma autômato finito determinístico (AFD) é uma 5-upla
(Q, Σ, δ, q0 , F), onde
21
Autômatos Finitos Determinísticos
📜 Definição
Uma autômato finito determinístico (AFD) é uma 5-upla
(Q, Σ, δ, q0 , F), onde
21
Autômatos Finitos Determinísticos
📜 Definição
Uma autômato finito determinístico (AFD) é uma 5-upla
(Q, Σ, δ, q0 , F), onde
21
Autômatos Finitos Determinísticos
📜 Definição
Uma autômato finito determinístico (AFD) é uma 5-upla
(Q, Σ, δ, q0 , F), onde
21
Autômatos Finitos Determinísticos
📜 Definição
Uma autômato finito determinístico (AFD) é uma 5-upla
(Q, Σ, δ, q0 , F), onde
21
Autômatos Finitos Determinísticos
Definição
Uma autômato finito determinístico (AFD) é uma 5-upla (Q, Σ, δ, q0 , F), onde
🤔 Perguntas
22
Autômatos Finitos Determinísticos
Definição
Uma autômato finito determinístico (AFD) é uma 5-upla (Q, Σ, δ, q0 , F), onde
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
22
Autômatos Finitos Determinísticos
Definição
Uma autômato finito determinístico (AFD) é uma 5-upla (Q, Σ, δ, q0 , F), onde
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do mesmo estado com o
mesmo símbolo do alfabeto?
22
Autômatos Finitos Determinísticos
Definição
Uma autômato finito determinístico (AFD) é uma 5-upla (Q, Σ, δ, q0 , F), onde
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do mesmo estado com o
mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
22
Autômatos Finitos Determinísticos
Definição
Uma autômato finito determinístico (AFD) é uma 5-upla (Q, Σ, δ, q0 , F), onde
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do mesmo estado com o
mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
• Um autômato pode ter mais do que um estado final?
22
Autômatos Finitos Determinísticos
Definição
Uma autômato finito determinístico (AFD) é uma 5-upla (Q, Σ, δ, q0 , F), onde
🤔 Perguntas
• Um autômato pode ter mais do que um estado inicial?
• Um autômato pode ter mais de uma flecha saindo do mesmo estado com o
mesmo símbolo do alfabeto?
• Um autômato precisa ter um estado final?
• Um autômato pode ter mais do que um estado final?
• Cada estado precisa ter uma flecha saindo com cada símbolo do alfabeto?
22
Definição Formal do Automato M∗
0 1
0
1
q1 q2 q3
0, 1
23
Definição Formal do Automato M∗
0 1
0
1
q1 q2 q3
0, 1
23
Dissecando um AFD
24
Dissecando um AFD
24
Aceite em um AFD
• r1 = q1
• δ(ri , wi ) = ri+1 , ∀i = 1, . . . , n − 1
• rn ∈ F
25
Linguagem reconhecida por um autômato
• X é a linguagem de M
26
Linguagem reconhecida por um autômato
• X é a linguagem de M
• L(M) = X
26
Linguagem reconhecida por um autômato
• X é a linguagem de M
• L(M) = X
• M reconhece X
26
Linguagem reconhecida por um autômato
• X é a linguagem de M
• L(M) = X
• M reconhece X
26
Linguagem reconhecida por um autômato
• X é a linguagem de M
• L(M) = X
• M reconhece X
📝 Exemplos
L(M∗ ) = {w ∈ {0, 1}∗ : w contém ao menos um símbolo 1 e
contém um número par de zeros após o último 1}.
26
Linguagem reconhecida por um autômato
• X é a linguagem de M
• L(M) = X
• M reconhece X
📝 Exemplos
L(M∗ ) = {w ∈ {0, 1}∗ : w contém ao menos um símbolo 1 e
contém um número par de zeros após o último 1}.
⚠ Warning
Um AFD aceita várias cadeias mas reconhece apenas uma
linguagem!
26
Mais Exemplos de AFD
0 1
q1 q2
0
27
Mais Exemplos de AFD
0 1
q1 q2
0
L(M′ ) = {w : w termina em 1}
27
Mais Exemplos de AFD (Cont)
0 1
q1 q2
0
28
Mais Exemplos de AFD (Cont)
0 1
q1 q2
0
L(M′′ ) = {w : w = ϵ ou termina em 0}
28
Linguagens Regulares
📜 Definição
Uma linguagem é regular se algum AFD a reconhece
29
Problema de interesse
Problemas de interesse:
30
Problema de interesse
Problemas de interesse:
30
Problema de interesse
Problemas de interesse:
30
Problema de interesse
Problemas de interesse:
30
Projetando Autômatos Finitos Determinísticos
• L1 = {} (linguagem vazia)
31
Projetando Autômatos Finitos Determinísticos
• L1 = {} (linguagem vazia)
• L2 = {ϵ} (linguagem contém cadeia vazia)
31
Projetando Autômatos Finitos Determinísticos
• L1 = {} (linguagem vazia)
• L2 = {ϵ} (linguagem contém cadeia vazia)
∗
• L3 = w ∈ {0, 1} : w contém 01 como subcadeia
31
Projetando Autômatos Finitos Determinísticos
• L1 = {} (linguagem vazia)
• L2 = {ϵ} (linguagem contém cadeia vazia)
∗
• L3 = w ∈ {0, 1} : w contém 01 como subcadeia
• L4 = w ∈ {0, 1}∗ : w tem um número par de zeros
31
Projetando Autômatos Finitos Determinísticos
• L1 = {} (linguagem vazia)
• L2 = {ϵ} (linguagem contém cadeia vazia)
∗
• L3 = w ∈ {0, 1} : w contém 01 como subcadeia
• L4 = w ∈ {0, 1}∗ : w tem um número par de zeros
• L5 = w ∈ {0, 1}∗ : w termina em 00 e contém ao menos um 1
31
Projetando Autômatos Finitos Determinísticos
• L1 = {} (linguagem vazia)
• L2 = {ϵ} (linguagem contém cadeia vazia)
∗
• L3 = w ∈ {0, 1} : w contém 01 como subcadeia
• L4 = w ∈ {0, 1}∗ : w tem um número par de zeros
• L5 = w ∈ {0, 1}∗ : w termina em 00 e contém ao menos um 1
• L6 = {w ∈ {0, 1}∗ : terceiro símbolo a partir do fim é 1}
31
Exercícios
32
Exercícios
32
Exercícios
32
Exercícios
32
Exercícios
32
Exercícios
32
Exercícios
32