A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Recursos Computacionais Maquinas de Turing: Uma visão pragmática Álvaro Vinícius de Souza Coêlho

Apresentações semelhantes


Apresentação em tema: "Recursos Computacionais Maquinas de Turing: Uma visão pragmática Álvaro Vinícius de Souza Coêlho"— Transcrição da apresentação:

1 Recursos Computacionais Maquinas de Turing: Uma visão pragmática Álvaro Vinícius de Souza Coêlho

2 Roteiro Introdução Contextualização O problema que o mundo queria resolver Maquinas de Turing específicas (MT) Maquina de Turing Universal (MTU) Arquitetura de Von Newman Conclusão

3 Introdução Para entender esse Turing: –MTU: autômatos finitos determinísticos –Matemática abstrata e não um objeto –Maquina capaz de resolver todo tipo de problema matemático

4 Introdução Computar: fazer c á lculos, contar, efetuar opera ç ões aritm é ticas Os computadores eletrônicos já estão entre nós há cerca de 60 anos Fundamentos em que se baseiam remontam a centenas ou at é mesmo milhares de anos

5 Introdução Computador: mecanismo ou m á quina que auxilia essa tarefa, com vantagens no tempo gasto e na precisão Motivação: livrar-se dos trabalhos manuais, repetitivos e ergonomicamente contra-indicados –Cálculos –Tarefas repetitivas –Monitoramento –...

6 Ábaco Primeiro dispositivo manual de cálculo; servia para representar números no sistema decimal e realizar operações com eles O mais antigo: 3500 a.C. no Vale entre os rios Tigre e Eufrates Suan-Pan: China Soroban: Japão

7 Ábaco Uma vareta para cada dígito

8 John Napier Nobre escocês de Edimburgo, o matem á tico John Napier, inventou os logaritmos R é gua de c á lculos (primeiro computador anal ó gico da hist ó ria): pequena régua que deslizava sobre uma base fixa, na qual haviam diversas escalas para a realização de determinadas operações

9 John Napier

10 Blaise Pascal Em 1642, aos 18 anos, inventou a primeira máquina automática de calcular, feita de rodas dentadas que simulavam o funcionamento do ábaco (sistema decimal) Ajudar no seu serviço de contabilidade

11 Blaise Pascal Realizava apenas soma e subtração e o resultado era mostrado numa seqüência de janelinhas. Pascalina ou Máquina Aritmética de Pascal: primeira calculadora mecânica

12 Blaise Pascal

13 Gottfried Wilhelm von Leibnitz Introduziu o conceito de realizar multiplicações e divisões através de adições e subtrações sucessivas Aos 12 anos já estudava Latim e Grego como autodidata. Antes de ter 20 anos já possuía mestrado em matemática, filosofia, teologia e leis

14 Gottfried Wilhelm von Leibnitz Em 1672, aperfeiçoou a Máquina de Pascal, construindo a calculadora universal

15 Joseph Marie Jackuard Em 1801 construiu um tear automático que aceitava entrada de dados através de cartões perfurados para controlar a confecção e desenho dos tecidos Esta máquina pode ser considerada a primeira máquina mecânica programável

16 Joseph Marie Jackuard

17 Charles Babbage Em 1822, idealizou a Máquina das Diferenças, que consistia num dispositivo mecânico baseado em rodas dentadas, para a avaliação de funções e a obtenção de tabelas Mas esta máquina não chegou a ser construída devido as limitações tecnológicas da época (limites do ferramental industrial)

18 Charles Babbage Ao operador cabia somente iniciar a cadeia de operações, e a seguir a máquina tomava seu curso de cálculos, preparando totalmente a tabela prevista Ao operador cabia somente iniciar a cadeia de operações, e a seguir a máquina tomava seu curso de cálculos, preparando totalmente a tabela prevista

19 Em 1833, projetou a Máquina Analítica ou Diferencial, dispunha de programa, memória, unidade de controle e aritmética e periféricos de entrada e saída Realizava automaticamente tabelas de logaritmos e funções trigonométricas Babbage o Pai da Informática Charles Babbage

20

21 O Problema que o Mundo Queria Resolver Máquinas que resolviam problemas específicos Décimo problema de Hilbert – Entscheidungsproblem (1900 – 1928): –Será possível se definir um procedimento mecânico para resolver os problemas da matemática um após o outro?

22 Turing Alan Mathison Turing nasceu em 23 de junho de 1912 em Londres Na infância distraia-se fatorando números A maior parte do seu trabalho foi desenvolvido no serviço de espionagem, durante a II Grande Guerra Matemático extraordinário decifrador de códigos e cientista da computação

23 Turing 1975 foi reconhecido como um dos grandes pioneiros no campo da computação Em 1936 Alan M. Turing desenvolveu a construção teórica das Máquinas de Turing (1935 –36) –Matemática abstrata e não um objeto –Maquina capaz de resolver todo tipo de problema matemático (?)

24 Turing Questão1 : existe um procedimento mecânico geral para resolver todos os problemas matemáticos? Um após outro? Questão 2: existe limitação àquilo que um algoritmo pode fazer a princípio?

25 Turing Teoria Matemática da Computação define um algoritmo como a representação formal e sistemática de um processo, e através da qual se demonstra que nem todos os processos são representáveis

26 Turing De qualquer ângulo que se examine a idealização de Turing sempre se verá uma semelhança muito grande com os computadores atuais 1º Passo: mostrou que poderia ser construída uma MT para cada problema com solução algorítmica –De somar 1 a um número a decifrar código

27 Turing Arquitetura: Uma fita infinita, uma cabeça de leitura-gravação, uma máquina de estados que pode se mover na fita à direita ou à esquerda

28 Turing Arquitetura: seqüência linear de marcas na fita (0´s e 1´s) representando números finitos lidas uma por vez Não se trata de codificação binária! A descrição do algoritmo deve ser finita e executável em tempo finito Função de Transição: diz o que vazer, ou seja, comanda as leituras e gravações, o sentido de movimento da cabeça e define o estado da máquina

29 Turing Idéia de Turing: a partir do símbolo lido na fita e da função de transição atual a máquina decide o que fazer (determinística) Operações rotuladas: substituições explícitas –Ex: 101 ->131E

30 Turing MT: definição matemática de uma operação mecânica Familiarizando-nos com MT simples o entendimento das complexas será mais fácil MT N+1: –00 00D –01 11D –10 01PARE –11 11D

31 Turing Exemplo: Na fita: (o número 3) Saída esperada: (o número 4)... Acompanhando o trabalho da MT...

32 Turing 2º Passo: Uma máquina de Turing Universal –Crítica: Construir uma MT para cada problema? Impraticável! –MTU! –Problema: Onde armazenar as informações de que MTU precisa para simular qualquer MT? –Alternativa: E se houvesse uma MT que lesse na fita a entrada do problema E as instruções?

33 Turing Modelo matemático dos computadores de hoje: – Propósito geral Como armazenar as instruções na fita? –Os dados são armazenados com codificação binária estendida (poderia ser binário simples)

34 Turing Mostraremos os princípios, detalhes são muito complicados Idéia básica: codificar a lista de instruções de MT arbitrária num grupo de 0´s e 1´s para serem representados na fita Parte inicial da fita tem as instruções que atuarão sobre os dados que vêm em seguida

35 Turing Chegamos no famoso: Número de Turing!!!!! –Código binário final transformado em decimal!!!! –Todo programa de computador (tira de bits) pode ser mapeado em um e somente um número natural e vice-versa!!!!!! –Geração automática de programas... Perderemos nossos empregos!!!!!!!! –Vejamos: MT n : Máquina de Turing que executa o algorítmo N

36 int satisfaz(int N,M) { int R cria_programa(N) cria_dados(M) R = system(N(M)) if (R = previsto) return TRUE else return FALSE } main() { int N=1 while(!(satisfaz(N,M))) N++ } Esquema Geral 1: Beco sem saída Se a chamada N(M) entra em laço infinito, R jamais recebe um valor!

37 int satisfaz(int N,M) { int R cria_programa(N) cria_dados(M) if pára(N,M) { R = system(N(M)) if (R = previsto) return TRUE else return FALSE } else return FALSE } main() { int N=1 while(!(satisfaz(N,M))) N++ } Esquema Geral 2: Beco sem saída? Este teste, se exeqüível, impede que nosso gerador de programas trave!

38 Turing Supor que há Pára(N,M) retorna 1 se N(M) pára e 0 caso contrário Multiplicar Pára(N,M) por N(M) dá N(M) (1*resultado de N(M)) ou 0 (0*qualquer coisa) Imaginar Pára(N,N)*(N(N)) é possível? Sem problemas. Dá N(N) ou 0 Criar K(N) = Pára(N,N)*N(N) + 1

39 Turing K(K) pára? –então K(k) = 1*K(K) + 1 = K(K) + 1. Absurdo. –senão K(K) = 0*K(K) + 1 = 1. Absurdo (K(K) não tem valor!) Portanto não pode haver K(K). Não pode haver K(N). Não pode haver Pàra(N,N). Não pode haver Pàra(N,M). É impossível fazer o programa gerador de programas!

40 Turing O décimo problema de Hilbert não tem solução! Será possível se definir um procedimento mecânico para resolver os problemas da matemática um após o outro? Não se pode garantir!

41 Turing Todos os computadores modernos de uso geral são efetivamente máquinas de Turing universais! Problema da parada: saber se uma MT n pára ou não ao atuar sobre o número m Impossível decidir... Algoritmos que não param não são muito úteis...

42 Ficou também demonstrado a existência de problemas sem solução algorítmica e chegou- se a seguinte conclusão: Um problema terá solução algorítmica se existir uma Máquina de Turing para representá-lo Desses estudos surgiu a Teoria da Computabilidade: Problemas Turing Computáveis e Não Turing Computáveis (MT e ~MT) Turing

43 Decidir se MT´s param: importante questão matemática: –Teorema de Fermat: análise de todos os quádruplos naturais (x,y,z,w) possíveis (x+1) w+3 + (y+1) w+3 = (z+1) w+3 –Conjectura de Goldbach: todo número maior que 2 é a soma de números primos Desdobrá-lo em números primos (saber se é primo)

44 Turing A equação x 2 – 2 x = 0 possui quantas raízes? –2 e 4 são raízes óbvias! –Há uma terceira? Não computabilidade da geração dos números reais –Corte Diagonal de Cantor Programa gerador de programas...

45 John von Newmann Em 1944 desenvolveu a idéia de programa interno e fundamento teórico de um computador eletrônico denominado Modelo de Von Newmann Idéia: existência simultânea de dados e instruções e a possibilidade do computador ser programado Publicou o artigo "Teoria e Técnicas dos Computadores Eletrônicos", uma tentativa de projeto de um computador do ponto de vista lógico

46 Processador e memória de 8 bits

47 Em 1952 esse computador foi construído, recebeu o nome de EDVAC (Eletronic Discrete Variable Automatic Computer) e era uma modificação do ENIAC Utilizava tecnologia estranha –linhas de retardo acústico de mercúrio por onde circulavam sinais elétricos sujeitos a retardo John von Newmann

48 Em 1951 Mauchly constrói o primeiro computador da série a ser posto à venda, o UNIVAC-I (computador automático universal), que já utilizava válvulas e fitas magnéticas No ano seguinte foram construídos os computadores MANIAC-I, MANIAC-II, UNICAC-II PDP-8 – levou os computadores para laboratórios e linhas de produção, em 1965 John von Newmann

49 Com o surgimento destas máquinas acaba a pré-história da informática...

50 ... a partir daqui entramos na fase da EVOLUÇÃO ELETRÔNICA

51 Conclusão As idéias de computabilidade não estavam formalizadas antes dos resultados de Alan Turing Von Newmann conseguiu tornar factível as idéias de Turing e Babbage As idéias de Babbage, Turing e Newmann são empregados nos computadores até hoje Supercomputadores usam estas mesmas idéias

52 Limite: futuro incerto da computação quântica, desenvolvimento de máquinas não determinísticas. Conclusão

53 Turing. FIM! A soma da inteligência no planeta é uma constante; a população está crescendo Lei de Murphy aplicada ao Pensamento Escher


Carregar ppt "Recursos Computacionais Maquinas de Turing: Uma visão pragmática Álvaro Vinícius de Souza Coêlho"

Apresentações semelhantes


Anúncios Google