Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU...

13
Revisão Autômatos Revisão Autômatos Teoria da Computação Teoria da Computação Pós-graduação em Ciência da Pós-graduação em Ciência da Computação – UFU Computação – UFU Profa. Sandra de Amo Profa. Sandra de Amo

Transcript of Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU...

Page 1: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Revisão AutômatosRevisão Autômatos

Teoria da ComputaçãoTeoria da ComputaçãoPós-graduação em Ciência da Pós-graduação em Ciência da

Computação – UFUComputação – UFUProfa. Sandra de AmoProfa. Sandra de Amo

Page 2: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?

Seja L uma linguagem regular

q0

qf

qs

q1

q2 qi qj

Existe autômato A tal que L(A) = L

A = ({q0,…,qn-1}, S, δ, q0,F)

w = a1 a2 a3 a4 … ak palavra de L

a1

a2

a3 a4

ak

Page 3: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?

q0

qf

qs

q1

q2 qi qj

a1

a2

a3 a4

ak

Qual o comprimento máximo de w para que todos os estados percorridos sejam distintos ?

O caminho percorrido tem no máximo n estados

Logo w tem no máximo comprimento n-1

Page 4: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?

q0

q1

q2 qi

a1

a2

a3

a4

qf

qs

ak

E se comprimento de w for maior ou igual a n ?

O caminho percorrido terá estados repetidos

q2q2

Seja q2 o primeiro estado que se repete futuramente e tal que não existem estados repetidos entre as duas ocorrências de q2

sem estados intermediários repetidos

Page 5: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?

q0

q1

q2 qi

a1

a2

a3

a4

qf

qs

ak

E se comprimento de w for maior ou igual a n ?

O caminho percorrido terá estados repetidos

w = a1a2a3a4…ak

a1a2 … ak

a1a2 a3a4 a3a4…ak

a1a2 a3a4 a3a4 a3a4…ak

w =

y z

ak

x

a3 a4 … aka1a2

Page 6: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

q0

q1

q2 qi

a1

a2

a3

a4

qf

qs

ak

w =

y z

ak

x

a3 a4 … aka1a2

|x y| ≤ n

e |y| > 0

O caminho percorrido pela palavraxy tem no máximo um estado repetido (q2)

Logo, total de estados percorridos pela palavra é no máximo n+1.Portanto a palavra xy tem comprimento máximo n

|y| = comprimento do caminhopercorrido no laço (q2... qi ... q2)O número mínimo de estados dentrodo laço é zero, o que produziria |y| = 1Logo |y| > 0

Page 7: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?

• Se L é regular e w pertence a L eSe L é regular e w pertence a L e

|w| ≥ n, então:|w| ≥ n, então:– w = w = xx yy zz – |x y| ≤ n |x y| ≤ n – | y | > 0| y | > 0– xx yykk zz pertence a L para todo k ≥ 0 pertence a L para todo k ≥ 0

Page 8: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?Se L é regularSe L é regular entãoentão

• ExisteExiste n > 0 (n = número de estados do automato minimal n > 0 (n = número de estados do automato minimal que aceita L) tal que:que aceita L) tal que:

• Para todaPara toda palavra w de L com |w| ≥ n palavra w de L com |w| ≥ n

• ExisteExiste uma maneira de dividir w em 3 partes uma maneira de dividir w em 3 partes w = w = xx yy zz

| | xx y y || ≤ n, |y| > 0≤ n, |y| > 0• Para todoPara todo k ≥ 0 k ≥ 0

xx yykk z z pertence a Lpertence a L

Page 9: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Como detectar se uma Como detectar se uma linguagem não é regular ?linguagem não é regular ?Se a expressão abaixo nao se verificaSe a expressão abaixo nao se verifica • ExisteExiste n > 0 (n = número de estados do automato minimal que n > 0 (n = número de estados do automato minimal que

aceita L) tal que:aceita L) tal que:

• Para todaPara toda palavra w de L com |w| ≥ n palavra w de L com |w| ≥ n

• ExisteExiste uma maneira de dividir w em 3 partes uma maneira de dividir w em 3 partes w = w = xx yy zz

| | xx y y || ≤ n, |y| > 0≤ n, |y| > 0• Para todoPara todo k ≥ 0 k ≥ 0

xx yykk z z pertence a Lpertence a L

entãoentão L não é regular L não é regular

Page 10: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Para mostrar que L não é regular basta Para mostrar que L não é regular basta mostrar que a expressao abaixo é mostrar que a expressao abaixo é falsa !falsa !• ExisteExiste n > 0 (n = número de estados do automato minimal n > 0 (n = número de estados do automato minimal

que aceita L) tal que:que aceita L) tal que:

• Para todaPara toda palavra w de L com palavra w de L com |w| ≥ n|w| ≥ n

• ExisteExiste uma maneira de dividir w em 3 partes uma maneira de dividir w em 3 partes w = w = xx yy zz

| | xx y y || ≤ n, |y| > 0≤ n, |y| > 0

• Para todoPara todo k ≥ 0 k ≥ 0 xx yykk z z pertence a Lpertence a L

Page 11: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

Para mostrar que L não é regular basta Para mostrar que L não é regular basta mostrar que a expressao abaixo é mostrar que a expressao abaixo é falsa !falsa !

• Para todoPara todo n > 0 n > 0

• ExisteExiste palavra w de L com palavra w de L com |w| ≥ n|w| ≥ n

• Para todaPara toda maneira de dividir w em 3 partes maneira de dividir w em 3 partes w = w = xx yy zz

| | xx y y || ≤ n, |y| > 0≤ n, |y| > 0

• ExisteExiste k ≥ 0 k ≥ 0 xx yykk z z nãonão pertence a Lpertence a L

Page 12: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

ExemploExemploL = {0L = {0kk 1 1kk | k ≥ 0} nao é regular | k ≥ 0} nao é regular

Para todoPara todo n > 0 n > 0Tenho de exibir umaTenho de exibir uma palavra w de L com palavra w de L com |w| ≥ n|w| ≥ nTal que Tal que para toda maneirapara toda maneira de dividir w em 3 partes de dividir w em 3 partes

w = w =

com a parte com a parte | | xx y y || ≤ n, |y| > 0≤ n, |y| > 0

ExisteExiste um k tal que x y um k tal que x ykk z não está em L. z não está em L.

X y z

Page 13: Revisão Autômatos Teoria da Computação Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.

ExemploExemplo

0 0 0 0 11 1

n vezes n vezes

0 0 1 1 110

0

n vezesm vezes, m > n

… …

……

Não está em L

10

0

0 0

x y z

x y y z