Capítulo 10 Outras Máquinas de Turing 10.1. Pequenas variações da TM padrão 10.2. MT s com dispositivos de armazenamento mais complexos 10.3. MT s não-determinísticas 10.4. A Máquina de Turing Universal 10.5. Autómatos linearmente limitados 429
10.1. Pequenas variações sobre a MT Definição 10.1. Autómatos equivalentes Sejam C 1 e C 2 duas classes de autómatos. Se para todo o M 1 em C 1 existe um M 2 em C 2 tal que L (M 1 ) = L (M 2 ) diz-se que C 2 é pelo menos tão poderoso como C 1. Se reversamente para todo o autómato M 2 em C 2 existe um autómato M 1 em C 1 tal que L (M 2 ) = L (M 1 ) então C 1 e C 2 são equivalentes. 430
Autómatos equivalentes C 1 C 2 L (M 1 ) = L (M 2 ) M 1 M 2 1 M 1 L (M 2 )=L L (M 1 ) M 2 431
10.1.1. 1 1 Máquinas de Turing com a opção de ficar 10.1.2. 1 Máquinas de Turing com várias bandas na fita 10.1.3. 1 MT com fita semi-infinitainfinita 10.1.4. A MT off-line 10.2. MT com armazenamento mais complexo 1021 10.2.1. MT com fitas múltiplas l 10.2.2. MT multidimensionais 432
10.3. MT não-determinísticas i Uma MT não-determinística define-se do mesmo modo que uma determinística excepto a função de transição 1 que é : Q 2 Q {L,R } O contradomínio de é um conjunto de transições possíveis, podendo a MT escolher qualquer uma delas. 1 em vez de função de transição, deve falar-se aqui em mapeamentos (mappings) i )de transição. 433
Uma MT não-determinística aceita a cadeia w de uma linguagem L se existir alguma sequência de movidas possível tal que q w x q 0 x 1 f 2, x 1, x 2 * sendo q f um estado final. 434
a transição não-determinística (q 0, a) = {(q 1, c, L), (q 2, e, R)} permite as movidas q 0 aba q 1 cba q 0 aba eq 2 ba sendo a TM que escolhe uma delas. MT não-determinística não é mais poderosa do que uma MT determinística 435
10.4. Uma Máquina de Turing Universal MT M u reprogramável. Entrada: descrição de qualquer máquina de Turing M uma cadeia w Simula a computação de M com w. 436
Uma descrição possível de uma MT genérica conjunto dos estados Q = {q 1,q 2,, q n } q 1, estado inicial q 2, estado final único alfabeto da fita = {a 1, a 2,..., a m }, a 1 representa o carácter branco ( blank ) 437
- codificação unária dos estados q 1 = 1, q 2 = 11, q 3 = 111, de a 1 = 1, a 2 = 11, a 3 = 111, das movidas: L = 1, R = 11 - o zero, 0, usa-se como separador dos 1 s : 1101 -a função de transição da MT é codificada numa fita (q 1, a 2 ) = (q 2, a 4, R) 1011011011110110 (q 2, a 3 ) = (q 1, a 2, L) 11011101011010 438
Deste modo qualquer MT tem uma codificação finita como uma cadeia de {0, 1} +. Dada uma codificação de uma M, pode-se descodificá-la difi de modo único. 439
Máquina de Turing Universal Fita 2: estado actual de M 1 1 1 1 1 1 Fita 1 : descrição de M Fita 3: réplica da fita de M R/W 1 0 1 1 0 1 b a c b b a R R/W M u UNIDADE DE CONTROLO 440
Funcionamento da MT Universal 1º lê a fita 2 o estado actual de M 2º lê a fita 3 a fita de M os argumentos de 3º procura na fita 1 os argumentos de, e lê o resultado da transição (alteração da fita de M, novo estado de M, nova posição da cabeça de M). 4º actualiza a fita 2 (estado para onde transita) 5º actualiza a fita 3 (conteúdo, posição da cabeça R/W ) 6º volta a 1º. 441
Poderá uma MT Universal ser implementada por uma MT padrão?? Existirá uma máquina de Turing que, dado qualquer programa, possa fazer a computação especificada por ele?? Para a tabela de estados de uma MT universal: http://www.rdrop.com/~half/general/utm/utmstatetable.html p 442
Quantas máquinas de Turing existem? As máquinas de Turing podem codificar-se com 0 s e1 s Quantas máquinas de Turing é possível construir? Será possível enumerá-las? 443
Definição 10.3 Enumeração S conjunto de cadeias em. Um procedimento de enumeração em S é uma máquina de Turing que pode efectuar a sequência de movidas q 0 q s x 1 # s 1 q s x 2 # s 2 q s x 3 # s 3... com x i * - {#}, s i S, de tal modo que qualquer s em S é ordenada d num número finito it de movidas. x i está relacionado com a ordem de s i na contagem resultante. O estado q s significa ifi que a cadeia s i pertence a S. 444
Exemplo. Ordem própria Seja o alfabeto = {a, b, c}. Será S = + contável? A enumeração produz os elementos por uma certa ordem. Ordem alfabética? Que aconteceria? Ordem dependente do comprimento da cadeia? a, b, c, 1 caráter aa, ab, ac, ba, bb, bc, ca, cb, cc, 2 caracteres aaa, aab, aac, aba, abb, abc,... 3 caracteres......... Esta ordenação (contagem) chama-se ordem própria (proper order). 445
Teorema 10.3 O conjunto de todas as máquinas de Turing é contável (embora infinito).... Uma MT pode codificar-se numa cadeia finita de 0 s e 1 s 1s, ordenável por ordem própria. 446
10.5. Autómatos linearmente limitados (linear bounded automata) MT em que só se pode usar a parte da fita ocupada pela entrada. Chamam-se autómatos linearmente limitados, linear bounded automata (LBA). Para delimitar a fita usada utilizam-se dois caracteres especiais: o marcador de limite à esquerda, [ o marcador de limite à direita, ] 447
Definição de LBA Um autómato linearmente limitado é uma MT não-determinística Com as restrições: M = ( Q,,,, q0,, F) tem que conter os símbolos especiais [ e ], ], (q i, [) só pode conter elementos do tipo (q j, [, R ) (q i, ]) só pode conter elementos do tipo (q j, ], L ) 448
Definição: Linguagem g aceite por um LBA Uma cadeia w é aceite por um autómato linearmente limitado (LBA) se for possível encontrar uma sequência de movidas q 0 [w] [ x 1 q f x 2 ] para alguma q f F, x 1, x 2 *. A linguagem aceite pelo LBA é o conjunto de todas as cadeias que aceita. Os LBA são mais poderosos do que os NPDA ( e menos poderosos do que a MT padrão). 449
Ver no DEM exemplos de LBA: Ex 11.3.1, aceita a n b n c n Ex 11.3.2, aceita a n, n primo. Ex 11.3.3, aceita a n.n, n > 0 O é o marcador da esquerda ( [ ) e o da direita (])) (Ver Taylor, pp 588-592). 592) 450
Bibliografia An Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett Computer Science, 2001. Models of Computation and Formal Languages, R. Gregory Taylor, Oxford University Press, 1998. Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addison Wesley, 2001. Elements for the Theory of Computation, Harry Lewis and Christos Papadimitriou, 2nd Ed., Prentice Hall, 1998. Introduction th the Theory of Computation, Michael Sipser, PWS Publishing Co, 1997. http://www.turing.org.uk/turing/turing.html (Alan Turing Home Page) http://www-groups.dcs.st-and.ac.uk/~history/mathematicians/turing.html history/mathematicians/turing.html 451