Você está na página 1de 26
Universidade Autónoma de Lisboa Máquina de Turing Universidade Autónoma de Lisboa Curso de Engenharia Informática 1ºano Pós-Laboral Estruturas Discretas de Computação 2009/2010 Máquina de Turing “Algoritmo de Euclides” 20090117 – Luís Tomé 20090124 – Marco Domingos 20090171 –Umesh Mohanlal 08 de Janeiro de 2010 ENG.INF. PL1 – 2009/2010 Página 1 Universidade Autónoma de Lisboa Máquina de Turing Índice 1 – Introdução ............................................................................................................................... 3 2 – Pesquisa bibliográfica sobre máquinas de Turing ................................................................... 4 2.1 – Alan Turing....................................................................................................................... 4 2.2 – Máquina de Turing .......................................................................................................... 7 3 – Pesquisa bibliográfica sobre o tema do trabalho .................................................................. 12 4 - Explicação de índole técnica .................................................................................................. 20 4.1 Sub-Máquina de comparar e ordenar ........................................................................... 21 4.1.1 Comparação (parte I) ............................................................................................. 21 4.1.2 Ordenação (parte II) ................................................................................................... 22 4.2 Subtracção ..................................................................................................................... 23 4.3 Teste de resultado final ................................................................................................. 24 5 – Conclusão .............................................................................................................................. 25 6 – Bibliografia............................................................................................................................. 26 ENG.INF. PL1 – 2009/2010 Página 2 Universidade Autónoma de Lisboa Máquina de Turing 1 – Introdução O trabalho proposto nesta cadeira foi fazer uma pesquisa bibliográfica sobre a máquina de Turing e sobre o sobre o cálculo do Máximo Divisor Comum (MDC) segundo o algoritmo de Euclides. Por fim pretendia-se que fosse aplicado o mesmo algoritmo utilizando a aplicação Visual Turing. Pretendemos com este relatório apresentar o nosso trabalho desenvolvido de uma forma clara e sucinta. Para isso começaremos pela pesquisa bibliográfica de Alan Turing e a sua máquina e em seguida sobre Euclides. Para finalizar faremos uma explicação de índole técnica acerca do trabalho desenvolvido em Visual Turing que elaboramos sobre o algoritmo de Euclides. ENG.INF. PL1 – 2009/2010 Página 3 Universidade Autónoma de Lisboa Máquina de Turing 2 – Pesquisa bibliográfica sobre máquinas de Turing 2.1 – Alan Turing O matemático Alan Mathison Turing nasceu em 23 de Junho de 1912 em Londres. O seu interesse pela ciência começou desde cedo. Em 1928, Alan começou a estudar a Teoria da Relatividade e conheceu Christopher Morcom, que o influenciou profundamente. Morcom morreu em 1930 e Alan motivou-se a fazer o que o amigo não teve tempo. Assim, durante anos trocou correspondências com a mãe de Morcom a respeito das ideias do amigo e ficou encantando com a possibilidade de resolver problemas com a Alan Turing teoria mecânica quântica. Depois de concluir o mestrado em King's College (1935) e de receber o Smith's prize em 1936, com a idade de 24 anos, Alan Turing consagrou-se como um dos maiores matemáticos do seu tempo quando fez antever aos seus colegas que era possível executar operações computacionais sobre a teoria dos números por meio de uma máquina que tivessem embutidas as regras de um sistema formal. Embora propriamente não existisse tal máquina, Turing enfatizou desde o início que tais mecanismos poderiam ser construídos. Sua descoberta abriu uma nova perspectiva no esforço de formalizar a matemática, e, ao mesmo tempo, marcou fortemente a história da computação. Em sua brilhante solução para um dos problemas chaves discutidos pelos formalistas, Alan Turing descreveu em termos matematicamente precisos como um sistema formal automático, com regras muito simples de operação, pode ser poderoso. ENG.INF. PL1 – 2009/2010 Página 4 Universidade Autónoma de Lisboa Máquina de Turing Este sistema formal é um dispositivo físico que manipula automaticamente os símbolos de um sistema formal de acordo com as regras dele. A máquina teórica de Turing era um exemplo da sua teoria da computação como uma prova de que certos tipos de máquinas computacionais poderiam, de facto, serem construídas. Quando ele uniu matemática e lógica na forma de uma máquina, Turing tornou possíveis sistemas processadores de símbolos. E, mais importante do que esta ligação entre as abstracções do sistema cognoscitivo e a realidade concreta dos números trazida pelos pesquisadores do campo da inteligência artificial -, foi a descoberta feita por Turing de que os números eram elementos mais importantes como símbolos, neste caso, do que como elementos de cálculo. Ele definiu que os cálculo mentais consistem de operações para transformar números em uma série de estados intermediários que progridem de um para outro de acordo com um conjunto fixo de regras, até que uma resposta seja encontrada. As regras da matemática exigem definições mais rígidas que aquelas descritas nas discussões metafísicas sobre os estados da mente humana, e Turing concentrou se na definição destes estados de tal maneira que fossem claros e sem ambiguidades, para que tais definições pudessem ser usadas para comandar as operações da máquina. Turing começou com uma descrição precisa de um sistema formal, na forma de tabela de instruções que descreviam quais movimentos a fazer para qualquer configuração possível dos estados no sistema. Ele provou então que a descrição destas informações, que os passos de um sistema axiomático formal semelhante à lógica, e o estado da máquina que fazem os movimentos em um sistema formal automático são equivalentes entre si. Estes conceitos estão todos subjacentes na tecnologia actual dos computadores digitais, foram possíveis somente uma década depois da publicação de Turing. Quando a II Guerra Mundial eclodiu, Turing foi trabalhar no Departamento de Comunicações da Grã-Bretanha (Government Code and Cypher School) em Buckinghamshire, sob a sua liderança foi projectado o Colossus, computador inglês que utilizava símbolos perfurados em fitas de papel que processava a uma velocidade Página 5 ENG.INF. PL1 – 2009/2010 Universidade Autónoma de Lisboa Máquina de Turing de 25.000 caracteres por segundo. O Colossus tinha a missão de quebrar códigos alemães ultra-secretos produzidos por um tipo de máquina de codificação chamada Enigma. Os códigos mudavam frequentemente, obrigando a que o projecto do Colossus devesse tornar a descodificação bastante rápida com o intuito de quebrar o código das comunicações alemãs, Durante a guerra, Turing foi enviado aos EUA a fim de estabelecer códigos seguros para comunicações transatlânticas entre os aliados. Supõe-se que foi em Princeton, NJ, que conheceu Von Neumann e daí ter participado no projecto do ENIAC na universidade da Pensilvânia. Terminada a guerra, Alan juntou-se ao National Physical Laboratory para desenvolver um computador totalmente inglês que seria chamado de ACE (automatic computing engine). Decepcionado com a demora da construção, Turing mudou-se para Manchester. Alan, homossexual declarado, no início dos anos 50 foi humilhado em público e impedido de acompanhar os estudos sobre computadores. Suicidou-se durante uma crise de depressão a 7 de Junho de 1954, com apenas 41 anos, ao comer uma maçã envenenada com cianeto de potássio (a famosa maça da Apple). A 11 de Setembro de 2009, em nome do governo britânico, o primeiro-ministro Gordon Brown pediu desculpas formais pelo tratamento desumano e preconceituoso dado a Turing, que o levou ao suicídio. ENG.INF. PL1 – 2009/2010 Página 6 Universidade Autónoma de Lisboa Máquina de Turing 2.2 – Máquina de Turing O matemático Alan Turing, construiu em 1936, um autómato imaginário, a Máquina de Turing. Considerado como o fundador das ciências da computação, muitos anos antes de existirem os modernos computadores digitais. No seu estudo "Computing machinery and intelligence" (1950), Turing aborda a questão da inteligência da máquina, avaliando os argumentos face à possibilidade de criar uma máquina computacional inteligente e sugere respostas para estes argumentos, propondo o Teste de Turing como um teste empírico da inteligência. A máquina de Turing é um modelo abstracto de um computador, que se restringe apenas aos aspectos lógicos do seu funcionamento (memória, estados e transições) e não à sua implementação física. Pode ser vista como um sofisticado leitor de fitas, com uma fita arbitrariamente extensível. A fita é marcada nas secções, cada secção contêm um " 1 ", um " 0 " ou ser branca. Existe uma cabeça que verifica uma secção de cada vez. ENG.INF. PL1 – 2009/2010 Página 7 Universidade Autónoma de Lisboa Máquina de Turing A cabeça é capaz de efectuar apenas três acções:    Escrever na fita (ou apagar da fita), mas apenas na secção que está a ser verificada. Alterar o estado interno. Mover a fita 0 ou 1 espaços, para a esquerda ou direita. Quanto à sua definição informal uma máquina de Turing consiste em: 1. Uma fita que é dividida em células, uma adjacente à outra. Cada célula contém um símbolo de algum alfabeto finito. O alfabeto contém um símbolo especial branco (aqui escrito como 0) e um ou mais símbolos adicionais. Assume-se que a fita é arbitrariamente extensível para a esquerda e para a direita, isto é, a máquina de Turing possui tanta fita quanto é necessário para a computação. Assume-se também que células que ainda não foram escritas estão preenchidas com o símbolo branco. 2. Uma cabeça, que pode ler e escrever símbolos na fita e mover-se para a esquerda e para a direita. 3. Um registador de estados, que armazena o estado da máquina de Turing. O número de estados diferentes é sempre finito e um estado inicial com o qual o registador de estado é inicializado. 4. Uma tabela de acção (ou função de transição) que diz à máquina que símbolo escrever, como mover a cabeça ('E' para esquerda e 'D' para direita) e qual será seu novo estado, dados o símbolo que ele acabou de ler na fita e o estado em que se encontra. Se não tiver entrado alguma na tabela para a combinação actual de símbolo e estado então a máquina pára. Cada parte da máquina é finita; é sua quantidade de fita potencialmente ilimitada que dá uma quantidade ilimitada de espaço de armazenamento. As máquinas de turing desenvolveram-se desde 1934. ENG.INF. PL1 – 2009/2010 Página 8 Universidade Autónoma de Lisboa Máquina de Turing Quanto a sua definição formal uma máquina de Turing (com uma fita) pode ser definida como uma 7-tupla ou septeto M = , 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. O comportamento da máquina de turing é determinado pela sua função de transição δ. A cada passo a cabeça lê um símbolo e dependendo de seu estado ela grava outro símbolo, muda de estado e vai para esquerda ou direita. As suas características e comportamento qualificam a Máquina de Turing como uma máquina de estado finito (MEF), ou um autómato finito. Em qualquer momento, a máquina está num estado descritível. e, entre este momento e a próxima etapa discreta, a máquina lê a sua entrada da fita, consulta as regras que controlam o seu comportamento, e considerando o input e o estado actual, determina qual o comportamento que deve efectuar (isto é apagar, escrever ou mover a fita) e que estado interno deve ser assumido. A Máquina de Turing pode ser descrita como um mapa, descrevendo um conjunto de acções para cada estado, ou um diagrama de transição de estado, representando a mesma informação na forma de diagrama. A potência da Máquina de Turing reside na potencialidade de armazenando da sua fita. A sua extensão infinita significa que o dispositivo pode recorrer a um espaço de armazenamento externo ilimitado para os seus cálculos, produzindo também um ENG.INF. PL1 – 2009/2010 Página 9 Universidade Autónoma de Lisboa Máquina de Turing output de tamanho ilimitado. Assim, a fita guarda o input para a máquina, age como armazenamento temporário para os resultados parciais durante a execução do algoritmo, e é o meio de output da Máquina de Turing. A máquina final de Turing poderia ler qualquer conjunto de regras da sua fita. Turing provou que tal máquina, seria também um computador universal. Além disso, a Physical Church-Turing Hypothesis indicava que tal máquina poderia duplicar não só as funções de máquinas matemáticas, mas também as funções da natureza. No entanto, há uma distinção a fazer entre a parte estrutural de um computador e os dados sobre os quais o computador opera. O computador não pode operar a partir da sua própria iniciativa; não pode alargar-se ou modificar-se, ou construir outros computadores, assim, não pode exibir os comportamentos do crescimento, ou auto-reparação, reprodução, metabolismo que são características típicas da vida. Se a tabela de acção tem no máximo uma entrada para cada combinação de símbolo e estado então a máquina é uma máquina de Turing determinística (MTD). Se a tabela de acçã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 ou MTN). A Máquina de Turing pode ter múltiplas fitas cada uma com sua cabeça com permissão para leitura e escrita. Consideremos o caso onde há duas fitas, a que chamaremos de MT². A cada passo a máquina lê, 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} Os movimentos das cabeças são independentes. É possível que em cada passo uma cabeça ande para a esquerda e a outra para a direita. ENG.INF. PL1 – 2009/2010 Página 10 Universidade Autónoma de Lisboa Máquina de Turing A MT² é equivalente a uma MT¹. Embora ela traga alguma facilidade e eficiência ela não traz nenhum poder computacional adicional. Desta forma, podemos simular uma MT² usando uma MT¹. Podemos mostrar isso usando um raciocínio que converte MT² em MT¹.    Intercalamos as duas fitas em uma só fita. Criamos símbolos adicionais para guardar a posição das duas cabeças. Quando andamos para a direita em MT² andamos para a direita duas vezes em MT², e guardamos a posição da cabeça em questão de uma forma apropriada.  Quando andamos para a esquerda em MT¹ andamos para a esquerda duas vezes em MT², e guardamos a posição da cabeça em questão de uma forma apropriada. Primeiro vamos converter as duas fitas em uma só, intercalando seus estados. Porém só isso não chega, pois perdemos a informação de onde estavam as cabeças na máquina. Para resolver esse problema estendemos o alfabeto Σ com o alfabeto Σ² que é formado pelos símbolos de Σ acrescidos de ¹ e ². Por exemplo, se tínhamos um alfabeto {a,b} teremos um novo alfabeto {a,b,a¹,b¹,a²,b²}. Usaremos isso para simular a posição das cabeças na fita. Se temos as fitas {a,b,a,a,a,b,a} e {a,a,b,a,a} com a primeira cabeça apontada para o primeiro símbolo da primeira fita e a segunda cabeça apontada para o quarto símbolo da segunda fita construiremos uma fita {a¹,b,a,a,a,b,a,a,a,b,a²,a}. ENG.INF. PL1 – 2009/2010 Página 11 Universidade Autónoma de Lisboa Máquina de Turing 3 – Pesquisa bibliográfica sobre o tema do trabalho Euclides (c. 330 a. C. - 260 a. C.) nasceu na Síria e estudou em Atenas. Foi um dos primeiros geómetras e é reconhecido como um dos matemáticos mais importantes da Grécia Clássica e de todos os tempos. A ele se devem inúmeras conquistas no domínio da Matemática. Trabalhou em Alexandria, sendo o primeiro director da escola de Alexandria. Onde alcançou grande prestígio pela forma brilhante como ensinava Geometria e Álgebra, conseguindo atrair para as suas lições um grande número de discípulos. É descrito como homem afável e modesto, cheio de benevolência para todos os que prometessem fomentar a matemática, cheio de admiração para com os seus antecessores. Euclides é considerado "Puro Homem da Ciência", visto que se dedica à especulação pelo gosto do saber, independentemente das suas aplicações materiais. As matemáticas gregas tiveram o seu apogeu durante o período helenístico (nome que é dado à época que se seguiu à morte de Alexandre), mas as suas origens remontam a alguns anos antes. Um dos mais importantes e difíceis problemas que pesam sobre os historiadores das matemáticas gregas é estabelecer o que ocorreu antes de Euclides, porque à excepção de um insignificante trabalho sobre astronomia de um certo autor nenhum texto completo das matemáticas desse período chegou até nós. O trabalho de Euclides é tão vasto que alguns historiadores não acreditavam que fosse obra de um só homem. Os trabalhos matemáticos que chegaram até nós foram inicialmente traduzidos para árabe, depois para latim, e a partir destes dois idiomas para outras línguas europeias. ENG.INF. PL1 – 2009/2010 Página 12 Universidade Autónoma de Lisboa Máquina de Turing Embora alguns conceitos já fossem conhecidos anteriormente à sua época, o que impossibilita uma análise completa da sua originalidade, pode-se considerar o seu trabalho genial. Ao recolher tudo o que então se conhecia, sistematiza os dados da intuição e substitui imagens concretas por noções abstractas, para poder raciocinar sem qualquer apoio intuitivo. Muitos outros textos lhe são atribuídos, dos quais se conhecem alguns títulos:       Divisões de superfícies, Data (continha aplicações da álgebra à geometria numa linguagem estritamente geométrica), Pseudaria, Tratado sobre Harmonia, A Divisão (continha muito provavelmente 36 proposições relativas à divisão de configurações planas), Os Dados (formavam um manual de tabelas, servindo como guia de resolução de problemas, com relação entre medidas lineares e angulares num círculo dado),  Óptica (seria um estudo da perspectiva e desenvolveria uma teoria contrária à de Aristóteles, segundo a qual é o olho que envia os raios que vão até ao objecto que vemos e não o inverso).   Os fenómenos (celestes) (pensa-se que Euclides discorreria sobre Geometria esférica para utilização dos astrónomos), Porismos (um dos mais lamentáveis desaparecimentos, este livro poderia conter aproximações à Geometria Analítica). ENG.INF. PL1 – 2009/2010 Página 13 Universidade Autónoma de Lisboa Máquina de Turing Também foi o autor de uma obra notável, intitulada "Os Elementos de Euclides", o mais antigo manuscrito conhecido na sua totalidade, e é mesmo a natureza deste admirável trabalho, que nos aclarará o que possa ter sucedido nesse período de tempo. Conseguiu incorporar nesta obra toda a sua bagagem de conhecimentos matemáticos acumulados por todos os seus predecessores, com o mérito de uma boa preparação e apresentação. São raros os livros que têm sido tão editados, traduzidos e comentados como os Elementos de Euclides. Na antiga Grécia, esta obra foi comentada por Proclo (410 - 485), Herão (c. 10 - 75) e Simplício (490 - 560); na Idade-Média foi traduzida em latim e árabe; após a descoberta da imprensa, fizeramse dela numerosas edições em todas as línguas europeias. A primeira destas edições foi a de Campano (1220 - 1296), em latim, publicada em 1482, edição usada por Pedro Nunes (1502 - 1578), que a citou numerosas vezes nas suas obras. Em Portugal, publicou Angelo Brunelli em 1768 uma tradução em português dos seis primeiros livros, do undécimo e do duodécimo. Para esta tradução serviu-se da versão latina de Frederico Comandino e fê-la seguir de algumas notas com que Roberto Sinson (1687 - 1768) tinha ilustrado esta versão. Este livro, foi outrora muito usado nas escolas portuguesas razão pela qual se fizeram novas edições da tradução de Brunelli em 1790, 1792, 1824, 1835, 1839, 1852, 1855 e 1862. Os Elementos de Euclides têm uma importância excepcional na história das matemáticas. Com efeito, não apresentam a geometria como um mero agrupamento de dados desconexos, mas antes como um sistema lógico. As definições, os axiomas ou postulados (conceitos e proposições admitidos sem demonstração que constituem os fundamentos especificamente geométricos e fixam a existência dos entes fundamentais: ponto, recta e plano) e os teoremas não aparecem agrupados ao acaso, mas antes expostos numa ordem perfeita. Cada teorema resulta das definições, dos axiomas e dos teoremas anteriores, de acordo com uma demonstração rigorosa. ENG.INF. PL1 – 2009/2010 Página 14 Universidade Autónoma de Lisboa Máquina de Turing Euclides foi o primeiro a utilizar este método, chamado axiomático. Desta maneira, os seus Elementos constituem o primeiro e mais nobre exemplo de um sistema lógico, ideal que muitas outras ciências imitaram e continuam a imitar. No entanto, não nos podemos esquecer de que Euclides se esforçou por axiomatizar a geometria com os meios de que dispunha na época. É pois, fácil compreender que o sistema que escolheu apresente algumas deficiências. Involuntariamente, em algumas das suas demonstrações admitiu resultados, muitas vezes intuitivos, sem demonstração. A partir do dia do seu aparecimento, "Os Elementos" tornaram-se o manual clássico da geometria. Geração sobre geração estudou neste livro. Sábios como Newton, Pascal, Decartes, Lagrange designaram-no como o melhor livro. Os elementos de Euclides estão divididos em 13 livros. Euclides lança uma série de 23 definições, 5 postulados e 9 axiomas que são aceites como válidos. Os livros I-IV tratam de geometria plana elementar. Partindo das mais elementares propriedades de rectas e ângulos conduzem à congruência de triângulos, à igualdade de áreas, ao teorema de Pitágoras (livro I, proposição 47) e ao seu recíproco (livro I, proposição 48), à construção de um quadrado de área igual à de um rectângulo dado, à secção de ouro, ao círculo e aos polígonos regulares. O teorema de Pitágoras e a secção de ouro são introduzidos como propriedades de áreas. ENG.INF. PL1 – 2009/2010 Página 15 Universidade Autónoma de Lisboa Máquina de Turing Como a maioria dos treze livros, o livro I começa com uma lista de Definições (23, ao todo) sem qualquer comentário como, por exemplo, as de ponto, círculo, ângulo, paralelismo e perpendicularidade. A seguir às definições, aparecem os Postulados e as Noções Comuns ou Axiomas, por esta ordem. Os Postulados são proposições geométricas específicas. "Postular" significa "pedir para aceitar". Assim, Euclides pede ao leitor para aceitar as cinco proposições geométricas que formula nos Postulados: recta, triângulo, 1. Dados dois pontos, há um segmento de recta que os une; 2. Um segmento de recta pode ser prolongado indefinidamente para construir uma recta; 3. Dados um ponto qualquer e uma distância qualquer pode-se construir um círculo 4. de centro Todos naquele os ponto e com raio igual à distância são dada; iguais; ângulos rectos 5. Se uma linha recta cortar duas outras rectas de modo que a soma dos dois ângulos internos de um mesmo lado seja menor do que dois rectos, então essas duas rectas, quando suficientemente prolongadas, cruzam-se do mesmo lado em que estão esses dois ângulos. (É este o célebre 5º Postulado de Euclides). Assim, três conceitos fundamentais - o de ponto, o de recta e o de círculo - e cinco postulados a eles referentes, servem de base para toda a geometria euclidiana. ENG.INF. PL1 – 2009/2010 Página 16 Universidade Autónoma de Lisboa Máquina de Turing * O livro V apresenta a teoria das proporções de Eudoxo (408 a. C. - 355 a. C.) na sua forma puramente geométrica e * O livro VI aplica-a à semelhança de figuras planas. Aqui voltamos ao teorema de Pitágoras e à secção de ouro (livro VI, proposições 31 e 30), mas agora como teoremas respeitantes a razões de grandezas. É de particular interesse o teorema (livro VI, proposição 27) que contém o primeiro problema de máxima que chegou até nós, com a prova de que o quadrado é, de todos os rectângulos de um dado perímetro, o que tem área máxima. * Os livros VII-IX são dedicados à teoria dos números tais como a divisibilidade de inteiros, a adição de séries geométricas, algumas propriedades dos números primos e a prova da irracionalidade do número . Aí encontramos tanto o o «teorema de Euclides», segundo o qual existe uma infinidade de números primos como «algoritmo de Euclides» (livro VII), para calcular o máximo divisor comum (m.d.c.) entre dois números. Divide-se o maior número pelo outro. Caso o resto não ser zero, o divisor passa a dividendo, o resto passa a divisor e divide-se de novo. Repete-se este processo enquanto o resto não ser zero, mas caso a divisão não deixar o resto; o último resto diferente de 0 é o máximo divisor comum. Caso esse resto não surja, os números são primos entre si. Este método é em muitas situações mais prático de utilizar do que o método da intersecção dos conjuntos de divisores e do método da decomposição em factores primos. Além disso, é muito mais simples de traduzir por um programa de computador. * O livro X, o mais extenso de todos e muitas vezes considerado o mais difícil, contém a classificação geométrica de irracionais quadráticos e as suas raízes quadráticas. * Os livros XI-XIII ocupam-se com a geometria sólida e conduzem, pela via dos ângulos sólidos, aos volumes dos paralelepípedos, do prisma e da pirâmide, à esfera e ENG.INF. PL1 – 2009/2010 Página 17 Universidade Autónoma de Lisboa Máquina de Turing àquilo que parece ter sido considerado o clímax - a discussão dos cinco poliedros regulares («platónicos») e a prova de que existem somente estes cinco poliedros regulares. Ao escrever os Elementos, Euclides pretendia reunir três grandes descobertas do seu passado recente: a teoria das proporções de Eudoxo, a teoria dos irracionais de Teeteto (417 a. C. - 369 a. C.) e a teoria dos cinco sólidos regulares, que ocupava um lugar importante na cosmologia de Platão. Euclides compilou nos Elementos toda a geometria conhecida na sua época. Mas, não se limitou a reunir todo o conhecimento geométrico, ordenou-o e estruturou-o como ciência. Isto é, a partir de uns axiomas desenvolveu e demonstrou os teoremas e proposições geométricas, dando novas demonstrações quando as antigas não se adaptavam à nova ordem que havia dado às proposições. Além disso, esmiuçou a fundo as propriedades das figuras geométricas, das áreas e dos volumes e estabeleceu o conceito de lugar geométrico. O quinto postulado do livro I, é mais famoso dos postulados de Euclides e aquele que tem dado mais dores de cabeça aos matemáticos. Equivalente ao «axioma das paralelas», de acordo com o qual, por um ponto exterior a uma recta, apenas passa uma outra recta paralela à dada, desde cedo que este postulado foi objecto de polémica por não possuir o mesmo grau de "evidência" que os restantes. ENG.INF. PL1 – 2009/2010 Página 18 Universidade Autónoma de Lisboa Máquina de Turing Algoritmo de Euclides em pseudocódigo AlgoritmoDeEuclides(a: inteiro; b: inteiro): inteiro variáveis divisor: inteiro dividendo: inteiro c: inteiro início dividendo ← a divisor ← b enquanto resto(dividendo/divisor) ≠ 0 início c ← resto(dividendo/divisor) dividendo ← divisor divisor ← c fim-enquanto AlgoritmoDeEuclides ← divisor fim-função Ele também pode ser expresso recursivamente: AlgoritmoDeEuclides(a: inteiro; b: inteiro): inteiro início se b = 0 então AlgoritmoDeEuclides ← a senão AlgoritmoDeEuclides ← AlgoritmoDeEuclides(b,resto(a,b)) fim-se fim-função ENG.INF. PL1 – 2009/2010 Página 19 Universidade Autónoma de Lisboa Máquina de Turing 4 - Explicação de índole técnica Para a resolução do problema apresentado usara-me duas sub-máquinas: a máquina de comparar e ordenar e a máquina de subtrair. O programa inicia-se na sub-máquina “comparar”, onde os dois números dados à entrada são comparados. Caso o segundo número seja maior que o primeiro, estes são ordenados, ou seja, são trocados de posição. O resultado obtido dá entrada na máquina “subtracção”. Nesta máquina os dois números são subtraídos, resultando dai o resultado da subtracção e o divisor. Por fim criou-se um algoritmo para saber se o resultado da subtracção é diferente ou igual a zero. Se o resultado for diferente de zero volta-se a introduzir o resultado obtido (o resultado da subtracção e o segunda termo da subtracção) na máquina de comparar e ordenar. Se o resultado for zero então a máquina pára apresentando o resultado final, ou seja, o divisor da última operação. Para uma melhor compreensão do trabalho de seguida apresenta-se a explicação detalhada da máquina de comparar e ordenar, da máquina de subtrair e ainda do algoritmo usado na máquina principal para testar se o resultado da última subtracção é zero. ENG.INF. PL1 – 2009/2010 Página 20 Universidade Autónoma de Lisboa Máquina de Turing 4.1 Sub-Máquina de comparar e ordenar 4.1.1 Comparação (parte I) a) b) O objectivo desta sub-máquina é comparar dois números e trocá-los de posição se o primeiro for menor que o segundo. Nesta Parte I da sub-máquina, e para se comparar os números, a máquina vai marcando um a um, alternadamente, primeiro o número à esquerda com ‘x’ e depois o número da direita com ‘y’. Sabe-se que o número da esquerda é maior que o da direita, quando a máquina vai para marcar o número à direita e em vez de um ‘i’ encontra um ‘#. Então só falta andar para a esquerda repondo a situação inicial, ou seja, os números representados por ‘i’. Se pelo contrário quando a máquina vai à esquerda marcar um ‘i’ mas encontra na sua vez um ‘x’ então sabe-se que o número da esquerda é menor. Neste caso (b) vai até à direita e marca possíveis ‘i’ como ‘y’ e de seguida volta para a esquerda, repondo a situação inicial, ou seja, passado os ‘x’ e os ‘y’ a ‘i’. Por fim, caso (b), troca os dois números (Parte II). Página 21 ENG.INF. PL1 – 2009/2010 Universidade Autónoma de Lisboa Máquina de Turing 4.1.2 Ordenação (parte II) c) d) f) e) Nesta Parte II da sub-máquina (Ordenação), a máquina vai marcando alternadamente os números com ‘x’ (c), começando no número à esquerda e seguindo para o da direita. Na situação em que vai à esquerda até encontrar ‘x’, anda para a direita para marcar outro ‘x’ mas, se em vez de encontrar um ‘i’ encontra um “#” (d), então encontra-se o fim do primeiro número. Marca um ‘x’ e anda até ao inicio dos ‘x’ à direita para lhe marcar um espaço à esquerda (e). Isto porque os ‘x’ marcados à direita indicam o número inicial que estava representado à esquerda. Por fim, falta apenas deixar os números simbolizados por ‘i’. Optou-se por marcar em primeira instância os restantes ‘i’ por ‘x’ para depois todos nesta situação poderem ser trocados pelo ‘i’ (f). Desta forma trocaram-se assim os dois números, anteriormente desordenados. ENG.INF. PL1 – 2009/2010 Página 22 Universidade Autónoma de Lisboa Máquina de Turing 4.2 Subtracção g) h) i) j) Esta sub-máquina tem como objectivo dados dois números, subtrair o segundo ao primeiro, dando o resultado do lado esquerdo e mantendo o número inicial que estava a subtrair ao esquerdo do lado direito. Caso os dois números sejam iguais o resultado é apenas o número que estava a subtrair ao primeiro. Para resolver este problema a máquina posiciona-se do lado direito (g) e vai marcando com ‘x’ à direita e ‘#’ à esquerda até que encontre à direita na vez de um ‘i’ um ‘#’(h). Assim encontra-se o resultado final, faltando apenas repor os ‘x’ para ‘i’ (i) e voltar à esquerda para posicionar a máquina, confirmando apenas se o resultado final é dois ou apenas um número (j), ou seja, se o resultado da subtracção é zero ou não. ENG.INF. PL1 – 2009/2010 Página 23 Universidade Autónoma de Lisboa Máquina de Turing 4.3 Teste de resultado final l) k) Este algoritmo usado na máquina principal tem como objectivo testar se o resultado da última subtracção é zero ou não. Se o resultado foi zero a sub-máquina Subtracção apenas retornou o número que estava a subtrair ao primeiro, ou seja, apenas retornou um número em vez de dois. Se for zero encontrou-se o resultado e máquina pára se não volta a introduzir o resultado no inicio da máquina. Para este teste a máquina vai até ao fim do primeiro (ou único) número testa se tem outro à direita. Se tem volta ao inicio da máquina (k) e o processo repete-se, se não, a máquina dá o resultado final (l). ENG.INF. PL1 – 2009/2010 Página 24 Universidade Autónoma de Lisboa Máquina de Turing 5 – Conclusão Este trabalho permitiu-nos aplicar os conhecimentos adquiridos durante as aulas de Estruturas Discretas de Computação em relação a máquinas de turing. Permitiu-nos também conhecer um pouco melhor a origem dos computadores e de uma grande personalidade que até à pouco tempo nos era totalmente desconhecida, Alan Turing. Como dificuldades tivemos a escolha do nosso algoritmo ideal em turing para a resolução algoritmo de Euclides para o cálculo do MDC. Esperamos que o nosso trabalho tenha sido de fácil compreensão, ou seja, que tenhamos conseguido explicar da mesma forma que o compreendemos. ENG.INF. PL1 – 2009/2010 Página 25 Universidade Autónoma de Lisboa Máquina de Turing 6 – Bibliografia http://pt.wikipedia.org/wiki/Alan_Turing http://pt.wikipedia.org/wiki/M%C3%A1quina_de_Turing http://super.abril.com.br/superarquivo/2000/conteudo_119009.shtml http://sites.google.com/site/gorgonsgate/tutoriais_exemplos/maquina-de-turing http://pt.wikipedia.org/wiki/Euclides http://pt.wikipedia.org/wiki/Algoritmo_de_Euclides http://pt.wikipedia.org/wiki/Os_Elementos http://professored.wordpress.com/2009/05/15/algoritmo-de-euclides/ www2.dem.inpe.br/ijar/MaqTuring.doc ENG.INF. PL1 – 2009/2010 Página 26