Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
F Q o conjunto dos estados nais : Q Q{,} uma funo parcial chamada funo de
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).
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.
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.
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.