Você está na página 1de 12

UM ALGORITMO DE EVOLUÇÃO DIFERENCIAL PARA O

PROBLEMA DE JOB SHOP SCHEDULING BI-OBJETIVO


Mateus Fellipe Alves Lopes
Universidade Estadual de Montes Claros – Unimontes
Av. Dr. Ruy Braga, S/N – Vila Mauriceia, Montes Claros/MG, CEP: 39.401-089
mateusfellipe2302@gmail.com

João Batista Mendes, Allysson Steve Mota Lacerda


Departamento de Ciência da Computação – Universidade Estadual de Montes Claros
Av. Dr. Ruy Braga, S/N – Vila Mauriceia, Montes Claros/MG, CEP: 39.401-089
joao.mendes@unimontes.br, steve.lacerda@unimontes.br

Ramón Souza Silva Rodrigues


Universidade Estadual de Montes Claros – Unimontes
Av. Dr. Ruy Braga, S/N – Vila Mauriceia, Montes Claros/MG, CEP: 39.401-089
ramon@live.jp

RESUMO

O presente trabalho considera o problema Job Shop Scheduling bi-objetivo no qual são
minimizados o makespan e o atraso total das tarefas. Para tal, propõe-se uma adaptação do
algoritmo Evolução Diferencial que inclui uma estratégia de busca local para aperfeiçoamento das
soluções encontradas. Para a abordagem multiobjetivo, é adotado o mecanismo de seleção e cálculo
de distância de multidão (crowding distance) provenientes do NSGA-II. Além disso, é analisada a
relevância do mecanismo de busca local proposto na resolução do problema. O método proposto é
comparado a outros dois algoritmos evolutivos propostos na literatura especializada e os resultados
mostram que dos 15 problemas investigados, o algoritmo encontrou melhores soluções em 10
problemas.

PALAVRAS CHAVE. Job Shop Scheduling, Evolução Diferencial, Otimização


Multiobjetivo.

Tópicos: Metaheurísticas, Otimização Combinatória.

ABSTRACT

The present paper considers the bi-objective Job Shop Scheduling problem in which the
makespan and the total tardiness of jobs are minimized. For this, it is proposed an adaptation of the
Differential Evolution algorithm that includes a local search strategy to improve the solutions
found. For the multiobjective approach, the crowding distance calculation and selection mechanism
from the NSGA-II is adopted. In addition, the relevance of the local search engine proposed in
solving the problem is analyzed. The proposed method is compared to two other evolutionary
algorithms proposed in the specialized literature and the results show that of the 15 problems
investigated, the algorithm found better solutions in 10 problems.

KEYWORDS. Job Shop Scheduling, Differential Evolution, Multi-objective Optimization.

Paper topics: Metaheuristics, Combinatorial Optimization.

https://proceedings.science/p/85503
1. Introdução

Com a evolução do conhecimento e tecnologia humanos, as atividades a serem


desenvolvidas vêm se tornando cada vez mais complexas, o que leva à necessidade de se buscar
por soluções e decisões mais eficientes, considerando tanto o tempo utilizado quanto sua qualidade.
Este tipo de problema é encontrado com frequência nas mais diversas áreas do conhecimento, como
Engenharia, Economia, Administração, Computação, entre outras [Kupfer e Hasenclever, 2013].
Alguns desses casos pertencem à linha de pesquisa denominada Otimização Combinatória, classe
à qual o Problema de Alocação pertence [Goldbarg et al., 2005].
O problema tratado neste estudo é o Job Shop Scheduling (JSS), um problema típico de
alocação, em que se tem n tarefas a serem processadas por m máquinas. Cada tarefa consiste em m
operações que possuem uma ordem de processamento predeterminada através das máquinas. Uma
máquina pode executar apenas uma operação de cada vez [Cheng et al., 1996] e cada tarefa j possui
um tempo de processamento pji na máquina i e uma data de entrega dj.
O objetivo deste trabalho é propor um algoritmo para minimizar simultaneamente duas
funções-objetivos, o makespan (definido na equação (1)) e o atraso total das tarefas (definido na
equação (2)), determinando a ordem de processamento das tarefas em cada uma das máquinas.

𝑓1 = 𝐶𝑚𝑎𝑥 = 𝑚𝑎𝑥{𝐶𝑗 } , onde 𝐶𝑗 é o tempo de termino do processo da tarefa 𝑗 (1)

𝑓2 = 𝑇 = ∑𝐶𝑗 , onde 𝑇𝑗 = 𝑚𝑎𝑥{𝐶𝑗 − 𝑑𝑗 , 0} é o atraso da tarefa 𝑗 e 𝑑𝑗 é a sua data de entrega (2)

Em problemas de otimização multiobjetivo, normalmente utiliza-se o conceito de


dominância para comparação de soluções. Neste caso, para um problema de minimização, diz-se
que o vetor u = (u1, u2, …, uk) domina o vetor v = (v1, v2, …, vk), representado por u ≺ v, se e
somente se, u é parcialmente menor do que v, como representado na equação (3) [Mendes, 2013].

∀ 𝑖 ∈ {1, … , 𝑘}, 𝑢𝑖 ≤ 𝑣𝑖 ∧ ∃ j ∈ {1, … , 𝑘}: 𝑢𝑗 < 𝑣𝑗 (3)

A solução de problemas multiobjetivo consiste em identificar um conjunto de soluções


ditas não-dominadas, Pareto-ótimas ou eficientes, nas quais não se pode melhorar um objetivo sem
prejudicar outros objetivos simultaneamente [Coello et al. 2007].
O JSS é considerado um problema combinatório de elevada complexidade, sendo
classificado no grupo de problemas NP-Difíceis [Yamada e Nakano, 1997]. Em sua maior parte, o
JSS vem sendo abordado de maneira mono-objetivo, como observado em [Tasgetiren et al., 2006]
que utiliza o método de enxame de partículas (Particle Swarm Optimization - PSO) e a Evolução
Diferencial (ED) na sua resolução. [Qing-dao-er-ji e Wang, 2012] propõem um algoritmo genético
híbrido para resolução do JSS. Ambos os trabalhos têm como objetivo do problema a minimização
do makespan. Outras abordagens, também mono-objetivo, buscam otimizar o atraso total das
tarefas. Como pode ser observado em [Armentano e Scrich, 2000], que utiliza um método de busca
Tabu, ou [Bierwirth e Kuhpfahl, 2017], que implementa a meta-heurística GRASP com o objetivo
de otimizar o atraso total ponderado.
Para uma abordagem multiobjetivo do JSS poucos métodos foram propostos, [Lei e Wu,
2006] utilizaram um algoritmo evolucionário multiobjetivo baseado em aglomeração (CMOEA),
visando otimizar o makespan e o atraso total das tarefas. [Wisittipanich e Kachitvichyanukul, 2013]
também utilizam dos dois mesmos objetivos, encontrando soluções através da heurística PSO
multiobjetivo (MOPSO). [Huang e Yu, 2017] utilizam do algoritmo de colônia de formigas para
otimização de 3 objetivos: makespan, atraso total e instante de término das tarefas.
No presente trabalho, é proposta a utilização de um algoritmo evolutivo bi-objetivo
baseado no ED (moED) em duas versões, o moED básico (moEDB) e o moED com busca local
(moEDBL), que implementa o operador de mutação diferencial, proposto por [Storn e Price, 1995].
A codificação dos indivíduos é baseada no modelo de Random Keys [Bean, 1994], tendo em vista

https://proceedings.science/p/85503
a adaptação das variáveis do problema para o ED com variáveis discretas. Para a abordagem
multiobjetivo, adotou-se o mecanismo de seleção e cálculo de distância de multidão (crowding
distance) semelhante ao NSGA-II (Non-Dominated Sorting Genetic Algorithm II) [Deb et al.,
2000].
O restante do trabalho está definido a seguir. O referencial teórico e as características do
algoritmo proposto são expostos na seção 2. Os resultados são apresentados e analisados na seção
3. Por último, conclusões e trabalhos futuros são mostrados na seção 4.

2. Algoritmo evolutivo para o problema alocação

Os Algoritmos Evolutivos tratam de problemas complexos compreendendo cada possível


solução como um indivíduo em uma dada população. A cada iteração (geração), a população evolui
através de operadores de variação e seleção dos indivíduos mais aptos. Permitindo que, ao longo
de sucessivas gerações, a população de indivíduos evolua aproximando-se de uma solução ótima
de maneira mais eficiente [Cunha, 2012].

2.1. Evolução Diferencial

Embora o método ED não possua nenhuma base ou inspiração em processos naturais, este
segue uma linha histórica de algoritmos e métodos que evoluem uma população de soluções
candidatas. Sendo classificado assim como uma instância dos algoritmos evolutivos [Guimarães et
al., 2009].
Originalmente, o ED foi projetado para otimização de variáveis continuas, porém,
propostas de versões discretas deste algoritmo podem ser vistas na literatura, como em [Boaretto
et al., 2017] e [Zhang et al., 2008]. Ambos os trabalhos empregaram o ED para resolução do Flow
Shop permutacional (uma variação do JSS) e do problema de leilão combinatório, respectivamente.
Demonstrando, assim, a capacidade do ED de desenvolver bons resultados aplicados a diferentes
tipos de problema.
Uma dificuldade na aplicação do ED na resolução de problemas discretos está na geração
do vetor de mutação. Este vetor é calculado da diferença de dois indivíduos selecionados
aleatoriamente e somado com um terceiro vetor aleatório. A codificação por Random Keys (chaves
aleatórias) foi empregada para adaptar o mecanismo de busca do ED, proposta por [Bean, 1994]
que objetivava a representação de sequenciamento dos algoritmos genéticos para otimização.
O algoritmo moED deste trabalho é baseado nos descritos em [Stor e Prince, 1995] e
[Guimarães, 2009], com uma modificação na etapa de seleção, que se baseia no NSGA-II para
construção das soluções da fronteira Pareto. O algoritmo proposto será descrito a seguir.

2.1.1. Representação da solução JSS e geração da população inicial

Para n tarefas e m máquinas, foi utilizada uma representação do indivíduo (solução) para
o JSS como sendo um arranjo de n x m. Para ilustrar tem-se o arranjo [A C A B A C B C B] que
representa um escalonamento em que a ordem de processamento das tarefas é a seguinte: primeira
operação da tarefa A, primeira operação da tarefa C, segunda operação da tarefa A, primeira
operação da tarefa B e assim por diante. Lembrando que as operações de cada tarefa são
processadas em máquinas predefinidas, como podemos ver no exemplo da Tabela 1. Este tipo de
representação é bastante utilizado na literatura para representação de soluções para o JSS.
Inicialmente os escalonamentos gerados seguirão uma ordem fixa como observado na
Figura 1a, em que D indica a quantidade de dimensões dos indivíduos (n x m). Esta ordem será
alterada logo em seguida com o ordenamento das Random Keys. Convenciona-se que cada tarefa
codificada em um indivíduo da população está associada a um valor gerado aleatoriamente no
intervalo de [-2, 2]. Estes valores aleatórios são ordenados e as tarefas obedecerão este

https://proceedings.science/p/85503
ordenamento, como ilustrado na Figura 1b. Através deste procedimento pode-se notar que o
escalonamento das tarefas depende exclusivamente dos valores das chaves aleatórias, sendo que
perturbações nestes valores podem modificar a ordem de processamento das tarefas codificadas na
solução.

Tabela 1- Um exemplo de 3 tarefas e 3 máquinas do JSS


Tarefa Sequência da máquina Tempo de processamento
A M1 M2 M3 3 3 3
B M1 M3 M2 2 4 3
C M2 M1 M3 2 3 1

D 1 2 3 4 5 6 7 8 9
0,57 -1,25 1,22 -1,06 -1,56 -0,64 1,03 1,79 1,80
A A A B B B C C C
(a)

D 5 2 4 6 1 7 3 8 9
-1,56 -1,25 -1,06 -0,64 0,57 1,03 1,22 1,79 1,80
B A B B A C A C C
(b)
Figura 1 - Ilustração do funcionamento do mecanismo de ordenamento das chaves aleatórias implementado neste
trabalho adaptado para o problema de JSS

Assim temos na Figura 2 a programação das 3 tarefas em cada máquina oriunda da


codificação da solução ilustrada na Figura 1b, já incluindo os tempos de processamento em cada
máquina da Tabela 1.

Figura 2 - Ilustração da Alocação gerada após o processo de inicialização de um indivíduo, descrito na Figura 1b

2.1.2. Mutação

O mecanismo de busca utiliza vetores diferenciais criados a partir de pares dos vetores de
chaves aleatórias da população composta por Np indivíduos. Dois vetores são selecionados
aleatoriamente da população corrente, criando-se um vetor diferencial das diferenças dos dois
indivíduos. Este vetor diferencial, por sua vez, é somado a um terceiro vetor de chaves aleatórias,

https://proceedings.science/p/85503
também selecionado aleatoriamente, produzindo um vetor de chaves aleatórias mutante. A equação
(4) ilustra esse procedimento.

𝑉𝑡,𝑖 = 𝑋𝑡,𝑟1 + 𝐹(𝑋𝑡,𝑟2 − 𝑋𝑡,𝑟3 ) (4)

Com r1, r2, r3 ∈ {1, …, Np}. O vetor vt,i representa o i-ésimo vetor mutante da
população corrente t e F é uma constante de mutação.

2.1.3. Cruzamento

O cruzamento ou reprodução é uma das etapas essenciais de algoritmos evolutivos, sendo


o principal mecanismo de variação e criação dos novos indivíduos.
O mecanismo de cruzamento, proposto neste trabalho, consiste na recombinação dos
vetores de chave aleatória da população corrente com os vetores de chave aleatória da população
mutante, produzindo a descendência ou população teste de chaves aleatórias Ut. O moED emprega
a recombinação discreta com probabilidade C ∈ [0, 1], conforme mostrado na equação (5).

𝑣𝑡,𝑖,𝑗 , 𝑠𝑒 𝑟𝑎𝑛𝑑[0, 1] ≤ 𝐶 𝑜𝑢 𝑗 = 𝑗𝑟𝑎𝑛𝑑


𝑢𝑡,𝑖,𝑗 = { (5)
𝑥𝑡,𝑖,𝑗 , 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜

Onde rand [0, 1] é um número aleatório uniformemente distribuído e jrand ∈ {1, …, D} é


um índice escolhido aleatoriamente, garantindo que pelo menos um dos valores do vetor teste seja
herdado do indivíduo mutante.
Numa etapa seguinte, utiliza-se a população de chaves aleatórias Ut para geração da
população filha Yt. Cada solução filha será criada de acordo com o ordenamento das
correspondentes chaves aleatórias ut, semelhante ao procedimento ilustrado na Figura 1, tomando
como base os indivíduos da população pai Xt. Sendo assim, obtemos duas populações de soluções
pais e filhos, em que cada solução possui sua própria codificação de chaves aleatórias ordenadas.

2.1.4. Seleção

Primeiramente as duas populações pai e filha são agrupadas em uma população


intermediária para que a etapa de seleção dos indivíduos da geração seguinte seja realizada. Duas
etapas são utilizadas para seleção dos indivíduos, baseando-se nos procedimentos non-dominated
sorting e o crowding distance implementado pelo NSGA-II [Deb et al., 2000].
Assim, a partir destes dois métodos é possível agrupar as melhores soluções para a próxima
geração do moED: Primeiramente as soluções são escolhidas de acordo com as primeiras fronteiras
determinadas pelo non-dominated sorting. Se a fronteira possuir uma quantidade de soluções maior
que a necessária, ativa-se o mecanismo de crowding distance para ordenar as soluções,
selecionando as que ocupam regiões menos densamente povoadas.

2.1.5. Busca Local

A busca local tem como objetivo melhorar uma solução, obtida pela heurística ou pelos
operadores de cruzamento e mutação, aprimorando-a de forma interativa, através de sucessivas
substituições da solução corrente por uma solução melhor encontrada na vizinhança desta solução.
A vizinhança de uma solução x compreende o conjunto de soluções (chamados vizinhos) que
podem ser alcançadas a partir de x através de modificações, conhecido por move, nos componentes
da solução x [Zachariadis e Kiranoudis, 2010].
Neste trabalho, as soluções vizinhas são geradas após a seleção da população para a
próxima geração. Inicialmente é definida uma probabilidade Pbl de ocorrência da busca local na

https://proceedings.science/p/85503
população. Se esta condição é verificada, promove-se a busca local em todos os indivíduos da
população. Note que Pbl deve ser de valor reduzido para evitar custo computacional elevado,
resultante da geração e avaliação de novas soluções.
O mecanismo de busca local implementado pelo moED consiste na geração de uma solução
vizinha através da troca aleatória da posição de duas tarefas de uma solução. Na Figura 3, mostra-
se um exemplo onde as soluções vizinhas são geradas a partir de uma solução s realizando a troca
de posições das tarefas.
Este mecanismo de busca gera no máximo 5 (cinco) soluções na vizinhança de uma solução
s. O processo de geração de vizinhos é interrompido sempre que é encontrado um vizinho s’ que
domina s. A solução s’ é retornada pelo mecanismo de busca local.

Solução s Posições escolhidas Soluções vizinhas geradas


ACABBCBCA 5, 9 ACABACBCB
ACABBCBCA 1, 4 BCAABCBCA
ACABBCBCA 8, 9 ACABBCBAC
Figura 3 - Ilustração do mecanismo de busca local implementado pelo moED

2.1.6. Algoritmo moED

O pseudocódigo do algoritmo moED, descrito anteriormente, é apresentado no Algoritmo


1.

Algoritmo 1: moED
Entrada: Np: tamanho da população; Genmax: máximo de gerações; Pc: probabilidade de
cruzamento; F: constante de mutação; Pbl: probabilidade de busca local
Saída: Conjunto de soluções não-dominadas
início
Inicializa a população X;
Avalia população X;
gen ← 1;
repita
Mutação – Gera o vetor mutante V, conforme a constante F
Cruzamento – Cria população filha Y utilizando o vetor V, de acordo com a
probabilidade de Pc;
Avalia Y;
População I ← X ∪ Y ;
Ordena I conforme dominância Pareto e crowding distance;
Substitui X por I até o limite de Np indivíduos;
Aplica busca local em X conforme a probabilidade Pbl;
gen ← gen + 1;
até gen > Genmax;
retorna Soluções não-dominadas de X;
fim

3. Resultados Experimentais

O algoritmo foi implementado usando Python versão 3.6, utilizando o interpretador PyPy
5.9, com o sistema operacional Windows 10 (64 bits). Os testes foram feitos em um computador

https://proceedings.science/p/85503
Intel Core i5-4200U com processador de 1.60 GHz e 6.0 GB de RAM. A performance do algoritmo
moED é validada usando quinze instâncias do JSS disponíveis na base de dados da OR-Library
[OR Library, 2017].
As datas de entrega para a instância de 6 (seis) tarefas são definidas de acordo com
[Ponnambalam et al., 2001]. Nas demais instâncias, com 10 e 20 tarefas, as datas de entregas são
definidas de acordo com [Lei e Wu, 2006]. Os parâmetros do algoritmo moED estão definidos na
Tabela 2.

Tabela 2 - Parâmetros do moED


Tamanho da população (Np) 80
Constante de mutação (F) 0,9
Probabilidade de cruzamento (Pc) 0,7
Probabilidade de busca local (Pbl) 0,4
Quantidade de gerações 2000

3.1. Comparação das versões moEDB e moEDBL

Inicialmente foi testado o comportamento das duas variantes do moED propostos neste
trabalho:
 moEDB: O algoritmo moED básico, sem a implementação da busca local;
 moEDBL: O algoritmo moED com o mecanismo de busca local.

Os dois algoritmos foram executados 30 vezes e o conjunto de soluções não-dominadas de


cada algoritmo foram utilizados para comparação. Este conjunto de soluções não-dominadas são
obtidos através de uma única fronteira não-dominada, adquirida através do agrupamento das
soluções não-dominadas do final das execuções de cada algoritmo de acordo com o cálculo de
dominância das soluções.
Os dois conjuntos de soluções gerados pelo moEDB e moEDBL são comparados usando a
técnica de hipervolume, proposta por [Zitzler e Thiele, 1998], em que é calculada a região coberta
entre os pontos da fronteira não-dominada a um ponto de referência. Matematicamente, para cada
solução i pertencente à Fronteira Pareto Q, é construído um hipercubo hi de acordo com um ponto
de referência W. O resultado da métrica é a união de todos os hipercubos encontrados, como neste
trabalho foram abordados dois objetivos do JSS o resultado corresponde ao cálculo de área da
fronteira.
Os valores obtidos através desta métrica foram convertidos para o intervalo de [0, 1] para
melhor observação e comparação do comportamento de cada algoritmo.
O hipervolume computado para as 30 execuções de cada instância dos algoritmos
moEDBL e moEDB são observados na Tabela 3. Para facilitar a comparação dos métodos, o melhor
valor de hipervolume calculado para cada problema foi destacado. Note que quanto mais próximo
do valor 1 (um), melhor será a convergência e a diversidade do conjunto de soluções não-
dominadas encontrada pelo método. Assim, para a maioria das instâncias utilizadas, o moEDBL
obteve um melhor desempenho do que o moEDB, em média, cerca de 23% a mais de área calculada
em cada problema. O moEDB, por sua vez, alcançou melhor valor de hipervolume apenas na
instância ORB02, na instância FT06 houve um empate entre os dois algoritmos – encontraram o
mesmo conjunto de soluções não dominadas. Os tempos computacionais médios gastos pelos
algoritmos moEDB e moEDBL foram 30,45 e 31,73 segundos, respectivamente.
Assim, nota-se a relevância da implementação de um mecanismo de busca local visando a
melhora das soluções do algoritmo. O resultado obtido pela busca local neste trabalho é
compensador, ainda que tenha causado um maior custo computacional.

https://proceedings.science/p/85503
Tabela 3 - Comparação de resultados entre moDEB e moDEBL
Hipervolume
Instância moEDB moEDBL
FT06 (6x6) 0,9160 0,9160
FT10 (10x10) 0,4290 0,5536
FT20 (20x5) 0,1468 0,1697
ABZ5 (10x10) 0,3467 0,3485
ABZ6 (10x10) 0,1002 0,1015
ABZ7 (20x15) 0,2181 0,3367
ABZ8 (20x15) 0,2837 0,3422
ORB1 (10x10) 0,1544 0,1669
ORB2 (10x10) 0,1072 0,1063
ORB3 (10x10) 0,1658 0,2121
ORB4 (10x10) 0,4950 0,5386
ORB5 (10x10) 0,2471 0,3111
LA26 (20x10) 0,1986 0,2747
LA27 (20x10) 0,1835 0,2150
LA28 (20x10) 0,1537 0,2448
Média 0,2764 0,3227

3.2. Comparação dos métodos CMOEA, MOPSO e moED

O moEDBL, ou simplesmente moED, foi comparado com outros dois algoritmos


disponíveis na literatura: o CMOEA [Lei e Wu, 2006] e MOPSO [Wisittipanich e
Kachitvichyanukul, 2013]. Nestes dois trabalhos propostos, as soluções apresentadas são obtidas
executando o CMOEA e o MOPSO 30 e 10 vezes, respectivamente. Para comparação, o moED foi
executado 10 vezes e o conjunto de soluções não-dominadas obtido ao final das 10 execuções é
utilizado para comparação com os conjuntos de soluções não-dominadas dos algoritmos CMOEA
e MOPSO. Os conjuntos de soluções não-dominadas de cada algoritmo são obtidos através de uma
única fronteira não-dominada, adquirida através do agrupamento das soluções não-dominadas do
final das execuções de cada algoritmo de acordo com o cálculo de dominância das soluções.
Para a comparação dos algoritmos foram utilizados os mesmos problemas testes utilizados
na comparação do moEDB e moEDBL e o hipervolume também foi usado para avaliar o
desempenho das implementações.
Na Tabela 4, é apresentado o hipervolume calculado através dos conjuntos de soluções
não-dominadas dos três algoritmos, onde o melhor resultado computado para cada instância está
destacado. Na linha desempenho da Tabela 4, é apresentado o somatório do ranking de cada
algoritmo, em que o primeiro valor equivale a quantidade de vezes que o algoritmo obteve o melhor
resultado, o segundo valor equivale a quantidade de vezes que o algoritmo obteve o segundo melhor
resultado e o último valor equivale a quantidade de vezes que aquele algoritmo obteve o pior
resultado dentre os três algoritmos. O moED obteve o melhor resultado em 10 instâncias testadas,
ficando em segundo lugar em duas instâncias e também em terceiro lugar com apenas duas
instâncias. Os melhores resultados do moED ocorreram nos problemas FT20, LA26 e LA28. O
MOPSO identificou o melhor conjunto de soluções não-dominadas em 4 instâncias, se destacando,
em relação ao moED, nas instâncias ABZ7 e ABZ8 – problemas com as maiores dimensões. O
MOPSO ficou em segundo lugar em nove das quinze instâncias e em terceiro lugar em apenas uma
instância. Na instância FT06 o MOPSO e moED tiveram o mesmo valor de hipervolume –
encontraram o mesmo conjunto de soluções não-dominadas. O CMOEA não obteve um bom

https://proceedings.science/p/85503
desempenho em nenhuma das instâncias avaliadas neste trabalho, ficando em segundo e terceiro
lugar em quatro e onze vezes, respectivamente.
Pelo hipervolume médio calculado para cada método, o MOPSO obteve um valor médio
superior ao do moED. Isto ocorreu devido aos bons resultados obtidos pelo MOPSO nos problemas
ABZ7 e ABZ8.

Tabela 4 - Comparação de resultados entre CMOEA, MOPSO e moED


Hipervolume
Instância CMOEA MOPSO moED
FT06 (6x6) 0,8700 0,9160 0,9160
FT10 (10x10) 0,4459 0,5618 0,5659
FT20 (20x5) 0,1435 0,1435 0,1735
ABZ5 (10x10) 0,2825 0,3439 0,3504
ABZ6 (10x10) 0,0861 0,1012 0,1015
ABZ7 (20x15) 0,3021 0,3436 0,2625
ABZ8 (20x15) 0,3653 0,3974 0,2934
ORB1 (10x10) 0,1596 0,1647 0,1604
ORB2 (10x10) 0,1026 0,1074 0,1079
ORB3 (10x10) 0,1779 0,1941 0,2022
ORB4 (10x10) 0,5000 0,5467 0,5093
ORB5 (10x10) 0,2506 0,2714 0,3043
LA26 (20x10) 0,1825 0,1754 0,2312
LA27 (20x10) 0,1590 0,1643 0,1821
LA28 (20x10) 0,1405 0,1529 0,2032
Média 0,2779 0,3056 0,3042
Desempenho 0 / 4 / 11 5/9/1 11 / 2 / 2

Na Figura 4 é possível visualizar os conjuntos de soluções não-dominadas dos três


algoritmos, para ilustração foram escolhidas uma instância de cada classe do problema – FT20,
ABZ7, ORB1 e LA28. Como o JSS se trata de um problema combinatório, as fronteiras
encontradas contêm lacunas, já que as soluções entre essas lacunas podem não existir.

4. Considerações Finais

Este trabalho teve como proposta o estudo do algoritmo de Evolução Diferencial para o
problema de Job Shop Scheduling com dois objetivos, no qual são minimizados o makespan e o
atraso total das tarefas. A finalidade do algoritmo é identificar um conjunto de soluções
dominantes. Primeiramente analisou-se a relevância do mecanismo de busca local implementado
pelo moED, obtendo um aumento maior médio de 23% no indicador de qualidade utilizado com a
inclusão da busca local.
Analisou-se também o desempenho do moED com os algoritmos CMOEA e MOPSO –
dois métodos encontrados na literatura que disponibilizam dados e resultados de 15 problemas. Os
resultados obtidos mostraram que dos 15 problemas investigados, o moED encontrou melhores
soluções em 10 problemas (66,67%), sendo que em um problema o MOPSO e moED apresentaram
o mesmo conjunto de soluções não-dominadas.
Trabalhos futuros poderão explorar novos mecanismos para aperfeiçoamento das soluções
nas instâncias com maiores dimensões, como o ABZ7 e ABZ8, além de avaliar a aplicação do
moED a outros problemas combinatórios.

https://proceedings.science/p/85503
Figura 4 – Conjunto de soluções não-dominadas identificadas pelos algoritmos CMOEA, MOPSO e moED

Agradecimentos

O presente trabalho foi financiado pela Fundação de Amparo à Pesquisa do Estado de


Minas Gerais (FAPEMIG).

Referências Bibliográficas

Armentano, V. A. e Scrich, C. R. (2000). Tabu search for minimizing total tardiness in a job shop.
International Journal of Production Economics, 63: 131-140.

Bean, J. C. (1994). Genetic Algorithms and Random Keys for Sequencing and Optimization. ORSA
Journal on Computing, 6, 2: 154-160.

Bierwirth, C. e Kuhpfahl, J. (2017). Extended GRASP for the Job Shop Scheduling Problem with
Total Weighted Tardiness Objective. European Journal of Operational Research, 261, 3: 835-848.

Boaretto, M. A. R., Morais, M. F. e Coelho, L. S. (2017). Evolução Diferencial Aplicada ao


Problema De Programação Da Produção Em Sistemas Flow Shop Permutacional. In Anais do XLIX
SBPO, p. 1921-1932, Rio de Janeiro. SOBRAPO.

https://proceedings.science/p/85503
Cheng, R., Gen, M. e Tsujimura, Y. (1996). A tutorial survey of job-shop scheduling problems
using genetic algorithms—I. Representation. Computers & Industrial Engineering, 30, 4: 983-997.

Coello, C. A. C., Lamont, G. B. e Veldhuizen, D. A. V. (2007). Evolutionary Algorithms for


Solving Multi-Objective Problems. Springer. New York.

Cunha, A. G., Takahashi, R. e Antunes, C. H. (2012). Manual de computação evolutiva e


metaheurística. UFMG, Belo Horizonte.

Deb, K., Agrawal, S., Pratap, A. e Meyarivan, T. (2000). A Fast Elitist Non-Dominated Sorting
Genetic Algorithm for Multi-Objective Optimization: NSGA-II, KanGAL Report No.200001.

Goldbarg, M. C., Pacca, H. e Luna, L. (2005). Otimização Combinatória e Programação Linear.


Elsevier, Rio de Janeiro.

Guimarães, F. G. (2009). Algoritmos de Evolução Diferencial para Otimização e Aprendizado de


Máquina. In Anais do IX CBRN, p. 1-17, Rio de Janeiro. SBRN.

Huang, R. e Yu, T. (2017). An Effective Ant Colony Optimization Algorithm for Multi-Objective
Job-Shop Scheduling with Equal-Size Lot-Splitting. Applied Soft Computing, 57: 642-656.

Kupfer, D. e Hasenclever, L. (2003). Economia industrial: fundamentos teóricos e práticas no


Brasil. Elsevier, Rio de Janeiro.

Lei, D. e Wu, Z. (2006). Crowding-measure-based multiobjective evolutionary algorithm for job


shop scheduling. The International Journal of Advanced Manufacturing Technology, 30: 112-117.

Mendes, J. B. (2013). Uma Abordagem Multiobjetivo para o Problema de Despacho de Caminhões


em Minas a Céu Aberto. Tese (Doutorado em Engenharia Elétrica) – Universidade Federal de
Minas Gerais, Minas Gerais.

OR Library - Operations Research Library (2017). Web page:


http://people.brunel.ac.uk/~mastjjb/jeb/orlib/files/jobshop1.txt. Acessado em 2017-12-02.

Ponnambalam, S. G., Ramkumar, V. e Jawahar, N. (2001). A multiobjective genetic algorithm for


job shop scheduling. Production Planning & Control: The Management of Operations, 12, 8: 764-
774.

Qing-dao-er-ji, R. e Wang, Y. (2012). A new hybrid genetic algorithm for job shop scheduling
problem. Computers & Operations Research, 39: 2291-2299.

Storn, R. M. e Price, K. V. (1995). Differential evolution - a simple and efficient adaptive scheme
for global optimization over continuous spaces. Technical Report TR-95-012, International
Computer Science Institute, Berkeley, USA.

Tasgetiren, M. F., Sevkli, M., Liang, Y. e Yenisey, M. M. (2006). A Particle Swarm Optimization
and Differential Evolution Algorithms for Job Shop Scheduling Problem. International Journal of
Operations Research, 3, 2: 120-135.

Wisittipanich, W. e Kachitvichyanukul, V. (2013). An Efficient PSO Algorithm for Finding Pareto-


Frontier in Multi-Objective Job Shop Scheduling Problems. Industrial Engineering & Management
Systems, 12, 2: 151-160.

https://proceedings.science/p/85503
Yamada, T. e Nakano, R. (1997). Genetic algorithms for job-shop scheduling problems. In
Proceedings of Modern Heuristic for Decision Support, 67-81, London, March 1997. UNICOM
seminar.

Zachariadis, E. E. e Kiranoudis, C. T. (2010). A strategy for reducing the computational complexity


of local search-based methods for the vehicle routing problem. Computers & Operations Research,
37: 2089-2105.

Zhang, J., Avasarala, V., Sanderson, A. C. e Mullen, T. (2008). Differential Evolution for Discrete
Optimization: An Experimental Study on Combinatorial Auction Problems. IEEE Congress on
Evolutionary Computation, p. 2794-2800.

Zitzler, E. e Thiele, L. (1998). Multiobjective optimization using evolutionary algorithms – a


comparative case study. In: EIBEN, A. et al. (Ed.). Parallel Problem Solving from Nature - PPSN
V. (Lecture Notes in Computer Science, v. 1498). p. 292-301. Springer Berlin/Heidelberg.

https://proceedings.science/p/85503
Powered by TCPDF (www.tcpdf.org)

Você também pode gostar