Buscar

Autômatos e Computabilidade - Autômato com Pilha 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Autômatos e computabilidade
Autômatos a pilha 1
Pedro A D Rezende
UnB – IE – CIC
Cadeia vazia: l (ou e) é a cadeia tal que |l| = 0
 
A & C: Autômatos a pilha 1
Definições: Automaton a pilha (PushDown) 
Um automaton a pilha (PDA) é uma séptupla 
M = (Q, , G, q
0
, Z
0
, d, F) 
satisfazendo: 
Q,  conjuntos finitos;
 q
0 

 
Q ; F  Q ;
 d  (QS)Q 
 
A & C: Autômatos a pilha 1
Definições: Automaton a pilha 
Um automaton a pilha (PDA) é uma séptupla 
M = ( Q ,  , G , q
0
 , Z
0
 , d , F ) 
satisfazendo: 
Q,  conjuntos finitos;
 q
0 

 
Q ; F  Q ;
 d  (QS)Q 
Estados Alfabeto Alfabeto
 de input de pilha
Estado S. Inicial Transições Estados
inicial de pilha finais
 
A & C: Autômatos a pilha 1
Definições: Automaton a pilha 
Um automaton a pilha (PDA) é uma séptupla 
M = ( Q ,  , G , q
0
 , Z
0
 , d , F ) 
satisfazendo: 
● Q, , G conjuntos finitos;
 q
0 

 
Q ; F  Q ;
 d  (QS)Q 
Estados Alfabeto Alfabeto
 de input de pilha
Estado S. Inicial Transições Estados
inicial de pilha finais
 
A & C: Autômatos a pilha 1
Definições: Automaton a pilha 
Um automaton a pilha (PDA) é uma séptupla 
M = ( Q ,  , G , q
0
 , Z
0
 , d , F ) 
satisfazendo: 
● Q, , G conjuntos finitos;
● q
0 

 
Q ; Z
0 

 
G ; F  Q ;
 d  (QS)Q 
Estados Alfabeto Alfabeto
 de input de pilha
Estado S. Inicial Transições Estados
inicial de pilha finais
 
A & C: Autômatos a pilha 1
Definições: Automaton a pilha 
Um automaton a pilha (PDA) é uma séptupla 
M = ( Q ,  , G , q
0
 , Z
0
 , d , F ) 
satisfazendo: 
● Q, , G conjuntos finitos;
● q
0 

 
Q ; Z
0 

 
G ; F  Q ;
● d  (Q(S{l})G)  (QG*) relação finita 
Estados Alfabeto Alfabeto
 de input de pilha
Estado S. Inicial Transições Estados
inicial de pilha finais
 
A & C: Autômatos a pilha 1
Transições 
Num PDA M = (Q, , G, q
0
, Z
0
, d, F) dizemos que 
((q,a,Z),(q',g))  d é uma transição de q por a 
para q' com Z no topo da pilha substituído por g.
 Ao representar M por um digrafo, dendotamos:
 Q como vértices, d como arestas rotuladas,
 qq' 
transição de q para q' por a
 
A & C: Autômatos a pilha 1
Transições 
Num PDA M = (Q, , G, q
0
, Z
0
, d, F) dizemos que 
((q,a,Z),(q',g))  d é uma transição de q por a 
para q' com Z no topo da pilha substituído por g.
 Ao representar d por uma tabela, temos:
 Q como vértices, d como arestas rotuladas
 qq' 
transição de q para q' por a
QG \ 
(q
0
,Z
0
)
(q,Z)
 ... a ...
{(q',g)...}
 
A & C: Autômatos a pilha 1
Trasições (moves) 
Num PDA M = (Q, , G, q
0
, Z
0
, d, F) dizemos que 
((q,a,Z),(q',g))  d é uma transição de q por a 
para q' com Z no topo da pilha substituído por g.
 Ao representar d por um digrafo, temos:
 Q como vértices, d como arestas rotuladas
 q  q' 
transição de (q,Z) por a para (q',g)
 
A & C: Autômatos a pilha 1
Trasições (moves) 
Num PDA M = (Q, , G, q
0
, Z
0
, d, F) dizemos que 
((q,a,Z),(q',g))  d é uma transição de q por a 
para q' com Z no topo da pilha substituído por g.
 Ao representar d por um digrafo, temos:
 Q como vértices, d como arestas rotuladas
 q  q' 
transição de (q,Z) por a para (q',g)
a, Z; g
 
A & C: Autômatos a pilha 1
Trasições (moves) 
Dado um PDA (Q, , G, q
0
, Z
0
, d, F) denotamos 
as possíveis transições de (q,Z) pelo input a:
d(q,a,Z) = { (r,g)QG* | ((q,a,Z),(r,g))  d } 
 e as possíveis transições expontâneas de (q,Z):
d(q,l,Z) = { (r,g)QG* | ((q,l,Z),(r,g))  d } 
Convenção: g será 'empilhada' da direita para a esquerda:
o símbolo mais à esquerda de g ficará no topo da pilha.
 
A & C: Autômatos a pilha 1
Trasições (moves) 
Dado um PDA (Q, , G, q
0
, Z
0
, d, F) denotamos 
as possíveis transições de (q,Z) pelo input a:
d(q,a,Z) = { (r,g)QG* | ((q,a,Z),(r,g))  d } 
 e as possíveis transições expontâneas de (q,Z):
d(q,l,Z) = { (r,g)QG* | ((q,l,Z),(r,g))  d } 
Convenção: g será 'empilhada' da direita para a esquerda:
o símbolo mais à esquerda de g ficará no topo da pilha.
 
A & C: Autômatos a pilha 1
Trasições (moves) 
Dado um PDA (Q, , G, q
0
, Z
0
, d, F) denotamos 
as possíveis transições de (q,Z) pelo input a:
d(q,a,Z) = { (r,g)QG* | ((q,a,Z),(r,g))  d } 
 e as possíveis transições expontâneas de (q,Z):
d(q,l,Z) = { (r,g)QG* | ((q,l,Z),(r,g))  d } 
Convenção: g será 'empilhada' da direita para a esquerda:
o símbolo mais à esquerda de g ficará no topo da pilha.
 
A & C: Autômatos a pilha 1
Descrição instantânea (DI) 
Para descrever uma configuração de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) em dado instante, usa-se
(q, w, a)
Para descrever a mudança de configuração 
causada por uma transição, usa-se a notação
(q, au, Zb) |-- (q', u, gb) [se d(q,a,Z) contém (q',g)]
estado input pilha
atual atual
 
A & C: Autômatos a pilha 1
Descrição instantânea (DI) 
Para descrever uma configuração de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) em dado instante, usa-se
(q, w, a)
Para descrever a mudança de configuração 
causada por uma transição, usa-se a notação
(q, au, Zb) |-- (q', u, gb) [se d(q,a,Z) contém (q',g)]
estado input pilha
atual atual
estado input pilha
antes antes antes
estado input pilha Transição descreve uma 
depois depois depois Relação entre DIs
 
A & C: Autômatos a pilha 1
Descrição instantânea (DI) 
Para descrever uma configuração de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) em dado instante, usa-se
(q, w, a)
Para descrever a mudança de configuração 
causada por uma transição, usa-se a notação
(q, au, Zb) |-- (q', u, gb) [se d(q,a,Z) contém (q',g)]
estado input pilha
atual atual
estado input pilha
antes antes antes
estado input pilha Transição descreve uma 
depois depois depois Relação entre DIs
 
A & C: Autômatos a pilha 1
Computações (árvore de possíveis transições) 
Para descrever as computações de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) sob input w, calcula-se
(q0, w, Z0) |--*
|--* descreve a árvore de possíveis transições a 
partir de uma DI inicial (raiz). Nela um caminho 
descreve uma computação possível de M, 
denotada (q, w, a) |--* (q',w',a') 
estado input pilha fecho transitivo das 
inicial inicial transições de M
 
A & C: Autômatos a pilha 1
Computações (árvore de possíveis transições) 
Para descrever as computações de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) sob input w, calcula-se
(q0, w, Z0) |--*
|--* descreve a árvore de possíveis transições a 
partir de uma DI inicial (raiz). Nela um caminho 
descreve uma computação possível de M, 
denotada (q, w, a) |--* (q',w',a') 
estado input pilha fecho transitivo das 
inicial inicial transições de M
 
A & C: Autômatos a pilha 1
Computações (árvore de possíveis transições) 
Para descrever as computações de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) sob input w, calcula-se
(q0, w, Z0) |--*
|--* descreve a árvore de possíveis transições a 
partir de uma DI inicial (raiz). Nela um caminho 
descreve uma computação possível de M, 
denotada (q, w, a) |--* (q',w',a') 
estado inputpilha fecho transitivo das 
inicial inicial transições de M
 
A & C: Autômatos a pilha 1
Computações (árvore de possíveis transições) 
Para descrever as computações de um PDA 
M=(Q, , G, q
0
, Z
0
, d, F) sob input w, calcula-se
(q0, w, Z0) |--*
|--* descreve a árvore de possíveis transições a 
partir de uma DI inicial (raiz). Nela um caminho 
descreve uma computação possível de M, 
denotada (q, w, a) |--* (q',w',a') 
estado input pilha fecho transitivo das 
inicial inicial transições de M
 
A & C: Autômatos a pilha 1
PDA como reconhecedor de linguagem 
Um PDA M=(Q, , G, q
0
, Z
0
, d, F) computa o 
reconhecimento da linguagem L(M)*, dada por
w  L(M) def [ (q0, w, Z0) |--* (q, l, g) | qF ]
Exemplos de linguagens reconhecíveis por PDAs:
 Palíndromes marcadas: { wcwR | w{0,1}*, wR=reversa de w } 
 Palíndromes: { wwR | w {0,1}*, wR = reversa de w }
 Parêntesis balanceados: gerada por P = { SSS | (S) | l }
estado input pilha ID final em estado final 
inicial inicial e com imput vazio
 
A & C: Autômatos a pilha 1
PDA como reconhecedor de linguagem 
Um PDA M=(Q, , G, q
0
, Z
0
, d, F) computa o 
reconhecimento da linguagem L(M)*, dada por
w  L(M) def [ (q0, w, Z0) |--* (q, l, g) | qF ]
Exemplos de linguagens reconhecíveis por PDAs:
● Palíndromes marcadas: { wcwR | w{0,1}*, wR=reversa de w } 
 Palíndromes: { wwR | w {0,1}*, wR = reversa de w }
 Parêntesis balanceados: gerada por P = { SSS | (S) | l }
estado input pilha ID final em estado final 
inicial inicial e com imput vazio
 
A & C: Autômatos a pilha 1
PDA como reconhecedor de linguagem 
Um PDA M=(Q, , G, q
0
, Z
0
, d, F) computa o 
reconhecimento da linguagem L(M)*, dada por
w  L(M) def [ (q0, w, Z0) |--* (q, l, g) | qF ]
Exemplos de linguagens reconhecíveis por PDAs:
● Palíndromes marcadas: { wcwR | w{0,1}*, wR=reversa de w } 
● Palíndromes: { wwR | w {0,1}*, wR = reversa de w }
 Parêntesis balanceados: gerada por P = { SSS | (S) | l }
estado input pilha ID final em estado final 
inicial inicial e com imput vazio
 
A & C: Autômatos a pilha 1
PDA como reconhecedor de linguagem 
Um PDA M=(Q, , G, q
0
, Z
0
, d, F) computa o 
reconhecimento da linguagem L(M)*, dada por
w  L(M) def [ (q0, w, Z0) |--* (q, l, g) | qF ]
Exemplos de linguagens reconhecíveis por PDAs:
● Palíndromes marcadas: { wcwR | w{0,1}*, wR=reversa de w } 
● Palíndromes: { wwR | w {0,1}*, wR = reversa de w }
● Parêntesis balanceados: gerada por P = { SSS | (S) | l }
estado input pilha ID final em estado final 
inicial inicial e com imput vazio
 
A & C: Autômatos a pilha 1
Determinismo 
Um PDA que permite no máximo uma transição 
a partir de cada DI é dito determinístico (dPDA) 
Formalmente, (Q, , G, q
0
, Z
0
, d, F) é dPDA se:
 qQ, ZG [ d(q,l,Z)    aS [d(q,a,Z) =  ] ]
 qQ, ZG, aS {l} [ |d(q,a,Z) |  1 ]
Uma das linguagens citadas na lâmina anterior 
como reconhecíveis por PDAs é reconhecível por 
dPDA, outra não. Verifique quais.
 
A & C: Autômatos a pilha 1
Determinismo 
Um PDA que permite no máximo uma transição 
a partir de cada DI é dito determinístico (dPDA) 
Formalmente, (Q, , G, q
0
, Z
0
, d, F) é dPDA se:
● qQ, ZG [ d(q,l,Z)    aS [d(q,a,Z) =  ] ]
● qQ, ZG, aS {l} [ |d(q,a,Z) |  1 ]
Uma das linguagens citadas na lâmina anterior 
como reconhecíveis por PDAs é reconhecível por 
dPDA, outra não. Verifique quais.
 
A & C: Autômatos a pilha 1
Determinismo 
Um PDA que permite no máximo uma transição 
a partir de cada DI é dito determinístico (dPDA) 
Formalmente, (Q, , G, q
0
, Z
0
, d, F) é dPDA se:
● qQ, ZG [ d(q,l,Z)    aS [d(q,a,Z) =  ] ]
● qQ, ZG, aS {l} [ |d(q,a,Z) |  1 ]
Uma das linguagens citadas na lâmina anterior 
como reconhecíveis por PDAs é reconhecível por 
dPDA, outra não. 
 
A & C: Autômatos a pilha 1
Determinismo 
Um PDA que permite no máximo uma transição 
a partir de cada DI é dito determinístico (dPDA) 
Formalmente, (Q, , G, q
0
, Z
0
, d, F) é dPDA se:
● qQ, ZG [ d(q,l,Z)    aS [d(q,a,Z) =  ] ]
● qQ, ZG, aS {l} [ |d(q,a,Z) |  1 ]
Uma das linguagens citadas na lâmina anterior 
como reconhecíveis por PDAs é reconhecível por 
dPDA, outra não. Verifique quais.
 
A & C: Autômatos a pilha 1
Linguagens reconhecíveis por PDAs 
Dado M
PDA
 = { M | M é PDA}
define-se a classe das Linguagens 
Reconhecíveis por PDAs
L
PDA
 = { L* | MM
PDA
 [ L = L(M) ] }
Equivalência de classes: L
PDA
 = L
CFG

Outros materiais