minicursocarine

86
Técnicas para Resolução de Problemas Complexos Sumário Def. Preliminares Heurísticas Metaheurísticas PAS Referências Técnicas para Resolução de Problemas Complexos Carine Rodrigues da Costa Mestranda em Ciência da Computação Instituto de Informática Universidade Federal de Goiás http://www.inf.ufg.br 1 / 86

Upload: carine-rodrigues

Post on 28-Nov-2014

769 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Técnicas para Resolução deProblemas Complexos

Carine Rodrigues da CostaMestranda em Ciência da Computação

Instituto de InformáticaUniversidade Federal de Goiás

http://www.inf.ufg.br

1 / 86

Page 2: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

1 Sumário

2 Definições Preliminares

3 HeurísticasHeurísticas ConstrutivasBusca Local

4 MetaheurísticasBusca TabuGRASPAlgoritmos Genéticos

5 Problema de Alocação de Salas

6 Referências

2 / 86

Page 3: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Otimização Combinatória

O que é um Problema de Otimização Combinatória?Um problema que possui diferentes soluções possíveis.Soluções são comparadas, efetuando a otimização.Otimizar: Encontrar uma solução ótima para umdeterminado problema, sob determinadas restrições.

3 / 86

Page 4: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Como Resolver um Problema de Otimização Combinatória?Enumeração de todas as soluções.Escolha da solução que possui o menor custo.

4 / 86

Page 5: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Exemplo: Problema da MochilaDados um conjunto de n objetos e uma mochila com:

prj : prioridade do objeto jpej : peso do objeto jb : capacidade da mochila

Determinar quais objetos devem ser colocados na mochilapara maximizar o benefício total de tal forma que o peso damochila não ultrapasse sua capacidade.

5 / 86

Page 6: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Exemplo: Problema da Mochila

Figura: Exemplo Problema da Mochila

6 / 86

Page 7: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Exemplo: Problema da MochilaColocar elementos dentro de um compartimento quesuporta 10kg.Cada elemento possui uma prioridade e um valor.

Considerando que existam 5 itens, temos:A [prioridade = 10, peso=3]B [prioridade = 3, peso=4]C [prioridade = 7, peso=6]D [prioridade = 9, peso=4]E [prioridade = 2, peso=2]

7 / 86

Page 8: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Enumerando todas as soluções (peso máximo= 10kg)S1 [A] pr = 10 pe = 3 S17 [A,B,D] pr = 22 pe = 11S2 [B] pr = 3 pe = 4 S18 [A,B,E] pr = 15 pe = 9S3 [C] pr = 7 pe = 6 S19 [A,C,D] pr = 26 pe = 13S4 [D] pr = 9 pe = 4 S20 [A,C,E] pr = 19 pe = 11S5 [E] pr = 2 pe = 2 S21 [A,D,E] pr = 21 pe = 9

S6 [A,B] pr = 13 pe = 7 S22 [B,C,D] pr = 19 pe = 14S7 [A,C] pr = 17 pe = 9 S23 [B,C,E] pr = 12 pe = 12S8 [A,D] pr = 19 pe = 7 S24 [B,D,E] pr = 14 pe = 10S9 [A,E] pr = 12 pe = 5 S25 [C,D,E] pr = 18 pe = 12S10 [B,C] pr = 10 pe = 10 S26 [A,B,C,D] pr = 29 pe = 17S11 [B,D] pr = 12 pe = 8 S27 [A,B,C,E] pr = 22 pe = 15S12 [B,E] pr = 5 pe = 6 S28 [A,B,D,E] pr = 24 pe = 13S13 [C,D] pr = 16 pe = 10 S29 [A,C,D,E] pr = 28 pe = 15S14 [C,E] pr = 9 pe = 8 S30 [B,C,D,E] pr = 21 pe = 16S15 [D,E] pr = 11 pe = 6 S31 [A,B,C,D,E] pr = 31 pe = 19S16 [A,B,C] pr = 20 pe = 13

8 / 86

Page 9: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

O número de soluções é dado por:

nS =n−1∑i=1

Cn,i + 1

n= quantidade de elementose C é a combinação de n elementos tomados p a p:

Cn,p =n!

p!(n− p)!

nS =5!

1!(5− 1)!+

5!2!(5− 2)!

+5!

3!(5− 3)!+

5!4!(5− 4)!

= 31

9 / 86

Page 10: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Soluções Possíveis para o Problema da Mochila

Valor de n Número de Soluções5 3110 102320 104857550 1125× 1015

100 1269× 1030

150 1427× 1045

10 / 86

Page 11: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Modelando um ProblemaDecisões: Identificar quais decisões efetivamente resolvem

o problema. O que não conhecemos noproblema?

Restrições: Identificar quais as restrições que limitam asdecisões a tomar.

Objetivos: Definir objetivos capazes de indicar que umadecisão é preferível a outras.

11 / 86

Page 12: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Forma Geral de um Modelo de Otimizaçãomin ou max (função objetivo)sujeito a

restrições principais (equações ou inequações)tipo das variáveis de decisão

12 / 86

Page 13: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Modelagem Matemática de um Problema de OtimizaçãoEncontrar x tal que

min f(x)s.a. gi(x) ≥ 0, para i = 1, ...,m

hj(x) = 0, para j = 1, ..., p

onde f, gi e hj são funções com x ∈ Rn.

13 / 86

Page 14: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Problema do Caixeiro Viajante - PCV“Suponha que um caixeiro viajante tenha de visitar n cidadesdiferentes, iniciando e encerrando sua viagem na primeiracidade. Suponha, também, que não importa a ordem comque as cidades são visitadas e que de cada uma delas pode-seir diretamente a qualquer outra. O problema do caixeiroviajante consiste em descobrir a rota que torna mínima aviagem total.”

14 / 86

Page 15: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

Problema do Caixeiro Viajante - PCVComo transformá-lo num problema de enumeração?Como determinar todas as rotas do caixeiro?Como saber qual delas é a menor?

15 / 86

Page 16: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema do Caixeiro Viajante - PCV

Modelagem por Grafos

Dados: um grafo G = (V,A), com |V | e cij ≥ 0 umpeso associado à aresta (i, j) ∈ A que liga os vértices vi

e vj , com: P : peso total de todas as arestas“percorridas”.Determinar: um Ciclo Hamiltoniano de peso Pmínimo.

Ciclo Hamiltoniano: Um ciclo hamiltoniano em G é umciclo que passa (uma e uma só vez) por cada vértice de G,com retorno ao vértice de origem.

16 / 86

Page 17: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema do Caixeiro Viajante - PCV

Exemplo: PCV

B

A

E

D C

44

39

31

51

63

50

6

8565

Figura: Uma instância do PCV modelado em um Grafo

17 / 86

Page 18: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Definições Preliminares

InstânciaValores dados aos parâmetros de entrada numdeterminado momento, satisfazendo às restriçõesimpostas pelo problema.O tamanho de uma instância corresponde ao total decódigos (numéricos e alfanuméricos) necessários parasua identificação, considerando o tipo e a estrutura dosdados utilizados.

18 / 86

Page 19: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema do Caixeiro Viajante - PCV

Modelando o PCVVariável de decisão: xij = 1 se a cidade i é visitada antes j.

0, caso contrário.Objetivo: Encontrar o circuito hamiltoniano de menor

custo.

minn∑

i=1

n∑j=1

cijxij

cij : custo da cidade i à cidade j.n: total de cidades.

19 / 86

Page 20: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema do Caixeiro Viajante - PCV

Restrições do PCVn∑

i=1

xij = 1,∀j

De todas as cidades chega apenas uma.

n∑j=1

xij = 1,∀i

Escolhe apenas uma cidade para partir.

20 / 86

Page 21: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas

O que é heurística?Técnica, consistindo de uma regra ou umconjunto de regras, que busca boas soluçõesem um tempo computacional razoável.É aproximativa.Não garante otimalidade.Qualidade da solução pode ser definida poruma métrica de avaliação ou critério.

21 / 86

Page 22: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas

Propósito Geral das HeurísticasIdentificar soluções de um problema, onde o tempo émais importante que a qualidade da solução, ou oconhecimento da qualidade.São utilizados para identificar boas aproximações desoluções, em menos tempo que um algoritmo exatolevaria para descobrir uma solução ótima.O uso de métodos exatos pode tornar impraticável asolução de diversos problemas.

22 / 86

Page 23: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas

Tipos de Heurísticas

Construtiva: Consiste em construir uma solução de um problemade forma incremental.

Melhoria: Iniciam com uma solução factível e então amelhoram com uma sequência de passos comointercalações ou trocas na vizinhança.

23 / 86

Page 24: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas

Heurísticas Construtivas

24 / 86

Page 25: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas Construtivas

Heurísticas Construtivas

Consiste em construir uma solução de um problema de formaincremental.

Adicionam componentes individuais (nós, arcos, variáveis).Método Guloso, procura o melhor componente.

Passo a passo, um componente é escolhido e depois inseridona solução até gerar uma solução completa.

O componente escolhido em cada passo é, em geral, omelhor candidato de acordo com algum critério.

25 / 86

Page 26: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurística de Construção Gulosa

Algoritmo Básico de uma Heurística Construtiva

Algoritmo 1: Heurística Construtiva

Inicialize a solução parcial sp;1

Inicialize o conjunto C de componentes candidatos;2

enquanto (sp não for uma solução completa) faça3

c← melhor componente guloso;4

sp ← sp ⊗ c ;5

Atualize C;6

s← sp;7

Retorne a solução s.8

Onde: ⊗ é um operador para adicionar um componente c asolução parcial sp.

26 / 86

Page 27: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Exemplo de Heurística Construtiva para o PCV

Heurística dos vizinhos mais próximosIdeia:

Escolha uma cidade inicial aleatoriamente.Em cada passo, escolha, entre as cidades que restaram,a cidade mais próxima.

27 / 86

Page 28: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas

Busca Local

28 / 86

Page 29: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Operações básicasPartindo de uma solução inicial, consiste em “navegar”interativamente pelo espaço de busca movendo-se em cadapasso, de uma solução para uma solução vizinha(adjacente).

29 / 86

Page 30: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Espaço de Soluções da Busca Local

Figura: Espaço de Soluções da Busca Local

30 / 86

Page 31: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Função de VizinhançaSeja S o espaço de busca do problemaSeja s uma solução do problema

DefiniçõesA função de vizinhança é uma função N(s) quemapeia cada solução s ∈ S para um subconjuntoN(s) ⊆ S.Um elemento qualquer de N(s) é denominado devizinho de s.

31 / 86

Page 32: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

MovimentoTodo vizinho s′ ∈ N(s) é alcançado pela solução satravés de uma operação denominada de movimento.

N(S) = {s1, s2, s3, s4}

Figura: Exemplos de possíveis movimentos sobre a vizinhança de s.

32 / 86

Page 33: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Exemplo de Movimentos na Vizinhança

2-opt (ou 2-change): No PCV: N2(s) = {s′ : s′ ∈ S e s′

pode ser obtida de s da seguinte maneira: remova duasarestas do caminho e as substitua por outras duas arestas}.

Figura: Exemplos de movimento 2-opt para o Problema doCaixeiro Viajante.

33 / 86

Page 34: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Movimentos no PCV

Figura: Exemplos de vizinhos de uma viagem no PCV com omovimento 2-opt para o Problema do Caixeiro Viajante.

34 / 86

Page 35: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Ótimo Local e Ótimo Global

Mínimo LocalUma solução s ∈ S é chamada de mínimo local sef(s) ≤ f(s′)∀s′ ∈ N(S).

Mínimo GlobalUma solução s ∈ S é chamada de mínimo global sef(s) ≤ f(s′)∀s′ ∈ S.Este tipo de solução será indicada por s∗

35 / 86

Page 36: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Ótimo Local e Ótimo Global

Exemplo de Ótimo Local e Ótimo Global

Figura: Busca local interrompida na solução A, um ótimo local debaixa qualidade.Eixo x: espaço de soluções. Eixo y: valor da função objetivo.

36 / 86

Page 37: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Operações básicasBaseado no método de tentativa e erro.O objetivo é encontrar ótimos locais, em sua forma maissimples.Partindo de uma solução inicial s, é feita uma busca nosubconjunto N(S) ⊂ S que contém soluções vizinhas des, e a melhor solução encontrada é escolhida.Processo se repete enquanto soluções melhores foremobtidas.Método não garante que seja encontrado um ótimolocal, embora seja possível de ser encontrado.

37 / 86

Page 38: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Algoritmo Geral de Busca Local

Dada uma instância (S, c) de um problema de otimização,em que F é um conjunto factível e c é o custo domapeamento, a vizinhança é dada por N : S −→ 2S em quese busca um ponto s′ ∈ S que é melhorado pela sub-rotina:

melhorar(s) ={

s′ ∈ N(s) | c(s′) < c(s)s, se não existe s′ ∈ N(s)

38 / 86

Page 39: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Algoritmo Geral de Busca Local

Algoritmo 2: Melhoria Iterativa

s← alguma solução inicial ;1

repita2

gerar s′ ∈ N(s);3

se f(s′) < f(s) então4

s← s′5

até f(s′) < f(s) para todo s′ ∈ N(s);6

Retorne a solução s.7

39 / 86

Page 40: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Busca Local

Considerações importantes

Obter uma solução inicial factível (heurísticaconstrutiva).Escolher uma “boa” vizinhança para o problema.Escolher um bom método de busca.Regras de seleção bem conhecidas: Primeira Melhoria(First Improvement) e Melhor Melhoria (BestImprovement).Primeira Melhoria: Seleciona a primeira solução de menor

custo em relação à solução atual encontrada,termina a iteração e o restante da vizinhançanão é avaliada, na mesma iteração.

Melhor Melhoria: São avaliadas todas as soluções vizinhas, eapós é escolhida a solução que traga a melhormelhoria, e assim prossegue a busca.

40 / 86

Page 41: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

HeurísticasConstrutivasBusca Local

Metaheurísticas

PAS

Referências

Heurísticas Construtivas × Busca Local

Heurísticas construtivas são, em geral, mais rápidas quemétodos de busca local.Contudo, a busca local, em geral, fornece soluções demelhor qualidade.

41 / 86

Page 42: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

42 / 86

Page 43: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

O que é Metaheurística?Métodos definidos de forma geral para resolução deproblemas, ou seja, são independentes de problemasespecíficos.Pode ser utilizada na resolução de diversas classes deproblemas, não relacionando a detalhes do problema.Devem ser refinadas.Heurísticas em que podem ser modelados problemas deuso geral, ou uma heurística de heurísticas.Tenta evitar a parada em um ótimo local.

43 / 86

Page 44: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

Características Desejáveis em uma Metaheurística

Simplicidade: A metaheurística pode ser baseada em um princípiosimples e claro, que pode ser aplicado amplamente;

Precisão: Os passos de uma metaheurística devem serformulados matematicamente, independente daanalogia com a biologia ou física que foiresponsável pela inspiração inicial;

Coerência: Todos os passos da heurística devem ser seguidosquando resolver um problema em particular;

Eficiência: Heurísticas para problemas particulares devemfornecer uma solução ótima ou sub-ótima paratodas ou pelo menos as instâncias que contémdados reais;

44 / 86

Page 45: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

Características Desejáveis em uma Metaheurística

Efetividade: Heurísticas para problemas particulares devemgastar um tempo computacional viável parafornecer soluções ótimas ou sub-ótimas;

Robustez: O desempenho da heurística deve ser consistentesobre uma grande quantidade e variedade deinstâncias, e não apenas aperfeiçoá-la para umúnico conjunto de instâncias;

Amigável: Heurísticas devem ser claramente descritas, fáceisde entender e fáceis de usar. Isto implica em terpoucos parâmetros, e se possível nenhum;

Inovação: Preferivelmente, os princípios das metaheurísticas,eficiência e efetividade devem conduzir a novostipos de aplicações.

45 / 86

Page 46: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

Metaheurísticas

1 Busca Tabu2 GRASP3 Algoritmos Genéticos

46 / 86

Page 47: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

Busca Tabu

47 / 86

Page 48: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Busca Tabu

Busca Tabu

Criado por Glover [2] e Hansen.

Baseado em busca local.

Diferença entre Busca Local e Tabu Search é a maneira deexplorar a vizinhança, pois na primeira as soluções melhoresque a atual são escolhidas da vizinhança e na segunda amelhor solução vizinha é escolhida.

Estratégia de escolher o melhor vizinho (best improvement),junto com uma estrutura de memória para armazenar assoluções geradas tem como objetivo não deixar a busca presaem um ótimo local.

48 / 86

Page 49: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Busca Tabu

Busca Tabu

Guia a busca local utilizando uma estrutura de memória comaceitação de movimentos que não são de melhora.

Usa a memória para:

Prevenir ciclos (isto é, evitar visitar soluções jávisitadas);Explorar regiões não visitadas do espaço de busca;Melhorar, através de experiências passadas, processo detomada de decisão.

49 / 86

Page 50: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Busca Tabu

Memória de Curto PrazoA principal meta é evitar:

Reverter o movimento;Ciclos.

Lista tabu: registra o histórico das t mais recentes soluçõesvisitadas.Em geral, é registrado apenas alguns atributos das soluçõesjá visitadas em vez da solução completa (é mais barato).

50 / 86

Page 51: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Busca Tabu

Construção da Lista Tabu

Fila circular com tamanho máximo pré-fixado.

Possui movimentos reversos aos últimos | T | movimentosrealizados.

Para o PCV: a lista tabu contém m pares de arestas queforam selecionadas por 2-opt.

51 / 86

Page 52: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Busca Tabu

Algoritmo 3: Tabu Search

T ← ∅;1s← alguma solução inicial;2s∗ ← s;3repita4

encontrar a melhor s′ ∈ N(S) \ T ;5se f(s′) < f(s∗) então6

s∗ ← s;7

s← s′;8Atualize a lista tabu T ;9

até critério de parada;10Retorne s∗;11

52 / 86

Page 53: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

GRASP

53 / 86

Page 54: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

GRASP - Greedy Randomized Adaptive SearchProcedure

GRASP - Greedy Randomized Adaptive Search Procedure -Procedimento de Busca Adaptativa Gulosa e Randômica

Proposto por Feo e Resende [2].

Baseada no processo chamado Multistart, para obter ótimoslocais de melhor qualidade.

54 / 86

Page 55: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

GRASP - Greedy Randomized Adaptive SearchProcedure

GRASP - Greedy Randomized Adaptive Search Procedure -Procedimento de Busca Adaptativa Gulosa e Randômica

Procedimento Iterativo

A cada iteração obtém-se uma solução.As soluções são mantidas até o final.

Procedimento tem 2 fases:

Construir uma solução inicial usando uma função gulosaaleatória.Aplica uma busca local para melhorar a solução anterior.

55 / 86

Page 56: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

GRASP - Greedy Randomized Adaptive SearchProcedure

Algoritmo 4: GRASP

f∗ ←∞;1repita2

Construção();3BuscaLocal(s);4se (f(s) < f∗) então5

s∗ ← s;6f∗ ← f(s);7

até critério de parada;8s← s∗;9

56 / 86

Page 57: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

GRASP - Greedy Randomized Adaptive SearchProcedure

Fase de Construção

A solução inicia com um conjunto vazio. São inseridoselementos nesse conjunto até que ele represente uma soluçãoviável para o problema.

A cada iteração, todos os elementos candidatos são avaliadossegundo uma função gulosa que meça o benefício da inserçãodesse elemento para a construção da solução.

Uma vez realizada essa valoração, é construída a LCR: umalista contendo os elementos com melhor valor na funçãogulosa.

Escolhe-se um elemento aleatoriamente para ser inserido nasolução.

A lista é atualizada.

57 / 86

Page 58: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

GRASP - Greedy Randomized Adaptive SearchProcedure

Fase de construção

Demanda maior esforço computacional;

Constrói soluções, iterativamente, inserindo-se na solução,um elemento de cada vez;

A cada iteração, a escolha do próximo elemento a seradicionado é determinado pela ordenação de todos oselementos candidatos, em uma lista de candidatos;

Essa ordenação é feita mediante a avaliação de cadaelemento, conforme a função “gulosa”;

Heurística Adaptativa: Benefícios de cada elemento sãoatualizados a cada iteração, as próximas soluções conterãoalgumas características da solução anterior..

58 / 86

Page 59: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

GRASP - Greedy Randomized Adaptive SearchProcedure

Fase de Construção do GRASP

Algoritmo 5: Construção

s← ∅;1Inicialize o conjunto de candidatos C;2enquanto C 6= ∅ faça3

g(tmin) = min{g(t) | t ∈ C};4g(tmax) = max{g(t) | t ∈ C};5LCR = {t ∈ C | g(t) ≤ g(tmin) + α(g(tmax − g(tmin))};6Selecione, aleatoriamente, um elemento t ∈ LCR;7s← s ∪ {t};8Atualize o conjunto C de candidatos;9

α ∈ [0, 1]: controla o nível de gulosidade e aleatoriedade doprocedimento Construção.Se α = 0 as soluções geradas são totalmente gulosas.Se α = 1 as soluções geradas são totalmente aleatórias(diversidade de soluções construídas).

59 / 86

Page 60: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Metaheurísticas

Algoritmos Genéticos

60 / 86

Page 61: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Algoritmos Genéticos

Criado por Holland e colegas [4].

Baseados em processos de seleção natural de evolução, daTeoria de Darwin.

Indivíduos com características melhores têm maiores chancesde sobrevivência a de produzirem filhos cada vez mais aptos.

61 / 86

Page 62: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Elementos de Algoritmos Genéticos

0 1 0 0 1

1 1 0 0 1

1 1 0 0 0

0 1 1 0 1

População(Conjunto de Soluções)

Cromossomo(indivíduo, solução)

Gene (parte da representação

 de uma solução)

Alelo(possível valor

do gene)

Figura: Elementos de um Algoritmo Genético.

62 / 86

Page 63: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Elementos de Algoritmos Genéticos

Mecanismo de reprodução baseado em processos evolutivos,é aplicado sobre a população com o objetivo de explorar oespaço de busca e encontrar as melhores soluções para oproblema.

Cada indivíduo é avaliado por uma função de aptidão.

Quanto maior for o valor da função de aptidão, quer dizerque mais o indivíduo está adaptado ao meio.

63 / 86

Page 64: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Componentes de Algoritmos Genéticos

1 Uma representação genética de potenciais soluções par oproblema;

2 Um modo de criar uma população de soluções inicial;

3 Uma função de avaliação que segue as regras do ambiente,avaliando as soluções em relação à sua “aptidão”;

4 Operadores genéticos que alteram a composição dos filhos;

5 Valores de vários parâmetros que um Algoritmo Genético usa(tamanho da população, probabilidade da aplicação dosoperadores genéticos).

64 / 86

Page 65: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Procedimento Básico de um Algoritmo Genético

pai 2

pai 1

pai 2

pai 1Seleção de  um ponto de corte

 Aplicação do crossover

filho 2

filho 1Aplicação da 

mutaçãofilho 2

filho 1

Gene alterado pela mutação

(a)  (b) 

(c) (d) 

Figura: Procedimento Básico de um Algoritmo Genético.

65 / 86

Page 66: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Processo de ReproduçãoExistem várias formas de selecionar indivíduos para oprocesso de reprodução.Binary Tournament Selection: indivíduos sãoselecionados aleatoriamente e aquele que tiver o maiorvalor para a função de aptidão é escolhido para ser opai, de forma análoga, o segundo pai é escolhido.

66 / 86

Page 67: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Operações do Algoritmo GenéticoOperação de Recombinação: Geração de filhos.Operação de Mutação: Alterar aleatoriamente uma parte dos

genes de cada cromossomo.

67 / 86

Page 68: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Critérios para Escolha de Cromossomos SobreviventesAleatórioRoleta: chance de sobrevivência de cada cromossomo é

proporcional ao seu nível de aptidão.Misto

O objetivo do uso destes critérios é escapar deótimos locais.

68 / 86

Page 69: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Algoritmo Genético Básico

Algoritmo 6: Construção

t← 0;1

Gere a população inicial P (t);2

Avalie P (t);3

enquanto os critérios de parada não estiverem4

satisfeitos façat← t+ 1;5

Gere P (t) a partir de P (t− 1);6

Avalie P (t);7

Defina a população sobrevivente;8

69 / 86

Page 70: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

MetaheurísticasBusca TabuGRASPAlg. Genéticos

PAS

Referências

Algoritmos Genéticos

Tipos de Cromossomos (Soluções)

Cromossomo p = (x1, x2, ..., xm)

Representação Binária: Ex.: Maximizar a funçãof(x) =| 11 ∗ num(x)− 150 |, em que num(x)contém a quantidade de 1’s do vetor cromossomo.

Representação por Inteiros: Ex.: No PCV, cromossomop = (3, 4, 7, 1, 8, 9, 2, 5, 6) equivale à uma rota.

70 / 86

Page 71: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas

71 / 86

Page 72: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

O que éClassroom Assignment - Parte integrante do Problemade Programação de Cursos Universitários (CouseTimetabling).Atribuição de aulas, com horários previamenteestabelecidos, a salas, respeitando um conjunto derestrições de várias naturezas [3].

72 / 86

Page 73: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Restrições Fortesa: Em uma mesma sala e horário não pode haver

mais de uma aula.b: Uma sala não pode receber uma turma cuja

quantidade de alunos seja superior à suacapacidade.

c: Algumas salas têm horários previamentereservados e nestes horários ficam indisponíveis.

73 / 86

Page 74: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Restrições Fracasd: Certas salas têm restrições de uso e elas devem

ser evitadas o quanto possível.e: Sempre que possível, alocar a uma mesma sala

alunos de um mesmo curso e período.f: Utilizar o espaço das salas eficientemente, isto

é, evitar alocar aulas de turmas pequenas emsalas de maior capacidade.

g: Se possível, cada uma das salas deve serdeixada vazia em pelo menos um horário aolongo do dia, de forma a possibilitar a limpeza.

74 / 86

Page 75: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Representação da Solução

Matriz S = (sij)m×n, onde m = total horários, n = totalsalas.sij contém a turma alocada no horário i e sala j.

Figura: Exemplo de uma Alocação

75 / 86

Page 76: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Estrutura de Vizinhança

Figura: Movimento de Alocação

76 / 86

Page 77: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Estrutura de Vizinhança

Figura: Movimento de Troca

77 / 86

Page 78: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Função ObjetivoAgrupando restrições fortes e fracas:g(s): função de inviabilidadeh(s): função de qualidade

f(s) = g(s) + h(s)

78 / 86

Page 79: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Função de Inviabilidade

g(s) =K∑

k=1

αkIk

ondeK: número de medidas de inviabilidadeIk: valor de k-ésima medida de inviabilidadeαk: peso associado à k-ésima medida de inviabilidade

79 / 86

Page 80: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Função de Qualidade

h(s) =L∑

l=1

βlQl

ondeL: número de medidas de qualidadeQl: valor de l-ésima medida de qualidadeβl: peso associado à l-ésima medida de qualidade

A solução s é viável quando g(s) = 0

80 / 86

Page 81: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Geração de uma Solução InicialToma-se uma aula não alocada da turma com maiordemanda e constrói uma LCR das salas vagas nohorários da aula, ordenadas pela capacidade.Uma das |LCR| salas é escolhida aleatoriamente parareceber a aula.Procedimento continua até que sejam alocadas todas asaulas.

81 / 86

Page 82: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Algoritmo - Busca Tabu e Simulated AnnealingCalibragem dos parâmetros:|T | = 100BTmax = 1000 (número de iterações sem melhora)

Algoritmo 7: SA+BT

s0 ← ConstruaSolucaoInicial() ;1

s1 ← SA(s0) ;2

s∗ ← BT (s1) ;3

82 / 86

Page 83: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Problema de Alocação de Salas - PAS

Resultados

Figura: Características das Instâncias Consideradas

Figura: Resultados Computacionais 83 / 86

Page 84: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Bibliografia Básica

A. Z. Cordenonsi.Ambientes, Objetos e Dialogicidade: Uma Estratégia de EnsinoSuperior em Heurísticas e Metaheurísticas.Tese de Doutorado, UFRGS, 2008.

C. H. Papadimitriou, K. Steiglitz.Combinatorial Optimization: Algorithms and Complexity.Prentice-Hall, 1982.

D. De Werra, A. Hertz.Tabu Search Techniques: A Tutorial and an Application to NeuralNetworks.OR Spectrum, 11(3):131–141, 1989.

D. E. Goldberg.Genetics Algorithms in Search, Optimization, and MachineLearning.Addison-Wesley, Berkeley, 1989.

84 / 86

Page 85: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Bibliografia Básica

E. G. M. de Lacerda.Busca Local.Slides, UFRN - DCA, 2006.

F. Glover.Future Paths for Integer Programming and Links to ArtificialIntelligence.Computers and Operations Research, 5:553–549, 1986.

M. J. F. Souza., A. X. Martins, C. R. de Araújo.Experiências com Simulated Annealing e Busca Tabu na Resoluçãodo Problema de Alocação de Salas.XXXIV SBPO, RJ, 2002.

M. J. F. Souza.Inteligência Computacional para Otimização.Relatório Técnico - UFOP, 2009.

85 / 86

Page 86: MinicursoCarine

Técnicas paraResolução deProblemasComplexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Bibliografia Básica

P. Hansen, N. Mladenovic.Variable Neighborhood Search..Cap. 7, p. 145–184. Kluwer Academic Publishers, 2003.

T. A. Feo, M. G. Resende.Greedy Randomized Adaptive Search Procedures.Journal of Global Optimization, 6:109–133, 1995.

86 / 86