Você está na página 1de 86

Técnicas para

Resolução de
Problemas
Complexos

Sumário Técnicas para Resolução de


Def. Preliminares

Heurísticas
Problemas Complexos
Metaheurísticas

PAS

Referências
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
Técnicas para
Resolução de
Problemas
Complexos
1 Sumário

2 Definições Preliminares
Sumário

Def. Preliminares

Heurísticas
3 Heurísticas
Metaheurísticas
Heurísticas Construtivas
PAS
Busca Local
Referências
4 Metaheurísticas
Busca Tabu
GRASP
Algoritmos Genéticos

5 Problema de Alocação de Salas

6 Referências

2 / 86
Técnicas para
Resolução de Otimização Combinatória
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas O que é um Problema de Otimização Combinatória?


PAS
Um problema que possui diferentes soluções possíveis.
Referências
Soluções são comparadas, efetuando a otimização.
Otimizar: Encontrar uma solução ótima para um
determinado problema, sob determinadas restrições.

3 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS Como Resolver um Problema de Otimização Combinatória?


Referências
Enumeração de todas as soluções.
Escolha da solução que possui o menor custo.

4 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Exemplo: Problema da Mochila
Metaheurísticas Dados um conjunto de n objetos e uma mochila com:
PAS
prj : prioridade do objeto j
Referências
pej : 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.

5 / 86
Técnicas para
Resolução de Exemplo: Problema da Mochila
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS

Referências

Figura: Exemplo Problema da Mochila

6 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares Exemplo: Problema da Mochila


Heurísticas
Colocar elementos dentro de um compartimento que
Metaheurísticas
suporta 10kg.
PAS

Referências
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
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares
Enumerando todas as soluções (peso máximo= 10kg)
Heurísticas
S1 [A] pr = 10 pe = 3 S17 [A,B,D] pr = 22 pe = 11
Metaheurísticas S2 [B] pr = 3 pe = 4 S18 [A,B,E] pr = 15 pe = 9
S3 [C] pr = 7 pe = 6 S19 [A,C,D] pr = 26 pe = 13
PAS S4 [D] pr = 9 pe = 4 S20 [A,C,E] pr = 19 pe = 11
Referências S5 [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 = 14
S7 [A,C] pr = 17 pe = 9 S23 [B,C,E] pr = 12 pe = 12
S8 [A,D] pr = 19 pe = 7 S24 [B,D,E] pr = 14 pe = 10
S9 [A,E] pr = 12 pe = 5 S25 [C,D,E] pr = 18 pe = 12
S10 [B,C] pr = 10 pe = 10 S26 [A,B,C,D] pr = 29 pe = 17
S11 [B,D] pr = 12 pe = 8 S27 [A,B,C,E] pr = 22 pe = 15
S12 [B,E] pr = 5 pe = 6 S28 [A,B,D,E] pr = 24 pe = 13
S13 [C,D] pr = 16 pe = 10 S29 [A,C,D,E] pr = 28 pe = 15
S14 [C,E] pr = 9 pe = 8 S30 [B,C,D,E] pr = 21 pe = 16
S15 [D,E] pr = 11 pe = 6 S31 [A,B,C,D,E] pr = 31 pe = 19
S16 [A,B,C] pr = 20 pe = 13

8 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

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


Def. Preliminares

Heurísticas n−1
X
Metaheurísticas nS = Cn,i + 1
PAS i=1
Referências
n= quantidade de elementos
e C é a combinação de n elementos tomados p a p:

n!
Cn,p =
p!(n − p)!

5! 5! 5! 5!
nS = + + + = 31
1!(5 − 1)! 2!(5 − 2)! 3!(5 − 3)! 4!(5 − 4)!

9 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

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


Metaheurísticas
Valor de n Número de Soluções
PAS
5 31
Referências
10 1023
20 1048575
50 1125 × 1015
100 1269 × 1030
150 1427 × 1045

10 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Modelando um Problema


Metaheurísticas Decisões: Identificar quais decisões efetivamente resolvem
PAS
o problema. O que não conhecemos no
Referências
problema?
Restrições: Identificar quais as restrições que limitam as
decisões a tomar.
Objetivos: Definir objetivos capazes de indicar que uma
decisão é preferível a outras.

11 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Forma Geral de um Modelo de Otimização
PAS

Referências
min ou max (função objetivo)
sujeito a
restrições principais (equações ou inequações)
tipo das variáveis de decisão

12 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Modelagem Matemática de um Problema de Otimização


Metaheurísticas
Encontrar x tal que
PAS

Referências
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
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Problema do Caixeiro Viajante - PCV


Metaheurísticas
“Suponha que um caixeiro viajante tenha de visitar n cidades
PAS
diferentes, iniciando e encerrando sua viagem na primeira
Referências
cidade. Suponha, também, que não importa a ordem com
que as cidades são visitadas e que de cada uma delas pode-se
ir diretamente a qualquer outra. O problema do caixeiro
viajante consiste em descobrir a rota que torna mínima a
viagem total.”

14 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

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

15 / 86
Técnicas para
Resolução de Problema do Caixeiro Viajante - PCV
Problemas
Complexos

Sumário

Def. Preliminares Modelagem por Grafos


Heurísticas
Dados: um grafo G = (V, A), com |V | e cij ≥ 0 um
Metaheurísticas
peso associado à aresta (i, j) ∈ A que liga os vértices vi
PAS
e vj , com: P : peso total de todas as arestas
Referências
“percorridas”.
Determinar: um Ciclo Hamiltoniano de peso P
mínimo.
Ciclo Hamiltoniano: Um ciclo hamiltoniano em G é um
ciclo que passa (uma e uma só vez) por cada vértice de G,
com retorno ao vértice de origem.

16 / 86
Técnicas para
Resolução de Problema do Caixeiro Viajante - PCV
Problemas
Complexos

Exemplo: PCV
Sumário

Def. Preliminares
A
Heurísticas
51
Metaheurísticas
B
PAS

Referências 31 50
E
39 6
65
44 85

D C
63

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

17 / 86
Técnicas para
Resolução de Definições Preliminares
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Instância
Metaheurísticas
Valores dados aos parâmetros de entrada num
PAS
determinado momento, satisfazendo às restrições
Referências
impostas pelo problema.
O tamanho de uma instância corresponde ao total de
códigos (numéricos e alfanuméricos) necessários para
sua identificação, considerando o tipo e a estrutura dos
dados utilizados.

18 / 86
Técnicas para
Resolução de Problema do Caixeiro Viajante - PCV
Problemas
Complexos

Sumário

Def. Preliminares
Modelando o PCV
Heurísticas

Metaheurísticas
Variável de decisão: xij = 1 se a cidade i é visitada antes j.
PAS
0, caso contrário.
Referências Objetivo: Encontrar o circuito hamiltoniano de menor
custo.
Xn Xn
min cij xij
i=1 j=1

cij : custo da cidade i à cidade j.


n: total de cidades.

19 / 86
Técnicas para
Resolução de Problema do Caixeiro Viajante - PCV
Problemas
Complexos

Sumário

Def. Preliminares
Restrições do PCV
Heurísticas
n
Metaheurísticas
X
xij = 1, ∀j
PAS
i=1
Referências
De todas as cidades chega apenas uma.
n
X
xij = 1, ∀i
j=1

Escolhe apenas uma cidade para partir.

20 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário Heurísticas
Def. Preliminares

Heurísticas O que é heurística?


Construtivas
Busca Local
Técnica, consistindo de uma regra ou um
Metaheurísticas
conjunto de regras, que busca boas soluções
PAS
em um tempo computacional razoável.
Referências
É aproximativa.
Não garante otimalidade.
Qualidade da solução pode ser definida por
uma métrica de avaliação ou critério.

21 / 86
Técnicas para
Resolução de Heurísticas
Problemas
Complexos

Sumário

Def. Preliminares
Propósito Geral das Heurísticas
Heurísticas
Construtivas
Busca Local
Identificar soluções de um problema, onde o tempo é
Metaheurísticas mais importante que a qualidade da solução, ou o
PAS conhecimento da qualidade.
Referências São utilizados para identificar boas aproximações de
soluções, em menos tempo que um algoritmo exato
levaria para descobrir uma solução ótima.
O uso de métodos exatos pode tornar impraticável a
solução de diversos problemas.

22 / 86
Técnicas para
Resolução de Heurísticas
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local
Tipos de Heurísticas
Metaheurísticas
Construtiva: Consiste em construir uma solução de um problema
PAS
de forma incremental.
Referências
Melhoria: Iniciam com uma solução factível e então a
melhoram com uma sequência de passos como
intercalações ou trocas na vizinhança.

23 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local
Heurísticas
Metaheurísticas

PAS

Referências Heurísticas Construtivas

24 / 86
Técnicas para
Resolução de Heurísticas Construtivas
Problemas
Complexos

Sumário

Def. Preliminares
Heurísticas Construtivas
Heurísticas
Construtivas
Busca Local
Consiste em construir uma solução de um problema de forma
Metaheurísticas
incremental.
PAS Adicionam componentes individuais (nós, arcos, variáveis).
Referências Método Guloso, procura o melhor componente.
Passo a passo, um componente é escolhido e depois inserido
na solução até gerar uma solução completa.
O componente escolhido em cada passo é, em geral, o
melhor candidato de acordo com algum critério.

25 / 86
Técnicas para
Resolução de Heurística de Construção Gulosa
Problemas
Complexos

Algoritmo Básico de uma Heurística Construtiva


Sumário

Def. Preliminares Algoritmo 1: Heurística Construtiva


Heurísticas
Construtivas 1 Inicialize a solução parcial sp ;
Busca Local

Metaheurísticas
2 Inicialize o conjunto C de componentes candidatos;
PAS
3 enquanto (sp não for uma solução completa) faça
Referências 4 c ← melhor componente guloso;
5 sp ← sp ⊗ c ;
6 Atualize C;
7 s ← sp ;
8 Retorne a solução s.

Onde: ⊗ é um operador para adicionar um componente c a


solução parcial sp .

26 / 86
Técnicas para
Resolução de Exemplo de Heurística Construtiva para o PCV
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local Heurística dos vizinhos mais próximos
Metaheurísticas
Ideia:
PAS

Referências Escolha uma cidade inicial aleatoriamente.


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

27 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local
Heurísticas
Metaheurísticas

PAS

Referências Busca Local

28 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local
Operações básicas
Metaheurísticas

PAS
Partindo de uma solução inicial, consiste em “navegar”
Referências
interativamente pelo espaço de busca movendo-se em cada
passo, de uma solução para uma solução vizinha
(adjacente).

29 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Espaço de Soluções da Busca Local


Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local

Metaheurísticas

PAS

Referências

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

30 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Sumário

Def. Preliminares
Função de Vizinhança
Heurísticas
Construtivas Seja S o espaço de busca do problema
Busca Local

Metaheurísticas Seja s uma solução do problema


PAS
Definições
Referências
A função de 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.

31 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Sumário
Movimento
Def. Preliminares

Heurísticas
Todo vizinho s0 ∈ N (s) é alcançado pela solução s
Construtivas
Busca Local
através de uma operação denominada de movimento.
Metaheurísticas
N (S) = {s1 , s2 , s3 , s4 }
PAS

Referências

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

32 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos
Exemplo de Movimentos na Vizinhança
Sumário 2-opt (ou 2-change): No PCV: N2 (s) = {s0 : s0 ∈ S e s0
Def. Preliminares pode ser obtida de s da seguinte maneira: remova duas
Heurísticas arestas do caminho e as substitua por outras duas arestas}.
Construtivas
Busca Local

Metaheurísticas

PAS

Referências

Figura: Exemplos de movimento 2-opt para o Problema do


Caixeiro Viajante. 33 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos
Movimentos no PCV
Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local

Metaheurísticas

PAS

Referências

Figura: Exemplos de vizinhos de uma viagem no PCV com o


movimento 2-opt para o Problema do Caixeiro Viajante.
34 / 86
Técnicas para
Resolução de Ótimo Local e Ótimo Global
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Mínimo Local


Construtivas
Busca Local Uma solução s ∈ S é chamada de mínimo local se
Metaheurísticas
f (s) ≤ f (s0 )∀s0 ∈ N (S).
PAS

Referências
Mínimo Global
Uma solução s ∈ S é chamada de mínimo global se
f (s) ≤ f (s0 )∀s0 ∈ S.
Este tipo de solução será indicada por s∗

35 / 86
Técnicas para
Resolução de Ótimo Local e Ótimo Global
Problemas
Complexos

Sumário Exemplo de Ótimo Local e Ótimo Global


Def. Preliminares

Heurísticas
Construtivas
Busca Local

Metaheurísticas

PAS

Referências

Figura: Busca local interrompida na solução A, um ótimo local de


baixa qualidade.
Eixo x: espaço de soluções. Eixo y: valor da função objetivo.

36 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Sumário
Operações básicas
Def. Preliminares

Heurísticas
Baseado no método de tentativa e erro.
Construtivas
Busca Local O objetivo é encontrar ótimos locais, em sua forma mais
Metaheurísticas simples.
PAS
Partindo de uma solução inicial s, é feita uma busca no
Referências
subconjunto N (S) ⊂ S que contém soluções vizinhas de
s, e a melhor solução encontrada é escolhida.
Processo se repete enquanto soluções melhores forem
obtidas.
Método não garante que seja encontrado um ótimo
local, embora seja possível de ser encontrado.

37 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Algoritmo Geral de Busca Local


Construtivas
Busca Local
Dada uma instância (S, c) de um problema de otimização,
Metaheurísticas
em que F é um conjunto factível e c é o custo do
PAS

Referências
mapeamento, a vizinhança é dada por N : S −→ 2S em que
se busca um ponto s0 ∈ S que é melhorado pela sub-rotina:

s0 ∈ N (s) | c(s0 ) < c(s)



melhorar(s) =
s, se não existe s0 ∈ N (s)

38 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Sumário

Def. Preliminares Algoritmo Geral de Busca Local


Heurísticas
Construtivas Algoritmo 2: Melhoria Iterativa
Busca Local

Metaheurísticas 1 s ← alguma solução inicial ;


PAS
2 repita
Referências
3 gerar s0 ∈ N (s);
4 se f (s0 ) < f (s) então
5 s ← s0
6 até f (s0 ) < f (s) para todo s0 ∈ N (s);
7 Retorne a solução s.

39 / 86
Técnicas para
Resolução de Busca Local
Problemas
Complexos

Considerações importantes
Sumário

Def. Preliminares
Obter uma solução inicial factível (heurística
Heurísticas
construtiva).
Construtivas
Busca Local Escolher uma “boa” vizinhança para o problema.
Metaheurísticas
Escolher um bom método de busca.
PAS
Regras de seleção bem conhecidas: Primeira Melhoria
Referências
(First Improvement) e Melhor Melhoria (Best
Improvement).
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ça
não é avaliada, na mesma iteração.
Melhor Melhoria: São avaliadas todas as soluções vizinhas, e
após é escolhida a solução que traga a melhor
melhoria, e assim prossegue a busca.

40 / 86
Técnicas para
Resolução de Heurísticas Construtivas × Busca Local
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Construtivas
Busca Local

Metaheurísticas Heurísticas construtivas são, em geral, mais rápidas que


PAS métodos de busca local.
Referências
Contudo, a busca local, em geral, fornece soluções de
melhor qualidade.

41 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Busca Tabu
GRASP
Alg. Genéticos
Metaheurísticas
PAS

Referências

42 / 86
Técnicas para
Resolução de Metaheurísticas
Problemas
Complexos

Sumário

Def. Preliminares O que é Metaheurística?


Heurísticas Métodos definidos de forma geral para resolução de
Metaheurísticas
Busca Tabu
problemas, ou seja, são independentes de problemas
GRASP
Alg. Genéticos
específicos.
PAS Pode ser utilizada na resolução de diversas classes de
Referências problemas, não relacionando a detalhes do problema.
Devem ser refinadas.
Heurísticas em que podem ser modelados problemas de
uso geral, ou uma heurística de heurísticas.
Tenta evitar a parada em um ótimo local.

43 / 86
Técnicas para
Resolução de Metaheurísticas
Problemas
Complexos

Sumário Características Desejáveis em uma Metaheurística


Def. Preliminares
Simplicidade: A metaheurística pode ser baseada em um princípio
Heurísticas
simples e claro, que pode ser aplicado amplamente;
Metaheurísticas
Busca Tabu
GRASP
Precisão: Os passos de uma metaheurística devem ser
Alg. Genéticos formulados matematicamente, independente da
PAS analogia com a biologia ou física que foi
Referências responsável pela inspiração inicial;
Coerência: Todos os passos da heurística devem ser seguidos
quando resolver um problema em particular;
Eficiência: Heurísticas para problemas particulares devem
fornecer uma solução ótima ou sub-ótima para
todas ou pelo menos as instâncias que contém
dados reais;

44 / 86
Técnicas para
Resolução de Metaheurísticas
Problemas
Complexos

Características Desejáveis em uma Metaheurística


Sumário

Def. Preliminares Efetividade: Heurísticas para problemas particulares devem


Heurísticas gastar um tempo computacional viável para
Metaheurísticas fornecer soluções ótimas ou sub-ótimas;
Busca Tabu
GRASP
Alg. Genéticos
Robustez: O desempenho da heurística deve ser consistente
PAS
sobre uma grande quantidade e variedade de
Referências
instâncias, e não apenas aperfeiçoá-la para um
único conjunto de instâncias;
Amigável: Heurísticas devem ser claramente descritas, fáceis
de entender e fáceis de usar. Isto implica em ter
poucos parâmetros, e se possível nenhum;
Inovação: Preferivelmente, os princípios das metaheurísticas,
eficiência e efetividade devem conduzir a novos
tipos de aplicações.

45 / 86
Técnicas para
Resolução de Metaheurísticas
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Busca Tabu
GRASP
Metaheurísticas
Alg. Genéticos

PAS
1 Busca Tabu
Referências
2 GRASP
3 Algoritmos Genéticos

46 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas Metaheurísticas
Busca Tabu
GRASP
Alg. Genéticos

PAS
Busca Tabu
Referências

47 / 86
Técnicas para
Resolução de Busca Tabu
Problemas
Complexos

Sumário

Def. Preliminares
Busca Tabu
Heurísticas Criado por Glover [2] e Hansen.
Metaheurísticas
Busca Tabu Baseado em busca local.
GRASP
Alg. Genéticos
Diferença entre Busca Local e Tabu Search é a maneira de
PAS
explorar a vizinhança, pois na primeira as soluções melhores
Referências
que a atual são escolhidas da vizinhança e na segunda a
melhor solução vizinha é escolhida.
Estratégia de escolher o melhor vizinho (best improvement),
junto com uma estrutura de memória para armazenar as
soluções geradas tem como objetivo não deixar a busca presa
em um ótimo local.

48 / 86
Técnicas para
Resolução de Busca Tabu
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Busca Tabu
Metaheurísticas Guia a busca local utilizando uma estrutura de memória com
Busca Tabu
GRASP aceitação de movimentos que não são de melhora.
Alg. Genéticos

PAS Usa a memória para:


Referências
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 de
tomada de decisão.

49 / 86
Técnicas para
Resolução de Busca Tabu
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Memória de Curto Prazo


Metaheurísticas A principal meta é evitar:
Busca Tabu
GRASP
Alg. Genéticos
Reverter o movimento;
PAS Ciclos.
Referências
Lista tabu: registra o histórico das t mais recentes soluções
visitadas.
Em geral, é registrado apenas alguns atributos das soluções
já visitadas em vez da solução completa (é mais barato).

50 / 86
Técnicas para
Resolução de Busca Tabu
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Construção da Lista Tabu
Busca Tabu
GRASP Fila circular com tamanho máximo pré-fixado.
Alg. Genéticos

PAS Possui movimentos reversos aos últimos | T | movimentos


Referências realizados.
Para o PCV: a lista tabu contém m pares de arestas que
foram selecionadas por 2-opt.

51 / 86
Técnicas para
Resolução de Busca Tabu
Problemas
Complexos

Sumário

Def. Preliminares
Algoritmo 3: Tabu Search
Heurísticas
1 T ← ∅;
Metaheurísticas
Busca Tabu
2 s ← alguma solução inicial;
GRASP 3 s∗ ← s;
Alg. Genéticos
4 repita
PAS
5 encontrar a melhor s0 ∈ N (S) \ T ;
Referências
6 se f (s0 ) < f (s∗ ) então
7 s∗ ← s;
8 s ← s0 ;
9 Atualize a lista tabu T ;
10 até critério de parada;
11 Retorne s∗ ;

52 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas Metaheurísticas
Busca Tabu
GRASP
Alg. Genéticos

PAS
GRASP
Referências

53 / 86
Técnicas para
Resolução de GRASP - Greedy Randomized Adaptive Search
Problemas
Complexos Procedure
Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Busca Tabu
GRASP GRASP - Greedy Randomized Adaptive Search Procedure -
Alg. Genéticos

PAS
Procedimento de Busca Adaptativa Gulosa e Randômica
Referências Proposto por Feo e Resende [2].
Baseada no processo chamado Multistart, para obter ótimos
locais de melhor qualidade.

54 / 86
Técnicas para
Resolução de GRASP - Greedy Randomized Adaptive Search
Problemas
Complexos Procedure
Sumário

Def. Preliminares

Heurísticas
GRASP - Greedy Randomized Adaptive Search Procedure -
Metaheurísticas
Busca Tabu
Procedimento de Busca Adaptativa Gulosa e Randômica
GRASP
Alg. Genéticos Procedimento Iterativo
PAS
A cada iteração obtém-se uma solução.
Referências
As soluções são mantidas até o final.
Procedimento tem 2 fases:
Construir uma solução inicial usando uma função gulosa
aleatória.
Aplica uma busca local para melhorar a solução anterior.

55 / 86
Técnicas para
Resolução de GRASP - Greedy Randomized Adaptive Search
Problemas
Complexos Procedure
Sumário

Def. Preliminares

Heurísticas
Algoritmo 4: GRASP
Metaheurísticas
Busca Tabu
GRASP
1 f ∗ ← ∞;
Alg. Genéticos 2 repita
PAS 3 Construção();
Referências 4 BuscaLocal(s);
5 se (f (s) < f ∗ ) então
6 s∗ ← s;
7 f ∗ ← f (s);
8 até critério de parada;
9 s ← s∗ ;

56 / 86
Técnicas para
Resolução de GRASP - Greedy Randomized Adaptive Search
Problemas
Complexos Procedure
Sumário

Def. Preliminares
Fase de Construção
Heurísticas A solução inicia com um conjunto vazio. São inseridos
Metaheurísticas elementos nesse conjunto até que ele represente uma solução
Busca Tabu
GRASP viável para o problema.
Alg. Genéticos

PAS A cada iteração, todos os elementos candidatos são avaliados


Referências segundo uma função gulosa que meça o benefício da inserção
desse elemento para a construção da solução.
Uma vez realizada essa valoração, é construída a LCR: uma
lista contendo os elementos com melhor valor na função
gulosa.
Escolhe-se um elemento aleatoriamente para ser inserido na
solução.
A lista é atualizada.

57 / 86
Técnicas para
Resolução de GRASP - Greedy Randomized Adaptive Search
Problemas
Complexos Procedure
Sumário

Def. Preliminares Fase de construção


Heurísticas
Demanda maior esforço computacional;
Metaheurísticas
Busca Tabu
GRASP
Constrói soluções, iterativamente, inserindo-se na solução,
Alg. Genéticos um elemento de cada vez;
PAS

Referências
A cada iteração, a escolha do próximo elemento a ser
adicionado é determinado pela ordenação de todos os
elementos candidatos, em uma lista de candidatos;
Essa ordenação é feita mediante a avaliação de cada
elemento, conforme a função “gulosa”;
Heurística Adaptativa: Benefícios de cada elemento são
atualizados a cada iteração, as próximas soluções conterão
algumas características da solução anterior..

58 / 86
Técnicas para
Resolução de GRASP - Greedy Randomized Adaptive Search
Problemas
Complexos Procedure
Sumário Fase de Construção do GRASP
Def. Preliminares

Heurísticas Algoritmo 5: Construção


Metaheurísticas
Busca Tabu
1 s ← ∅;
GRASP
Alg. Genéticos
2 Inicialize o conjunto de candidatos C;
PAS
3 enquanto C 6= ∅ faça
Referências
4 g(tmin ) = min{g(t) | t ∈ C};
5 g(tmax ) = max{g(t) | t ∈ C};
6 LCR = {t ∈ C | g(t) ≤ g(tmin ) + α(g(tmax − g(tmin ))};
7 Selecione, aleatoriamente, um elemento t ∈ LCR;
8 s ← s ∪ {t};
9 Atualize o conjunto C de candidatos;

α ∈ [0, 1]: controla o nível de gulosidade e aleatoriedade do


procedimento Construção.
Se α = 0 as soluções geradas são totalmente gulosas. 59 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas Metaheurísticas
Busca Tabu
GRASP
Alg. Genéticos

PAS
Algoritmos Genéticos
Referências

60 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Algoritmos Genéticos
Busca Tabu
GRASP Criado por Holland e colegas [4].
Alg. Genéticos

PAS Baseados em processos de seleção natural de evolução, da


Referências Teoria de Darwin.
Indivíduos com características melhores têm maiores chances
de sobrevivência a de produzirem filhos cada vez mais aptos.

61 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário
Elementos de Algoritmos Genéticos
Def. Preliminares

Heurísticas
Cromossomo
0 1 0 0 1
Metaheurísticas (indivíduo, solução)
Busca Tabu
GRASP 1 1 0 0 1
Alg. Genéticos População
(Conjunto de
PAS  Soluções) 1 1 0 0 0
Referências
0 1 1 0 1

Alelo Gene 
(possível valor (parte da representação
do gene)  de uma solução)

Figura: Elementos de um Algoritmo Genético.

62 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Elementos de Algoritmos Genéticos


Metaheurísticas
Busca Tabu Mecanismo de reprodução baseado em processos evolutivos,
GRASP
Alg. Genéticos
é aplicado sobre a população com o objetivo de explorar o
PAS espaço de busca e encontrar as melhores soluções para o
Referências
problema.
Cada indivíduo é avaliado por uma função de aptidão.
Quanto maior for o valor da função de aptidão, quer dizer
que mais o indivíduo está adaptado ao meio.

63 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares Componentes de Algoritmos Genéticos


Heurísticas 1 Uma representação genética de potenciais soluções par o
Metaheurísticas
Busca Tabu
problema;
GRASP
Alg. Genéticos 2 Um modo de criar uma população de soluções inicial;
PAS
3 Uma função de avaliação que segue as regras do ambiente,
Referências
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 dos
operadores genéticos).

64 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário Procedimento Básico de um Algoritmo Genético


Def. Preliminares (a)  (b) 
Heurísticas pai 1 Seleção de  um  pai 1
ponto de corte
Metaheurísticas
pai 2 pai 2
Busca Tabu
GRASP
Alg. Genéticos  Aplicação 
PAS do crossover

Referências filho 1
filho 1
Aplicação da 
filho 2 mutação filho 2

(d)  (c) 

Gene alterado 
pela mutação

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

65 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Processo de Reprodução
Metaheurísticas
Busca Tabu
GRASP
Existem várias formas de selecionar indivíduos para o
Alg. Genéticos processo de reprodução.
PAS

Referências
Binary Tournament Selection: indivíduos são
selecionados aleatoriamente e aquele que tiver o maior
valor para a função de aptidão é escolhido para ser o
pai, de forma análoga, o segundo pai é escolhido.

66 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas
Busca Tabu
GRASP
Operações do Algoritmo Genético
Alg. Genéticos
Operação de Recombinação: Geração de filhos.
PAS

Referências Operação de Mutação: Alterar aleatoriamente uma parte dos


genes de cada cromossomo.

67 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
Critérios para Escolha de Cromossomos Sobreviventes
Metaheurísticas
Busca Tabu Aleatório
GRASP
Alg. Genéticos
Roleta: chance de sobrevivência de cada cromossomo é
PAS
proporcional ao seu nível de aptidão.
Referências
Misto
O objetivo do uso destes critérios é escapar de
ótimos locais.

68 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário Algoritmo Genético Básico


Def. Preliminares

Heurísticas
Algoritmo 6: Construção
Metaheurísticas
Busca Tabu
1 t ← 0;
GRASP
Alg. Genéticos 2 Gere a população inicial P (t);
PAS 3 Avalie P (t);
Referências 4 enquanto os critérios de parada não estiverem
satisfeitos faça
5 t ← t + 1;
6 Gere P (t) a partir de P (t − 1);
7 Avalie P (t);
8 Defina a população sobrevivente;

69 / 86
Técnicas para
Resolução de Algoritmos Genéticos
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Tipos de Cromossomos (Soluções)


Metaheurísticas
Busca Tabu Cromossomo p = (x1 , x2 , ..., xm )
GRASP
Alg. Genéticos

PAS Representação Binária: Ex.: Maximizar a função


Referências f (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, cromossomo
p = (3, 4, 7, 1, 8, 9, 2, 5, 6) equivale à uma rota.

70 / 86
Técnicas para
Resolução de
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS Problema de Alocação de Salas


Referências

71 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas
O que é
Metaheurísticas

PAS
Classroom Assignment - Parte integrante do Problema
Referências de Programação de Cursos Universitários (Couse
Timetabling ).
Atribuição de aulas, com horários previamente
estabelecidos, a salas, respeitando um conjunto de
restrições de várias naturezas [3].

72 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Restrições Fortes


Metaheurísticas a: Em uma mesma sala e horário não pode haver
PAS
mais de uma aula.
Referências
b: Uma sala não pode receber uma turma cuja
quantidade de alunos seja superior à sua
capacidade.
c: Algumas salas têm horários previamente
reservados e nestes horários ficam indisponíveis.

73 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário
Restrições Fracas
Def. Preliminares

Heurísticas d: Certas salas têm restrições de uso e elas devem


Metaheurísticas ser evitadas o quanto possível.
PAS e: Sempre que possível, alocar a uma mesma sala
Referências
alunos de um mesmo curso e período.
f: Utilizar o espaço das salas eficientemente, isto
é, evitar alocar aulas de turmas pequenas em
salas de maior capacidade.
g: Se possível, cada uma das salas deve ser
deixada vazia em pelo menos um horário ao
longo do dia, de forma a possibilitar a limpeza.

74 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Representação da Solução
Sumário Matriz S = (sij )m×n , onde m = total horários, n = total
Def. Preliminares
salas.
Heurísticas
sij contém a turma alocada no horário i e sala j.
Metaheurísticas

PAS

Referências

Figura: Exemplo de uma Alocação

75 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares
Estrutura de Vizinhança
Heurísticas

Metaheurísticas

PAS

Referências

Figura: Movimento de Alocação

76 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares Estrutura de Vizinhança


Heurísticas

Metaheurísticas

PAS

Referências

Figura: Movimento de Troca

77 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas

Metaheurísticas Função Objetivo


PAS
Agrupando restrições fortes e fracas:
Referências
g(s): função de inviabilidade
h(s): função de qualidade

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

78 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Função de Inviabilidade


Metaheurísticas
K
X
PAS
g(s) = αk Ik
Referências
k=1

onde
K: número de medidas de inviabilidade
Ik : valor de k-ésima medida de inviabilidade
αk : peso associado à k-ésima medida de inviabilidade

79 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares
Função de Qualidade
Heurísticas

Metaheurísticas
L
X
PAS h(s) = βl Ql
Referências l=1

onde
L: número de medidas de qualidade
Ql : 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
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares

Heurísticas Geração de uma Solução Inicial


Metaheurísticas
Toma-se uma aula não alocada da turma com maior
PAS
demanda e constrói uma LCR das salas vagas no
Referências
horários da aula, ordenadas pela capacidade.
Uma das |LCR| salas é escolhida aleatoriamente para
receber a aula.
Procedimento continua até que sejam alocadas todas as
aulas.

81 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos

Sumário

Def. Preliminares Algoritmo - Busca Tabu e Simulated Annealing


Heurísticas Calibragem dos parâmetros:
Metaheurísticas
|T | = 100
PAS

Referências BT max = 1000 (número de iterações sem melhora)

Algoritmo 7: SA+BT
1 s0 ← ConstruaSolucaoInicial() ;
2 s1 ← SA(s0 ) ;
3 s∗ ← BT (s1 ) ;

82 / 86
Técnicas para
Resolução de Problema de Alocação de Salas - PAS
Problemas
Complexos
Resultados
Sumário

Def. Preliminares

Heurísticas

Metaheurísticas

PAS
Figura: Características das Instâncias Consideradas
Referências

Figura: Resultados Computacionais 83 / 86


Técnicas para
Resolução de
Bibliografia Básica
Problemas
Complexos
A. Z. Cordenonsi.
Ambientes, Objetos e Dialogicidade: Uma Estratégia de Ensino
Sumário Superior em Heurísticas e Metaheurísticas.
Def. Preliminares Tese de Doutorado, UFRGS, 2008.
Heurísticas

Metaheurísticas C. H. Papadimitriou, K. Steiglitz.


PAS Combinatorial Optimization: Algorithms and Complexity.
Referências Prentice-Hall, 1982.

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

D. E. Goldberg.
Genetics Algorithms in Search, Optimization, and Machine
Learning.
Addison-Wesley, Berkeley, 1989.
84 / 86
Técnicas para
Resolução de Bibliografia Básica
Problemas
Complexos
E. G. M. de Lacerda.
Busca Local.
Sumário
Slides, UFRN - DCA, 2006.
Def. Preliminares

Heurísticas
F. Glover.
Metaheurísticas
Future Paths for Integer Programming and Links to Artificial
PAS
Intelligence.
Referências
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ção
do 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
Técnicas para
Resolução de
Problemas
Complexos

Sumário
Bibliografia Básica
Def. Preliminares

Heurísticas
P. Hansen, N. Mladenovic.
Metaheurísticas
Variable Neighborhood Search..
PAS
Cap. 7, p. 145–184. Kluwer Academic Publishers, 2003.
Referências

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

86 / 86

Você também pode gostar