professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… ·...

101
Autômatos finitos MCTA015-13 - Linguagens Formais e Autômata Profa. Carla Negri Lintzmayer [email protected] www.professor.ufabc.edu.br/carla.negri Centro de Matemática, Computação e Cognição – Universidade Federal do ABC 1

Transcript of professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… ·...

Page 1: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 2: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

Determinismo

Page 3: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 4: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 5: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 6: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 7: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 8: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 9: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 10: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 11: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 12: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 13: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 14: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 15: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 16: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 17: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 18: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 19: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 20: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 21: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

Linguagens regulares

Uma linguagem é dita regular se algum AFD a reconhece.

Todas as linguagens do universo

Linguagens regulares(AFD)

11

Page 22: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

Não determinismo

Page 23: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 24: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 25: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 26: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 27: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 28: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 29: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 30: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 31: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 32: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 33: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 34: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 35: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 36: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 37: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 38: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 39: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 40: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 41: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 42: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 43: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 44: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 45: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 46: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 47: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 48: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 49: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 50: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 51: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 52: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 53: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 54: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 55: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 56: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 57: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 58: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 59: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 60: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

Equivalência entre AFD e AFN

Page 61: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 62: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 63: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 64: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 65: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 66: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

N3 1

3

2 a

ε

a

b

a,b

ε

33

Page 67: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

AFD gerado a partir de N3:

∅ {1}

{2} {3}

{1, 2} {1, 3}

{2, 3} {1, 2, 3}

34

Page 68: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

AFD gerado a partir de N3:

∅ {1}

{2} {3}

{1, 2} {1, 3}

{2, 3} {1, 2, 3}

34

Page 69: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

AFD gerado a partir de N3:

∅ {1}

{2} {3}

{1, 2} {1, 3}

{2, 3} {1, 2, 3}

34

Page 70: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

AFD gerado a partir de N3:

∅ {1}

{2} {3}

{1, 2} {1, 3}

{2, 3} {1, 2, 3}

a

34

Page 71: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

AFD gerado a partir de N3:

∅ {1}

{2} {3}

{1, 2} {1, 3}

{2, 3} {1, 2, 3}

ab

34

Page 72: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN

AFD gerado a partir de N3:

∅ {1}

{2} {3}

{1, 2} {1, 3}

{2, 3} {1, 2, 3}

ab

a

34

Page 73: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 74: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 75: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 76: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 77: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

AFD vs. AFN - Exercício

N4 1

3

2 a

ε

a

b

a,b

35

Page 78: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 79: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 80: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 81: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

Propriedades de linguagens regulares

Page 82: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 83: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 84: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 85: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 86: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 87: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 88: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 89: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 90: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 91: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 92: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 93: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 94: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 95: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 96: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 97: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 98: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 99: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 100: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

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

Page 101: professor.ufabc.edu.brprofessor.ufabc.edu.br/~carla.negri/cursos/2020Q1-LFA/automatos.p… · Autômatos finitos não determinísticos - Computação Ideia: o estado inicial fica

Estrela

Por que a demonstração do fechamento sob estrela precisou criarum estado inicial novo?

q1 q2 q3

a,b

b a

50