Beruflich Dokumente
Kultur Dokumente
Livros
Danilo Matias1, Maristela Teixeira Souza Lopes1 ,Reginaldo de Matias1 Vinícius Torres
1
Departamento de Sistemas e Computação
Universidade do Estado de Santa Catarina (UDESC) – Joinville/SC – Brasil
danilomatias19@gmail.com, maristela.lopes@yahoo.com.br, reginaldo.matias@gmail.com,
vinicius_torres@terra.com.br
Resumo. O estudo sobre as Máquinas de Turing ainda não se findou. Várias outras máquinas foram
planejadas baseadas nela, a fim de reduzir sua complexidade, e resolver cada vez mais problemas
matemáticos, e de possuir mais eficácia.
Introdução
Alan Turing foi uma figura importante na Ciência da Computação, pois sua máquina é um
“embrião” do computador, pelo poder de ajudar o homem a resolver complicados problemas
matemáticos. Baseados em Turing, foram criadas diferentes maneiras de implementação dessa máquina,
a fim de possuir mais capacidade e rapidez na resolução de problemas. Abaixo, seguem alguns modelos
os quais foram criados por Turing, e depois dele.
... b 1 1 0 0 1 0 b b b ...
Unidade
de estado-
finito
Considere por exemplo a máquina na configuração mostrada na figura 2. Se operar de acordo com as
instruções contidas na quíntupla (2,1,0,1,R), deve mover-se para a configuração ilustrada na figura 3,
como segue:
... b b 1 1 0 1 0 1 b b ...
Note que por definição: (s,i,i',s',d). De modo que 2 e 1 representam o estado atual e o simbolo lido. 0 é o
símbolo a ser impresso no lugar do 1. A máquina passa para o próximo estado, 1 e move-se para a direita.
Assim:
... b b 1 0 0 1 0 1 b b ...
A restrição de que não pode haver mais de uma máquina de uma quíntupla começando pelos mesmos
símbolos s e i garante que a ação da Máquina de Turing é determinística e completamente estabelecida
pelos estados e símbolo lido atuais. Se uma máquina de Turing é levada a uma configuração para a qual
seu estado atual e o símbolo lido não são os primeiros dois símbolos de qualquer símbolo a máquina pára.
Convenção: especifica-se um estado inicial fixo, denotado por 0, no qual a máquina inicia qualquer
processamento. Também assume-se que uma configuração inicial para a cabeça de leitura/gravação, a
configuração na qual ela está posicionada sobre a célula mais a esquerda da fita que contenha valor, Se a
fita estiver completamente vazia a cabeça de leitura/gravação pode se posicionar em quaquer lugar.
Exemplo: Considere a máquina de Turing definita pelo conjunto de quíntuplas que se segue: [FONSECA,
1992]
(0,0,1,0,R)
(0,0,1,0,R), (0,1,0,0,R), (0,b,0,0,L), (1,0,0,1,R), (1,1,0,1,R)
A ação desta máquina ao processar qualquer fita em particular é mostrada pela sequência de
configurações a seguir: [FONSECA, 1992]
(0,1,0,0,R)
... b 1 1 1 0 b ...
(0,1,0,0,R)
... b 1 0 1 0 b ...
(0,0,1,0,R)
... b 1 0 0 1 b ...
(0,b,1,1,L)
... b 1 0 0 1 b ...
(1,0,0,1,R)
... b 1 0 0 0 1 b ...
(1,1,0,1,R)
... b 1 0 0 0 1 b ...
... b 1 0 0 0 0 b ...
1
2.Máquina de Turing Não-Determinística
A máquina de Turing não-determinística(MTND) é uma generalização da máquina de Turing
determinística. Essa máquina tem um papel fundamental na teoria de complexidade pois está na base da
definição da classe NP.
A maior parte das definições e idéias envolvidas na descrição das MTDs também se aplica às
MTNDs. A diferença entre a MTND e a MTD está na função de transição e na maneira como as
transições são feitas a cada passo.[CARDONHA, SILVA,(2004)]
máquina de Turing comum (determinística) possui uma função de transição que, dado um estado e um
símbolo na posição de execução da fita, especifica três coisas: um novo símbolo a ser escrito na posição
de execução da fita, a direção para o qual a fita deve mover-se e um novo estado para o controle finito.
Por exemplo, um X na fita no estado 3 pode fazer a máquina determinística escrever um Y na fita, mover
a cabeça uma posição para a direita e mudar para o estado 5.
Uma máquina de Turing Não-Determinística difere-se pois um estado e um símbolo de fita não
mais definem estas três coisas de forma única - mais de uma ação pode ser aplicável dado um estado e um
símbolo.
Como uma máquina Não-Determinística "sabe" qual dessas ações ela deve tomar? Há duas maneiras de
olhar esta questão. Uma é supor que a máquina sempre escolherá uma transição que eventualmente leve a
um estado de aceitação. A outra maneira é imaginar que a máquina se ramifica em muitas cópias, cada
qual leva a diferentes possíveis transições. Onde uma Máquina de Turing Determinística possui um único
"caminho de computação" a ser seguido, uma Máquina de Turing Não-Determinística possui uma "árvore
de computação". Se qualquer ramo da árvore pára em uma condição de aceitação, dizemos que a Máquina
de Turing Não-Determinística aceita a entrada. [WIKIPEDIA]
Há um número considerável de variações nessa definição. O estado inicial pode ser substituído por
um conjunto de estados iniciais, por exemplo. (Isto é equivalente, pois é trivial simular estados iniciais
múltiplos adicionando um único estado inicial que escolhe não deterministicamente quais dos múltiplos
estados iniciais ateriormente definidos a máquina usará para continuar.)
A variação pode também incluir um conjunto de estados de rejeição, e neste caso diz-se que a Máquina de
Turing Não-Determinística rejeita a entrada se a computação leva a um dos estados de
rejeição.[CARDONHA, SILVA,(2003/2004)]
2.1 Comparação entre Máquinas de Turing Determinísticas e não-
Determinísticas
Se a tabela de ação tem no máximo uma entrada para cada combinação de símbolo e estado, então a
máquina é determinística (MTD). Se a tabela de ação contém múltiplas entradas para uma combinação de
símbolo e estado então a máquina é uma máquina de Turing não-determinística (MTND) .“Máquina de
Turing não-determinística em ciência da computação é uma máquina de Turing cujo mecanismo de
controle atua como um autômato finito não_deterministico.”[WIKIPEDIA]
3. Maquina de Cantor
Máquina de Turing
calculador. O controle é representado por uma tabela finita onde está especificado, para cada possível
caractere a ser lido da fita e para cada possível estado da máquina (representados por símbolos diferente
dos símbolos da fita), uma ação e o novo estado da máquina. As possíveis ações são: escrever um símbolo
na fita e mover a cabeça para a esquerda ou para a direita. Como as tabela de controle são finitas, é
possível codificá-las sob forma de números inteiros, mesmo que muito grandes, e, a partir desta
codificação, definir uma tabela de controle universal capaz de decodificar uma tabela armazenada na fita
e executá-la.
: Diagonalização de Cantor
i Números Reais
1 0 0 2 5 8 7
2 1 3 0 9 5 5
3 0 8 6 4 1 0
4 9 2 8 9 3 5
5 9 0 2 3 7 3
6 3 1 7 0 7 3
Para entender o que são números não computáveis é necessário conhecer o argumento de
diagonalização de Cantor, utilizado para demonstrar que existem mais números reais que racionais apesar
de ambos os conjuntos serem infinitos, isto é, existem também os números irracionais. O argumento de
Cantor é o seguinte: se existe o mesmo número de reais e naturais, então é possível associar a cada
número real um número natural, isto é, ordenar os números reais. Imagine uma tal ordenação na forma de
um quadro infinito onde, em cada linha, um número real é representado por uma seqüência infinita de
inteiros. Cantor foi capaz de demonstrar que existe um número real que difere de todos os números do
quadro e conseqüentemente que um quadro completo não pode ser construído. Este número real é
construído da seguinte maneira: na primeira posição ele contém o número inteiro que aparece na primeira
posição do primeiro número real do quadro, mais um (módulo dez), o que o torna diferente do primeiro
número do quadro, e assim sucessivamente ao longo da diagonal. Este número - que no exemplo do
quadro corresponderia a - será diferente de qualquer outro do quadro, pois ele difere do i-
ésimo número real do quadro em sua i-ésima posição. De onde se conclui que não é possível construir tal
quadro.
Utilizando o fato de que as tabelas de controle, que definem as máquinas de Turing, podem ser
representadas através de números inteiros, e que por conseguinte podem ser ordenadas, vamos definir
como sendo a n-ésima máquina de Turing [Pen(89), apud CARDONHA,SILVA(2003,2004)]. Vamos
supor a existência de um quadro no qual cada elemento é um algarismo definido como o resultado
(módulo dez) gerado pela n-ésima máquina de Turing, ao ser executada sobre o número m, devidamente
calcular o número de Cantor, gerando seus algarismos um a um, através do seguinte procedimento:
de Turing, , e a seqüência passaria a ser, por definição, a k-ésima linha do quadro acima.
Mas isso é impossível, pois a seqüência não pode estar no quadro, visto que, dada uma linha l
do quadro, ela difere desta linha na posição l, pois . Por conseguinte, o número de Cantor
não é computável, provando que existem problemas matemáticos não computáveis.
A resposta de Church utiliza um formalismo chamado lambda cálculo que, embora não tenha tido o
mesmo impacto da máquina de Turing na ciência da computação em geral, foi de extrema importância
para a IA, tendo servido de base para o Lisp, a primeira linguagem de programação voltada para a
manipulação simbólica. Apesar das enormes diferenças de notação e enfoque, Turing provou, em um
apêndice de seu artigo, a equivalência entre sua abordagem e a de Church. O mesmo acontece com o
formalismo de Post que também é equivalente aos outros dois.
A equivalência dos formalismos de Turing e Church deu origem à chamada tese de Church-Turing, que
afirma que os ``cálculos'' definidos por esses dois mecanismos são os únicos possíveis, e que qualquer
outro tipo de ``cálculo'' que possa ser inventado ou será menos expressivo ou equivalente a eles.
Evidentemente, essa tese não pode ser ``provada'' no sentido matemático; pode apenas ser refutada caso
um mecanismo mais poderoso seja encontrado. No entanto, até agora, todos os novos mecanismos de
cálculo propostos desde a década de 30 - por exemplo, redes neuronais e algoritmos genéticos - foram
provados equivalentes a todos os demais.
4. Máquina de Turing Quântica Universal
As operações realizadas por uma MTQ podem ser descritas como transformações unitárias sobre
vetores de um espaço de Hilbert. Logo, o estudo dessas transformações facilita a compreensão das
limitações e das ferramentas disponíveis quando estudamos a computação quântica.
Nesta seção, apresentamos alguns resultados de Bernstein e Vazirani [BERNSTEIN apud CARDONHA,
SILVA,(2004)]. Mostramos como uma dada transformação unitária pode ser decomposta em
transformações unitárias simples (ou quase-triviais), diretamente implementáveis em MTQs. Essas
transformações simples sãodivididas em dois tipos: mudança de fase e rotação.
O resultado apresentado é construtivo, mas envolve cálculos com números irracionais. A princípio,
nãoconsideramos as precisões das operações envolvidas, mas vamos mostrar como os ângulos utilizados
nas operações de rotação e de mudan¸ca de fase podem ser obtidos com precisão_ consumindo tempo
polinomial em 1/_ a partir de um ângulo fixo.
Complexidade quântica ao longo do tempo vários modelos de computação tem sido utilizados para
representar processos computacionais e nos permitir analisar os recursos necessários à resolução de um
problema. O tempo de processamento, o espaço (normalmente referenciado como quantidade de memória
necessária), a aleatoriedade entre outras características são alguns destes recursos agrupados em classes
de acordo com a quantidade necessária de cada um para execução de certos algoritmos.
O poder computacional de máquinas de Turing quântica é objeto de estudo de vários pesquisadores,
Bernstein e Vazirani (1993) por exemplo, fazem algumas comparações com os modelos de classes de
complexidade clássicos com aqueles criados com base nas evoluções obtidas na computação quântica. As
classes BQP, EQP e ZQP acabaram por fundamentar as bases da teoria da complexidade quântica.
Como indicado por Tetsushi (2004):
Uma linguagem L está na classe BQP (Bounded Error Quantum Polynomial Time) se e apenas se existe
uma máquina de Turing quântica tal que para qualquer entrada x uma observação de uma certa célula da
fita após um processamento de tempo polinomial, ela retorna 1 com probabilidade maior que 2/3 se x
pertencer a
L ou 0 com probabilidade maior que 2/3 caso contrário.
Uma linguagem L está na classe EQP (Exact Quantum Polynomial Time) se e apenas se existe uma
máquina de Turing quântica e um polinomial p tal que para qualquer entrada x uma observação de uma
certa célula da fita após um processamento de p(|x|) passos retorna 1 com probabilidade 1 se x pertencer a
L
ou 0 com probabilidade 1 caso contrário.Uma linguagem L está na classe ZQP (Zero Error Quantum
Polynomial Time) se e apenas se existe uma máquina de Turing quântica tal que para qualquer entrada
x uma observação de uma certa célula da fita (célula indicadora de parada da máquina) após um
processamento de tempo polinomial de seu tamanho ela retorna 1 com probabilidade maior que 1/2 e
então se uma observação de outra célula (célula de decisão) retorna 1 com probabilidade 1 se x pertencer
a L, 0 com
probabilidade 1 caso contrário.
Na teoria da complexidade clássica, a classe BPP (Bounded Error ProbabilisticPolynomial Time) é tida
como a classe que comporta todas as linguagens que são eficientemente computáveis em uma máquina de
Turing probabilística.
O trabalho de Bernstein e Vazirani (1993) apresenta mais alguns resultados interessantes no aspecto de
relacionamento entre as classes de complexidade entre a máquina de Turing clássica e a quântica. A
começar pela definição de que como máquinas de Turing reversíveis são um caso especial das máquinas
de Turing
quânticas temos que PチºEQP e BPPチºBQP , além disso é demonstrado que PESPAÇO , o que implica na
cadeia de inclusões .
Com base no trabalho de Simon (1994) , Shor (1994) propôs um algoritmo para fatoração numérica que é
executado em tempo polinomial e como classicamente este problema é tido como pertencente à classe NP
é levantada a questão se não seria o caso de NPチºBQP .
O novo paradigma da computação quântica tem criado uma expectativa muito grande
com respeito ao seu poder de processamento. Ainda não se possui uma prova
conclusiva que uma máquina de Turing quântica seria mais poderosa que a sua versão
clássica, mas evidências tem aparecido que podem levar a esse resultado. Uma
confirmação de que certos algoritmos seriam executados com uma eficiência maior em
um computador quântico do que em uma máquina de Turing probabilística definida
classicamente poderia invalidar a tese forte de Church-Turing levando a teoria da
complexidade computacional a um novo patamar. [SERAFIM]
Figura 4: Dr.Isaac Chuang, da IBM, e um computadodor quântico com 7 qubits, construído com a tecnologia NMR.(Nuclear
Magnetic Resonance) .
Uma máquina de Turing probabilística (MTP) é uma MTND que funciona de maneira diferente. A
cada passo, em vez de uma transição ser escolhida arbitrariamente dentre todas as transições aplicáveis,
escolhe-se uma com probabilidade uniforme. Assim, pode-se falar na probabilidade da MTP produzir,
numa computação para uma certa entrada, uma saída específica. Todas as definições dadas para as
MTNDs aplicam-se de maneira natural a uma MTP.
Observe que uma MTD é uma MTP em que, a cada passo, há apenas uma Transição aplicável.
Uma MTP corresponde à formalização do conceito de um computador acoplado a um gerador de
símbolos aleatórios.Possível descrever o funcionamento de uma MTP postergando as escolhas aleatórias
para o final. Ou seja, pode-se calcular a probabilidade de se estar em uma configuração específica a cada
passo e só ao final fazer um único sorteio para determinar a configuração em que a máquina
termina..[CARDONHA, SILVA,(2003/2004)]
Um algoritmo probabilístico é um algoritmo que utiliza a probabilidade como parte de sua lógica.
Na prática, isso significa que a máquina que implementa o algoritmo deve acessar um gerador de números
pseudo-aleatórios. O algoritmo utiliza bits aleatórios como um guia para o seu comportamento. Diferente
dos algoritmos convencionais, um algoritmo probabilístico, dada uma mesma sequência de entrada, não
necessariamente leva a um mesmo estado final .
Para demonstrar os exemplos a seguir deve-se assumir um modelo. Um computador inicia seu trabalho
sempre num estado inicial Q0 e, dado uma seqüência de símbolos de entrada, esta máquina passará a
outros estados. Numa máquina clássica não-probabilística, as transições dependem apenas da seqüência
de símbolos, ou seja, dado um estado Qn, a transição deste para um outro estado é sempre a mesma dado o
recebimento do mesmo símbolo. Em um algoritmo probabilístico, uma mesma seqüência de entrada não
leva sempre a um mesmo estado final de computação. Isso acontece porque as transições entre estados
dependem além do estado atual e do símbolo recebido, também de uma escolha aleatória. Imagine, num
caso simplificado que, além de ler um símbolo para decidir o próximo passo de computação, a máquina
ainda "lance uma moeda" para decidir se passa ou não ao próximo estado.[WIKIPEDIA]
Portanto, uma Máquina de Turing Probabilística M é um tipo de Máquina de Turing não-determinística
que possui passos de transição chamados de lançamento-de-moeda, dando a máquina duas possibilidades
a cada transição.
Se na computação de uma entrada w é gerado o caminho de execução (ramificação) b, e neste, foram
dados k lançamentos de moeda, então a probabilidade do caminho é dada por: P[b] = 2 − k. Já a
probabilidade de aceitação da entrada w é dada por: , ou seja, a soma de todos os caminhos de execução
que aceitam a palavra w. Adicionalmente, temos que: P[Mrejeitaw] = 1 − P[Maceitaw].
A máquina M continua reconhecendo linguagens apenas quando aceita todas as palavras da mesma e
rejeita no caso contrário. Mas a uma Máquina de Turing Probabilística é permitido uma pequena
probabilidade de erro: . Desta forma, diz-se que M reconhece uma linguagem A com probabilidade de
erro ε se:
Ganhos (complexidade)
BPP :Classe das linguagens que são reconhecidas por uma máquina de Turing probabilística (em tempo
polinomial) com um erro no interval [0, 0.5). Este erro pode ser diminuído exponencialmente utilizando o
lema da aplicaficação. Este lema diz que para toda máquina de Turing probabilística (em tempo
polinomial = polin(n)) M1 que opera com erro ε, existe uma máquina equivalente M2 que opera com uma
probabilidade de erro de 2 − polin(n). Isto pode ser provado dado que M2 pode simular a máquina M1,
executá-la um número polinomial de vezes e fazer uma escolha majoritária entre as respostas computadas.
Existe um algoritmo probabilístico para teste de primalidade pertencente a BPP.
RP : Classe das linguagens que são reconhecidas por uma máquina de Turing probabilística (em tempo
polinomial) no qual as entradas pertencentes a linguagem são aceitas com probabilidade de no mínimo
0.5 e entradas não pertencentes a linguagem são rejeitadas com probabilidade 1. Este tipo de erro,
denominado erro de um único lado, é muito comum nos algoritmos probabilísticos. Nesta classe também
é possível a redução exponencial do erro cometido.
ZPP :Engloba os problemas que possuem algoritmos que resolvem em tempo polinomial (no caso médio)
e dão sempre uma resposta correta, mesmo que possam não parar em alguns casos.[WIKIPEDIA]
6. Enumeradores
Um enumerador é uma máquina de Turing com uma impressora em anexo. A maquina de Turing
pode usar essa impressora como um dispositivo de saída para imprimir cadeias. Toda vez que a máquina
de Turing quer adicionar uma cadeia à lista, ela envia a cadeia para a impressora.Ele começa com uma
fita de entrada em branco.Caso não parar, ele pode imprimir uma lista infinita de cadeias. A linguagem
enumerada por E é a coleção de todas as cadeias que ela eventualmente imprime. Alem do mais, E pode
gerar as cadeias da linguagem em qualquer ordem, possivelmente com repetições.[SIPSER,2005]
7.Multi-Fitas
Uma máquina de Turing multi-fitas é como uma maquina de Turing comum com varias fitas. Cada
fita tem sua propria cabeça para ler e escrever. Inicialmente a entrada aparece sobre a fita 1, e as outras
começam com branco. A função de transição é modificada para permitir ler, escrever, e mover as cabeças
em todas as fitas simultaneamente. [ SIPSER,2005]
Uma máquina de Turing pode ser definida como uma 7-tupla M = <Q, Γ, Σ ,q0, b, F, δ>, onde:
• Q é o estados.
• Γ é o alfabeto de entrada.
• Σ ⊆ Γ - {b} é o alfabeto da fita.
• q0 ∈ Q, é o estado inicial.
• b ∈ Γ, é o espaço em branco.
• F ⊆ Q, é o conjunto de estados finais.
• δ → Q×Γ→Q×Γ×{L,R} é a função de transição onde L é um movimento para a esquerda e R é um
movimento para a direita.
Nessa extensão da Máquina de Turing, a máquina pode ter múltiplas fitas cada uma com sua
cabeça com permissão para leitura e escrita. Vamos nos focar no caso onde há duas fitas, que chamaremos
de MT².
A cada passo a máquina lê um os símbolos lidos por suas cabeças e dependendo desses resultados
e do estado da unidade central, cada cabeça move ou escreve e o estado central muda.
A função de transição δ² da MT² é da forma:
δ² → Q×Γ×Γ → Q×Γ×Γ×{L,R}x{L,R}
Note que os movimentos das cabeças são independentes. É possível que em um passo uma cabeça ande
para a esquerda e a outra para a direita.
Equivalência
A MT² é equivalente a uma MT¹. Embora ela traga alguma facilidade e eficiência ela não traz nenhum
poder computacional adicional. De forma que podemos simular uma MT² usando uma
MT¹.[SILVEIRA,ROCHA,2007]
A máquina de Turing a seguir tem um alfabeto {'0', '1'}, onde 0 representa o símbolo branco. Ela espera
uma série de 1's na fita, com o cabeçote inicialmente no 1 mais à esquerda, e duplica os 1's com um 0 no
meio. Por exemplo, "111" torna-se "1110111". O conjunto dos estados é {s1, s2, s3, s4, s5} e o estado
inicial é s1. A tabela de ação é dada a seguir.
Old Read Wr. New Old Read Wr. New
St. Sym. Sym. Mv. St. St. Sym. Sym. Mv. St.
------------ ------------
s1 1 -> 0 D s2 s4 1 -> 1 E s4
s2 1 -> 1 D s2 s4 0 -> 0 E s5
s2 0 -> 0 D s3 s5 1 -> 1 E s5
s3 0 -> 1 E s4 s5 0 -> 1 D s1
s3 1 -> 1 D s3
A primeira linha desta tabela pode ser lida como: "Se a máquina estiver no estado s1 e o símbolo lido pelo
cabeçote for 1, então escreva o símbolo 0, mova uma posição para a direita e mude o estado para s2".
Uma computação nesta máquina de Turing pode ser, por exemplo: (a posição do cabeçote é indicada
mostrando-se a célula em negrito)
Passo Estado Fita Passo Estado Fita
-------- ---------
1 s1 11 9 s2 1001
2 s2 01 10 s3 1001
3 s2 010 11 s3 10010
4 s3 0100 12 s4 10011
5 s4 0101 13 s4 10011
6 s5 0101 14 s5 10011
7 s5 0101 15 s1 11011
8 s1 1101 -- pára --
O comportamento desta máquina pode ser descrito como um laço (loop): ele inicia em s1, substitui o
primeiro 1 com um 0, então usa o s2 para mover para a direita, passando pelos 1's e pelo primeiro 0
encontrado. S3 então passa pela próxima seqüência de 1's (inicialmente não há nenhuma) e substitui o
primeiro 0 que encontra por um 1. S4 move de volta para a esquerda, passando pelos 1's até encontrar um
0 e vai para o estado s5. S5 então move para a esquerda, passando pelos 1's até achar o 0 que foi
originalmente escrito por S1. Ele substitui o 0 por 1, move uma posição para a direita e entra no estado s1
novamente para outra execução do laço. Isso continua até s1 achar um 0 (este é o 0 que fica entre as duas
cadeias de 1's), situação na qual a máquina pára.
[WIKIPEDIA,2008]
Estado corrente
Símbolo lido da fita
Novo estado;
Símbolo a ser gravado;
Movimento da cabeça:
E Þ esquerda
D Þ direita
Símbolo de sinalização:
“Æ Þ não fazer nada”
“ * Þ criar cabeça”
C: Conjunto de cabeças. Inicia sempre com apenas uma cabeça e pode ser alterado por [.
q0: estado inicial da máquina, tal que q0 é elemento de Q;
F: conjunto de estados finais tal que F está contido em Q;
ß : símbolo especial branco;
¤: símbolo especial marcador de início ou símbolo de início de fita; O símbolo de início de fita ocorre
exatamente uma vez e sempre na célula mais à esquerda da fita.
Símbolo auxiliar final: simboliza o final do processamento de cada símbolo da entrada.
9. Máquina de Mealy
A Máquina de Mealy é um Autômato Finito modificado de forma a gerar uma palavra de saída para
cada transição entre os estados. Neste tipo de máquina de estados estas palavras de saída dependem do
estado atual e do valor das entradas.[VEIRA, apud BRITO,MARTENDAL,EDUARDO (2003)]
O nome "máquina de Mealy" tem origem no nome do promotor do conceito: G. H. Mealy, um pioneiro
das máquinas de estado, que escreveu A Method for Synthesizing Sequential Circuits, Bell System Tech.
J. vol 34, pp. 1045–1079, September 1955.
Essas máquinas oferecem um modelo matemático rudimentar para definir máquinas de cifras.
Considerando como alfabeto de entrada e de saída o alfabeto latino, por exemplo, então a máquina de
Mealy pode ser desenhada de forma a que dada uma série de letras (uma sequência de entrada de dados),
ela pode processá-la numa série cifrada (uma sequência de saída de dados). No entanto, apesar de ser
possível descrever a Enigma através duma máquina de Mealy, o diagrama de estados seria demasiado
complexo para se considerar um método cómodo para desenhar máquinas de cifra.
Definições formais:
Uma Máquina de Mealy M é autômato finito determinístico com saídas associadas às transições e
pode
ser representada formalmente pela sêxtupla M = (Ó, Q, ä, q0, F, .), onde:
Conclusão
À medida que os estudos sobre as Máquinas de Turing evoluem, mais soluções de complexos
problemas serão descobertas, como por exemplos os NP, ou NP-Completos, da mesma forma que a
Ciência da Computação também evoluirá, com máquinas mais potentes, e mais capazes de fazer pesados
cálculos matemáticos.
Referências
BOOLOS , G. and Jeffrey, R., Computability and Logic, 2ª ed., Cambridge: Cambridge University Press,
1980.
FONSECA, Ijair M., World Space Congress - Washington D.C. – 1992. Disponível em
<http://www2.dem.inpe.br/ijar/> Acessado em 27 de junho as 14:30)
HERKEN, Rolf. The Universal Turing Machine - A Half-Century Survey, Springer Verlag, ISBN 3-211-
82637-8
PALAZZO, Luiz A M.,Propriedades das Linguagens Regulares e Autômatos com Saída.Pelotas: Universidade
Católica de Pelotas - Escola de informática. Abril de 2002. 6p.
ROGOZHIN, YURII, "A Universal Turing Machine with 22 States and 2 Symbols", Romanian Journal Of
Information Science and Technology, 1(3), 259-265, 1998. (surveys known results about small universal
Turing machines)
STRATHERN, Paul: Turing and the Computer - The big idea, Anchor Books/Doubleday, ISBN 0-385-
49243-X