algoritmos heurísticos - bacharelado em ciência da...

18
Universidade Federal de Mato Grosso - Campus Universitário do Araguaia Instituto de Ciências Exatas e da Terra Algoritmos Heurísticos Bacharelado em Ciência da Computação Prof. Ivairton M. Santos http://comp.cua.ufmt.br/ ivairton/ March 27, 2017

Upload: others

Post on 15-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 2: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

1Índice

Introdução

Algoritmos HeurísticosMétodo de BuscaRepresentação de soluçõesMeta-heurísticas

Ivairton | Algoritmos Heurísticos

Page 3: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 4: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 5: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 6: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 7: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 8: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 9: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 10: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 11: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 12: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 13: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 14: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 15: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 16: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

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

Page 17: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

16

Bibliografia

I Estes slides são baseados predominantemente no livro doprofessor Marcone (UFOP).

Ivairton | Algoritmos Heurísticos

Page 18: Algoritmos Heurísticos - Bacharelado em Ciência da Computaçãocomputacao.cua.ufmt.br/~ivairton/courses/pl/anotacoes_de_aulas3.… · 5 Algoritmos Heurísticos Classificação

Obrigado!Prof. Ivairton M. Santos