GRASP Disciplina: ODST Professores: José Oliveira e Maria Carravilla Aluno: Marcelo Nogueira FEUP...
Transcript of GRASP Disciplina: ODST Professores: José Oliveira e Maria Carravilla Aluno: Marcelo Nogueira FEUP...
GRASP
Disciplina: ODSTProfessores: José Oliveira e Maria Carravilla
Aluno: Marcelo Nogueira
FEUP JANEIRO 2008
Otimização
• Achar a solução de um problema P tal que uma certa função critério f(x) seja maximizada (ou minimizada) onde x X
• Onde:– x é uma solução do problema– X é o espaço das soluções admissíveis– é o espaço das soluções
Exemplo de função a ser otimizada
x
y
cost
Valor de f(x)
Plano das soluções
Estratégia: Solução Gulosa + Busca local
• Achar uma solução inicial de forma gulosa• Melhorar a solução através de uma busca
local, por exemplo, algoritmo 2-opt
• Problema:– Isto produz pouca variedade na solução, podendo
assim, ficar preso a um mínimo local
Solução Gulosa + Busca local
x
y
cost
Soluções Gulosas
Solução final da busca
Como escapar dos mínimos locais?
GRASP
• Greedy Randomized Adaptive Search Procedure
• Consiste basicamente em repetir dois passos até que um certo critério de parada seja atingido1) Gerar uma solução inicial semi-gulosa (gulosa aleatorizada)2) Melhorar a solução inicial através de uma busca local e
actualizar a melhor solução encontrada• As soluções semi-gulosas são mais variadas que as
soluções gulosas, com isto espera-se conseguir escapar de mínimos locais
GRASP
Fase Construtiva: Solução semi-gulosa
Fase de Melhoramento: busca local
Critério de
parada?
sim
não
Fim
Início
GRASP
x
y
cost
Soluções Semi-gulosas
Solução finalSolução final
Solução final (melhor de todas achadas)
O que é uma solução semi-gulosa?
Solução Gulosa
• A cada passo, seleccionar o candidato que maximize (ou minimize) a função de custo no momento
• Não pensa no futuro, faz a escolha melhor tendo em vista o presente
Solução Gulosa
• Ex: Knapsack– Backpack: 8 unidades de espaço
– Heurística gulosa: escolher o item mais valioso por unidade (valor/espaço ocupado)• Solução encontrada: itens 1 e 2 com valor total=7• Solução óptima: itens 2 e 3 com valor total=12
Item Valor Espaço Ocupado Valor/Espaço1 2 1 22 5 3 1,663 7 5 1,44 9 7 1,28
Solução Semi-gulosa
• Consiste em, a cada passo, criar o que se chama de Restricted Candidate List (RCL)– uma lista com os “n” melhores candidatos levando
em consideração um algoritmo guloso • Após criada a RCL, é escolhido,
aleatoriamente, um elemento da lista e adicionado a solução parcial actual
Solução semi-gulosa
• Ex: Knapsack com tamanho da RCL=2– Backpack: 8 unidades de espaço
– Dois melhores candidatos: RCL = {1,2} – escolher aleatoriamente um a adicionar na mochila – suponha 1
– Criar nova RCL = {2,3} – escolher aleatoriamente um para adicionar na mochila – suponha 3 (solução {1,3})• Possíveis soluções encontradas: {1,2}= 7; {1,3}= 9; {2,3}= 12;
Item Valor Espaço Ocupado Valor/Espaço1 2 1 22 5 3 1,663 7 5 1,44 9 7 1,28
Gulosas Vs. Aleatórias combinadas com busca local
• Em média, as soluções de uma busca local a partir de uma solução gulosa são melhores que as originadas de uma solução inicial aleatória
• As soluções de uma busca local a partir de uma solução aleatória são bem mais variadas que as originadas de uma solução inicial gulosa
• Ideal: utilizar soluções iniciais semi-gulosas para a fase de busca local
Parâmetros do GRASP
• Os parâmetros para ajustar no GRASP são:– Tamanho da RCL
• Note-se que se o tamanho da RCL for 1, temos um algoritmo guloso, e se for máximo, temos um algoritmo aleatório
• A RCL também pode ter um tamanho variável, onde um elemento irá pertencer a RCL se sua contribuição para a função custo for x% do valor da função para o melhor candidato
– Critério de parada do algoritmo• Normalmente um determinado número de operações ou
um determinado tempo
Vantagens do GRASP
• Rápido• Geralmente produz boas soluções• Poucos parâmetros para serem ajustados
GRASP para o TSP
• Algoritmo geral
Repita até critério de paradaCalcule solução inicial semi-gulosaMelhore a solução por busca local (utilizei 2-opt)
End
GRASP para o TSP
• Algoritmo de geração de solução semi-gulosa
Repita até que todos os nós estejam na soluçãoEscolha os “n” nós (vizinhos mais próximos ou inserção mais barata) e coloque-os na lista RCLEscolha aleatoriamente um componente da lista RCL e insira na solução actual
End
Resultados obtidos
• 29 cidades: arquivo • 51 cidades: arquivo
Resultados obtidos
• 1002 cidades - óptimo: 259045 – Para 10 iterações (IMB)• Tamanho RCL=1: 301066 (4 minutos)• Tamanho RCL=2: 301066 (11 minutos)
– Para 300 iterações (VMP)• Tamanho RCL=1: 312317 • Tamanho RCL=2: 419553• Tamanho RCL=3: 505834
Resultados obtidos
• 18512 cidades (VMP)– Para 10 iterações (21 minutos)• Tamanho RCL=1: 1025010• Tamanho RCL=2: 1025010
Conclusões
• A velocidade do algoritmo GRASP depende da velocidade dos algoritmos construtivos e de melhoramentos utilizados
• Os resultados obtidos foram sempre melhores que as heurísticas não combinadas, contudo tais resultados ainda podem ser melhorados utilizando-se um algoritmo de vizinhança mais eficiente
Bibliografia
• José Fernando Oliveira Maria Antónia Carravilla, “Técnicas aproximadas para a resolução de problemas de Optimização Combinatória”, MEEC – Faculdade de Engenharia da Universidade do Porto
• GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURES, LEONIDAS S. PITSOULIS AND MAURICIO G.C. RESENDE
• GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURES, THOMAS A. FEO and MAURICIO G.C. RESENDE
• Otimização Combinatória, L.A.N. Lorena