Os mecanismos de busca local são conhecidos pela sua eficiência em várias situações práticas, especialmente em problemas de larga escala e problemas combinatórios complexos (Basseur & Burke, 2007) (Basseur & Burke, 2007) (Liefooghe, Humeau, Mesmoudi, Jourdan, & Talbi, 2012). Eles também se mostraram vantajosos em situações específicas, particularmente quando soluções relativamente boas são necessárias dentro de um intervalo de tempo reduzido (Hoos & Stützle, 2005).
Também nota-se que a introdução de mecanismos de busca local nos EMOs é relativamente comum uma vez que eles possibilitam esses algoritmos convergirem mais rapidamente e com mais precisão na direção da fronteira Pareto ótima (Sindhya, Sinha, Deb, & Miettinen, 2009) (Tan, Cheong, & Goh, 2007).
Por este motivo, desenvolveu-se uma rotina no hMOEA para aplicação no conjunto de soluções não-dominadas encontradas ao final de cada geração. A heurística, descrita em Algoritmo 5, é uma adaptação do método FPI e funciona da seguinte forma:
Ao final de cada geração, as soluções não-dominadas da população P são identificadas
53
do arquivo A são selecionadas aleatoriamente e são gravadas no arquivo Q. Em seguida,
realiza-se uma busca na vizinhança de cada solução q∈ Q empregando um operador de
busca, escolhido de forma aleatória. O seguinte procedimento é executado em cada solução q’, resultante da varredura na vizinhança de q:
o q’ é inserida no arquivo Rs (também de tamanho Npop) se q’ não é dominada por
nenhuma solução, diferente de q’ no espaço dos objetivos, presente no
conjunto {A U Rs}. Se q’ domina, no mínimo, uma solução qualquer do conjunto
A, as buscas na vizinhança da solução q∈ Q são concluídas.
Ao final do processo, o arquivo Rs é retornado e as rotinas para determinação das
fronteiras de dominância e cálculo da distância de multidão são executadas no conjunto
de soluções {P URs}. No passo seguinte, a política elitista do hMOEA é aplicada neste
conjunto para determinar as Npop soluções que irão compor a próxima geração.
Optimize_feasible_solutions_set Procedure (P, k);
1 A ← P.non-dominated-solutions (); % A contains all non-dominated solutions found in P; 2 Q ← A.select- solutions-randomly(); % A fraction of solutions from A is selected
3 Rs ← ⊘; % Resulting set; 4 for all q ∊ Q do 5 t ← 1; 6 repeat 7 q’ ← q.search_inNeighborhood ( [𝐿𝑎𝑟𝑏, 𝐿𝑠𝑓𝑡,𝐿𝑡𝑞𝑢]); 8 if ∀s ∈ A, f(q’) ≺ f(s) V f(q’) || f(s) 9 if ∀r ∈ Rs, ( r ≠ q’ ) ^ f(q’) ≺ f(r) V f(q’) || f(r) 10 Rs.merge(q’); 11 end-if 12 if f(q’) ≺ f(s)
13 t ← k; % The search in the neighborhood of solution q is finished; 14 end-if 15 end-if 16 t ← t + 1; 17 until t > k 18 end-for 19 return Rs;
Algoritmo 5-Pseudocódigo da heurística implementada pelo hMOEA para aplicação no conjunto de soluções não-dominadas.
A seguir, são feitas algumas observações acerca da heurística apresentada anteriormente:
Como a avaliação (simulação) de uma solução (sequência de despachos) demanda um
esforço computacional significativo, varrer a vizinhança de todas as soluções da
população corrente pode comprometer o desempenho do hMOEA e aumentar seu
tempo de processamento. Por este motivo, optou-se por selecionar algumas soluções do conjunto das soluções não-dominadas para realização da busca local;
A pesquisa na vizinhança do conjunto de soluções pode acontecer em momentos
distintos durante o processamento de um MOEA (vide Tabela 5). Porém, a ativação dos operadores a cada 10 ou 50 gerações pode não se justificar inicialmente, uma vez que testes computacionais mostraram que os operadores de seleção, cruzamento e
mutação do hMOEA têm dificuldades em identificar novas soluções não-dominadas em
diversas gerações. Por este motivo, optou-se por realizar as buscas ao termino de cada geração.
54
Tabela 5: Alguns exemplos (Autor/Descrição) encontrados na literatura de diferentes procedimentos desenvolvidos para ativações dos mecanismos de busca.
Autores Descrição Resumida dos Trabalhos
(Ishibuchi & Murata, 1996) MOEA para aplicação num problema de
flow shop onde, em cada geração, o algoritmo realiza uma varredura na vizinhança das soluções geradas pelos operadores de seleção, cruzamento e mutação;
Ishibuchi e Murata (Ishibuchi & Murata, 1998)
Jaszkiewicz (Jaszkiewicz, 2002)
Pasupathy et al. (Pasupathy, Rajendran, & Suresh, 2006)
Outro MOEA para aplicação em um problema de flow shop. O algoritmo utiliza uma população (arquivo) externa para manter o conjunto de soluções não-dominadas atual. Ao termino de cada geração, as soluções presentes no arquivo são submetidas à ação de dois
operadores10 e as soluções
não-dominadas resultantes do processo são incluídas no arquivo;
Lacomme et al. (Lacomme, Prins, & Sevaux, 2006)
Adaptação do NSGA-II para aplicação num VRP capacitado que implementa
dois operadores de busca11. Os
operadores são ativados em pontos distintos do MOEA: Inicialmente, em substituição ao operador de mutação (uma solução da população filha tem 10% de probabilidade de sofrer ação dos operadores) e a cada 10 iterações, quando todas as soluções da população são perturbadas pelos operadores;
Tan et al. (Tan, Chew, & Lee, 2006)
MOEA para aplicação num VRP com janela de tempo que implementa três operadores. A cada 50 gerações, os operadores são aplicados no conjunto de soluções gerados pelos mecanismos de seleção, cruzamento e mutação.
10 Inserção aleatória e troca aleatória.
11 1) remoção de 1 ou 2 elementos de uma rota com inserção em outra posição da rota e mudança do tipo
55
Por último, são relacionadas algumas características da heurística apresentada que as distingue dos métodos propostos por Drugan e Thierens (Drugan & Thierens, 2012):
Enquanto os autores utilizam um arquivo auxiliar de tamanho ilimitado, Rs é um arquivo
limitado a Npop soluções. Contudo, mesmo que o arquivo Rs esteja totalmente
preenchido (cheio), ainda assim, uma solução dominante pode ser incluída em Rs
através da função merge (linha 10);
k é um parâmetro que se destina a fixar o tamanho da busca (Paquete & Stutzle, 2009)
na vizinhança de uma solução qualquer. Ele é inicializado com valor 2 (dois) e é incrementado de 1 (uma) unidade sempre que nenhuma nova solução não-dominada é encontrada após a varredura a vizinhança das soluções do conjunto Q;
A heurística proposta neste trabalho não pesquisa a vizinhança das soluções que são
adicionadas ao arquivo Rs,o que dispensa a implementação da tag visited em cada uma
das soluções do arquivo.