Você está na página 1de 9

1

A Mquina Turing
7 de dezembro de 2011
A mquina de Turing um dispositivo terico conhecido como mquina universal, que foi concebido pelo matemtico britnico Alan Turing (19121954), muitos anos antes de existirem os modernos computadores digitais (o artigo de referncia foi publicado em 1936). Num sentido preciso, um modelo abstrato de um computador, que se restringe apenas aos aspectos lgicos do seu funcionamento (memria, estados e transies) e no sua implementao fsica. Numa mquina de Turing pode-se modelar qualquer computador digital. Turing tambm se envolveu na construo de mquinas fsicas para quebrar os cdigos secretos das comunicaes alems durante a II Guerra Mundial, tendo utilizado alguns dos conceitos tericos desenvolvidos para o seu modelo de computador universal.

1 Denio
1.1 Denio Informal
Uma mquina de Turing consiste em: 1. Uma ta que dividida em clulas, uma adjacente outra. Cada clula contm um smbolo de algum alfabeto nito. O alfabeto contm um smbolo especial branco (aqui escrito como ) e um ou mais smbolos adicionais. Assume-se que a ta arbitrariamente extensvel para a esquerda e para a direita, isto , a mquina de Turing possui tanta ta quanto necessrio para a computao. Assume-se tambm que clulas que ainda no foram escritas esto preenchidas com o smbolo branco. 2. Um cabeote, que pode ler e escrever smbolos na ta e mover-se para a esquerda e para a direita. 2

3. Um registrador de estados, que armazena o estado da mquina de Turing. O nmero de estados diferentes sempre nito e h um estado especial denominado estado inicial com o qual o registrador de estado inicializado. 4. Uma tabela de ao (ou funo de transio) que diz mquina que smbolo escrever, como mover o cabeote ( para esquerda e para direita) e qual ser seu novo estado, dados o smbolo que ele acabou de ler na ta e o estado em que se encontra. Se no houver entrada alguma na tabela para a combinao atual de smbolo e estado ento a mquina pra. Note que cada parte da mquina nita; sua quantidade de ta potencialmente ilimitada que d uma quantidade ilimitada de espao de armazenamento.

1.2 Denio Formal


1.2.1 Mquina de Turing com uma ta
Mais formalmente, uma mquina de Turing (com uma ta) usualmente denida como uma Tupla M = (Q, ,,s,b,F, ), onde
Q um conjunto nito de estados um alfabeto nito de smbolos o alfabeto da ta (conjunto nito de smbolos) s Q o estado inicial b o smbolo branco (o nico smbolo que se permite ocorrer na

ta innitamente em qualquer passo durante a computao)

F Q o conjunto dos estados nais : Q Q{,} uma funo parcial chamada funo de

transio, onde o movimento para a esquerda e o movimento para a direita.

Denies na literatura s vezes diferem um pouco, para tornar argumentos ou provas mais fceis ou mais claras, mas isto sempre feito de maneira que a mquina resultante tem o mesmo poder computacional. Por exemplo, mudar o conjunto {,} para {,,P}, onde P permite ao cabeote 3

permanecer na mesma clula da ta em vez de mover-se para a esquerda ou direita, no aumenta o poder computacional da mquina (Fonte - Michael Sipser - Int Teoria da Computao).

1.2.2 Mquina de Turing com k tas


Uma mquina de Turing com k tas tambm pode ser descrita como uma 7-upla M = (Q,,1 ,2 ,...,k ,s,b,F, ), onde
Q um conjunto nito de estados um alfabeto nito de smbolos i ,i=1,...,k o alfabeto da ta i (conjunto nito de smbolos) s Q o estado inicial b o smbolo branco F Q o conjunto dos estados nais : Q Q{,} uma funo parcial chamada funo de transio, onde o movimento para a esquerda e o movimento

para a direita.

Note que uma mquina de turing com "k"tas no mais poderosa que uma mquina de Turing tradicional.

2 Exemplo
A mquina de Turing a seguir tem um alfabeto {, 1}, onde representa o smbolo branco. Ela espera uma srie de 1's na ta, com o cabeote inicialmente no 1 mais esquerda, e duplica os 1's com um no meio. Por exemplo, "111"torna-se "111111". O conjunto dos estados s1, s2, s3, s4, s5 e o estado inicial s1. A tabela de ao dada a seguir.

Est.Act. Simb. Lido Simb. Escr. Mv. Est.Novo s1 1 s2 s2 1 1 s2 s2 s3 s3 1 s4 s3 1 1 s3 s4 1 1 s4 s4 s5 s5 1 1 s5 s5 1 s1 A primeira linha desta tabela pode ser lida como: "Se a mquina estiver no estado s1 e o smbolo lido pelo cabeote for 1, ento escreva o smbolo , mova uma posio para a direita e mude o estado para s2". Uma computao nesta mquina de Turing pode ser, por exemplo: (a posio do cabeote indicada mostrando-se a clula em negrito) Passo Estado Fita 1 s1 11 2 s2 1 3 s2 1 4 s3 1 5 s4 11 6 s5 11 7 s5 11 8 s1 111 9 s2 11 10 s3 11 11 s3 11 12 s4 111 13 s4 111 14 s5 111 15 s1 1111 O comportamento desta mquina pode ser descrito como um lao (loop): Ele inicia em s1, substitui o primeiro 1 com um , ento usa o s2 para mover para a direita, passando pelos 1's e pelo primeiro encontrado. S3 ento 5

passa pela prxima seqncia de 1's (inicialmente h nenhuma) e substitui o primeiro que encontra por um 1. S4 move de volta para a esquerda, passando pelos 1's at encontrar um e vai para o estado s5. S5 ento move para a esquerda, passando pelos 1's at achar o que foi originalmente escrito por s1. Ele substitui o por 1, move uma posio para a direita e entra no estado s1 novamente para outra execuo do lao. Isso continua at s1 achar um (este o que ca entre as duas cadeias de 1's), situao na qual a mquina pra.

3 Mquinas de Turing determinsticas e nodeterminsticas


Se a tabela de ao tem no mximo uma entrada para cada combinao de smbolo e estado ento a mquina uma mquina de Turing determinstica (MTD). Se a tabela de ao contm mltiplas entradas para uma combinao de smbolo e estado ento a mquina uma mquina de Turing no-determinstica (MTND ou MTN).

4 Mquinas de Turing Universais


Toda mquina de Turing computa uma certa funo computvel parcial a partir da cadeia dada formada pelos smbolos do alfabeto. Neste sentido ela comporta-se como um computador com um programa xo. No entanto, como Alan Turing descreveu, podemos codicar a tabela de ao de qualquer mquina de Turing em uma cadeia de smbolos. Portanto podemos tentar construir uma mquina de Turing que espera em sua ta uma cadeia descrevendo a tabela de ao seguida por uma cadeia descrevendo a ta de entrada, e ento computa a ta que a mquina de Turing codicada teria computado.

5 Comparao com mquinas reais


Frequentemente diz-se que as mquinas de Turing, ao contrrio de autmatos mais simples, so to poderosas quanto mquinas reais, e so capazes de executar qualquer operao que um programa real executa. O que est faltando neste enunciado que praticamente qualquer programa particular executando em uma mquina particular e dada uma entrada nita , na verdade, nada alm de um autmato nito determinstico, j que a mquina em 6

que executa pode estar apenas em uma quantidade nita de conguraes. Mquinas de Turing poderiam de fato ser equivalentes a uma mquina que tenha uma quantidade ilimitada de espao de armazenamento. Podemos questionar ento por que as mquinas de Turing so modelos teis de computadores reais. H vrias maneiras de responder a isto: 1. A diferena est apenas na habilidade de uma mquina de Turing de manipular uma quantidade ilimitada de dados. No entanto, dada uma quantidade nita de tempo, uma mquina de Turing (como uma mquina real) pode apenas manipular uma quantidade nita de dados. 2. Como uma mquina de Turing, uma mquina real pode ter seu espao de armazenamento aumentado conforme a necessidade, atravs da aquisio de mais discos ou outro meio de armazenamento. Se o suprimento destes for curto, a mquina de Turing pode se tornar menos til como modelo. Mas o fato que nem as mquinas de Turing nem as mquinas reais precisam de quantidades astronmicas de espao de armazenamento para fazer a maior parte das computaes que as pessoas normalmente querem que sejam feitas. Frequentemente o tempo de processamento requerido o maior problema. 3. Mquinas reais so muito mais complexas que uma mquina de Turing. Por exemplo, uma mquina de Turing descrevendo um algoritmo pode ter algumas centenas de estados, enquanto o autmato nito determinstico equivalente em uma dada mquina real tem quadrilhes. 4. Mquinas de Turing descrevem algoritmos independentemente de quanta memria eles utilizam. H um limite mximo na quantidade de memria que qualquer mquina que conhecemos tem, mas este limite pode crescer arbitrariamente no tempo. As mquinas de Turing nos permitem fazer enunciados sobre algoritmos que (teoricamente) valero eternamente, independentemente dos avanos na arquitetura de computadores convencionais. 5. Mquinas de Turing simplicam o enunciado de algoritmos. Algoritmos executando em mquinas abstratas equivalentes a Turing so normalmente mais gerais que suas contrapartes executando em mquinas reais, porque elas tm tipos com preciso arbitrria disponveis e nunca precisam tratar condies inesperadas (incluindo, mas no somente, acabar a memria). Uma maneira em que mquinas de Turing so pobres modelos para programas que muitos programas reais, tais como sistemas operacionais e processadores de texto, so escritos para receber entradas irrestritas atravs da 7

execuo, e portanto no param. Mquinas de Turing no modelam tal "computao contnua"bem (mas ainda podem modelar pores dela, tais como procedimentos individuais). Outra limitao de mquinas de Turing que elas no modelam a organizao estrita de um problema especco. Por exemplo, computadores modernos so na verdade instncias de uma forma mais especca de mquina de computao, conhecido como mquina de acesso aleatrio. A principal diferena entre esta mquina e a mquina de Turing que esta utiliza uma ta innita, enquanto a mquina de acesso aleatrio utiliza uma sequncia indexada numericamente (tipicamente um campo inteiro). O resultado desta distino que h otimizaes computacionais que podem ser executadas baseadas nos ndices em memria, o que no possvel numa mquina de Turing geral. Assim, quando mquinas de Turing so utilizadas como base para tempo de execues restritos, um "falso limite inferior"pode ser provado em determinados tempos de execuo de algoritmos (graas premissa falsa de simplicao da mquina de Turing). Um exemplo disto uma "ordenao por contagem", o que aparentemente viola o limite inferior theta(nlog n) em algoritmos de ordenao.

6 Mquina de Turing Fsica


No difcil simular uma mquina de Turing num computador moderno (exceptuando pela quantidade de memria limitada existente nos computadores actuais). tambm possvel construir uma mquina de Turing com base puramente mecnica. O matemtico Karl Scherer construiu essa mquina em 1986 usando conjuntos de contruo de metal, plstico e alguma madeira. A mquina, com 1,5 m de altura, usa puxes de os para ler, movimentar e escrever informao, a qual , por sua vez, representada por rolamentos. A mquina encontra-se actualmente em exibio na entrada do Departamento de Cincia de Computadores da Universidade de Heidelberg, na Alemanha. tambm possvel, usando algumas centenas de espelhos, construir uma mquina de Turing ptica na sua prpria casa usando o mapa da ferradura de Smale. Este baseado num trabalho do matemtico estadounidense Stephen Smale. O conceito de mquina de Turing foi usado como ferramenta educativa na obra de co cientca The Diamond Age (1995), escrita por Neal Stephenson. A personagem principal, Nell, possui um livro interactivo que a ensina a pensar criativa e logicamente apresentando-lhe puzzles numa histria, os quais, sendo mquinas de Turing, se tornam cada vez mais complexos medida que a narrativa se desenvolve. Estes puz8

zles comeam por ser simples aparelhos mecnicos e evoluem para processos econmicos abstractos, atingindo um ponto em que se assiste interao entre completos reinos ccionais.

Você também pode gostar