algoritmos de busca local em muitos problemas de otimização o caminho para o objetivo e...
TRANSCRIPT
![Page 1: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/1.jpg)
Algoritmos de Busca Local• Em muitos problemas de otimização o caminho
para o objetivo e irrelevante.
– Queremos apenas encontrar o estado objetivo, não importando a sequencia de ações.
– Espaço de estados =conjunto de configurações completas.
• Queremos encontrar a melhor configuração.
– Neste caso podemos usar algoritmos de busca local.
• Mantem apenas o estado atual, sem a necessidade de manter a arvore de busca.
![Page 2: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/2.jpg)
Otimização
SSujeito a restrições
![Page 3: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/3.jpg)
Otimização Baseada em GradienteMétodo matemático clássico
![Page 4: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/4.jpg)
![Page 5: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/5.jpg)
Método matemático clássicoConhecer a função que se otimizaConhecer suas derivadas
![Page 6: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/6.jpg)
Quando Utilizar estas técnicasQuase que invariavelmente, as técnicas de
inteligência computacional (IC) são técnicas alternativas;
Isso indica que existem outras maneiras para se resolver um mesmo problema ou sintetizar um dado fenômeno;
É preciso avaliar com cuidado se há ou não a necessidade de aplicação de técnicas de IC a um dado problema.
![Page 7: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/7.jpg)
Informações
Qualidade de uma SoluçãoPorem não se conhece a superfície da funçãoQualquer tipo de representação da soluçãoEspaço real, inteiro, um grafo…2 espaços solução e função….
![Page 8: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/8.jpg)
Como EnfrentarTer uma ou mais soluções candidatas iniciais.
Procedimento de Inicialização Avaliação de uma solução candidata
Procedimento de AvaliaçãoRealizar uma copia da solução candidataConstruir uma solução candidata levemente
diferente da solução original (aleatoriamente)Procedimento de modificação
Procedimento de seleção : que solução continua
![Page 9: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/9.jpg)
Hill-Climbing
![Page 10: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/10.jpg)
Hill-ClimbingSimilar a gradiente descendente sem
derivadasAlgoritmo Hill-Climbing
1: S ← Solução Inicial; Procedimento de Inicialização
2: Repita
3: R ← Tweak(Copy(S)) ; Procedimento de Modificação
4: Se Qualidade(R) > Qualidade(S) Então
5: S ← R
6: Ate S seja a solução ideal ou limite de tempo
7: retorne S
![Page 11: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/11.jpg)
Steepest Ascent Hill-ClimbingAmostrar a vizinhança e ficar com o melhor
![Page 12: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/12.jpg)
![Page 13: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/13.jpg)
Busca Local
Partindo de uma solução inicial, consiste em “navegar” interativamente pelo espaço de busca movendo-se, em cada passo, de uma solução para uma solução vizinha (adjacente).
![Page 14: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/14.jpg)
Busca Local
![Page 15: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/15.jpg)
Noção de vizinhançaSeja S o espaço de busca do problemaSeja s uma solução do problemaDEFINIÇÕESA função vizinhança é uma função N(s) que
mapeia cada solução s S para um subconjunto N(s) S.
Um elemento qualquer de N(s) é denominado de vizinho de s.
![Page 16: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/16.jpg)
MovimentoTodo vizinho s' N(s) é alcançado pela
solução s através de uma operação denominada de movimento.
a
b
ce
s movimento
N(S) = {a, b, c, e}
![Page 17: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/17.jpg)
O Problema da mochilaDados um conjunto de n objetos e uma
mochila com: cj = benefício do objeto j
wj = peso do objeto j
b = capacidade da mochila
Determinar quais objetos devem ser colocados na mochila para maximizar o
benefício total de tal forma que o peso da mochila não ultrapasse sua
capacidade.
![Page 18: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/18.jpg)
O problema da mochila zero-um
Maximizar
Sujeito a
Uma solução s é um vetor de uns e zeros.Se o objeto j está mochila então sj = 1, caso contráriosj = 0.
(do inglês, 0-1 knapsack problem)
![Page 19: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/19.jpg)
Vizinhança no problema da mochila
s = (0,1,0,1,0)
(1,1,0,1,0)
(0,0,0,1,0)
(0,1,1,1,0)
(0,1,0,0,0) (0,1,0,1,1)
O movimento consiste em mudar a variável sj de 1 para 0 ou vice-versa.
![Page 20: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/20.jpg)
Uma instância do Problema da Mochila
![Page 21: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/21.jpg)
Função de Avaliação
![Page 22: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/22.jpg)
Iteração 1
![Page 23: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/23.jpg)
Iteração 2
![Page 24: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/24.jpg)
Iteração 3Iteração 3, solução corrente = 11010010
Não é possívelmelhorarmais a solução
![Page 25: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/25.jpg)
![Page 26: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/26.jpg)
Inicialização
![Page 27: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/27.jpg)
Tweak
![Page 28: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/28.jpg)
Tweak
![Page 29: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/29.jpg)
Tweak
![Page 30: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/30.jpg)
Distância Total =
1
4
3
2
5
6
Cid. 1 2 3 4 5 6
1 0 2 1 4 9 1
2 2 0 5 9 7 2
3 1 5 0 3 8 6
4 4 9 3 0 2 6
5 9 7 8 2 0 2
6 1 2 6 6 2 0
1
1
PCV
![Page 31: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/31.jpg)
![Page 32: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/32.jpg)
Dificuldade de ResoluçãoPara mostrar a dificuldade de solução do PCV, assuma que
a distância de uma cidade i à outra j seja simétrica, isto é, que dij = dji.
Assim, o número total de rotas possíveis é (n - 1)!/2. Para se ter uma idéia da magnitude dos tempos envolvidos
na resolução do PCV por enumeração completa de todas as possíveis soluções, para n = 20, tem-se 6 x 1016 rotas possíveis. Assim, um computador que avalia uma rota em cerca de 10-8 segundos, gastaria cerca de 19 anos para encontrar a melhor rota!
Mesmo considerando os rápidos avanços tecnológicos dos computadores, uma enumeração completa de todas essas rotas é inconcebível para valores elevados de n.
Nos problemas da classe NP-difícil, não é possível garantir que a rota de custo mínimo seja encontrada em tempo polinomial.
Assim, no pior caso, todas as possíveis soluções devem ser analisadas.
É possível dar uma certa “inteligência” a um método de enumeração
![Page 33: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/33.jpg)
HeurísticasPara solucionar problemas desse nível de
complexidade. Definimos heurística como sendo uma técnica
inspirada em processos intuitivos que procura uma boa solução
a um custo computacional aceitável, sem garantir sua otimalidade, bem como
garantir quão próximo está da solução ótima.
![Page 34: Algoritmos de Busca Local Em muitos problemas de otimização o caminho para o objetivo e irrelevante. – Queremos apenas encontrar o estado objetivo, não](https://reader034.vdocuments.net/reader034/viewer/2022051820/552fc14f497959413d8e30e4/html5/thumbnails/34.jpg)
HeurísticasEntretanto, a maioria das heurísticas
desenvolvidas é muito específica para um problema particular, não sendo eficientes (ou mesmo aplicáveis) na resolução de uma classe mais ampla de problemas.
Somente a partir da década de 1980 intensificaram-se os estudos no sentido de se desenvolver procedimentos heurísticos com uma certa estrutura teórica e com caráter mais geral, sem prejudicar a principal característica destes, que é a flexibilidade.