5. Problemas intratáveis ou difíceis são comuns
na natureza e nas áreas do conhecimento.
• Problemas “fáceis”: resolvidos por algoritmos
polinomiais.
• Problemas “difíceis”: somente possuem
algoritmos exponenciais para resolvê-los.
• A complexidade de tempo da maioria dos
problemas é polinomial ou exponencial.
6.
7.
8. P é um conjunto de problemas que podem ser resolvidos por uma
máquina Turing determinística em tempo polinomial.
NP é um conjunto de problemas de decisão que podem ser resolvidos
por uma máquina de Turing não determinística em tempo polinomial. P
é um subconjunto de NP (qualquer a que pode ser resolvido por
máquina determinística em tempo polinomial também pode ser
resolvido por máquina não-determinística em tempo polinomial).
Informalmente, NP é um conjunto de problemas de decisão que podem
ser resolvidos por um tempo polinomial através de um algoritmo
"Lucky Algorithm", um algoritmo mágico que sempre faz um palpite
certo entre o conjunto dado de escolhas.
Problemas NP-completos são os problemas mais difíceis no conjunto
NP. Um problema de decisão L é NP-completo se:
1) L está em NP (Qualquer solução dada para problemas NP-completos
pode ser verificada rapidamente, mas não há solução eficiente
conhecida).
2) Todo problema em NP é redutível a L em tempo polinomial (Redução
é definida abaixo).
9.
10.
11. Exemplo: Localização de rotas na Romênia, usando a
Busca A*
Objetivo: Bucharest (Bucareste)
Um mapa rodoviário simplificado de parte da Romênia.
176
100
21. A cidade é cortada pelo rio Pregel, criando ilhas na cidade.
Existiam sete pontes conectando as ilhas e as margens
opostas do rio.
O problema consiste em determinar se é possível ou não
fazer um passeio pela cidade come ̧cando e terminando no
mesmo lugar, cruzando cada ponte exatamente uma u ́nica
vez.
24. Grafos (cont.)
História
Euler (1736) - pontes de Königsberg
Baseado na disposição das pontes, mostrou
que era impossível percorrer por todas
passando somente uma vez
38. O que é uma pontuação?
Cada solução inicializada tem uma pontuação. Essa pontuação é uma
maneira objetiva de comparar duas soluções: a solução com maior
pontuação é melhor. O Solver pretende encontrar a Solução com o maior
Índice de todas as soluções possíveis. A melhor solução é a Solução
com a pontuação mais alta que o Solver encontrou durante a resolução,
que pode ser a solução ideal.
O Planner não pode automaticamente saber qual solução é a melhor
para o seu negócio, então você precisa dizer-lhe como calcular a
pontuação de uma determinada solução de acordo com as necessidades
de sua empresa. Existem várias técnicas de pontuação que você pode
usar e combinar:
Maximizar ou minimizar uma restrição: score constraint signum (positivo
ou negativo)
Coloque um custo / lucro sobre as restrições: pontuação restrição peso
Priorizar restrições: nível de pontuação
Pontuação de Pareto
39.
40.
41. A maioria dos casos de uso tem apenas 2 níveis de
pontuação: Hard e Soft. Ao comparar 2 pontuações, elas
são comparadas lexicograficamente: o primeiro nível de
pontuação é comparado primeiro. Se esses diferirem, os
outros níveis de pontuação são ignorados.
Hard e Soft score level
42.
43.
44. 2017-02-05 14:06:59,744 [main] INFO Solving ended:
time spent (10000), best score (-3hard/-5460soft),
score calculation speed (28039/sec),
48. Required Memory :1
Required Cpu Power :1
Required Network :1
Required Memory :6
Required Cpu Power :3
Required Network :1
Required Memory :1
Required Cpu Power :1
Required Network :3
Required Memory :2
Required Cpu Power :1
Required Network :11
Required Memory :1
Required Cpu Power :1
Required Network :1
Required Memory :1
Required Cpu Power :1
Required Network :5
Required Memory :3
Required Cpu Power :2
Required Network :5
Required Memory :3
Required Cpu Power :1
Required Network :1
Required Memory :4
Required Cpu Power :1
Required Network :1
Required Memory :17
Required Cpu Power :1
Required Network :1
Required Memory :13
Required Cpu Power :1
Required Network :7
Required Memory :1
Required Cpu Power :2
Required Network :3
Processos
49. Solved cloudBalance with 400 computers and 1200 processes:
Process 0 -> Computer 0
Process 1 -> Computer 0
Process 2 -> Computer 1
Process 3 -> Computer 1
Process 4 -> Computer 1
Process 5 -> Computer 1
Process 6 -> Computer 0
Process 7 -> Computer 0
Process 8 -> Computer 0
Process 9 -> Computer 0
Process 10 -> Computer 0
Process 11 -> Computer 1
55. Heurística refere à arte do descobrimento. Ela
estabelece várias ferramentas ou
procedimentos para tornar possível uma
descoberta.
O termo foi utilizado pela primeira vez por
Albert Einstein em uma publicação chamada
“Heurística da geração e conversão da luz”.
Ela é basicamente uma disciplina focada na
busca de soluções para diversos problemas.
56. Busca Heurística
p Heurística - Informação específica do domínio que
pode ser usada para guiar o processo de busca.
p Em muitos casos uma heurística envolve a
aplicação de uma função que avalia um nó
particular e prediz a qualidade dos seus nós
sucessores.
p Uma função heurística de avaliação no jogo-da-
velha poderia ser o número de linhas, colunas e
diagonais ainda disponíveis, quanto maior este
número maior a chance de vitória.
57. Busca Heurística – Exemplo ...
Porção do espaço de estados para o jogo-da-velha
N0 de
caminhos = 9!
58. Busca Heurística – Exemplo ...
Os primeiros três níveis do espaço de estados do jogo-da-velha
reduzidos por simetria.
3 movimentos iniciais:
•Para o canto
•Para o centro de um lado
•Para o centro da grade
•
59. A heurística do “maior número de
vitórias” aplicada aos primeiros filhos
do jogo-da-velha.
Busca Heurística – Exemplo ...
60. Espaço de estados reduzido heuristicamente para
o jogo-da-velha.
Busca Heurística – Exemplo