1 / 52

Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ

Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ. Teoria da Computação e Fundamentação da Matemática : Um pouco de história. Qual a relação entre a Lógica e a Computação ?. - O que é a (Teoria da) Computação ?. (Tentativa de) conceituação do Computável.

whitley
Download Presentation

Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Teoria da Computação e Fundamentação da Matemática : Um pouco de história

  2. Qual a relação entre a Lógica e a Computação ? - O que é a (Teoria da) Computação ? (Tentativa de) conceituação do Computável - O que é Lógica ? (Tentativa de) conceituação do Razoável

  3. Máquina de Raciocinar (Leibniz 1667)  Máquina de Calcular de Pascal (Pascal sec.XVII) Antes de 1900 d.c ====>  Máquina de Babbage (Ch. Babbage sec. XIX)  Computável Toda tarefa que pode ser realizada por um ser burro com um mínimo de conhecimento/capacidade. burro = Incapaz de Aprender conhecimento = ? . .

  4. Lógica Aristotélica e Escolástica (a partir de 300 a.c.)  Álgebras Booleanas (Boole 1847) Antes de 1879 ====>   Álgebra Relacional (DeMorgan, Schroeder, C.S.Peirce XIX) Razoável Todo evento que é passível de uma explicação, na forma argumentativa, construída sobre fatos iniciais inquestionáveis.

  5. Necessidade de teoria mais abrangente e abstrata Panorama da Matemática no Século XIX - Problemas da Física Matemática (Sec. XVIII-XIX): - Equação da Onda - Equação do Calor - Equação de Poisson - Técnicas de Fourier - Séries Infinitas são usadas na solução de Eq. Dif. Parciais - Problemas de Fundamentação: - Séries divergentes x Séries Convergentes - Conceito de infinito não era preciso - Conceito de função não era preciso - O próprio conceito de número real não era preciso. - Definição de convergência não existia

  6. Panorama da Matemática no Século XIX (cont.) Dedekind (1831-1916) Estabelece o princípio de indução e define conceito de número real Aritmetização da Análise, definição dos conceitos de limite, funções e funções contínuas, convergência de sequências e séries infinitas Cauchy (1789-1857) Bolzano(1781-1848) Definição do conceito de integral e Teorema Fundamental do Cálculo. Geometrias Não-Euclidianas Riemman(1826-1866) Peano (em 1889) Define os axiomas da aritmética Weierstrass (1815-1897) Estabelece critérios para a diferenciação e integração, termo a termo, de séries infinitas Hilbert (em 1898-1899) Estabelece a fundamentação da geometria

  7. Os paradoxos: - Burali-Forti (1897) “Não há o ordinal de todos os ordinais” - Russell (1902) “Não há o conjunto de todos os conjuntos” Teoria Ingênua dos Conjuntos Bolzano concebe a noção (abstrata) de conjuntos (finitos e infinitos) Cantor (de 1867 a 1871) define a teoria de conjuntos e prova a existência de conjuntos infinitos com cardinalidades diferentes. Conceitos de números cardinais e ordinais transfinitos. Resistência aos principais resultados em função do “receio do infinito” R  R se e somente se R  R R = { x / x  x} ==>

  8. Evolução da Lógica como assunto matemático DeMorgan (1830) Observa que a álgebra não necessita lidar tão somente com conceitos numéricos. Boole (1854) Descreve uma álgebra a partir de operações entre conjuntos e relações lógicas, confirmando DeMorgan. Frege (1879) estabele a lógica como um sistema formal que tem sua linguagem particular e distinta da natural. O conceito de prova matemática passa a ser formal. Frege (1884) busca a fundamentação da aritmética em bases puramente lógicas , com a adição do conceito de pertinência () como primitivo. ===> Os paradoxos aparecem novamente !! ===> Paradoxos associados ao axioma da escolha

  9. As 3 Abordagens para a Fundamentação da Matemática Logicismo (Frege) - Toda a Matemática é consequência de princípios puramente lógicos. Formalismo (Hilbert) - A Matemática é fundamentada por sistemas formais cujo único requisito é a consistência Intuicionismo (Brouwer) - A Matemática é uma atividade humana funda- mentada em processos construtivos, sendo assim todo objeto matemático tem sua existência expressa por construção.

  10. O Programa de Hilbert => Obtenção de uma prova da consistência da matemática, observando-se que: - As teorias mais complexas são extensões das mais simples. Th(N)  Th(Z)  Th(Q)  Th(R)  Th(C) - Tais extensões são, na sua maior parte, obtidas por operações básicas (classes de equivalência, completamento por simetria, por compactação, completamento algébrico, etc) => Prova da consistência da Aritmética ( Th(N)) com o uso de técnicas finitárias. => Provar que não existe prova de 0 = 1 usando ............

  11. Principais Resultados em Lógica/Metamatemática no início do século XX - Teoria dos Tipos como solução ao paradoxo em Russell - Russell e Whitehead publicam o Principia Mathematica. - Presburger (1929) prova que a aritmética sem a multiplicação é decidível. - Skolem (1931) prova que a aritmética sem a adição e o sucessor é decidível - Herbrand (1931) prova a consistência de um fragmento fraco da aritmética (só o sucessor). -Tarski (1930) formaliza a semântica adequada para a lógica de primeira ordem - Gödel (1930) prova a completude do cálculo de primeira ordem - Gödel (1931) introduz a idéia de aritmetizar (codificar na forma numérica) a linguagem de um sistema formal de forma que (meta) teoremas do sistema possam ser vistos como teoremas aritméticos e prova seu famoso teorema da incompletude. Obs: # é o código de . - Gödel (1931) prova a não-provabilidade da consistência.

  12. Paradoxo do mentiroso: “Eu estou mentindo” Lema da diagonal (Gödel/Tarski): ( Th(N)  T) x1 é a única variável livre em  e (t) indica sua substituição por t T |- diagx1(#,#()) se e somente se Seja (x1) uma fórmula com somente x1 livre, então existe  tal que T |-  (#) Teorema de Gödel: Qualquer axiomatização de Th(N) onde seja possível aritmetizar o conceito de prova é incompleta. Prova: Seja   Th(N) e uma fórmula Pr(x,y) tal que  |- Pr(#, # ) se e somente se  é uma prova com axiomas  de . Aplique o lema da diagonal a p Pr(p,x1) Os Teoremas de Gödel Pr Teorema de Tarksi: Não existe uma fórmula Verd(x1) em T capaz de definir a verdade aritmética, isto é, T |- Verd(#) se e somente se  é verdadeira na aritmética. Segundo Teorema de Gödel: Seja  uma axiomatização como acima, então a fórmula p Pr(p,#(0=1)) não é demonstrável a partir de 

  13. Codificando Pr em uma definição recursiva Prova Axiomas formada por Premissas conclusão Regras de Inferência são formada por Sentenças conectivos/ Átomos quantificadores Sentenças Compostas

  14. Leitura computacional do teorema de Gödel · Todas as funções computáveis são representáveis em [N, <, 0, suc, +, *]. · Toda computação pode ser expressa em forma de Dedução a partir de um conjunto de axiomas (GA) que defina as operações aritméticas básicas. Þ Gödel define o conceito de função primitivamente recursiva e relaciona com aquelas que são representáveis em aritmética.

  15. · G Í Th( [N, <, 0, suc, +, *]) · diag é computável. · Como GA é r.c. então Ded é computável Þ Ded é representável em Cn(GA). Qualquer axiomatização r.c. GA para [N, <, 0, suc, +, * ] é incompleta, i.e, Cn(G) é incompleta. Þ ß Existem funções não computáveis

  16. Seja T = fórmulas válidas T ser r.c Cn(T È G) é r.c. fórmula b repr. f em Cn(TÈ GA) função f computável que reconhece Cn(TÈ G) Diag. sobre ~b a « ~b(#a) Î Cn(TÈ GA) Contradição

  17. A Computação do ponto de vista das funções prim. recursivas Prog. Lógica, Prolog 1931 - Gödel define as funções prim. recursivas associando-as a provas em aritmética 1927/1928 - Ackermann define uma função que necessita de recursão simultânea 1934 - Rózsa Péter - Prova que as funções prim. recursivas formam a classe definida por recursão simples e “nested” a partir de funções iniciais constantes, identidade e a função sucessor. Prova que a função de Ackermann é na realidade definida por recursão em duas variáveis e não é portanto primitivamente recursiva, mas é computável. 1936 - A. Turing - Define uma máquina formal a partir de princípios simples (ler , apagar e escrever símbolos em uma fita) e define o conceito de Máquina Universal. Prova que não existe máquina capaz de verificar se outra máquina pára ou não. Desde o início a sua máquina com versão Não-Determinística Máq. Programável 1936 - A. Church Define o -Calculus e mostra que este é capaz de definir todas as funções para as quais existe uma Máquina de Turing. LISP e Funcionais 1938 - Kleene Define, aceitando que o computável inclui a parcialidade funcional, as funções parcialmente recursivas e lança a Tese de Church. 1954 - Markov Estabele o conceito de computável com base em identificação de palavras e símbolos (algoritmos de Markov) e justifica o ponto de vista finitista da computação. SNOBOL, Ling. Transf.

  18. n n f é recursiva existe uma máquina de Turing M , tal que M com 11.......111 na fita de entrada M pára com 11.....11111 na saída sss f(n) = m existe um algoritmo de Markov A , t.q. A lendo 11.......111 pára e produz o string 11.....11111 na saída sss f(n) = m m m Sxyz  (xy)xz Kxy  x Ix  x (I SKK) :0:  I :1:  P0K :2:  P1K ..... :n:  P:n-1:K .... P  Tese de Church: f: N  N é computável se e somente se existe um combinador FC1 C2... Cn tal que para todo nN (F:n:  :m:)  f(n) = m)

  19. A Tese de Church é um enunciado científico, portanto não possui demonstração matemática. Evidência Forte para a Tese de Church Teorema de Rogers (1958): Sejam duas FAA’s (i)iN e (i)iN então existe f recursiva tal que i = f(i) Obs: Uma FAA é um conjunto de funções parciais (i)iN, tal que: 1- As funções parc. recursivas estão todas em (i)iN 2- Existe u N com u parc. recursiva tal que para todo i e x u(i,x) = i(x) 3- Existe c recursiva tal que c(i,j) = i  j

  20. A Tecnologia e a Construção do Computador 1890-1900: Hollerith cria o cartão perfurado e o utiliza na sua máquina eletromecânica de processamento de dados (Censo de 1890). Criação da perfuradora de cartões (usada até fins dos anos 70 do século XX). 1900-1919: Invenção do diodo a vácuo (rádio-com)- Flemming, Invenção do tríodo (válvula eletrônica)- De Forest, Invenção do CRT- Swinton, descoberta da supercondutividade- Onnes, descoberta da semicondutividade (germânio) -Benedicts, invenção do FLIP-FLOP (unid. armazenamento de 1 bit)- Jordan 1925 : Primeiro computador analógico é construído para resolver equações dif. Bush 1931 : Konrad Zuse constrói a primeira calculadora elétrica digital Z1. 1937 : Claude Shannon aplica lógica booleana a circuitos de chaveamento. Primeiro somador em base binária (Dissert. Mestrado em matemática). G. Stibitz desenvolve o somador usando relés elétricos (na Bell Labs). 1937 : Zuse define o circuito para o teste de igualdade entre números binários. 1938 : Zuse constrói a Z2 que refina a Z1 com aritmética binária em relés. É o primeiro computador eletromecânico

  21. Não Armazenam Programas 1941 : Primeiro computador eletrônico (não-programável) , o ABC, Clifford & Berry 1941 : Zuse desenvolve o Z3, primeira máquina controlada por programa. Memória de 64 palavras e 3 sec por multiplicação. 1942 : John Mauchly introduz a válvula eletrônica como substituta do relé. 1942 : Computador Britânico Collossus (quebra do código alemão ??) 1943 : Computador Mark I na IBM 1943 : ENIAC (Eletronic Numeric Integrator and Computer) (30 ton e 18000 válvulas). 1944 : Visita de John von Neuman às instalações do ENIAC. Após esta visita é iniciado o projeto do EDVAC (computador com programa armazenado). 1945 : Um inseto (bug) nos contatos de um relé do Mark II é descoberto ser a causa de seu mal funcionamento.

  22. 1947 : Invenção do Transistor (Bardeen, Brattain & Schokcley). 1947 : Início da construção do EDSAC em Cambridge. 1948 : Introduzido o uso de disco magnético como memória secundária. 1948 : Mark I passa a ser o primeiro computador digital com armazenamento de programas. Limitado porém. 1949 : Primeiro computador pleno com armazenamento de programas (EDSAC) 1950 : Zuse instala o Z4 na universidade de Zurique. 1951 : Primeiro UNIVAC é vendido ao departamento de demografia americano. Pesava cerca de 20 tons e realizava 1000 operações por segundo. 1951 : Primeiro computador americano com arm. de programa EDVAC finalizado e operacional (Univ. Pensilvânia). O conceito de microprogramação é introd. 1954 : UNIVAC equipado com memória de núcleo de ferrite. Em 1955 UNIVAC com transistores no lugar das válvulas.

  23. 1956 : FORTRAN é desenvolvido por J. Backus na IBM. 1957 é o ano do primeiro compilador comercial da linguagem. 1958 : John McCarthy desenvolve LISP. ALGOL 58 é desenvolvido pela equipe de Backus. 1959 : Desenvolvimento de FLIP-FLOP em circuitos integrados. 1959 : PDP-1 desenvolvido pela Digital. 4k de RAM, palavras de 18 bits, fita de papel e CRT. 1960-1962 : Desenvolvido o princípio de comunicação por pacotes de dados, P. Baran. 1960 : COBOL é distribuído para instalações comerciais. Consórcio Americano- Europeu especifica o padrão ALGOL 60. 1963 : Programa ELIZA escrito por J. Weinzenbaum (MIT). 1961 : Conceito de “time-sharing”, multiusuário e multiprogramação são introd. 1960-1964 : Computadores IBM pós série 700: s. 1400, 7090, projeto do System/360 1964 : Linguagem BASIC (Beginners All Purpose Language), PL/I (IBM)

  24. 1964-1965 : PDP-8 (Digital) é o primeiro mini-computador. 1965 : Projeto Multics (MIT). Linguagem APL (IBM). 1967 : SIMULA-67, primeira linguagem orientada a objeto (Nyygard) 1967 : Primeiro artigo sobre uma rede integrada de computadores (Arpanet) 1967 : Desenvolvimento de PASCAL (N. Wirth). 1968 : Programação Estruturada (goto’s are out) , Dijkstra. 1968 : Primeiro computador feito somente com circuitos integrados (B2500 e B3500) 1969 : Primeira rede não local operacional UCLA, UC Santa Barbara, SRI, U. Utah. 1969 : Padrão RS-232 de comunicação com periféricos. 1970 : UNIX. Linguagem C em 1967. 1971 : Primeiro microprocessador 4004 (4 bits), F. Fagin (Intel). 8008 (1972)

  25. Duas exceções e outros desenvolvimentos: 1970 : Codd define o modelo relacional e sua álgebra, enquadrando BD em uma abordagem com fundamentação matemática e formal. 1960-1970 : Desenvolvimento da teoria de linguagens formais (Chomsky) coloca a área de implementação de linguagens de programação em bases mat. e formais (YACC e etc). 1978- : Uso de álgebra e lógica em modelos de concorrência e de desenvolvimento de software. Introdução do conceito de prova de correção de programa, validação de modelos, etc....... E a história se repete........................ 1968 : Conferência Internacional (NATO conf. on Prog) discute a crise do software e cunha o termo “Engenharia de Software”.

  26. A Ciência da Computação Hoje : NP = P ? (Cook 1970) P : Encontra solução em tempo polinomial NP : Verifica solução em tempo polinomial CoNP : Verifica que não é solução, em tempo polinomial Taut  CoNP Sat  NP Verificação de Modelos Prova de Teoremas Obs: Se CoNP  NP então NP  P

  27. Def. Seja C uma classe de problemas (linguagens). Diz-se que um problema (ling.) P é C-completo (a) se e somente se todo problema (ling) de C é redutível a P. Isto é resolver P é tão difícil quanto resolver qualquer outro problema em C. Exemplos: - Saber se um programa pára (via outro programa) é Rec-Completo, onde Rec é o conjunto dos problemas (ling) recursivos. - Saber se dado uma solução para um problema esta é verificável em tempo polinomial é tão difícil quanto decidir se uma sentença da lógica proposicional é “verdadeira”. Sat é NP-completa.

  28. Como SAT é NP-Completo então Taut é CoNP-Completo ===> Se existe um sistema dedutivo onde todas as provas tem tamanho polinomial em função do tamanho da conclusão, então CoNP = NP. Senão existe tal sistema então CoNP  NP e portanto NP  P. ===> P = NP é um problema genuinamente matemático. ===> P = NP é um problema genuinamente de ciência da computação. ===> P = NP é um problema genuinamente de fundamentação e lógica. - Já se tentou técnicas de construção de modelos via “forcing” (funcionou com a hipótese generalizada do continum) mas a crença geral é que não funciona. - Técnicas de diagonalização e relativização (tradição lógico-matemática) tem sido extensivamente usadas no estudo de questões relacionadas a NP=P.

  29. conjectura-se que isograph está em NPI Alguns Fatos Importantes : Fato 1: Se PNP então NP-NPC  . Prova: Diagonalização Fato 2: Existe um oráculo B tal que PB = NPB Prova: NPSPACE=PSPACE e B um problema NPSPACE completo Fato 3: Existe um oráculo C tal que PC NPC Prova: Diagonalização

  30. Lema: Sejam C1 e C2 duas classes de Linguagens, tais que : 1- C1 e C2 são construtivamente enumeráveis 2- C1 e C2 são fechadas para variação finita 3-Existe L1 C1 e L2  C2 nestas condições existe L, tal que: L  C1  C2 Prova: Diagonalização Teorema: Se PNP, então Sat  P e   NPC então existe L  P  NPC

  31. Teorema do Razborov (1985-1989) Fato: Se L  P então existe uma família de circuitos booleanos (Cn)nN e um polinômio p(x) tal que Ln é aceita por Cn e | Cn |  p(n). Corolário: Se existe L tal que toda família de circuitos para Ln não é limitada por polinômio então NP  P. Teorema (Razborov): Circuitos monotônicos para CLIQUEn,k quando k = 4n tem cota inferior : Indício de que NP  P Obs: A prova do teorema de Razborov usa a técnica de ultraprodutos introduzida em 1938 por Lós para provar a compacidade da lógica de primeira ordem

  32. Lembretes: Computação  (Matemática/Lógica)  Computação Tecnologia não é a essência da Ciência da Computação Engenharia = Conjunto de Técnicas  Ciência

  33. O que são técnicas finitárias ??? (visão a posteriori) - Operações efetivas sobre objetos concretos Objetos concretos: |, ||, |||, ||||, ||||||, .... ,  ,   ,    , ........ Operações efetivas: ???????? juntar símbolos apagar símbolos escrever símbolos reconhecer um símbolo

  34. Consistência Def. Uma Teoria é consistente se não sustenta fatos falsos. Def. Uma Teoria é consistente se não prova fatos falsos. Def. Uma Teoria é consistente se não prova todos os fatos. Def. Uma Teoria é consistente se não prova algum absurdo.

  35. Equação da onda u ut(x,0)= g(x) e u(x,0)= f(x) u(x,t) = F(x+ct)+G(x-ct) D’Alembert 1747 + Euler 1748 Daniel Bernouli 1753 x t u(x,t) = 2 0  (sinnysinnxcosnct)f(y)dy + 2 0 (1/n)  (sinnysinnxsinnct)g(y)dy Lagrange 1759

  36. Equação do calor u(0,t) = u(L,t) = 0 u(x,0) = f(x) L Fourier 1811  2 2 2 u(x,t) =  cne-n  Kt/L sin(nx/L) ==> Toda “função” tem expansão em série de senos ????? n=1  f(x) =  cnsin(nx/L) Dirichlet (1829,1837) + Fund. Análise (Bolzano, Cauchy, Weierstrass) + Riemann (def. integral, 1900’s) n=1 L cn= (2/L)  f(x) sin(nx/L)dx 0

  37. C x + 3 = 9 1 + aC = C x = 6 C(1-a) = 1 C = 1/(1-a) Resolvendo equações Manipulação com séries infinitas (I) :

  38. Diferenciação de uma série (termo a termo) dx Integração de uma série (termo a termo)

  39. Geometrias Não-Euclidianas Hiperbólica Bolyai-Lobachevsky 1820 Plana Euclides 400’s Elíptica Riemman 1800’s Axiomas de Euclides 1. Para cada par de pontos P1 e P2 com P1  P2 existe uma única reta que incide em ambos. 2. Para todos segmentos AB e CD existe um ponto E t.q. E está entre A e B e CDBE 3. Para todo par de pontos O e A com O  A existe um única circ. com centro O e raio OA 4. Todos os ângulos retos são congruentes 5. Dados uma reta R e um ponto A fora desta, existe uma única R’ paralela e R e incidente em A.

  40. a0= 0, aoo ao1 ao2 ao3 ao4....... aon.............. a1= 0, a1o a11 a12 a13 a14....... a1n.............. 5 se ajj = 9 bj= 9 senão an= 0, ano an1 an2 an3 an4....... ann.............. O método da diagonal de Cantor suponha que |(0,1)| = |N| b = 0,b0 b1 b2 b3 b4....... bn......... |(0,1)|  |N|

  41. {A / A  B} ==> Seja B um conjunto, então |B| < |2B| Teorema de Cantor Prova: Suponha que |B| = |2B| então existe f: B 2B S = { x / x  f(x) } f-1(S)  S se e somente se f-1(S)  S Paradoxo do Barbeiro: Em uma cidade existe um barbeiro que faz a barba de todos os homens que não barbeiam a sí próprios e somente estes.

  42. T |-  (#) Seja t = #(x2(diagx1(x1,x2)  (x2))) então  será x2(diagx1(t,x2)  (x2))) x2(substx1(t,x2)  (x2)))  (diagx1(t, #)  (#)) T |-   (#)  T |- diagx1(t, #) (#) T |- (x2) diagx1(t,x2) T |- x2= # diagx1(t,x2) (x2) T |- T |- diagx1(t, #) x2 (diagx1(t,x2) (x2)) T |-

  43. Não provabilidade da consistência em Cn(G) · a « ~Pr(#a) Î Cn(G) [Diag] · se a Î Cn(G) então Provavel(#a) Î Cn(G) Þ Cn(G) é inconsistente. Þ se Cn(G) é consistente então a Ï Cn(G). ~Provavel(#a) Î Cn(G) ~Provavel(#(0=1)) Î Cn(G) a Î Cn(G) Þ Portanto se ~Provavel(#(0=1)) Î Cn(G) então Cn(G) é inconsistente

  44. C = n(v) n N -1 -1(v) Paradoxos associados ao Axioma da Escolha S  = Rotação de 1/10 de radiano v S  C -1(S  C) S  C  -1(v) =

More Related