ArticlePDF Available

Uma análise do framework OptaPlanner aplicado ao problema de empacotamento unidimensional

Authors:

Abstract

Diversos problemas de otimização combinatória foram alvo de estudos nas últimas décadas. Em sua maioria, as soluções apresentadas estão diretamente ligadas a especificidade de cada problema, ou seja, essas soluções acabam não sendo reutilizáveis. Em paralelo a isso, solucionadores genéricos surgiram com o propósito de simplificar e facilitar a busca por soluções viáveis. O presente trabalho pretende explorar diferentes soluções, utilizando o framework OptaPlanner aplicado ao problema de empacotamento unidimensional e comparar os resultados obtidos entre si. Além disso, me-dir a performance das soluções para diferentes conjuntos de dados, disponibilizados pela OR-Library
Uma análise do framework OptaPlanner aplicado ao
problema de empacotamento unidimensional
An analysis of the OptaPlanner framework applied to the
one-dimensional bin packing problem
Victor Rios de Souza
Instituto de Ciência e Tecnologia – Universidade
Federal Fluminense (UFF)
28.895-532 – Rio das Ostras – RJ – Brasil
vrios@id.uff.br
Carlos Bazilio Martins
Instituto de Ciência e Tecnologia – Universidade
Federal Fluminense (UFF)
28.895-532 – Rio das Ostras – RJ – Brasil
carlosbazilio@id.uff.br
ABSTRACT
Diversos problemas de otimiza¸ao combinat´oria foram alvo
de estudos nas ´ultimas d´ecadas. Em sua maioria, as solu-
¸oes apresentadas est˜ao diretamente ligadas a especificidade
de cada problema, ou seja, essas solu¸oes acabam n˜ao sendo
reutiliz´aveis. Em paralelo a isso, solucionadores gen´ericos
surgiram com o prop´osito de simplificar e facilitar a busca
por solu¸oes vi´aveis. O presente trabalho pretende explo-
rar diferentes solu¸oes, utilizando o framework OptaPlanner
aplicado ao problema de empacotamento unidimensional e
comparar os resultados obtidos entre si. Al´em disso, me-
dir a performance das solu¸oes para diferentes conjuntos de
dados, disponibilizados pela OR-Library.
ABSTRACT
Several problems of combinatorial optimization have been
studied in recent decades. For the most part, the soluti-
ons presented are directly linked to the specificity of each
problem, that is, these solutions end up being not reusable.
In parallel to this, generic solvers have emerged with the
purpose of simplifying and facilitating the search for feasi-
ble solutions. The present work intends to explore different
solutions, using the OptaPlanner framework applied to the
one-dimensional bin packing problem and compare the ob-
tained results among themselves. In addition, measure the
performance of solutions for different data sets, made avai-
lable by OR-Library.
CCS Concepts
Theory of computation Models of computation; Soft-
ware and its engineering Software notations and tools;
Permission to make digital or hard copies of all or part of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full citation
on the first page. To copy otherwise, or republish, to post on servers or to redistribute
to lists, requires prior specific permission and/or a fee.
Keywords
Otimiza¸ao combinat´oria; OptaPlanner; empacotamento uni-
dimensional; OR-Library
Combinatorial optimization; OptaPlanner; one-dimensional
packaging; OR-Library
1. INTRODUÇÃO
O problema de empacotamento ´e considerado um pro-
blema cl´assico na otimiza¸ao combinat´oria. As primeiras
pesquisas envolvendo varia¸oes desse problema surgiram no
in´ıcio da d´ecada de 70 [7] [11]. Ainda assim, publica¸oes re-
centes podem ser encontradas com novas abordagens e t´ec-
nicas aplicadas a varia¸oes do mesmo problema [5] [18]. A
demanda por novos estudos s˜ao fomentadas por in´umeras
aplica¸oes nas ´areas de engenharia e computa¸ao, como por
exemplo: corte de materiais[12]; aloca¸ao de carga em trans-
portes [16]; balanceamento de carga para cluster de compu-
tadores na nuvem [19].
Apesar de ser um problema conhecido na ´area de pesquisa
operacional, ´e poss´ıvel encontrar na literatura diversos tra-
balhos que tamb´em relacionam esse tipo de problema com
o campo de inteligˆencia artificial, estabelecendo uma forte
rela¸ao entre elas [17] [9] [3].
Em sua essˆencia, o problema cl´assico de empacotamento
unidimensional consiste em minimizar o n´umero de pacotes
ou caixas utilizadas para alocar uma certa quantidade de
itens. Os pacotes ou caixas possuem capacidade restrita e
igualit´aria, os itens possuem diferentes pesos ou tamanhos e
um item deve estar alocado em apenas um pacote. Na Fi-
gura 1 ´e poss´ıvel visualizar uma representa¸ao do problema
de empacotamento unidimensional.
Apesar da facilidade em descrevˆe-lo, trata-se de um pro-
blema de dif´ıcil resolu¸ao. Considerando a hip´otese que P
6=NP, o problema do empacotamento ´e classificado como
NP-Dif´ıcil, ou seja, ´e improv´avel que haja um algoritmo
de tempo polinomial capaz de resolvˆe-lo de forma otimizada
[8].
1.1 Motivação
Nos ´ultimos anos diversos trabalhos na ´area de pesquisa
operacional e inteligˆencia computacional tˆem surgido com o
prop´osito de resolver problemas complexos de natureza NP-
Dif´ıcil. Essas pesquisas, em sua maioria, prop˜oe novas
solu¸oes para problemas espec´ıficos, visando obter o melhor
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
Figure 1: Representa¸ao do problema de empacota-
mento unidimensional
resultado poss´ıvel, seja ele de minimiza¸ao ou maximiza¸ao.
Por´em, desenvolver solu¸oes dessa natureza pode ser algo
custoso e demorado. Produtos de software, normalmente
chamados de “solucionadores”, surgiram com o objetivo de
fornecer solu¸oes mais generalistas. Alguns s˜ao produtos
comerciais e s´o est˜ao dispon´ıveis atrav´es da aquisi¸ao de uma
licen¸ca ou obten¸ao de uma licen¸ca acadˆemica por meio de
outra institui¸ao. Algumas dessas ferramentas podem ser
observadas na Tabela 1.
Dentre eles destaca-se o OptaPlanner, um framework open
source em Java, sob a licen¸ca Apache. O OptaPlanner ´e
parte do projeto Knowledge Is Everything (KIE) da Red
Hat, que engloba outros projetos, como por exemplo, o Dro-
ols, um sistema de gerenciamento de regras de neg´ocios com
mecanismo de regras baseado em inferˆencia [10]. Na Figura
2 ´e poss´ıvel visualizar os subprojetos do projeto KIE e como
eles se relacionam.
Figure 2: Subpro jetos do projeto KIE
O OptaPlanner pode ser definido como um framework de
Table 1: Ferramentas de otimiza¸ao
inteligˆencia artificial, capaz de solucionar problemas de oti-
miza¸ao com restri¸oes. Apesar de estar classificado na Ta-
bela 1 como um solucionador de busca local, al´em de utilizar
essa t´ecnica, sua configura¸ao permite o uso de outras estra-
egias que v˜ao desde for¸ca bruta, at´e heur´ısticas [4].
Na literatura foram encontrados trabalhos onde o Opta-
Planner ´e citado e tamb´em objeto de estudo. Em ˇ
Cimbora
[20], foi realizada uma proposta de melhoria do benchmark
existente no framework. Em outro, foi utilizada uma im-
plementa¸ao preexistente do framework para solucionar o
problema de roteamento de ve´ıculos [13]. O OptaPlanner
tamb´em foi utilizado para solucionar parte do problema de
roteamento de ve´ıculos envolvendo o mecanismo de coleta
de lixo [15].
a outro trabalho encontrado, refere-se a uma proposta
de solu¸ao apresentada para o problema de gerenciamento
de atribui¸ao de tarefas [14]. Este sendo o que mais se apro-
xima do objetivo que pretende-se alcan¸car com o presente
trabalho, se levada em considera¸ao a compara¸ao dos re-
sultados obtidos atrav´es das configura¸oes de benchmark do
framework. Contudo, n˜ao foi encontrado um trabalho no
qual essa compara¸ao se d´a aplicando a mesma solu¸ao em
diferentes conjuntos de dados, tampouco analisar o quanto
essas solu¸oes podem escalar em termos de performance.
1.2 Objetivos
Primordialmente, o presente trabalho objetiva:
Explorar o framework OptaPlanner aplicado ao pro-
blema de empacotamento unidimensional;
341
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
Comparar os resultados obtidos entre si, para as dife-
rentes configura¸oes da solu¸ao desenvolvida;
Mensurar a performance a medida que o tamanho do
problema cresce;
Outros aspectos secund´arios a serem explorados:
Testar a pluralidade de configura¸oes oferecidas pelo
framework OptaPlanner;
Tra¸car paralelos com outros trabalhos existentes, que
utilizem o mesmo conjunto de dados;
Identificar pontos de melhoria e evolu¸ao da ferramenta.
1.3 Metodologia de Pesquisa
Quanto a metodologia de pesquisa, pretende-se realizar
uma investiga¸ao aplicada ao problema de empacotamento
unidimensional, e explorat´oria em rela¸ao ao framework Op-
taPlanner. Ademais, visa adotar uma abordagem quantita-
tiva sobre os resultados obtidos, demonstrando a qualidade
da solu¸ao (n´umero de restri¸oes violadas ou n˜ao atendidas)
e o tempo de execu¸ao de cada uma delas, para cada con-
junto de dados.
2. FORMULAÇÃO DO PROBLEMA
Para um conjunto finito de pacotes com capacidade idˆen-
tica C, um conjunto de itens V = {1,...,n} com pesos w1,.
..,wn, o objetivo do problema de empacotamento unidimen-
sional ´e alocar cada item a um pacote minimizando o n´umero
de pacotes utilizados. Esta aloca¸ao deve respeitar a capa-
cidade m´axima dos pacotes. O seguinte modelo matem´atico
pode ser usado para representar o problema de empacota-
mento unidimensional:
Fun¸ao objetivo:
Minimizarz =
m
X
i=1
yi(1)
Sujeito a:
m
X
j=1
wjxij Cyii  N ={1, ..., n}(2)
m
X
j=1
xij = 1, j  N (3)
yi{0,1}, j  N (4)
xij {0,1}, i  N j  N (5)
Considere a vari´avel bin´aria yiigual a 1 se o pacote i est´a
sendo utilizado e 0, caso contr´ario. A vari´avel bin´aria xij
indica se o item jest´a alocado ao pacote i(xij = 1) ou n˜ao
(xij = 0). Assume-se tamb´em que C >0 e wj<C, ou seja,
a capacidade do pacote deve ter valor positivo e o peso de
um item n˜ao pode ser maior que a capacidade de um pacote.
O objetivo definido por (1) ´e minimizar o n´umero de paco-
tes utilizados. Em (2) ´e definida a primeira restri¸ao, onde
a soma dos pesos dos itens alocados em um pacote deve ser
menor ou igual a sua capacidade. Em (3) restringe que um
item deve estar alocado em somente um pacote. As restri-
¸oes (4) e (5), limitam os valores das vari´aveis de decis˜ao.
3. DESENVOLVIMENTO DA SOLUÇÃO
O desenvolvimento da solu¸ao para o problema do empa-
cotamento unidimensional usando o framework OptaPlan-
ner pode ser dividido em 3 etapas distintas: modelagem de
dom´ınio e implementa¸ao; estrat´egia de pontua¸ao da solu-
¸ao e regras de restri¸oes; e configura¸ao do framework.
3.1 Modelagem de domínio e implementação
Para problemas de planejamento ou otimiza¸ao, como ´e o
caso do problema de empacotamento unidimensional, ´e ne-
cess´ario identificar as entidades de dom´ınio e propriedades
que ser˜ao alvo do solucionador. Para isso, a compreens˜ao de
alguns conceitos do framework OptaPlanner se faz necess´a-
ria:
Entidade de Planejamento: Indica a classe, ou clas-
ses, que podem sofrer altera¸oes durante o processo de
busca da solu¸ao. Para o caso do problema de empa-
cotamento, de acordo com a modelagem de dom´ınio, a
classe Item representa essa entidade;
Fato Problema: ao as classes que n˜ao podem sofrer
altera¸oes em sua entrada de dados pelo solucionador.
No exemplo estudado, a classe Bin ´e a ´unica que possui
essa caracter´ıstica;
Vari´avel de Planejamento: Determina a propriedade
da Entidade de Planejamento que pode sofrer alte-
ra¸oes durante o processo de resolu¸ao do problema.
Tamb´em pode ser aplicado a mais de uma propriedade,
desde que a classe seja uma Entidade de Planejamento.
No presente trabalho, essa propriedade ´e a bin locali-
zada na classe Item;
Solu¸ao de Planejamento: A classe que representa a
solu¸ao do problema. Essa classe cont´em todo o con-
junto de dados e todas as Entidades de Planejamento.
No caso, a classe BinPackingSolver representa essa en-
tidade.
Oframework OptaPlanner utiliza um recurso da pr´opria
linguagem Java, chamado annotations, para“marcar”as clas-
ses e propriedades com as configura¸oes supracitadas. Dessa
forma, ´e poss´ıvel determinar a Entidade de Planejamento,
Vari´avel de Planejamento e Solu¸ao do Planejamento, com
as seguintes anota¸oes respectivamente: @PlanningEntity,
@PlanningVariable e@PlanningSolution. O Fato Problema
´e identificado por exclus˜ao, caso a classe n˜ao seja anotada,
ent˜ao significa que esta ´e uma classe Fato Problema.
De acordo com as defini¸oes da Unified Model Language
(UML) [2], podemos representar a modelagem de dom´ınio
para o problema de empacotamento unidimensional, atrav´es
do diagrama de classes da Figura 3:
O mecanismo de funcionamento do framework consiste em
modificar o valor das Vari´aveis de Planejamento, utilizando
a estrat´egia de busca local configurada, de modo que todas
as regras de restri¸oes sejam atendidas, at´e que a condi¸ao
de parada seja satisfeita.
Nas subse¸oes posteriores, ser˜ao detalhados com mais cla-
reza as etapas de defini¸ao das regras de restri¸oes e confi-
gura¸ao do framework.
3.2 Estratégia de pontuação da solução e re-
gras de restrição
342
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
Figure 3: Diagrama de classes do problema de empacotamento unidimensional
A pontua¸ao de uma solu¸ao define se uma solu¸ao ´e me-
lhor que outra. Quanto maior a pontua¸ao, melhor ´e a so-
lu¸ao. Todas as t´ecnicas de pontua¸ao s˜ao baseadas em res-
tri¸oes e possuem aspectos que devem ser levados em consi-
dera¸ao, como o sinal, peso e camada da pontua¸ao.
O sinal da pontua¸ao de uma restri¸ao indica se a restri-
¸ao ´e de minimiza¸ao ou maximiza¸ao. Restri¸oes de mi-
nimiza¸ao possuem pontua¸ao com o sinal negativo e ficam
melhores quando tendem a zero. a as restri¸oes de ma-
ximiza¸ao possuem pontua¸ao com o sinal positivo e ficam
melhores quando se afastam do valor zero. Quando uma
pontua¸ao recebe um valor negativo, dizemos que ela foi pe-
nalizada, j´a quando recebe um valor positivo, dizemos que
ela foi bonificada.
O peso da pontua¸ao, determina se restri¸oes em uma
mesma camada possuem mais importˆancia que outra. Isso
se d´a pelo fato de restri¸oes diferentes serem penalizadas
ou bonificadas com valores diferentes. Por exemplo, se uma
restri¸ao for penalizada com um valor maior que outra, evi-
dencia que a primeira possui uma importˆancia maior que a
segunda.
a as camadas subdividem as restri¸oes em conjuntos dis-
tintos. Cada camada possui uma pontua¸ao diferente. Por
padr˜ao, o OptaPlanner disponibiliza 3 camadas para serem
utilizadas: r´ıgida, m´edia e suave.
Para escrever as regras de restri¸oes foi utilizado o Dro-
ols, um sistema de gerenciamento de regras de neg´ocios, que
tamb´em ´e um projeto do KIE. O Drools est´a nativamente
incorporado ao OptaPlanner. Entretanto, como alternativa,
tamb´em ´e poss´ıvel escrever as regras utilizando uma classe
Java simples.
Para o problema de empacotamento unidimensional, fo-
ram desenvolvidas 3 restri¸oes, sendo 2 restri¸oes r´ıgidas e
1 restri¸ao suave. As restri¸oes r´ıgidas ou hard constraints,
ao aquelas que, quando violadas, inviabilizam a solu¸ao. As
restri¸oes suaves ou soft constraints, podem ser violadas que
ao inviabilizam a solu¸ao, embora o valor de seu resultado
indique a qualidade da solu¸ao encontrada.
A primeira regra de restri¸ao, que pode ser observada na
Figura 4, serve para determinar que a soma dos valores dos
itens de um pacote n˜ao exceda a capacidade m´axima do
pacote. A restri¸ao ´e acionada quando para um dado pacote
$bin com capacidade $capacity, a soma do tamanho dos
itens $sizeTotal for maior que $capacity, se o pacote do
item bin for igual a $bin. Ent˜ao, a pontua¸ao da camada
de restri¸ao r´ıgida recebe uma penaliza¸ao de $capacity -
$sizeTotal. Por ser uma restri¸ao r´ıgida, qualquer valor
menor que zero inviabiliza a solu¸ao, entretanto, esse regra
utiliza o crit´erio de peso para pontuar a restri¸ao. A solu¸ao
fica mais distante de um resultado vi´avel a medida que o
valor da soma dos itens for maior que a capacidade m´axima
do pacote.
Figure 4: Primeira regra de restri¸ao
A segunda regra de restri¸ao tamb´em penaliza a pontu-
ao localizada na camada r´ıgida da solu¸ao. Quando um
item possui um pacote bin igual a nulo, ent˜ao a pontua¸ao
recebe uma penaliza¸ao de -1. Em outras palavras, para
se ter uma solu¸ao vi´avel, todos os itens da solu¸ao devem
possuir um pacote associado. Neste caso a penaliza¸ao da
restri¸ao n˜ao possui um peso, j´a que o mesmo valor (-1) ´e
atribu´ıdo na penaliza¸ao. Essa regra pode ser visualizada
na Figura 5.
A ´ultima regra definida, identificada na Figura 6, verifica
a utiliza¸ao completa do pacote. Esse crit´erio n˜ao ´e uma
premissa para a viabilidade da solu¸ao. Por essa raz˜ao, fica
categorizada na camada suave. A penaliza¸ao ocorre quando
para um dado pacote $bin com capacidade $capacity, o
somat´orio $sizeTotal do tamanho dos itens cujo pacote bin
´e igual a $bin, for menor que $capacity, ent˜ao a pontua¸ao
ser´a penalizada com o valor $sizeTotal -$capacity.
343
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
Figure 5: Segunda regra de restri¸ao
Figure 6: Terceira regra de restri¸ao.
3.3 Configuração do framework
Oframework OptaPlanner permite que sejam realizadas
configura¸oes que definem diversos aspectos da solu¸ao, como:
caminho do arquivo contendo as regras de restri¸oes, a con-
di¸ao de parada da solu¸ao, heur´ıstica de constru¸ao e al-
goritmo de busca local. Uma combina¸ao dessas estrat´egias
pode ser utilizada em um mesmo arquivo de configura¸ao,
a fim de se encontrar a melhor configura¸ao para um deter-
minado problema. Este tipo de configura¸ao ´e chamado de
configura¸ao de benchmark.
Para o problema foram utilizadas 2 configura¸oes, utiliza-
das em momentos distintos. A primeira, uma configura¸ao
de benchmark, para encontrar a melhor estrat´egia de busca
local. Foram utilizadas 3 estrat´egias de busca local para
compara¸ao: Tabu Search,Simulated Annealing eLate Ac-
ceptance. Para esta configura¸ao, foram utilizados 2 crit´erios
na condi¸ao de parada: ou quando a pontua¸ao r´ıgida che-
gar ao valor zero (solu¸ao vi´avel), ou quando extrapolado o
tempo de 30 minutos ap´os o in´ıcio da busca.
ao foi realizada nenhuma customiza¸ao nas configura-
¸oes padr˜ao de nenhum dos algoritmos de busca local. Al´em
disso, foram utilizados os mesmos seletores de movimenta¸ao
para todos eles (swapMoveSelector epillarSwapMoveSelec-
tor). Tamb´em foi utilizado a heur´ıstica first fit para cons-
tru¸ao da solu¸ao inicial. Estes princ´ıpios tem por objetivo
comparar os resultados obtidos considerando os mesmos cri-
erios de partida.
Ap´os executar a solu¸ao para o primeiro conjunto de da-
dos, foi identificado que o algoritmo de busca local Simula-
ted Annealing, apresentou os melhores resultados. Detalhes
sobre os resultados ser˜ao apresentados adiante na subse¸ao
4.3.
A segunda configura¸ao utilizou somente o algoritmo de
busca local Simulated Annealing. Foi utilizado como condi-
¸ao de parada o valor zero para a restri¸ao r´ıgida, ou seja,
at´e uma solu¸ao vi´avel ser encontrada. Essa configura¸ao
foi aplicada a todos os conjuntos de dados, sendo quatro no
total. Detalhes sobre os conjuntos de dados testados podem
ser vistos na subse¸ao 4.2.
4. EXPERIMENTOS COMPUTACIONAIS
Os experimentos computacionais foram divididos em duas
etapas. Na primeira, foi executada a configura¸ao de bench-
mark, citada na se¸ao anterior, no menor conjunto de dados
(binpack1), a fim de identificar o melhor algoritmo de busca
local, ou seja, a solu¸ao capaz de resolver o problema aten-
dendo todas as restri¸oes, no menor tempo poss´ıvel. Na
segunda, foi aplicada a solu¸ao escolhida na etapa anterior
para os demais conjuntos de dados.
4.1 Ambiente Computacional
A m´aquina utilizada para o experimento possui em sua
configura¸ao um processador Intel Core i7-4500U 1.8GHz e
8GB de mem´oria RAM. Todos os testes rodaram em um sis-
tema operacional Windows 10 Pro de 64 bits, vers˜ao 1803 e
compila¸ao 17134.885. Como j´a mencionado anteriormente,
o desenvolvimento da solu¸ao foi realizada com linguagem
Java, vers˜ao 1.8.0, e framework OptaPlanner, vers˜ao 7.21.0.fi-
nal.
4.2 Instâncias Testadas
Foram utilizadas 4 instˆancias de conjuntos de dados para
o problema do empacotamento unidimensional disponibili-
zadas na OR-Library [1]. Cada um deles contendo 20 pro-
blemas. Esses conjuntos de dados possuem itens de tamanho
uniforme, que variam entre 20 a 100, com pacotes de capa-
cidade 150. A diferen¸ca entre eles se d´a na quantidade de
itens e pacotes existentes em cada problema. Os problemas
variam a partir de 120 itens e 46 pacotes, at´e 1000 itens
e 412 pacotes, ou seja, a complexidade do problema cresce
na escala que a quantidade de itens e pacotes aumenta. As
informa¸oes dos conjuntos de dados podem ser vistas na Ta-
bela 2.
Table 2: Conjunto de dados OR-LIBRARY
4.3 Resultados da primeira etapa
Como mencionado anteriormente, os resultados da pri-
meira etapa foram obtidos provenientes da configura¸ao de
benchmark do framework OptaPlanner explicado na subse-
¸ao 3.3.
De acordo com as informa¸oes apresentadas na Tabela 3,
em rela¸ao a pontua¸ao, os algoritmos de busca local Tabu
Search eSimulated Annealing obtiveram resultados idˆenti-
cos. Ambos alcan¸caram solu¸oes vi´aveis para todos os pro-
blemas do conjunto de dados. Em contrapartida, o algo-
ritmo Late Acceptance falhou em 7 dos 20 problemas tes-
344
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
Table 3: Pontua¸ao x tempo gasto entre os algoritmos de busca local
tados, ou seja, obteve valor da restri¸ao r´ıgida menor que
zero.
Em rela¸ao a performance, ´e poss´ıvel observar na coluna
“Tempo”, o tempo gasto em milissegundos para cada pro-
blema, entre as 3 solu¸oes. Os resultados observados na
Tabela 3 indicam que o algoritmo Simulated Annealing foi
capaz de solucionar o mesmo conjunto de dados e obtendo
o mesmo resultado que o algoritmo Tabu Search, gastando
7,48 menos tempo. Em apenas 2 problemas o algoritmo
Tabu Search foi superior ao algoritmo Simulated Annealing
nesse quesito.
Outro crit´erio de performance a observar ´e a velocidade do
alculo da pontua¸ao da solu¸ao. Esse item indica o custo
de se adicionar novas regras de restri¸ao a solu¸ao. Outra
vantagem de se obter um indicador superior nesse crit´erio ´e
a capacidade de se escapar do ´otimo local, uma vez que mais
tentativas podem ser realizadas por segundo. Nesse quesito
o algoritmo Tabu Search alcan¸cou o melhor resultado. Em
edia ele foi capaz de calcular 56.822 pontos por segundo,
contra 23.703 pontos por segundo do algoritmo Simulated
Annealing.
Apesar disso, foi adotado para a segunda etapa o algo-
ritmo Simulated Annealing para ser aplicado como solu¸ao
para as outras 3 instˆancias do conjuntos de dados. Um dos
crit´erios para a escolha desse algoritmo se deu pelo fato de
suas regras n˜ao possu´ırem tendˆencia de altera¸ao. Al´em do
mais, o resultados obtidos pelo algoritmo foram satisfat´orios.
4.4 Resultados da segunda etapa
Na segunda etapa foram executadas as instˆancias bin-
pack2,binpack3 ebinpack4, utilizando a configura¸ao com
algoritmo de busca local Simulated Annealing. Assim como
ocorreu na primeira etapa, para todos os problemas das ou-
tras instancias testadas, o solucionador obteve solu¸oes vi´a-
veis ou ´otimas.
Ao fim do processo de busca, o solucionador ´e capaz de
mensurar a complexidade das instˆancias dos conjuntos de
dados testados. Na Tabela 4 ´e poss´ıvel observar essa in-
forma¸ao para as instˆancias binpack1,binpack2,binpack3 e
binpack4, ao lado do nome da instˆancia, sendo elas respec-
tivamente: 5.898, 25.425, 100.600 e 400.550. Atrav´es desse
valor, ´e poss´ıvel realizar um comparativo entre a complexi-
dade e tempo gasto para cada um deles. Tomando como base
as instˆancias dos extremos, pode-se observar que a instˆancia
binpack4 ´e 67,91 mais complexa que a instˆancia binpack1,
e o tempo gasto pela solu¸ao na instˆancia binpack4 ´e 71,11
maior que a instˆancia binpack1. Segundo a documenta¸ao
oficial do framework, problemas com pontua¸ao acima de
1.000 s˜ao considerados de complexidade alta [4].
Tamb´em ´e poss´ıvel observar que o problema que levou
mais tempo para ser solucionado foi o problema 3 da ins-
ancia binpack4, com 4,11 minutos. a o problema que foi
solucionado mais r´apido, foi o problema 8 da instˆancia bin-
pack1, com 0,259 segundos.
Para solucionar as 4 instˆancias, usando o algoritmo de
busca local Simulated Annealing, foram gastos no total 33,15
minutos. Uma m´edia de 24,86 segundos para cada problema.
Embora haja diferen¸cas em termos de ambiente computacio-
nal e solu¸ao adotada, no trabalho “A Hybrid Grouping Ge-
netic Algorithm for Bin Packing” de Falkenauer, por exem-
plo, para solucionar os mesmos conjuntos de dados, foram
necess´arios 163 minutos. Uma m´edia de 2,03 minutos por
problema [6]. Neste caso, n˜ao h´a inten¸ao de realizar uma
345
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
Table 4: Pontua¸ao x tempo gasto entre as instˆancias com Simulated Annealing
compara¸ao entre os trabalhos, apenas evidenciar a capaci-
dade e potencial do uso do framework OptaPlanner.
5. CONCLUSÕES
O objetivo principal do presente trabalho foi explorar o
framework OptaPlanner aplicado ao problema de empaco-
tamento unidimensional, bem como mensurar a performance
e comparar os resultados obtidos entre si.
Levando em considera¸ao esses aspectos, foi poss´ıvel cons-
tatar a viabilidade do uso do framework OptaPlanner para
problemas com grande volume de dados. Al´em do mais,
vencida a etapa de compreens˜ao do funcionamento do fra-
mework, destaca-se a simplicidade da solu¸ao desenvolvida.
Para o problema de empacotamento unidimensional, a mo-
delagem de dom´ınio necessitou utilizar apenas 3 classes, fa-
zendo uso das anota¸oes disponibilizadas pelo framework.
Al´em disso, foram utilizadas 3 regras de restri¸oes para li-
mitar o espa¸co de busca, sendo 2 r´ıgidas e 1 suave. O res-
tante do esfor¸co foi direcionado para configura¸ao. a de
se ressaltar a necessidade de algum conhecimento pr´evio na
linguagem Java e Drools.
Por tratar de um nicho espec´ıfico de problemas e n˜ao ser
uma ferramenta difundida no mercado, ainda n˜ao possui
uma grande comunidade para suporte, embora haja uma do-
cumenta¸ao detalhada que favorece o entendimento e auxilia
na implementa¸ao de novas solu¸oes. Tamb´em h´a um f´orum
mantido pelos respons´aveis do projeto com esse prop´osito.
Apesar de terem sido utilizados 3 algoritmos de busca
local, al´em das configura¸oes de benchmark do framework,
ao foi poss´ıvel explorar todos os algoritmos e configura¸oes
existentes. Outro item poss´ıvel para ser considerado em tra-
balhos futuros ´e a realiza¸ao de estudos comparativos com
outros frameworks existentes no mercado.
Durante a pesquisa foi poss´ıvel observar que, apesar da
existˆencia de diversos algoritmos e possibilidades de confi-
gura¸ao, muitos outros algoritmos estudados pela comuni-
dade cient´ıfica ainda n˜ao s˜ao suportados pela ferramenta.
O algoritmo de otimiza¸ao colˆonia de formigas e o variable
neighborhood search ao exemplos desses algoritmos.
Como j´a exposto em momento anterior, conclui-se que o
framework OptaPlanner ´e uma ferramenta que se mostrou
eficaz para o problema de empacotamento unidimensional,
tanto no aspecto dos resultados obtidos quanto no tempo
computacional gasto para alcan¸a-los.
6. REFERENCES
[1] J. E. Beasley. OR-library: Distributing test problems
by electronic mail. Journal of the Operational
Research Society, 41(11):1069–1072, Nov. 1990.
[2] R. J. Booch, G. and I. Jacobson. UML: guia do
usu´ario. Elsevier Brasil, 2006.
[3] N. G. Bourbakis. Artificial Intelligence Methods And
Applications. Springer International Publishing, 2014.
[4] G. De Smet. Optaplanner user guide. In Red Hat, Inc.
or third-party contributors. OptaPlanner is an open
source constraint solver in Java., 2006.
[5] M. Dell’Amico, F. Furini, and M. Iori. A
branch-and-price algorithm for the temporal bin
packing problem. In . arXiv:1902.04925 [math], feb
2019.
[6] E. Falkenauer. A hybrid grouping genetic algorithm
for bin packing. Journal of Heuristics, 2(1):5–30, 1996.
[7] M. R. Garey, R. L. Graham, and J. D. Ullman.
Worst-case analysis of memory allocation algorithms.
In Proceedings of the fourth annual ACM symposium
346
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
on Theory of computing - STOC 72, pages 143–150.
ACM, ACM Press, 1972.
[8] M. R. Garey and D. S. Johnson. Computers and
intractability : a guide to the theory of
NP-completeness. New York [u.a] Freeman [ca. 2009],
2009.
[9] F. Glover. Future paths for integer programming and
links to artificial intelligence. Computers & operations
research, 13(5):533–549, 1986.
[10] R. Hat. Kie group - knowledge is everything. In
http://kiegroup.org/, 2019.
[11] D. S. Johnson. Near-optimal bin packing algorithms.
PhD thesis, Massachusetts Institute of Technology,
1973.
[12] G. K losowski, E. Koz lowski, and A. Gola. Integer
linear programming in optimization of waste after
cutting in the furniture manufacturing. In Advances in
Intelligent Systems and Computing, pages 260–270.
Springer International Publishing, Aug. 2017.
[13] S. Kosecka- ˙
Zurek et al. Application of it tools in
optimization of logistics problems. Czasopismo
Techniczne, 1:177–186, 2019.
[14] B. M. Macik. Case management task assignment using
optaplanner. Master’s thesis, Masaryk University
Faculty of Informatics, 2016.
[15] ´
A. L. Murciego, G. V. Gonz´alez, A. L. Barriuso, D. H.
de La Iglesia, and J. R. Herrero. Multi agent gathering
waste system. In DCAI 2015, 2015.
[16] C. Paquay, S. Limbourg, and M. Schyns. A tailored
two-phase constructive heuristic for the
three-dimensional multiple bin size bin packing
problem with transportation constraints. European
Journal of Operational Research, 267(1):52–64, May
2018.
[17] R. I. Phelps. Artificial intelligence—an overview of
similarities with o.r. Journal of the Operational
Research Society, 37(1):13–20, Jan. 1986.
[18] L. F. Santos, H. T. Yoshizaki, and C. B. Cunha.
Variable neighborhood search for the bin packing
problem with compatible categories. arXiv preprint
arXiv:1905.03427, 2019.
[19] A. Wolke, B. Tsend-Ayush, C. Pfeiffer, and
M. Bichler. More than bin packing: Dynamic resource
allocation strategies in cloud data centers. Information
Systems, 52:83–95, 2015.
[20] M. ˇ
CIMBORA. Usability improvements of
optaplanner benchmarker. Master’s thesis, Masaryk
University, Faculty of Informatics, Brno, 2015.
347
Revista de Sistemas e Computação, Salvador, v. 9, n. 2, p. 340-347, jul./dez. 2019
http://www.revistas.unifacs.br/index.php/rsc
ResearchGate has not been able to resolve any citations for this publication.
Full-text available
Article
We study an extension of the classical Bin Packing Problem, where each item consumes the bin capacity during a given time window that depends on the item itself. The problem asks for finding the minimum number of bins to pack all the items while respecting the bin capacity at any time instant. A polynomial-size formulation, an exponential-size formulation, and a number of lower and upper bounds are studied. A branch-and-price algorithm for solving the exponential-size formulation is introduced. An overall algorithm combining the different methods is then proposed and tested through extensive computational experiments.
Full-text available
Conference Paper
Bin Packing with Conflicts (BPC) are problems in which items with compatibility constraints must be packed in the least number of bins, not exceeding the capacity of the bins and ensuring that non-conflicting items are packed in each bin. In this work, we introduce the Bin Packing Problem with Compatible Categories (BPCC), a variant of the BPC in which items belong to conflicting or compatible categories, in opposition to the item-by-item incompatibility found in previous literature. It is a common problem in the context of last mile distribution to nanostores located in densely populated areas. To efficiently solve real-life sized instances of the problem, we propose a Variable Neighborhood Search (VNS) metaheuristic algorithm. Computational experiments suggest that the algorithm yields good solutions in very short times while compared to linear integer programming running on a high-performance computing environment.
Full-text available
Conference Paper
The study was an attempt to develop the model of a decision controller allowing for simultaneous optimisation of the stock of semi-finished product generated during cutting and cut-out waste. The proposed decision controller was designed to select a suitable cut-out programme to account for such factors as: production orders, current stock of semi-finished product, minimum stock limits, the set limit of rejects. The elaboration concerns application of integer linear programming in multicriteria optimisation in constraint.
Full-text available
Chapter
Simulation of material properties generally involves the development of a mathematical model derived from experimental data. In structural mechanics and construction materials contexts, recent experiments have reported that fuzzy logic (FL), artificial neural networks (ANNs), genetic algorithm (GA), and fuzzy genetic (FG) may offer a promising alternative. They are known as artificial intelligence (AI). In civil engineering, AI methods have been extensively used in the fields of civil engineering applications such as construction management, building materials, hydraulic, optimization, geotechnical and transportation engineering. Many studies have examined the applicability of AI methods to estimate concrete properties. This chapter described the principles of FL methods that can be taught to engineering students through MATLAB graphical user interface carried out in a postgraduate course on Applications of Artificial Intelligence in Engineering, discussed the application of Mamdani type in concrete technology and highlighted key studies related to the usability of FL in concrete technology.
Full-text available
Article
Scope and Purpose-A summary is provided of some of the recent (and a few not-so-recent) developments that otTer promise for enhancing our ability to solve combinatorial optimization problems. These developments may be usefully viewed as a synthesis of the perspectives of operations research and artificial intelligence. Although compatible with the use of algorithmic subroutines, the frameworks examined are primarily heuristic, based on the supposition that etTective solution of complex combinatorial structures in some cases may require a level of flexibility beyond that attainable by methods with formally demonstrable convergence properties. Abstract-Integer programming has benefited from many innovations in models and methods. Some of the promising directions for elaborating these innovations in the future may be viewed from a framework that links the perspectives of artificial intelligence and operations research. To demonstrate this, four key areas are examined: (1) controlled randomization, (2) learning strategies, (3) induced decomposition and (4) tabu search. Each of these is shown to have characteristics that appear usefully relevant to developments on the horizon.
Article
This paper considers the three-dimensional Multiple Bin Size Bin Packing Problem which consists in packing a set of cuboid boxes into containers of various shapes, while minimising unused space. The problem is extended to air cargo where the bins are Unit Load Devices, specially designed for fitting in aircraft. We developed a fast constructive heuristic able to manage the constraints to be met in transportation. The heuristic is split into two distinct phases. The first phase deals with the packing of boxes into identical bins using an extension of the Extreme Points which describe the possible interesting positions to accommodate boxes. During this phase, the fragility, stability and orientation of the boxes are taken into account as well as the special shape of the bins and their weight capacity. The second phase considers the multiple types of available bins. If necessary, the best loading pattern identified is enhanced with respect to weight distribution in post processing. After the description of the parametrisation, computational experiments are performed on data sets specially designed for this application. The heuristic requires only few seconds to achieve promising results in terms of filling rate.
Article
Resource allocation strategies in virtualized data centers have received considerable attention recently as they can have substantial impact on the energy efficiency of a data center. This led to new decision and control strategies with significant managerial impact for IT service providers. We focus on dynamic environments where virtual machines need to be allocated and deallocated to servers over time. Simple bin packing heuristics have been analyzed and used to place virtual machines upon arrival. However, these placement heuristics can lead to suboptimal server utilization, because they cannot consider virtual machines, which arrive in the future. We ran extensive lab experiments and simulations with different controllers and different workloads to understand which control strategies achieve high levels of energy efficiency in different workload environments. We found that combinations of placement controllers and periodic reallocations achieve the highest energy efficiency subject to predefined service levels. While the type of placement heuristic had little impact on the average server demand, the type of virtual machine resource demand estimator used for the placement decisions had a significant impact on the overall energy efficiency.
Article
In this note we present a system (OR-Library) that distributes test problems by electronic mail (e-mail). This system currently has available test problems drawn from a number of different areas of operational research.
Article
A brief outline of A.I. is provided, noting problems, techniques and objectives which are similar to those found in O.R. It is intended that this will indicate to O.R. workers which A.I. areas might be worth following up as relevant to their own work and which problems in A.I. might be attacked by the O.R. community as part of the development of intelligent support systems.