problemas fÁceis e difÍceis - inf.ufpr.br · chegaríamos na resposta!!! 0.00000000000000000033...
TRANSCRIPT
ENCONTRANDO CARTAS E PALAVRAS...
Experimento em sala: encontrar carta no
baralho, encontrar palavra no dicionário
Qual das duas buscas é mais eficiente?
PROBLEMAS COMPUTACIONAIS
Problema Computacional:
Entrada
Saída
Exemplo (Problema “PRIMO”):
Entrada: um número 𝒏 inteiro
Saída: SIM ou NÃO, dependendo se 𝒏 é primo ou não
ALGORITMOS
Algoritmo: é a solução para problemas computacionais, usando comandos básicos do computador
Existem várias soluções (algoritmos) para
um mesmo problema!
TEMPO DE EXECUÇÃO
Voltando ao exemplo inicial...
No pior caso, quantas tentativas até encontrar uma carta num deck com 𝒏 cartas?
TEMPO DE EXECUÇÃO
No pior caso, quantas tentativas até encontrar uma
palavra num dicionário (ordenado) com n páginas?𝑛
2
𝑛
22
𝑛
23
𝑛
2𝑖
1
⋮
⋮
Reformulando: Quantas vezes deve-se elevar 2 para que 2𝑖
seja igual a 𝑛?
Se soubesse disso, não
testaria as lâmpadas
uma a uma para
descobrir onde está a
bomba...
TEMPO DE EXECUÇÃO
Tentativas no pior caso:
•Busca sequencial: 𝑛
•Busca binária: log2 𝑛
𝑛 log2 𝑛
2 1
4 2
8 3
16 4
32 5
... ...
1024 10
... ...
1 milhão ≈ 20
... ...
1 bilhão ≈ 30
Moral da História: algoritmos
inteligentes são muito mais rápidos!
TEMPO DE EXECUÇÃO
São dados 𝑛 números na memória do computador:
50 39 1 78 45 96 12 32
1 12 32 39 45 50 78 96
Queremos reorganizá-los
ordenadamente:
𝑛 𝒏𝟐 𝑛 log2 𝑛
10 100 320
100 10000 650
1000 1 milhão 10000
1 milhão 1 trilhão 20 milhões
1 bilhão 1018 30 bilhões
Algoritmo “ingênuo”: 𝑛2
Algoritmo “esperto”: 𝑛 log2 𝑛
Outro exemplo: ordenação de dados
VELOCIDADE DO COMPUTADOR
Medida popular: núm. de instruções por segundo
Atualmente: alguns bilhões de instruções por segundo
𝑛 ingênuo esperto
10 - -
100 0,00001 s -
1000 0,001 s 0,00001s
1 milhão 16,6 min 0,2 s
1 bilhão 31,7 anos 30 s
Ordenação com 1 bilhão instr/seg
Agora, tarefas
repetitivas resolvo
programando!
Dá pra resolver
problemas
GRANDES
Mas MUITO
GRANDES, só com
algoritmos espertos
CAIXEIRO VIAJANTE
Maria vendia em todos os estados dos EUA
Ela esboçou a seguinte rota: (total=11126 Km)
Depto de Viagens: “Maria, pode fazer melhor?”
CAIXEIRO VIAJANTE
Maria programou para testar todas as soluções e pegar a melhor
1 semana depois o programa não havia parado...
Após uma conta rápida: 𝟒𝟖! possibilidades
48! é igual a
12.413.915.592.536.072.670.862.289.047.373.375.038.521.486.354.677.760.000.000.000
SeTempo do Teste = Tempo para a luz atravessar um átomo
Então
Após Dez Trilhões de Trilhões vezes a Idade da Universo
chegaríamos na resposta!!!
0.00000000000000000033
segundos
PROBLEMA DA MOCHILA
Um ladrão vai roubar uma casa
Os objetos têm peso e valor
Sua mochila aguenta até um certo peso
Quais itens ele deve levar?
PROBLEMA DA MOCHILA
Número de Itens Número de Possibilidades
5 32
10 1024
20 1048576
50 1125899906842624
100 1267650600228229401496703205376
GUARDAS NO MUSEU
Contratar guardas para vigiar TODOS os
corredores de um museu
Ficam na “junção” dos corredores
Objetivo: quanto menos guardas, melhor!
Número
de Itens
Número de Possibilidades
5 32
10 1024
20 1048576
50 1125899906842624
100 1267650600228229401496703205376
MORAL DA HISTÓRIA
Alguns problemas são:
•“fáceis”: busca, ordenação, ...
•“difíceis”: caixeiro viajante, mochila, museu, ...
Têm solução esperta
PROBLEMAS DIFÍCEIS E DISFARCES
Existem soluções espertas para os
problemas “difíceis”?
Talvez para a
mochila SIM,
talvez para o
museu NÃO...
Um chute:
PROBLEMAS DIFÍCEIS E DISFARCES
Existem soluções espertas para os
problemas “difíceis”?
Caixeiro Viajante, Mochila e Museu são,
no fundo, O MESMO PROBLEMA!!!
Só têm “disfarces diferentes”
Solução esperta para um =
Solução esperta para TODOS
Todos problemas
difíceis DO MUNDO!!!
Isso é contra-
intuitivo: vocês
vão ter que
acreditar...
PROBLEMAS P, NP
Conjunto NP: problemas
com solução
Intuitivamente: qualquer problema
Busca, Ordenação, Caixeiro Viajante, Problema
da Mochila e do Museu TODOS são problemas NP
Conjunto P: problemas com solução
“esperta”
Busca e Ordenação são problemas P
Caixeiro Viajante, Mochila e Museu NINGUÉM SABE!! problemas “fáceis”,
com soluções espertas
Pode ou não ser “fácil”
NINGUÉM SABE (ainda)
A QUESTÃO “P = NP ?”
I. Basta uma única solução esperta para um único problema difícil!
II. Independente da resposta, você ganha U$1000000
P = NP ?Ou seja:
TODOS os problemas difíceis têm soluções espertas?
A QUESTÃO “P = NP ?”
As maiores questões não resolvidas da matemática:
1. conjectura de Birch e Swinnerton-Dyer
2. conjectura de Hodge
3. equações de Navier-Stokes
4. P = NP ?
5. conjectura de Poincaré
6. hipótese de Riemann
7. Teoria de Yang-Mills
Oferecem U$1000000 para cada problema resolvido
Esse rapaz recusou 1 milhão!!!!
Mas, se P = NP, um computador resolveria
facilmente os outros: ganha U$6000000!!!
SE P = NP...
E se a resposta de “P = NP?” for SIM?
Vamos esboçar um futuro deste mundo bonito:
2016 – Milena Pavel, cientista da computação, avisa um pequeno grupo de teóricos da computação sobre um artigo onde provou que “P=NP”
2017 – O ano segue com vários grupos ao redor do mundo verificando se não há erros no artigo de Milena
2018 – Milena recebe a medalha Fields. Apesar de ser uma grande descoberta teórica, na prática o algoritmo não executa tão bem...
2019 – Milena receba o prêmio de U$1 milhão, aceita e doa para instituições ligadas à educação no Brasil. Começam esforços para melhorar a execução prática do algoritmo
2020 – Um russo tem uma boa ideia que melhora a execução, mas ainda assim continua ruim
SE P = NP...
2022 – Estudantes de graduação do MIT fazem melhorias no código, e colocam para executar no computador mais rápido dos EUA. Pela 1ª vez, conseguem executar na prática
2023 – A Boeing usa a solução para fazer a “asa ótima” para seu novo 797. O avião faz um vôo direto de Londres até Sidney
2025 – Um mestrando japonês usa o algoritmo para otimizar o código do próprio algoritmo. Melhora a execução em 5%
2026 – Um doutorando finlandês expande a ideia: repetidamente, usa o código otimizado para gerar um mais otimizado, com melhorias sucessivas. Agora, o algoritmo é rebatizado de “algoritmo Helsinki”
2029 – Análise de DNA e sangue identificam exatamente um câncer e testa as proteínas que eliminam o câncer. A abordagem agora é individual, ao invés de generalizada. Graças ao “algoritmo de Helsinki”
SE P = NP...
2030 – o algoritmo de Helsinki faz previsão do tempo 100% correta, incluindo tempestades, tornados e furacões. Casamentos a céu aberto são mais caros em dias de tempo bom, e têm bons descontos em dias chuvosos.
2031 – Transporte de todas as formas são agendadas de forma otimizada para mover pessoas e mercadorias mais rápido e mais barato. Fabricantes melhoram sua produção para aumentar a velocidade e criar menos resíduos.
ETC....