• Nenhum resultado encontrado

P vs. NP: Uma introdução. Prof. Marco Antonio M. Carvalho

N/A
N/A
Protected

Academic year: 2021

Share "P vs. NP: Uma introdução. Prof. Marco Antonio M. Carvalho"

Copied!
55
0
0

Texto

(1)

P vs. NP: Uma introdução

(2)

Quem Sou Eu?

!  Bacharel em Ciência da Computação (2005) – Faculdades

Integradas de Caratinga

!  Mestre em Engenharia Eletrônica e Computação (2008) – ITA

!  Doutor em Engenharia Eletrônica e Computação (2013) – ITA

!  Interesses:

!  Teoria da Computação, Otimização Combinatória, Pesquisa Operacional;

!  Análise de Risco;

!  Maratona de Programação.

!  Professor do DECOM/UFOP desde 2010/2

!  Disciplinas de programação;

!  Maratona de Programação;

(3)

Contato

!

marco.opt@gmail.com

!

3559-1663

(4)

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;

! Baseado no artigo “The Status of the P Versus NP Problem”.

(5)

"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

(6)
(7)

Alan Turing

!  Matemático, lógico e criptoanalista inglês

!  Participação importante na II Guerra Mundial.

!  Pai da Ciência da Computação

!  Dedicou a via à teoria da computabilidade;

!  Formalizou os conceitos de algoritmo e computabilidade;

!  Aos 24 anos, criou a Máquina de Turing.

!  Parte de sua vida foi retratada no filme Breaking the Code de 1996.

(8)

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;

!  É o centro do conceito da arquitetura dos computadores

(9)

Máquina de Turing vs. ENIAC

! A primeira referência a uma máquina de Turing é de um artigo publicado em em 1936;

! O ENIAC foi o primeiro

computador eletrônico de propósitos variados

(10)

Máquina de Turing

!  Existem basicamente dois tipos de

Máquinas de Turing:

!  Máquina de Turing Determinística:

!  Se ‘A’, então faça ‘B’. !  Máquina de Turing Não

Determinística:

!  Se ‘A’, então faça ‘B’ ou ‘C’ ou

‘D’ ou ...

(11)
(12)

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

(13)

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

(14)

Computabilidade

!  A Computabilidade e a Teoria da Complexidade

Computacional estudam os limites da computação:

1.  Quais problemas jamais poderão ser resolvidos por um

computador, independente da sua velocidade ou memória?

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

3.  Em que situações pode ser mais difícil resolver um problema

(15)

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

(16)

3-SAT

Instância 3-SAT (x x y) (¬x ¬y ¬y) (¬x y y) reduzida ao problema de clique

(17)

O Computador Mais Potente do

Mundo

!  China National University of Defense Technology;

!  Junho de 2013;

!  Performance de 33,86 Petaflops por segundo;

!  Processadores Intel Xeon E5, Xeon Phi

!  3.120.000 cores

!  Sistema Operacional Kylin Linux;

!  Memória: 1.375 TiB;

(18)

O Computador Mais Potente do

Mundo

! O Tianhe-2 é capaz de realizar ≈ 3,386 x 1013 = 33.860.000.000.000.000 operações básicas por segundo; !  10! = 3628800 ou 3,628800 x 106; !  100! = 9,332622 x 10157; !  150! = 5,713384 x 10262; !  175! = infinito... !  1000! = ???

(19)
(20)

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.

(21)

Computabilidade

! Das três perguntas anteriores, a última é referente às classes de problemas

!  As mais estudadas são P e NP;

!  O relacionamento entre as duas é um dos problemas do

milênio e considerado por alguns como o “elo perdido” da ciência da computação;

(22)

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

(23)
(24)

P

! Suponham que temos um grande grupo de alunos e precisamos agrupá-los em dupla para um

trabalho

!  Nem todos os alunos são compatíveis entre si;

!  Tentar todas as possibilidades não é uma alternativa;

!  Se o grupo tiver 40 alunos, temos mais do que 300 milhõ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

(25)

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

(26)
(27)

NP

!  Infelizmente, para muitos problemas parece não haver

algoritmo eficiente:

!  E se quisermos dividir os alunos em trios nos quais todos os

pares de alunos são compatíveis (partição em triângulos)?

!  E se quisermos achar o maior grupo de alunos tal que todos

são compatíveis entre si (clique máximo)?

!  E se quisermos sentar à mesa todos os alunos, de maneira que

dois alunos incompatíveis não fiquem lado a lado (ciclo hamiltoniano)?

(28)

NP

! Todos estes problemas possuem uma propriedade em comum:

!  Dada uma solução qualquer (por exemplo, o mapa das

cadeiras em uma mesa), é possível conferir a solução de maneira eficiente.

! O conjunto de problemas que possuem soluções

verificáveis em tempo polinomial define a classe NP !  De “Tempo Polinomial Não Determinístico”;

!  Somente uma Máquina de Turing Não Determinística pode

(29)
(30)

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

(31)

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

(32)

! A maioria dos problemas de interesse pertencem comprovadamente à classe NP-Completo:

!  Determinar a sequência de DNA que melhor se assemelha

a um fragmento de DNA;

!  Determinar procedimentos eficientes para predição de

estrutura de proteínas;

!  Determinar se uma afirmação matemática possui uma

prova curta;

(33)
(34)

P vs. NP

! A partir destas descobertas, grande parte dos

cientistas da computação passou a acreditar que P≠NP

!  Provar isto se tornou a questão mais importante da ciência

da computação e uma das mais importantes da matemática.

(35)
(36)

P vs. NP

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

!  P versus NP;

!  A conjectura de Hodge;

!  A conjectura de Poincaré (resolvido por Grigori Perelman em 2006);

!  A hipótese de Riemann;

!  A existência de Yang-Mills e a falha na massa;

!  A existência e suavidade de Navier-Stokes;

(37)
(38)
(39)

E Se P = NP?

“O que ganharíamos com P=NP faria com que a

Internet inteira parecer apenas um rodapé na história” - Fortnow, L. 2009

(40)

E Se P = NP?

! Várias tarefas se tornariam triviais:

!  Transporte de pessoas e produtos mais rápido e mais

barato;

!  Indústrias produzindo mais rápido e mais barato; !  Traduções automáticas;

!  Reconhecimento de visão; !  Compreensão de linguagens;

!  Previsão do tempo, terremotos e tsunamis; !  Provas curtas para teoremas matemáticos

(41)

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

(42)

O Filme

!  O filme “Travelling Salesmen”, de 2012,

conta a história de quatro matemáticos que descobrem um algoritmo eficiente para o Problema do Caixeiro Viajante, um problema NP-Completo

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

(43)
(44)

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

(45)

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.

(46)
(47)

P vs. NP Atualmente

! Existem 99 provas sobre P vs. NP, registradas pelo P vs. NP Page;

! Em 2013 tivemos duas tentativas de provas !  Em janeiro, Dmitriy Nuriyev;

(48)

P vs. NP Atualmente

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

(49)

P vs. NP Atualmente

! Um artigo de 2012 realizou uma pesquisa/entrevista com 152 dos maiores teóricos da computação do mundo

!  O que você acha de P vs. NP?

!  P=NP (9%);

!  P!=NP(83%);

(50)

P vs. NP Atualmente

!  Quando solucionaremos P vs. NP?

!  2020-2029 (11%);

!  2030-2039 (12%);

!  Daqui há muito tempo (14%);

!  Antes de 2100 (53%);

!  Depois de 2100 (41%);

(51)

P vs. NP Atualmente

!  Qual será o método utilizado na prova? !  Novas técnicas (35%);

!  Um algoritmo (0,04%); !  Milagre (1 pessoa);

!  “Livros já amarelados, incluindo aqueles que sequer foram

(52)
(53)

Conclusão

“(...) my first reaction was the article could be written in two words: Still open.”

(54)
(55)

Referências

!  Clay Mathematics Institute. The Millenium Problems. Disponível em: http://

www.claymath.org/millennium/P_vs_NP/. Acessado em 15 de Outubro de 2013.

!  Fortnow, L. 2009. The Status of the P Versus NP Problem. Communications of the ACM, Vol. 52 No. 9, Pages 78-86.

!  Gasarch, W. I., 2012. Guest Column: The Second P =? NP Poll. ACM SIGACT news.

!  The P vs. NP Page. Disponível em: http://www.win.tue.nl/~gwoegi/P-versus-NP.htm.

Acessado em 15 de Outubro de 2013.

!  Top 500 Supercomputer Sites. Disponível em: http://www.top500.org/lists/2013/06/.

Referências

Documentos relacionados

Muitos problemas reais são computacionalmente difíceis de resolver e podem ser formalizados apenas como problemas NP-difíceis. O interesse por estes problemas surge das

Paralelamente à construção do modelo de compreensão do texto, o leitor fluente está envolvido na elaboração de um modelo situacional de interpretação, baseado, por

360 Ana Isabel Ribeiro Fernandes 362 Carla Manuela Oliveira Santos 372 David dos Santos Carvalho 377 Davide Cristovão Alves Machado 381 Diogo Gil Conde Esteves Gagean 367 Eduarda

Qual outro m´ etodo pode ser usado para resolver este problema?. Qual a diferen¸ca

6.2 - Procedida à análise das Propostas, a Comissão de Seleção fará o julgamento das mesmas e comunicará o resultado aos proponentes através do Portal do Fornecedor, para que

display <var name>.current Exibe o valor atual dos coeficientes da fun- ção objetivo da variável especificada Tabela: Comandos AMPL para análise de sensibilidade -

Ao longo da análise efectuada a partir das estratégias e procedimentos utilizados pelo Roberto e o Gonçalo durante a resolução de alguns problemas, fomos dando indicações do

Solução: A análise em tempo real das interações em mídias sociais, feita pela Análise de Sentimento Social IBM, traz a percepção imediata do mercado e as demandas dos