algoritmos heurísticos - bacharelado em ciência da...
TRANSCRIPT
Universidade Federal de Mato Grosso - Campus Universitário do AraguaiaInstituto de Ciências Exatas e da Terra
Algoritmos HeurísticosBacharelado em Ciência da Computação
Prof. Ivairton M. Santos http://comp.cua.ufmt.br/ ivairton/
March 27, 2017
1Índice
Introdução
Algoritmos HeurísticosMétodo de BuscaRepresentação de soluçõesMeta-heurísticas
Ivairton | Algoritmos Heurísticos
2
Introdução
I Otimização Combinatória (OC).
O que é Otimização Combinatória?
I Encontrar a melhor solução num número grande depossibilidades (mas finito).
I A modelagem ocorre por meio de funções de maximização oude minimização.
I exemplos clássicos de problemas de OC:I Problema da MochilaI Problema do Caixeiro ViajanteI Problema de Roteamento de VeículosI Problema da Tabela de Horários
I Problemas de OC pertencem à classe de problemasNP-Completo.
Ivairton | Algoritmos Heurísticos
3
Introdução
I Resolução de problemas NP-CompletoI Algoritmos Exatos Não-Polinomiais
I Programação dinâmica; branch and bound; branch and cut; planos decorte, outros.
I Algoritmos AproximativosI Encontram uma solução viável com uma qualidade garantida em
relação à solução ótima.I Algoritmos Heurísticos
Ivairton | Algoritmos Heurísticos
4
Algoritmos Heurísticos
O que é heurística?
I Heurística, na computação, é toda técnica que aprimora oprocesso de busca por uma solução de um problema.
I Um algoritmo heurístico não é capaz de garantir uma boasolução para um problema.
I Mas seu princípio é encontrar uma solução de qualidade, em umtempo adequado.
Ivairton | Algoritmos Heurísticos
5
Algoritmos HeurísticosClassificação
I Classificação dos métodos heurísticos:I Construtivo: processo iterativo que inicia com uma solução vazia
e adiciona um novo elemento a cada passo da iteração, até aobtenção de uma solução.
I Decomposição: consiste em dividir o problema em sub-problemas(menores), de modo que a resolção de todos os sub-problemaspossam compor uma solução para o problema maior.
I Redução: identificam algumas características que a solução ótima(presumidamente) deverá possuir e simplifica o problema,fixando-se o valor de tais variáveis.
I Manipulação do modelo: modificam o modelo de tal forma queele fique mais fácil de resolver (são exemplos a relaxação linear ea relaxação lagrangeana).
I Busca: categoria a qual pertencem a maioria dasmeta-heurísticas. Que consistem em, partir de uma solução inicial(podendo ser obtida a partir de outra heurística) e "caminha"buscando por soluções vizinhas.
Ivairton | Algoritmos Heurísticos
6
Algoritmos HeurísticosExemplos de algoritmos
I São exemplos de técnicas heurísticas (meta-heurística):I Algoritmos GenéticosI Busca TabuI Algoritmo da colônia de formigasI Greedy Randomized Adaptive Search Procedures (GRASP)I Redes neuraisI Simulated annealing
Ivairton | Algoritmos Heurísticos
7
Algoritmos HeurísticosExemplo de problema
Problema do Caixeiro Viajante(Traveling Salesman Problem - TSP)Dado um conjunto de cidades e a distância entre elas (cij ), o Caixeirodeve percorrer todas elas a partir de uma cidade inicial, passandopor cada uma uma única vez. O objetivo é encontrar a trajetória commenor caminho possível.
Existem várias abordagem para resolver o TSP, um deles é o métodoguloso:
01-Escolher o nó inicial i e fazer N ← N − {i}02-enquanto (N 6= ∅) faça03-início04-__obter j ∈ N tal que ci,j = mink∈N {ci,j }05-__N ← N − {j}06-__i ← j07-fim enquanto
Ivairton | Algoritmos Heurísticos
8
Algoritmos HeurísticosExemplo de problema
I Algoritmos construtivos podem falhar mesmo para casos muitosimples, podendo encontrar soluções arbitrariamente ruins.
I Algumas extensões podem ajudar:I Repetir a aplicação do algoritmo a partir de cada nó do grafo.I A cada iteração, selecionar a aresta mais curta a partir de alguma
das extremidades.I Fusão de subcircuitos.
Ivairton | Algoritmos Heurísticos
9
Algoritmos HeurísticosMétodo de Busca
I Termos/conceitos:I Espaço de soluções;I Partida (solução inicial);I Vizinhança;I Movimento;I Espaço de busca;I Ótimo local;I Ótimo global.
I Algoritmos de busca local são construídos de modo a explorar oespaço de busca.
Ivairton | Algoritmos Heurísticos
10
Algoritmos HeurísticosRepresentação de soluções
I Os métodos de busca são dependentes da forma como assoluções são representadas.
I Uma representação de solução indica quais elementos estão, enão estão, presentes na solução.
I As formas mais adotadas são:I Vetores de pertinência;I Combinações;I Permutações.
Ivairton | Algoritmos Heurísticos
11
Algoritmos HeurísticosRepresentação de soluções
I Vetores de PertinênciaI Vetores onde o mapeamento de cada elemento da solução é feito
para cada uma das posições do vetor. Geralemnte, a presença deum componente na solução é marcada por 1, enquanto que suaausência é marcada por 0.
I CombinaçõesI Conjunto contendo exatamente os elementos presentes na
resposta.I Permutações
I Conjunto ordinal indicando a ordem com que eles ocorrem nasolução.
Ivairton | Algoritmos Heurísticos
12
Algoritmos HeurísticosRepresentação de soluções
I Buscar na vizinhança consiste em alterar alguns poucoselementos na solução representada.
I O espaço de busca pode ser visto como um grafo, onde osvértices são soluções possíveis e as arestas associam soluçõesvizinhas.
I O espaço de busca pode ser visto como uma superfície comvales e cumes.
I Um caminho no espaço de busca é uma sequência de soluçõesvizinhas.
Ivairton | Algoritmos Heurísticos
13
Algoritmos HeurísticosBusca local
I Questões fundamentais num processo de busca local:I Domínio da representação da solução;I Definição da vizinhança;I Estratégia da busca na vizinhança;I Avaliar a complexidade de cada iteração
Típico algoritmo de busca local01-inicie com uma solução inicial S02-faça03-__flagMelhora← falso04-__S′ ← SelecionaVizinho()05-__∆Custo ← Custo(′S)− Custo(S)06-__se (∆Custo < 0) então07-____S ← S′
08-____flagMelhora← verdadeiro09-enquanto (flagMelhora)
Ivairton | Algoritmos Heurísticos
14
Algoritmos HeurísticosBusca local
I A função que "Seleciona Vizinho" pode ser de dois tipos:(1) Analisa todas as soluções vizinhas e escolhe aquela com menor
∆CUsto.(2) Analisa as soluções vizinhas e escolhe a primeira que que ocorrer
com ∆Custo < 0.I São dificuldades comuns no desenvolvimento de uma busca
local:I Término prematuro no primeiro ótimo localI Sensibilidade à solução inicialI Sensibilidade à vizinhançaI Sensibilidade à estratégia de buscaI Pode ser muito "cara" no aspecto computacional
I Estratégias para melhorar o processo e busca localI Redução da vizinhançaI Multi-partidaI Multi-vizinhançaI Segmentação de vizinhança
Ivairton | Algoritmos Heurísticos
15
Algoritmos HeurísticosMeta-heurística
Meta-heurísticasão modelos genéricos que subsidiam a consstrução de algoritmosheurísticos
I Muitos dos modelos são baseados na natureza.I As estratégias de uma meta-heurística tem como objetivo
superar as falhas numa busca localI São exemplos de meta-heurísticas:
I Algoritmos genéticosI Busca TabuI Simulated AnnealingI Ant SystemI Variable Neighborhood Search (VNS)I Greedy Randomized Adaptive Search Procedures (GRASP)I Otimização por núvem de partículas
Ivairton | Algoritmos Heurísticos
16
Bibliografia
I Estes slides são baseados predominantemente no livro doprofessor Marcone (UFOP).
Ivairton | Algoritmos Heurísticos
Obrigado!Prof. Ivairton M. Santos