• Like
Turing seminar-2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Turing seminar-2012

  • 930 views
Published

Versão apresentada no IME-USP em 13/09/2012

Versão apresentada no IME-USP em 13/09/2012

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Faltou dizer que Alan Turing era um excelente corredor:
    http://professoradolfo.blogspot.com.br/2012/05/alan-turing-o-corredor.html
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
930
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
47
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Problemas Decidíveis eProblemas indecidíveis: O Legado de Alan Turing Ruy J.G.B. de Queiroz
  • 2. Problemas Indecidíveis! Imagine o desafio de ter que mostrar que um dado problema da Matemática é insolúvel!! Em 1936 Alan Turing veio com uma definição precisa de máquinas idealizadas: a máquina de Turing. Isso viabilizou a definição exata da decidibilidade de problemas matemáticos, e, portanto, abrindo a possibilidade de se demonstrar que certos problemas são de fato indecidíveis.! Efeitos colaterais:(1)  definição matemática de programa;(2)  concepção de computador de programa armazenado.
  • 3. Problemas Geométricos! Já na Grécia antiga, os matemáticos buscavam por construções para trissectar um dado ângulo, assim como por construções para transformar um círculo num quadrado de mesma área.
  • 4. Trissectar com régua e compasso! Somente em 1837, o matemático francês Pierre Wantzel (1814-1848), mostrou que não existe método geral para trissectar um ângulo usando apenas régua-e- compasso.! A estratégia de Wantzel foi se valer da chamada teoria de Galois -- mais especificamente, a trissecção de um ângulo corresponde à resolução de uma certa equação cúbica, que não é possível usando as ferramentas dadas.
  • 5. Outros resultados de Wantzel! No mesmo artigo em que demonstrou a impossibilidade de trissectar um ângulo, Wantzel também demonstrou a impossibilidade de, usando apenas régua-e- compasso: 1.  Dobrar o cubo 2.  Construir um polígono regular com certa característica
  • 6. Dobrar o Cubo! dobrar o cubo: significa ser capaz de, ao receber um dado cubo de comprimento de lado s e volume V = s3, construir um novo cubo, maior que o original, de volume 2V, e, portanto, comprimento de lado s 3√2.
  • 7. Construir Polígono Regular™ construir um polígono regular cujo número de lados não é o produto de uma potência de 2 e nenhum número de primos de Fermat distintos.
  • 8. Quadratizar o Círculo™  Quadratizar o círculo é um problema proposto pelos geômetras da Antiguidade. Trata-se do desafio de construir um quadrado com a mesma área que um dado círculo, usando apenas régua e compasso.™  Em 1882, o problema foi demonstrado impossível de resolver, e isso veio como uma conseqüência do teorema de Lindemann–Weierstrass que mostra que π é um número transcendental, e não algébrico.
  • 9. Fórmula para Achar Raízes de Equações™  Somente em 1824, o matemático norueguês Niels Abel (1802–1829) obteve o importante resultado de que não pode haver uma fórmula (finita) geral, envolvendo apenas operações aritméticas e raízes, que exprima as raízes de um polinômio de grau 5 ou mais em termos de seus coeficientes.
  • 10. Problema de Decisão™  Um problema de decisão é uma questão sobre um sistema formal com uma resposta do tipo sim-ou-não. Por exemplo, o problema: "dados dois números x e y, y é divisível por x?" é um problema de decisão.™  Ou ainda: "Dado um número inteiro x, x é um número primo?"
  • 11. Problema Indecidível™  Uma família de problemas com respostas SIM/NÃO é dita indecidível se não existe algoritmo que termine com a resposta correta para todo problema da família.™  (Exemplo: 10o problema de Hilbert)
  • 12. Provar Indecidibilidade™ Para tornar o significado de indecidível preciso, é necessário dispor de uma noção formal de algoritmo.™ Tal noção foi introduzida por Alonzo Church (1936) e Alan Turing (1936) independentemente.
  • 13. Origens de “Algoritmo”™  Abu Abdallah Muhammad ibn Musa al-Khwarizmi (c. 780 – c. 850) foi um matemático e astrônomo persa responsável pela introdução no Ocidente dos numerais arábicos, baseado no sistema de numerais indo-arábico desenvolvido na matemática indiana.
  • 14. Definição de “Algoritmo” (Wikipedia)™  ”Um algoritmo é um procedimento passo-a-passo com o fim de realizar cálculos, processar dados, automatizar o raciocínio dedutivo.”™  ”Mais precisamente, um algoritmo é um método eficaz, expresso como uma lista finita de instruções bem definidas para o cálculo de uma função.™  A partir de um estado inicial e uma entrada inicial (possivelmente vazia), as instruções descrevem uma computação que, quando executada, irá prosseguir por meio de um número finito de estados sucessivos bem definidos, acabando por produzir uma ‘saída’ e terminando em um estado final.”
  • 15. Algoritmo de Euclides™  O algoritmo de Euclides é um método eficiente de calcular o máximo divisor comum (MDC) de dois números inteiros.™  Presente nos livros VII e X dos Elementos de Euclides (c. 300 a.C.), trata-se de um dos mais antigos algoritmos numéricos que se conhece.
  • 16. O Décimo Problema de Hilbert™  Em sua lista de 1900 dos 23 problemas mais importantes da Matemática, David Hilbert incluiu: 10. Determinação da solubilidade de uma equação Diophantina. Dada uma equação Diophantina com qualquer número de quantidades indeterminadas e com coeficientes integrais racionais: Conceber um processo conforme o qual pode ser determinado, em um número finito de operações, se a equação é solúvel nos inteiros racionais.
  • 17. Generalizando: O Entscheidungsproblem™  O Entscheidungsproblem (“problema de decisão”, em alemão) é um desafio posto por David Hilbert em 1928.™  O Entscheidungsproblem pede por um algoritmo que receberá como entrada uma descrição de uma linguagem formal e um enunciado matemático na linguagem, e produzirá como saída “Verdadeiro” ou “Falso”.™  Tal algoritmo seria capaz de decidir, por exemplo, se enunciados tais como a conjectura de Goldbach ou a hipótese de Riemann, são verdadeiras, muito embora nenhuma prova ou refutação desses enunciados seja conhecida.
  • 18. Processo Finito™ Em 1928 Hilbert enuncia o Entescheidungsproblem assim: O Entscheidungsproblem é resolvido quando conhecemos um procedimento que permite, para qualquer expressão lógica dada, decidir sua validade ou satisfatibilidade.
  • 19. David Hilbert e Problemas Insolúveis (1900 e 1930)™  “Para o matemático não existe o Ignorabimus [“Ignoramos e ignoraremos”, 1872], e, na minha opinião, de forma alguma para as ciências naturais . . . A verdadeira razão por que [ninguém] conseguiu encontrar um problema insolúvel é que, na minha opinião, não existe problema insolúvel. Em contraste com o Ignorabimus, nosso lema será: Temos que saber, Saberemos.”
  • 20. Busca por uma Definição™  No período de 1928 a 1936, Emil Post trabalhou intensamente no desenvolvimento de uma definição do que seria procedimento envolvendo um número finito de passos: um trabalhador se movendo de sala em sala escrevendo e apagando símbolos conforme uma lista de instruções.
  • 21. Formalização de Algoritmo™  Naturalmente, antes que a questão da solubilidade do Entscheidungsproblem pudesse ser resolvida, a noção de algoritmo tinha que ser formalmente definida.™  Coube a Alonzo Church em 1936 com o conceito de calculabilidade efetiva baseado no seu λ-cálculo, e a Alan Turing também em 1936, com a noção de máquina de Turing.
  • 22. Tese de Church-Turing™  Em seu artigo de 1936 (publicado em 1937, e avaliado por Church) Turing acrescentou um apêndice demonstrando que a classe de funções computáveis pelo λ-cálculo era a mesma que a classe de funções computáveis por máquinas de Turing.™  Daí, a denominação Tese de Church–Turing: toda função computável é computável por máquinas de Turing.
  • 23. Limitação do Homo Sapiens™  “Na verdade, o trabalho feito por Church e outros leva essa identificação consideravelmente além do estágio de hipótese de trabalho.”™  “Porém, mascarar essa identificação sob uma definição esconde o fato de que uma descoberta fundamental nas limitações do poder de matematicatização do Homo Sapiens foi feita, e nos cega para a necessidade de sua contínua verificação.” (Emil Post)
  • 24. Turing encara desafio™  Na primavera de 1935 Turing, ainda como aluno de Mestrado no King’s College (Cambridge, UK), aceitou o desafio de provar que não haveria processo ‘mecânico’ que resolvesse o Entscheidungsproblem.™  O estímulo veio do matemático Max Newman, orientador de Mestrado de Turing, num curso sobre os Fundamentos da Matemática.
  • 25. Robin Gandy (colega) ™  “À pergunta ‘o que é um processo “mecânico”?’ Turing dá a resposta característica ‘Algo que pode ser feito por uma máquina’, e aí embarca na tarefa altamente congênere de analisar a noção geral de uma máquina de computação.”
  • 26. Entscheidungsproblem: Impossível™ Muitos acreditavam que seria impossível haver um algoritmo para decidir toda questão da Matemática, entre eles o matemático G.H. Hardy (1877–1947), de Cambridge:
  • 27. G.H. Hardy e oEntscheidungsproblem ™  “Não há, obviamente, nada disso [algoritmo], e isso é muito bom, pois se houvesse teríamos um conjunto mecânico de regras para a solução de todos os problemas matemáticos, e nossas atividades como matemáticos chegaria ao fim.”
  • 28. Turing e o Entscheidungsproblem™  “Suponho, porém não tenho certeza, que Turing, desde o início de seu trabalho, tinha como objetivo uma prova da indecidibilidade do Entscheidungsproblem.”™  “A ‘idéia principal’ pode ter sido sua análise do fenômeno da computação ou sua percepção de que havia uma máquina universal, e portanto um argumento diagonal para provar a insolubilidade.” (Robin Gandy, 1974)
  • 29. Máquina de Turing
  • 30. Definição Matemática™  Uma máquina de Turing é uma 7−upla, (Q,Σ,Γ,δ,q0,qaceita,qrejeita), onde Q,Σ,Γ são todos conjuntos finitos, δ é a função de transição, q0 ∈ Q é o estado inicial, qaceita é o estado de aceitação, e qrejeita é o estado de rejeição. (Pode ser codificada numa palavra finita, e, portanto servir como entrada para outra máquina)™  Trata-se de um modelo formal de um “ser humano calculante”: cada célula da fita de trabalho pode ser concebida como uma folha de papel, Σ como o alfabeto de entrada, e Γ o alfabeto de trabalho.
  • 31. Alan Turing: Máquina Universal™  “É possível inventar uma única máquina que pode ser usada para computar qualquer seqüência computável.”™  “Se essa máquina U for alimentada com a fita no começo da qual está escrita a cadeia de quíntuplas separadas por vírgulas de alguma máquina de computação M, então U vai computar a mesma seqüência que M.”
  • 32. Implementação da Máquina Universal™  “Em 19/02/1946 Turing apresentou um artigo detalhado ao comitê executivo do National Physical Laboratory (NPL), dando o primeiro design razoavelmente completo de um computador de programa armazenado: o Automatic Computing Engine.”™  “O mais conhecido design do EDVAC apresentado no relatório First Draft of a Report on the EDVAC (30/06/1945), de John von Neumann, que conhecia o trabalho teórico de Turing, teve muita divulgação, apesar de seu estado incompleto e ausência questionável de atribuição das fontes de algumas das idéias.” (Wikipedia)
  • 33. Problemas Decidíveis1.  Determinar se um sistema de equações lineares em k variáveis, com coeficientes em Z, têm soluções em Z.2.  Determinar quais equações da forma x2 − dy2 = 1, onde d é um inteiro positivo, têm soluções nos inteiros.3.  Determinar para qual(is) valor(es) inteiro(s) de k a equação y2 = x3 + k tem solução nos inteiros. (Alan Baker, Medalha Fields 1996)
  • 34. Problema Indecidível™  Em 1900, Hilbert pediu em seu décimo problema: Encontrar um algoritmo para decidir se um sistema de equações com coeficientes inteiros tem uma solução inteira.™  Somente em 1970, surgiu uma resposta: o russo Yuri Matejasevic, então com 23 anos de idade, demonstrou que não pode haver tal algoritmo (assumindo a Tese de Church–Turing).
  • 35. Subproduto do 10o Problema™  O conjunto de valores positivos tomados pelo polinômio (em 26 variáveis):(k+2)(1−(wz+h+j−q)2 −((gk+2g+k+1)(h+j)+h−z)2− (16(k+1)3(k+2)(n+1)2 +1−f2)2 −(2n+p+q+z−e)2− (e3(e+2)(a+1)2 +1−o2)2 −((a2 −1)y2 +1−x2)2− (16r2y4(a2 −1)+1−u2)2 −(n+l +v −y)2− ((a2−1)l2 +1−m2)2 −(ai +k +1−l −i)2− (((a+u2(u2 −a))2 −1)(n+4dy)2+1−(x +cu)2)2− (p+l(a−n−1)+b(2an+2a−n2 −2n−2)−m)2− (q+y(a−p−1)+s(2ap+2a−p2 −2p−2)−x)2− (z+pl(a−p)+t(2ap−p2−1)−pm)2)é exatamente o conjunto dos números primos!
  • 36. Problema Decidível™  Em 1930, (embora publicado apenas em 1948), o lógico polonês Alfred Tarski demonstrou que: Existe um algoritmo para testar a solubilidade, nos reais, de sistemas de equações polinomiais com coeficientes inteiros.
  • 37. Problema Indecidível (Turing)™  Turing mostrou que o problema de se determinar se uma dada máquina de Turing pára ou não quando roda sobre uma dada entrada é indecidível.™  Esse ficou conhecido como o Problema da Parada.™  Trata-se de um problema matemático de decisão, que não tem solução, daí o Entscheidungsproblem, que é o caso mais geral, também não tem solução
  • 38. Referencial para outros Problemas™  Várias outras demonstrações de indecibilidade, inclusive a de Emil Post (1946) com relação ao problema da correspondência, passaram a utilizar como referencial o Problema da Parada:se esse problema for decidível então o Problema daParada também o é, portanto ele não pode ser decidível.
  • 39. Problemas Indecidíveis na Computação1.  Determinar se dois programas são equivalentes.2.  Determinar se uma gramática livre-do-contexto é ambígüa.3.  Determinar se duas gramáticas livres-do-contexto são equivalentes.4.  Determinar se duas expressões do λ-cálculo são equivalentes.5.  Determinar se uma dada expressão do λ-cálculo tem forma normal.
  • 40. Problemas Indecidíveis da MatemáticaCombinatória: ladrilhamento, desigualdades lineares entre densidades dehomomorfismo de grafosSemigrupos de matrizes: problema da mortalidade de matrizes, problema dapalavraTopologia: problema do homeomorfismo, detecção de variedadeTeoria dos números: problema de decisão para a teoria de 1a. ordem dosracionaisAnálise: existência de soluções para equações diferenciais algébricasSistemas dinâmicos: ponto vai para a origem em tempo finito? problemaCollatz generalizadoProbabilidade: estabilidade de caminhadas aleatóriasGeometria algébrica: existência de seções racionais
  • 41. A Noção de Oráculo™  Em 1939, com o objetivo de introduzir o conceito de máquina de Turing não-determinística, Turing define a noção de máquina oráculo, que permitiu a classificação de problemas em termos de computabilidade relativa.™  O grau de Turing ou grau de insolubilidade de um conjunto de números naturais mede o nível de insolubilidade do conjunto.
  • 42. Custo Computacional™  Dentre os modelos matemáticos do conceito de algoritmo, a máquina de Turing tem servido de referencial teórico para a classificação de algoritmos e problemas segundo os respectivos requisitos de recursos necessários: 1.  Tempo: medido pelo número de passos de computação 2.  Espaço: medido pelo número de células da fita de trabalho utilizadas
  • 43. Solubilidade na PráticaClasses de Complexidade de Problemas Computacionais:1.  P: problemas solúveis por uma máquina de Turing determinística de tempo polinomial2.  NP: problemas solúveis por uma máquina de Turing não-determinística de tempo polinomial (ou conferíveis por uma máquina de Turing determinística de tempo polinomial).
  • 44. Legado na Criptografia Moderna1.  Definição de: função unidirecional, função pseudoaleatória, indistinguibilidade2.  Definição da noção de experimento, permitindo a definição matemática de: ™  sigilo computacional, resistência à colisão, inforjabilidade existencial3.  Provas de segurança relativa (por redução)
  • 45. Legado na Inteligência Artificial™  Em 1950, Turing procura uma resposta científica à pergunta: Máquinas podem pensar?™  Jogo da Imitação: humano conversando, por meio de terminal, com uma máquina e um humano, sem saber quem é a máquina, pretende distinguí-los, podendo fazer qualquer tipo de pergunta a cada um deles, cuja resposta pode ou não ser verdadeira.
  • 46. Distinguir uma Máquina de um Humano™  A resposta à pergunta se a máquina pode pensar será respondida na afirmativa se ela puder imitar um ser humano nas suas respostas. Aplicação nos dias de hoje: Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA)™  Teste de desafio cognitivo, utilizado como ferramenta anti-spam, desenvolvido pioneiramente na Universidade Carnegie-Mellon (Luis von Ahn).
  • 47. Teste de Turing Reverso
  • 48. Humanos seriam Máquinas?™  Turing substitui a pergunta “Máquinas pensam?” por “Máquinas podem fazer o que nós (como entidades pensantes) podemos fazer?”™  A vantagem, segundo Turing, é que delimita “razoavelmente bem as capacidades físicas das capacidades intelectuais de um ser humano.”
  • 49. Jogo da Imitação™  “Turing especulou que até o ano de 2000, “um interrogador médio não terá mais do que 70 por cento de chance de fazer a identificação correta” – ou seja, computadores enganariam os juízes 30 por cento das vezes.”™  “Por anos, sua previsão não se materializou, visto que os sistemas de software não conseguiram se equiparar em inteligência com seus interrogadores humanos.” (Dan Falk, The Guardian, 21 Ago 2012)
  • 50. “Turing test marathon” (23 Junho 2012)™  Organizada pela University of Reading como parte das comemorações centenárias do nascimento de Turing– e realizada, apropriadamente, no Bletchley Park em Buckinghamshire, onde ele desempenhou um papel fundamental na quebra do código da Enigma como parte dos esforços de quebra de códigos das Forças Aliadas.™  30 juízes conversando eletronicamente com 25 “humanos escondidos” (abrigados numa sala adjacente) e cinco “chatbots” sofisticados – programas de computador projetados para imitar a inteligência e a capacidade humanas de conversar.
  • 51. Maratona de Teste de Turing™  Algo como 150 conversações separadas foram realizadas.™  O programa vencedor, desenvolvido por uma equipe russa, se chamava “Eugene”.™  Tentando emular a personalidade de um garoto de 13- anos de idade, Eugene enganou os juízes 29,2 por cento do tempo, uma margem minimamente inferior ao limiar de 30 por cento de Turing.
  • 52. Turing sobre Consciência™  “Não quero dar a impressão de que eu acho que não existe mistério em torno da consciência.”™  “Há, por exemplo, algo de um paradoxo relacionado a qualquer tentativa de localizá-la.”™  “Mas não acho que esses mistérios necessariamente precisam de ser resolvidos antes que possamos responder à questão com a qual estamos preocupados neste artigo.”
  • 53. A Quarta Revolução Tecnológica™  Nicolau Copérnico: não estamos no centro do universo™  Charles Darwin: não somos animais superiores e totalmente desconectados dos outros animais™  Sigmund Freud: não somos seres totalmente racionais™  Alan Turing: não somos seres autônomos, mas sim inforganismos (segundo Luciano Floridi, Filosofia da Informação), Ou: não somos ilimitados no plano das idéias
  • 54. The Philosophy of Information, Luciano Floridi (2011)
  • 55. Referências Bibliográficas™  Turing, A.M. (1936). “On Computable Numbers, with an Application to the Entscheidungsproblem”. Proceedings of the London Mathematical Society 2 42: 230–65. 1937.™  Turing, A.M. (1950). “Computing Machinery and Intelligence”. Mind LIX (236): 433–460.™  Macintyre, A. (2011). “Undecidable and Decidable Problems in Mathematics: A survey and some reflections, for the centenary of Turing’s birth”. Talk given Tuesday, 17 May 2011 - 6:00pm, Barnard’s Inn Hall, Gresham College, London, UK.