Você está na página 1de 4

Capítulo 7 ··~ Outros Modelos de Máquinas Universais 183 184 ··~ Teoria da Computação: Máquinas Univer sa is e Computabilidade

Uma máquina de Post consiste, basicamente, de duas partes:

a Variável X. Trata-se de u ma variável do t ipo f ila que é utilizada como entrada, saída e
memória de trabalho.
I

Programa. E uma sequência finita de instruções, representada como um diagrama de


fluxos (espécie de fluxograma), onde cada vértice é u ma instrução. As instruções podem
ser de quat ro tipos:
partida
parada
desvio
atribuição
A variável X não possui taman ho nem limite fixos. Seu comprimento é igual ao comprimento
da palavra corrente armazenada . Os símbolos podem pertencer ao alfabeto de entrada ou a
{ # } , único símbolo auxiliar. Inicialmente, o valor de X é a palavra de entrada. Caso X não
contenha símbolos, a entrada é vazia, representada por t .

definição 7 .1 - Máquina de Post


··--3+ máquina de Post Uma máquina de Post é uma tripla:
M = (l:, D, #)
Assim como Turing, Emil Leon Post propôs, também em 1936, um modelo de máquina uni-
versa l denominado máquina de Post. A princi pai característica da máquina de Post é que ela onde:
usa uma estrutura de dados do tipo fila para entrada, saída e memória de trabalho. Estrutu- l: alfabeto de símbolos de entrada;
ralmente, a principal característica de uma fila é que o primeiro valor gravado é também o D programa ou diagrama de fluxos construído a partir de componentes elementares
primeiro a ser lido (uma leitura exclui o dado lido), como ilustrado na figura 7 .1. Sugere-se denominados partida, parada, desvio e atribuição;
como exercício uma comparação das estruturas fita e fila. # sfmbolo auxiliar.

gravação As componentes elementares de um diag rama de fluxos são como segue:


leitura \
de
dados ( de
dados
a Partida . Existe somente uma instruçao de início (partida) em u m programa, a qual é
representada como ilustrado na figura 7 .2 (esquerda);
b Parada . Existem duas alternativas de instruções de parada em um programa, uma de
dados armazenados aceitaçao (aceita) e outra de rejeiçao (rejeita), representadas como ilustrado na fi gura
7 .2 (direita);

início fim
da da

figura 7 .1
fila

Estrutura do tipo fila.


fila
partida e aceita ) e rejeita )

figura 7 .2 Partida (esquerda) e parada (d ireita) em um diagrama de fluxos.


Capítulo 7 ··~ Outros Modelos de Máquinas Universais 185 186 ··~ Teoria da Computação: Máquinas Universais e Computabilidade

~ Desvio ou teste. Determ ina o f luxo do prog rama de acordo com o sfmbolo mais à es- exemplo 7 .1 - Máquina de Post - duplo balanceamento
querda da pa lavra armazenada na variável X (início da fi la). Também deve ser prevista a Considere a seguinte linguagem introduzida anteriormente:
possibilidade de X conter a palavra vazia . Portanto, é um desvio condicional, e trata-se
Duplo_Bal = { a"b" 1 n .e!'! O}
de uma função tota l, ou seja, definida para todos os va lores do dom fnio. Assim, se o
cardinal de l: é n, então existem n+2 arestas de desvios condicionais, pois se deve incluir A máquina de Post:
as possibilidades# e e, como ilustrado na f igura 7 .3, onde X ~ ler(X) denota uma leitura Post_Duplo_Bal = ({ a, b }, D,#)
destrutiva ou seja, que lê o símbolo mais à esquerda da palavra, retirando da mesma o
sfmbolo lido. onde D é como ilustrado na figura 7 .5, é tal que:

ACEITA(Post_Duplo_Bal) = Duplo_Bal
REJEITA(Post_Duplo_Bal) ~ ~ * Duplo_Bal
X ler(X)
e, portanto, LOOP(Post_Duplo_Bal) =0

a # e partida
•••
figura 7 .3 Desvio em um diagrama de fluxos.
X X#
@ Atribuiçao. Concatena o símbolo indicado (pertencente a I U { # } ) à direita da palavra
armazenada na variável X (fim da fila) . A operação de atribuição é representada como
ilustrado na figura 7 .4, supondo que s E l: U { # }. O
X ler(X)

a b, t #
X .- Xs

'
X ler(X) e rejeita ) aceita

figura 7 .4 Atribuiçao em um diagrama de fluxos. a b #, e

Em um d iag rama de fl uxos, existe somente uma instrução de partida, mas podem existir di-
X Xa rejeita
versas (zero ou mais) instruções de parada, tanto de aceitação como de rejeiçAo. Uma palavra
de entrada é aceita ou rejeitada se a computação, iniciada com a variável X, contendo a en-
trada, ating ir uma instrução aceita ou rejeita, respectivamente. Note-se que é perfeitamente
possível uma máquina de Post ficar em loop infinito (sugere-se, como exercício, exemplificar X ler(X)
um loop infinito).

Em um desvio, se X contém a pa lavra vazia E, então segue o fluxo correspondente. caso


contrário, lê o símbolo mais à esquerda da palavra em X e o remove após a decisão de qual b # a, e
aresta do fluxo indica a próxima instrução.
X Xb X X# e rejeita )

figura 7 .5 Diagrama de fluxo da máquina de Post - duplo balanceamento.


Capítulo 7 ··~ Outros Modelos de Máquinas Universais 187 188 ··~ Teoria da Computação: Máquinas Universais e Computabilidade

O algoritmo lê e remove o primeiro símbolo a. Após, realiza uma varredura circular em busca A seguir, é enunciado o teorema que prova que a máquina de Post é equivalente à máquina
do correspondente b. Essa varredura é realizada por meio de sucessivas leituras (e remoções), de Turing, reforçando a evidência de que são máquinas universais. A prova é omitida e, resu-
armazenando-se o símbolo lido à direita de X. Ao encontrar o b, este é removido, e uma midamentel é como segue:
nova varredura circular é realizada até o fim da palavra de entrada (identificado pelo sfmbolo
a Máquina de Turing s máquina de Post.
auxiliar#, atribufdo a X no início do processamento). Esse ciclo é repetido até restar a palavra
• A estrutura de fita da máquina de Turing é simulada pela máquina de Post, usa ndo a
vazia ou ocorrer alguma condição de rejeição. Compare este algoritmo com o algoritmo cor-
variável X, onde a posição corrente da cabeça corresponde à primeira posição em X.
respondente para a máquina de Turing . Q
Por exemplol a f ita ilustrada na f igura 7.7 é simulada pela variável X com o seguinte
exemplo 7 .2 - Máquina de Post - duplo balanceamento em qualquer ordem conteúdo :
Considere a segu inte linguagem introduzida anteriormente: X = a3 a4 ... ªn # a, ª2
Duplo_Bal_2 = { w I w = anbn ou w = bnan, n ~ O} • o movimento para a esquerda da cabeça da fita exige a execução de tantas instruções
desvio e instruções atribuição quantos forem os símbolos da palavra corrente;
A máquina de Post:
• o movimento pa ra a d ireita da cabeça da fita exige a execução de uma instrução
Post_Duplo_Bal_2 = ({ a, b }, D, #) desvio (leitura com teste), consumindo um símbolo variável X (no início da fila) e a
correspondente atribuição (no fim da fila);
onde D é como ilustrado na figura 7 .6, é tal que:
• a simulação dos estados é como segue:
ACEITA(Post_Duplo_Bal_2) = Duplo_Bal_2 estado inicial é simulado pela instrução partida seguido pela execução de um
1

REJEITA(Post_Duplo_Ba1_2) = l:* - Duplo_Ba1_2 desvio;


estados finais são simulados pela instrução aceita;
e, portanto, LOOP(Post_Duplo_Bal_2) = 0
demais estados são simulados por instruções desvio (leitu ra com teste);
Este programa pode ser facilmente adaptado para reconhecer a linguagem "mesmo número • as cond ições de rejeiçao (funçao programa indefinida ou movimento inválido) ~o
de símbolos a 's e de b 's", o que se sugere como exercício. Q simuladas pela instrução rejeita;

~
•••

X.-X#
controle

X+- ler(X) figura 7 .7 Fita e posição da cabeça da fita.

b a t. li ~ Máquina de Post ~ máquina de Turing .


X +- er(X) X .- ler(X) erejena ) e
acata)
• A variável X da máquina de Post é simu lada na máquina de Turing usando a estrutura
de fita, onde a primeira posição da fila corresponde à posição corrente da cabeça da
b a ,& a b #,& fita . Por exemplo, a fita e a cabeça da fita, como ilustrado na figura 7.8, corresponde a:
X .- Xb
e ,eje.ta ) X .- Xa e rejetta ) X= a, ª2 a3 ... ªm # ªm+1 ... ªn
• o desvio realiza a leitura com remoção do símbolo ma is à esquerda da variável X, o
X ~ er(X) X ~ ler(X) que pode ser simu lado pela substituição do conteúdo da correspondente c~lula de fita
pelo símbolo branco, resultando em sfmbolos brancos entre o marcador de início de
a # b,c b # a, e f ita e primeiro sfmbolo não branco (no caso de inconveniência desses brancosl pode-
X +-Xa X +-XII e re,eita ) X+-Xb X.- XN- erejeita ) -se realizar um deslocamento do conteúdo para a esquerda);
• a atribuição de um símbolo s (à direita do conteúdo da variável Xt pode ser simulada
movendo a cabeça pa ra a direita até o primeiro símbolo branco, substitu indo-o pelo
figura 7 .6 Diagrama de fluxo da máquina de Post - a"b" ou bnan. símbolo s e, retornando para a posição correspondente ao primeiro símbolo da fila;
Capítulo 7 ··~ Outros Modelos de Máquinas Universais 189

• a instru~o partida pode ser simulada usando o estado inicial;


• uma instruçao aceita pode ser simu lada usando um estado final;
• uma instrução rejeita pode ser simu lada usando uma condição excepcional de parada
(como um movimento inválido).

o a, # 1 ª m. 1 1 .. • p •••

controle

figura 7 .8 Simulação da f ila peta fita.

teorema 7 .2 - Equivalência entre máqu ina de Turing e máquina de Post


O formalismo máquina de Turing pode ser simu lado pelo formalismo máquina de Poste vice-
-versa. Logo, são equ iva lentes.

··~ máquina com pilhas

A máqyjna com pilhas diferencia-se das máquinas de Turing e de Post principalmente pelo
fato de possuir a memória de entrada separada das memórias de trabalho e de saída. Essas
estruturas auxiliares são do t ipo pilha, e cada máquina possui zero ou mais pilhas.

Um resultado importante que será detalhado ad iante é o fato de que a classe das máquinas com
duas pilhas possui o mesmo poder computacional que a classe das máquinas de Turing . Assim,
o uso de mais de duas pilhas não aumenta o poder das máquinas com pilhas. Entretanto, com

Você também pode gostar