MÁQUINAS DE TURING Acadêmicos: Karen Juliani Tosta Tomaz RA – 47566 Clauan Castro RA – 47857 Mayara Oliveira dos Santos RA – 48891 Andressa Rautenberg RA – 48909 Carlos Alexandre Fontana RA – 47664 Bruna Ritieli RA – 47650 MÁQUINAS DE TURING • Proposto por Alan Turing em 1936, a máquina de Turing é semelhante a um autômato finito, mas com uma memória ilimitada e irrestrita, uma máquina de Turing é um modelo muito mais acurado de um computador de propósito geral. Uma máquina de Turing pode fazer tudo que um computador real pode fazer, entretanto, uma máquina de Turing não pode resolver certos problemas. MÁQUINAS DE TURING • O modelo da máquina de Turing usa uma fita infinita como sua memória ilimitada. Possui uma cabeça de fita que pode ler e escrever símbolos e mover-se sobre a fita. Inicialmente, a fita contém apenas a cadeia de entrada e está em branco em todo o restante. Se a máquina precisa armazenar informação, ela pode escrevê-la sobre a fita. Para ler a informação que ela escreveu, a máquina pode mover sua cabeça de volta para a posição onde a informação foi escrita. A máquina continua a computar até que ela decida produzir uma saída. As saídas: aceite e rejeite são obtidas entrando em estados designados de aceitação e de rejeição. Se não entrar em um estado de aceitação ou de rejeição, ela continuará para sempre, nunca parando. MÁQUINAS DE TURING • A parte mais importante da definição de uma máquina de Turing é a função de transição , pois ela informa como a máquina vai de um passo para o próximo. Para uma máquina de Turing, toma a forma: Q Q {E, D}. Ou seja, quando a máquina está em certo estado q e a cabeça está sobre uma célula da fita contendo um símbolo a e se (q, a) = (r, b, E), a máquina escreve o símbolo b substituindo o a e vai para o estado r. O terceiro componente é o E ou D e indica se a cabeça move para a esquerda ou direita após escrever. MÁQUINAS DE TURING • Uma máquina de Turing é uma 7-upla, (Q, Ʃ, , , q0, qaceita, qrejeita), onde Q, Ʃ, são todos conjuntos finitos e; • Q é o conjunto de estados. • Ʃ é o alfabeto de entrada não contendo o símbolo em branco |_|. • é o alfabeto de fita, onde |_| e Ʃ . • : Q Q {E, D} é a função de transição. • q0 Q é o estado inicial. • qaceita Q é o estado de aceitação. • qrejeita Q é o estado de rejeição, onde qrejeita q aceita. MÁQUINAS DE TURING • Uma máquina de Turing é uma 7-upla, (Q, Ʃ, , , q0, qaceita, qrejeita), onde Q, Ʃ, são todos conjuntos finitos e; • Q é o conjunto de estados. • Ʃ é o alfabeto de entrada não contendo o símbolo em branco |_|. • é o alfabeto de fita, onde |_| e Ʃ . • : Q Q {E, D} é a função de transição. • q0 Q é o estado inicial. • qaceita Q é o estado de aceitação. • qrejeita Q é o estado de rejeição, onde qrejeita q aceita. MÁQUINAS DE TURING Exemplo 1: • O esquema da máquina de Turing é bastante simples, conforme a Figura01: uma fita que pode se mover de passo em passo para a direita ou para a esquerda. • Cada passo (também chamado de célula) pode estar cheio (representado por *) ou vazio. No exemplo da figura, em a existe um passo vazio e em b, dois passos vazios adjacentes. • Para simplificar, supõe-se que uma célula cheia só pode ter um único símbolo (*), mas pode ter vários símbolos diferentes. MÁQUINAS DE TURING • O cabeçote C pode ler o conteúdo do passo e nele escrever, deixando-o cheio ou vazio. Por exemplo, na posição do cabeçote da figura e dependendo da instrução, o cabeçote poderá deixar a marca * ou removê-la, tornando vazia a posição. • Numa construção prática, não seria viável uma do tipo fita perfurada, pois seria muito complicado recompor um local furado, mas seria perfeitamente possível o uso de fita magnética como em alguns equipamentos atuais. MÁQUINAS DE TURING • O próximo componente é um conjunto de instruções específico para cada função a resolver, conforme exemplo a seguir, que é simples, apenas para demonstração. Existem muitos outros que podem ser apresentados, inclusive programas de computador que simulam a máquina de Turing. • Na descrição anterior foi comentado que a fita se move e o cabeçote é fixo, similar a um gravador atual. Entretanto, para facilitar a representação em tabela, considera-se agora que o cabeçote se move e a fita é fixa, o que é apenas uma questão de referência. MÁQUINAS DE TURING • O exemplo considerado é uma operação matemática elementar: Somar dois números inteiros. Supõe-se que se deseja somar os números 3 e 4. • A entrada dos dados seria uma fita com a disposição: *** ****, ou seja, representando os números 3 e 4. • A saída dos dados seria a seguinte informação na fita: *******, ou seja representando o número 7 (3 + 4). Tabela 01 Estado 0 1 2 Ação se a célula estiver Ação se a célula estiver cheia (*) vazia Mover para direita, Escrever *, mover para continuar no estado 0 direita, ir para estado 1 Mover para direita, Mover para esquerda, ir continuar no estado 1 para estado 2 Apagar, parar MÁQUINAS DE TURING • A tabela anterior, também denominada tabela de ações, instrui a máquina para adicionar dois números consecutivos e apresentar o resultado conforme estabelecido. • Abaixo a operação passo a passo da máquina (a posição do cabeçote é indicada pelo fundo cinza). MÁQUINAS DE TURING • Os estados que a máquina pode assumir podem ser vistos como variáveis auxiliares para a tomada de decisões. Tudo isso lembra um pouco o software das máquinas de hoje. • O procedimento poderia somar qualquer par de números inteiros, independente dos valores. Entretanto, o número de células necessárias deve acompanhar. Assim, por exemplo, para somar 40000 com 60000 seriam, no mínimo, 100000 células. Na realidade, uma máquina de Turing universal, isto é, capaz de efetuar qualquer operação matemática e com quaisquer valores, deveria ter uma fita de comprimento infinito. MÁQUINAS DE TURING • Exemplo 2: • • Seja a linguagem L1= { anbn | n ≥ 0}. • • A Máquina de Turing M = ({a, b}, {q0, q1, q2, q3, q4}, δ1, q0, {q4}, {A, B}, β), onde δ1 é como na tabela a seguir é tal que: • (1) ACEITA(M) = L1, (2) REJEITA(M) = Σ* - L1 e (3) LOOP(M) =∅ MÁQUINAS DE TURING MÁQUINAS DE TURING