• Nenhum resultado encontrado

Perturbação do Conjunto de Soluções Não Dominadas

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 tk; % The search in the neighborhood of solution q is finished; 14 end-if 15 end-if 16 tt + 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.