Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Teoria da Computação e...

52
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

Transcript of Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Teoria da Computação e...

Page 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.

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

Page 2: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

2

Qual a relação entre a Lógica e a Computação ?

- O que é a (Teoria da) Computação ?

- O que é Lógica ?

(Tentativa de) conceituação do Computável

(Tentativa de) conceituação do Razoável

Page 3: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

3

Computável

Toda tarefa que pode ser realizada por um ser burro com um mínimode conhecimento/capacidade.

burro = Incapaz de Aprender

conhecimento = ?

Antes de 1900 d.c ====> Máquina de Raciocinar (Leibniz 1667)Máquina de Calcular de Pascal (Pascal sec.XVII)Máquina de Babbage (Ch. Babbage sec. XIX)

.

.

Page 4: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

4

Razoável

Todo evento que é passível de uma explicação, na forma argumentativa,construída sobre fatos iniciais inquestionáveis.

Antes de 1879 ====>

Lógica Aristotélica e Escolástica (a partir de 300 a.c.)

Álgebras Booleanas (Boole 1847)

Álgebra Relacional (DeMorgan, Schroeder, C.S.Peirce XIX)

Page 5: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

5

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

- O próprio conceito de número real não era preciso.

- Definição de convergência não existia

- Conceito de função não era preciso

Necessidade de teoria mais abrangente e abstrata

Page 6: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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

Cauchy (1789-1857) Bolzano(1781-1848)

Weierstrass (1815-1897)

Riemman(1826-1866)

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

Definição do conceito de integral e Teorema Fundamental do Cálculo. Geometrias Não-Euclidianas

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

Peano (em 1889) Define os axiomas da aritmética

Page 7: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

7

Teoria Ingênua dos Conjuntos

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.

Bolzano concebe a noção (abstrata) de conjuntos (finitos e infinitos)

Resistência aos principais resultados em função do “receio do infinito”

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”

R = { x / x x} ==> R R se e somente se R R

Page 8: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

8

Evolução da Lógica como assunto matemático

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 !!

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.

===> Paradoxos associados ao axioma da escolha

Page 9: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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.

Page 10: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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.

- Tais extensões são, na sua maior parte, obtidas por operações básicas (classes de equivalência, completamento por simetria, porcompactação, completamento algébrico, etc)

Th(N) Th(Z) Th(Q) Th(R) Th(C)

=> 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 ............

Page 11: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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

- Presburger (1929) prova que a aritmética sem a multiplicação é decidível.

- Russell e Whitehead publicam o Principia Mathematica.

- 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.

Page 12: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

12

Os Teoremas de Gödel

Lema da diagonal (Gödel/Tarski): ( Th(N) T)

T |- diagx1(#,#()) se e somente se x1 é a única variável livre em e (t) indica suasubstituição por t

Seja (x1) uma fórmula com somente x1 livre, então existe tal que T |- (#)

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.

Paradoxo do mentiroso: “Eu estou mentindo”

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)

Segundo Teorema de Gödel: Seja uma axiomatização como acima, então a fórmulap Pr(p,#(0=1)) não é demonstrável a partir de

Pr

Page 13: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

13

Codificando Pr em uma definição recursiva

Prova

formada por

Regras de Inferência formada por

Premissas conclusão

são

Sentenças

Átomosconectivos/ quantificadores

Sentenças Compostas

Axiomas

Page 14: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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 (A) 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.

Page 15: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

15

h( [N, <, 0, suc, +,

*]) diag é computável.

Como é r.c. então Ded é computável

Ded é representável em Cn().

Qualquer axiomatização r.c. para [N, <, 0, suc, +, * ] é incompleta, i.e,Cn() é incompleta.

Existem funções não computáveis

Page 16: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

16

Seja T = fórmulas válidas

T ser r.c

fórmula repr. f em Cn(T)

Cn(T ) é r.c.

função f computável que reconhece Cn(T)

Diag. sobre ~

~(#) Cn(T)

Contradição

Page 17: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

17

A Computação do ponto de vista das funções prim. recursivas

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

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.

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.

Page 18: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

18

Sxyz (xy)xz Kxy x Ix x (I SKK)

Tese de Church: f: N N é computável se e somente se existe um combinador FC1 C2... Cn tal que para todo nN (F:n: :m:) f(n) = m)

:0: I :1: P0K :2: P1K ..... :n: P:n-1:K ....

P

f é recursiva

existe uma máquina de Turing M , tal que M com 11.......111na fita de entrada M pára com 11.....11111 na saída sss f(n) = m

m

n

existe um algoritmo de Markov A , t.q. A lendo 11.......111pára e produz o string 11.....11111 na saída sss f(n) = m

m

n

Page 19: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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)iN e (i)iN então existe f recursiva tal que i = f(i)

Obs: Uma FAA é um conjunto de funções parciais (i)iN, tal que: 1- As funções parc. recursivas estão todas em (i)iN

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

Page 20: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

20

A Tecnologia e a Construção do Computador1890-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

Page 21: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

21

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.

Page 22: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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.

Page 23: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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).

1960-1964 : Computadores IBM pós série 700: s. 1400, 7090, projeto do System/360

1961 : Conceito de “time-sharing”, multiusuário e multiprogramação são introd.

1964 : Linguagem BASIC (Beginners All Purpose Language), PL/I (IBM)

Page 24: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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)

Page 25: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

25

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”.

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.......

Page 26: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

26

P : Encontra solução em tempo polinomial

NP : Verifica solução em tempo polinomial

CoNP : Verifica que não é solução, em tempo polinomial

Sat NP Taut CoNP

Obs: Se CoNP NP então NP P

Verificação de Modelos Prova de Teoremas

A Ciência da Computação Hoje : NP = P ? (Cook 1970)

Page 27: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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.

- Saber se um programa pára (via outro programa) é Rec-Completo, onde Rec é o conjunto dos problemas (ling) recursivos.

Exemplos:

- 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.

Page 28: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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.

- 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.

===> 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.

- 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.

Page 29: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

29

Alguns Fatos Importantes :

Fato 1: Se PNP então NP-NPC .

Fato 2: Existe um oráculo B tal que PB = NPB

Fato 3: Existe um oráculo C tal que PC NPC

Prova: Diagonalização

Prova: NPSPACE=PSPACE e B um problema NPSPACE completo

Prova: Diagonalização

conjectura-se que isograph está em NPI

Page 30: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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

Teorema: Se PNP, então Sat P e NPC então existe L P NPC

Prova: Diagonalização

Page 31: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

31

Teorema do Razborov (1985-1989)

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

Fato: Se L P então existe uma família de circuitos booleanos (Cn)nN 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 = 4n tem cota inferior :

82 ncO

Page 32: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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

Page 33: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

33

O que são técnicas finitárias ???

- Operações efetivas sobre objetos concretos

Objetos concretos: |, ||, |||, ||||, ||||||, .... , , , , ........

Operações efetivas: ????????

juntar símbolos apagar símbolosescrever símbolosreconhecer um símbolo

(visão a posteriori)

Page 34: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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.

Page 35: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

35

Daniel Bernouli 1753

u(x,t) = F(x+ct)+G(x-ct) D’Alembert 1747 + Euler 1748

u

x t

ut(x,0) = g(x) e u(x,0) = f(x)

u(x,t) = 2 0 (sinnysinnxcosnct)f(y)dy + 2 0 (1/n) (sinnysinnxsinnct)g(y)dy

Lagrange 1759

Equação da onda

Page 36: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

36

Equação do calor

u(0,t) = u(L,t) = 0

u(x,0) = f(x)

u(x,t) = cne-n Kt/L sin(nx/L)n=1

2 2 2

f(x) = cnsin(nx/L)n=1

cn= (2/L) f(x) sin(nx/L)dx0

L

Fourier 1811

==> Toda “função” tem expansãoem série de senos ?????

L

Dirichlet (1829,1837) +Fund. Análise (Bolzano, Cauchy, Weierstrass) + Riemann (def. integral,1900’s)

Page 37: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

37

3x + = 9

x = 6

Manipulação com séries infinitas (I) : Resolvendo equações

C

1 + aC = C

C(1-a) = 1

C = 1/(1-a)

Page 38: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

38

Diferenciação de uma série (termo a termo)

dx

Integração de uma série (termo a termo)

0k

kdxx

1k k

xk

Page 39: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

39

Geometrias Não-Euclidianas

HiperbólicaBolyai-Lobachevsky

1820

ElípticaRiemman

1800’s

PlanaEuclides

400’s

Axiomas de Euclides1. 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 CDBE3. Para todo par de pontos O e A com O A existe um única circ. com centro O e raio OA4. 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.

Page 40: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

40

O método da diagonal de Cantor

a0= 0, aoo ao1 ao2 ao3 ao4....... aon..............a1= 0, a1o a11 a12 a13 a14....... a1n..............

an= 0, ano an1 an2 an3 an4....... ann..............

suponha que |(0,1)| = |N|

b = 0,b0 b1 b2 b3 b4....... bn.........

bj=

5 se ajj = 9

9 senão

|(0,1)| |N|

Page 41: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

41

Teorema de Cantor

==> Seja B um conjunto, então |B| < |2B|

S = { x / x f(x) }

Prova: Suponha que |B| = |2B| então existe f: B 2B

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.

{A / A B}

Page 42: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

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 |- diagx1(t, #)

T |- (#)

(#)

diagx1(t,x2)

T |- diagx1(t, #)T |- x2= #

T |- (x2)

T |- diagx1(t,x2) (x2)

T |- x2 (diagx1(t,x2) (x2))

Page 43: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

43

Não provabilidade da consistência em Cn()

~Pr(#) Cn()

se Cn() então Provavel(#) Cn()

Cn() é inconsistente.

se Cn() é consistente então Cn().

~Provavel(#(0=1)) Cn() ~Provavel(#) Cn()

Cn()

[Diag]

Portanto se ~Provavel(#(0=1)) Cn() então

Cn() é inconsistente

Page 44: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

44

Page 45: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

45

Page 46: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

46

Page 47: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

47

Page 48: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

48

Page 49: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

49

Page 50: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

50

S

v

-1 (v)

S C

-1(S C)

-1

= Rotação de 1/10 de radiano

C = n(v)n N

S C -1(v) =

Paradoxos associados ao Axioma da Escolha

Page 51: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

51

Paradoxo de Banach-Tarski (1924) e Paradoxo de Hausdorf (1914)

Rotações e Translações

Divisão da esferaem 5 partes

(uso do axioma da escolha)

Page 52: 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.

Prof. Edward Hermann HaeuslerTECMF-DI-PUC-Rio

Teoria da Computação:e Fund. Matemática

52

Existência de um conjunto sem medida em Rn

- Medida como Comprimento, Área ou Volume (desde a Grécia antiga)

- Medida como associada a integral de Riemman

- Medida de Jordan (contempla somente conjuntos limitados) - 1890

- Medida de Lebesque generaliza a de Jordan e contempla conjuntos ilimitados incluindo os Riemman integráveis - 1902

- Vitali usa o axioma da escolha para mostrar a existência de um conjunto sem medida (1905)

- Solovay (1960’s) prova que substituindo-se o axioma da escolha pelo axioma da determinância (“Todo jogo infinito tem estratégia vencedora”) tem-se que todo subconjunto do Rn é mensurável.