Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas
Universidade Federal de Ouro Preto 10 de junho de 2016
Site da disciplina: I http://www.decom.ufop.br/marco/ Moodle: I www.decom.ufop.br/moodle Lista de e-mails: I [email protected]
Para solicitar acesso:
1 Problemas Intratáveis
Aviso!
Esta apresentação é uma introdução informal ao problema P vs. NP; Não há a intenção de ser totalmente preciso historicamente e tecnicamente; Este tópico será estudado com profundidade em diferentes disciplinas do curso de graduação;
Edsger Dijkstra,Prêmio Turing em 1972
“Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas.”
I Matemático, lógico e criptoanalista inglês
I Participação importante na II Guerra Mundial.
I Pai da Ciência da Computação
I Dedicou a via à teoria da computabilidade;
I Formalizou os conceitos de algoritmo e computabilidade;
I Aos 24 anos, criou a Máquina de Turing.
I Parte de sua vida foi retratada no filme “O Jogo da Imitação” de 2014.
I Hoje o Prêmio Turing equivale ao Nobel da Computação.
Máquina de Turing
A Máquina de Turing é um modelo de computador conceitual, abstrato, também chamada de Máquina Universal;
Realiza qualquer computação matemática que possa ser representada por um algoritmo;
Capaz de computar tudo que é computável;
Máquina de Turing vs. ENIAC
A primeira referência a uma máquina de Turing é de um artigo publicado em em1936;
O ENIAC foi o primeiro computador eletrônico de propósitos variados – anunciado em1946.
Máquina de Turing
Existem basicamente dois tipos de Máquinas de Turing:
I Máquina de Turing Determinística:
I Se ’A’, então faça ’B’.
I Máquina de Turing Não Determinística:
Computabilidade
Alan Turing, aos 24 anos, delineou a idéia de computabilidade.
Existe alguma coisa que não possa ser feita mecanicamente (ou seja, sem intuição ou inteligência)?
Utilizamos o conceito de problema computacional: Uma tarefa que deve ser realizada e resulta em uma solução;
A computabilidade de um problema é intimamente relacionada à existência de um algoritmo que o resolva.
Computabilidade
As Máquinas de Turing desempenham um papel fundamental na computabilidade; Um problema é solúvel se há uma Máquina de Turing para aquele problema; Em seu artigo original, Turing demonstra a existência de um problema insolúvel.
Computabilidade
A Computabilidade e a Teoria da Complexidade Computacional estudam os limites da computação:
I Quais problemas jamais poderão ser resolvidos por um computador, independente da sua velocidade ou memória?
I Quais problemas podem ser resolvidos por um computador, mas requerem um período tão extenso de tempo para completar a ponto de tornar a solução impraticável?
I Em que situações pode ser mais difícil resolver um problema do que verificar cada uma das soluções manualmente?
O Problema da Parada
”Dadas uma descrição de um programa e uma entrada finita, decida se o programa termina de rodar ou rodará indefinidamente, dada essa entrada.”
Instância 3-SAT (x ∨ x ∨ y ) ∧ (¬x ∨ ¬y ∨ ¬y ) ∧ (¬x ∨ y ∨ y ) reduzida ao problema de clique máximo.
Tib = tebibyte = equiparável ao terabyte
Petaflops = 1,000,000,000,000,000 flops
O Computador Mais Potente do Mundo I China National University of Defense
Technology ;
I Novembro de 2015 – sexta vez consecutiva;
I Performance de 33,86 Petaflops por segundo;
I Processadores Intel Xeon E5, Xeon Phi;
I 3.120.000 cores;
I Sistema Operacional Kylin Linux;
I Memória: 1.375 TiB;
I Armazenamento: 12,4 PB;
I Preço: US$ 390 milhões;
O Computador Mais Potente do Mundo
O Tianhe-2 é capaz de realizar ≈ 3,386×1013 = 33.860.000.000.000.000 operações básicas por segundo; I 10! = 3628800 ou 3,628800×106; I 100! = 9,332622×10157; I 150! = 5,713384×10262; I 175! = infinito... I 1000! = ???
Taxa de Crescimento de Funções
O Paradoxo de Hilbert
Considere um hotel hipotético, com um número infinito e contável de quartos, todos ocupados;
Intuitivamente, pensamos que o hotel não tem capacidade para acomodar novos hóspedes, como seria no caso de um hotel com um número finito de quartos; Existem diferentes métodos que mostram que o hotel pode comportar um número infinito de novos hóspedes.
O Paradoxo de Hilbert
Considere um hotel hipotético, com um número infinito e contável de quartos, todos ocupados;
Intuitivamente, pensamos que o hotel não tem capacidade para acomodar novos hóspedes, como seria no caso de um hotel com um número finito de quartos; Existem diferentes métodos que mostram que o hotel pode comportar um número infinito de novos hóspedes.
Hilbert e a Completude da Matemática (1900)
No Congresso Internacional de Matemática de Paris, em 1900, David Hilbert, imbuído das ideias correntes, apresentou um surpreendente trabalho resumindo as 23 questões ainda “em aberto”, as quais, após resolvidas, completariam todo o escopo da matemática.
O Primeiro Teorema de Gödel (1931)
“Qualquer teoria axiomática recursivamente enumerável e capaz de expressar algumas verdades básicas de aritmética não pode ser, ao mesmo tempo, completa e consistente. Ou seja, sempre há em uma teoria consistente proposições
Computabilidade
À medida em que resolvemos problemas maiores e mais complexos, com auxílio de maior poder computacional e algoritmos melhores, os problemas intratáveis se destacam;
A Teoria da Complexidade Computacional nos ajuda a compreender estas limitações
Deixa de ser uma questão teórica da computação para ser um princípio básico que permeia todas as ciências.
P
Suponhamos que temos um grande grupo de alunos e precisamos agrupá-los em duplapara um trabalho:
I Nem todos os alunos são compatíveis entre si;
I Tentar todas as possibilidades não é uma alternativa;
I Se o grupo tiver 40 alunos, temos mais do que 300 bilhões de trilhões de possíveis pares.
Em 1965, Jack Edmonds criou um algoritmo eficiente para resolver este problema e ajudou a definir o que é computação eficiente.
P
Computação eficiente passou a ser definida como a existência de um algoritmo que resolve um problema em tempo polinomial em relação ao tamanho da entrada; A classe de problemas para os quais há algoritmos eficientes passou a ser conhecida como classe P, de “Tempo Determinístico Polinomial”.
NP
Infelizmente, para muitos problemas parece não haver algoritmo eficiente:
I E se quisermos dividir os alunos em trios nos quais todos os pares de alunos são compatíveis (partição em triângulos)?
I E se quisermos achar o maior grupo de alunos tal que todos são compatíveis entre si (clique máximo)?
I E se quisermos sentar à mesa todos os alunos, de maneira que dois alunos incompatíveis não fiquem lado a lado (ciclo hamiltoniano)?
I E se quisermos dividir os alunos em trios, de forma que cada alunos estará sempre com outros dois incompatíveis (3 coloração)?
NP
Todos estes problemas possuem uma propriedade em comum:
I Dada uma solução qualquer (por exemplo, o mapa das cadeiras em uma mesa), é possível conferir a solução de maneira eficiente.
É como um quebra cabeça: verificar se está montado é mais fácil do que montar; O conjunto de problemas que possuem soluções verificáveis em tempo polinomial define a classe NP
I De “Tempo Polinomial Não Determinístico”;
NP-Completo
Os mais difíceis problemas em NP formam ainda uma outra classe, a NP-Completo; Por exemplo, Partição em Triângulos, Clique Máximo, Ciclo Hamiltoniano e 3-coloração;
A característica notória desta classe é que um algoritmo eficiente para qualquer um dos problemas pode ser adaptado facilmente para qualquer outro problema desta classe
NP-Completo
Em 1971, Richard Karp identificou os primeiros 21 problemas da classe e contribuiu para o desenvolvimento da teoria da NP-Completude;
Posteriormente, centenas de outros problemas foram identificados por outros pesquisadores.
NP-Completo
A maioria dos problemas de interesse pertencem comprovadamente à classe NP-Completo:
I Determinar a sequência de DNA que melhor se assemelha a um fragmento de DNA;
I Determinar procedimentos eficientes para predição de estrutura de proteínas;
I Determinar se uma afirmação matemática possui uma prova curta;
P vs. NP
A partir destas descobertas, grande parte dos cientistas da computação passou a acreditar que P6=NP;
Provar isto se tornou a questão mais importante da ciência da computação e uma das mais importantes da matemática.
P vs. NP – Um dos Problemas do Milênio
O Clay Mathematics Institute elencou 7 problemas matemáticos e oferece um prêmio de um milhão de dólares para quem resolver um deles;
Provar que P=NP ou P!=NP é um dos 7 Problemas do Milênio desde o ano 2000a:
I P vs. NP;
I A conjectura de Poincaré (resolvido por Grigori Perelman em 2006);
I A conjectura de Hodge;
I A hipótese de Riemann;
I A existência de Yang-Mills e a falha na massa;
I A existência e suavidade de Navier-Stokes;
I A conjectura de Birch e Swinnerton-Dyer.
a
E Se P = NP?
“O que ganharíamos com P=NP faria com que a Internet inteira parecesse apenas um rodapé na história’.’
E Se P = NP?
Várias tarefas se tornariam triviais:
I Transporte de pessoas e produtos mais rápido e mais barato;
I Indústrias produzindo mais rápido e mais barato;
I Traduções automáticas;
I Reconhecimento de visão;
I Compreensão de linguagens;
I Previsão do tempo, terremotos e tsunamis;
I Provas curtas para teoremas matemáticos
E Se P = NP?
Adeus criptografia!
A criptografia se baseia em problemas difíceis de serem resolvidos, como a fatoração de números muito grandes em números primos;
Portanto, é impossível de quebrar, a não ser que P=NP e fatoração seja um problema trivial...
O Filme
O filme “Travelling Salesman”, de 2012, conta a história de quatro matemáticos que descobrem um algoritmo eficiente para o Problema do Caixeiro Viajante, quando se deparam com as implicações globais da descoberta; O departamento de defesa americano oferece US$10 milhões para cada pelo algoritmo;
Um dos matemáticos se recusa, sendo forçado a revelar um segredo importante sobre sua parte do algoritmo.
E Se P != NP?
Se for provado que P!=NP, não teremos os benefícios computacionais de P=NP; Porém, ainda assim teríamos avanços na teoria da computação e uma direção para pesquisas futuras;
Se soubermos que um problema é intratável, não tentaremos resolvê-lo de maneira eficiente, ao invés disso, tentaremos soluções aproximadas ou parciais, com
técnicas apropriadas;
Podemos utilizar a dificuldade em resolver problemas a nosso favor – como na criptografia.
E Se P != NP?
Como dito anteriormente, os problemas de interesse são NP-Completos; Ainda precisamos tentar resolvê-los, mesmo sem os benefícios de P=NP;
Mesmo não sendo totalmente eficientes, existem “bons” algoritmos para problemas industriais, matemáticos, computacionais, etc.;
P vs. NP Atualmente
Existem 107 provas sobre P vs. NP, registradas pelo P vs. NP Page; Em 2014 tivemos seis tentativas de provas:
I Igual: 4 (Janeiro, Fevereiro (2) e Setembro );
I Diferente: 2 (Fevereiro e Março).
I Nenhuma das provas foi confirmada ainda.
Em 2015 tivemos uma tentativa de prova em março (igual); Em 2016, nada ainda.
Prof. Sóstenes Luiz Soares Lins (UFPE)
“Este trabalho permanece não publicado: continuo pesquisando que problemas de decisão são a ele
redutíveis. No período 2008-2010, provei que MAX-CUT era um tal problema. Isto implicaria P=NP. Escrevi 52 versões da prova do resultado até descobrir, um erro em 10/01/2010.”
“Numa época de ciência descartável (focada em número de publicações e estatísticas estranhas, dissociadas do conteúdo), orgulho-me de não transigir e ao menos tentar descobrir algo perene e importante.”
P vs. NP Atualmente
Um artigo de 2002 realizou uma pesquisa/entrevista com 100 dos maiores teóricos da computação do mundo;
Dez anos depois, a pesquisa/entrevista foi refeita, desta vez,com 152 dos maiores teóricos da computação do mundo;
Os números entre parênteses indicam o percentual de respostas nas duas edições da pesquisa.
P vs. NP Atualmente
O que você acha de P vs. NP?
I P=NP (9% – 9%);
I P!=NP(61% – 83%);
I Não sei (22% – 0,6%);
I Não me importo (1% – 3%);
P vs. NP Atualmente Quando solucionaremos P vs. NP? I 2010-2019 (12% – 0,01%); I 2020-2029 (13% – 11%); I 2030-2039 (10% – 12%); I 4000-4100 (0% – 2%);
I Daqui há muito tempo (0% – 14%);
I Antes de 2100 (62% – 53%);
I Depois de 2100 (17% – 41%);
Qual será o método utilizado na prova?
I Novas técnicas (65 pessoas);
I Técnicas conhecidas (5 pessoas);
I Um algoritmo (6 pessoas);
I Milagre (1 pessoa);
I “Não saberemos até que seja resolvido”;
I “Não vou te dizer”;
I “Os aliens nos dirão”;
Scott Aaronson, MIT
“I believe P 6= NP on basically the same grounds that I think I won’t be devoured tomorrow by a 500-foot-tall robotic marmoset from Venus, despite my lack of proof in both cases.”
Eric Allender, Rutgers University
“P 6= NP will be resolved within 25 years, though this estimate is completely meaningless, of course.
Stephen Cook, Universidade de Toronto
“P 6= NP will not be resolved in the next 20 years and will need new techniques”.
Lance Fortnow, Georgia Tech
“P6=NP. It will be resolved in an unpredictably long time. If I knew what kinds of techniques would be used I wouldn’t tell.”
Richard Karp
Michael Sipser, MIT
“As far as I know, not much has changed mathematically relevant to P vs. NP since 2002 so I have nothing to add to my previous response to your questionnaire.
Use my prior response; however, update it so that I predict it will be solved 25 years from now, not from 2002.’ (...) And I’ll stick with my earlier prediction that the resolution will be a proof that P 6= NP.”
Conclusão
”(...) my first reaction was the article could be written in two words: Still open.” -Fortnow, L. 2009
Referências
I Clay Mathematics Institute. The Millenium Problems. Disponível em:
http://www.claymath.org/millennium/P_vs_NP/. Acessado em 07 de junho de 2016. I Fortnow, L. 2009. The Status of the P Versus NP Problem. Communications of the ACM,
Vol. 52 No. 9, Pages 78-86.
I Gasarch, W. I., 2012. Guest Column: The Second P =? NP Poll. ACM SIGACT news. I The P vs. NP Page. Disponível em:
http://www.win.tue.nl/~gwoegi/P-versus-NP.htm. Acessado em 07 de junho de 2016. I Top 500 Supercomputer Sites. Disponível em: http://www.top500.org/lists/.
Acessado em 07 de junho de 2016.
I Turing, A. On computable numbers, with an application to the Etscheidungs problem. Proceedings of the London Mathematical Society 42 (1936), 230-265.