Академический Документы
Профессиональный Документы
Культура Документы
1. Introduo
Entre os problemas clssicos da Otimizao Combinatria esto os Problemas de
Empacotamento (Bin Packing Problem), onde ocorre a distribuio de itens entre os
recipientes de acordo com a capacidade dos recipientes. Este problema tem sido
extensivamente estudado e explorado tanto na rea acadmica quanto por profissionais.
O interesse surge principalmente onde a possibilidade de existir algoritmos que buscam
encontrar solues muito prximas da tima em tempo de execuo razovel. O
Problema de Empacotamento, objetiva minimizar o nmero de barras (bins) (como:
caixa, recipiente, disco rgido, containers, etc.). Os algoritmos heursticos e
aproximativos podem resolver casos prticos do dia-a-dia: planejamento de rotas,
gerenciamento de estoque, oramentos [Martello and Toth 1990].
Neste artigo sero apresentados os resultados obtidos atravs da resoluo do
problema do empacotamento unidimensional utilizando duas heursticas de busca da
informao: Busca em feixe local e os Algoritmos Genticos. O documento est
estruturado da seguinte forma: inicialmente apresentada a descrio do problema,
2. Formulao do Problema
2.1 Problema do Empacotamento Unidimensional
No Problema de Empacotamento Unidimensional (PEU), so dados n itens,
onde o tamanho do item i ( c) e c a capacidade de cada recipiente (bin). Ento,
o PEU encontrar o menor nmero de recipientes, de modo que a soma dos tamanhos
dos itens alocados a cada recipiente no seja maior que sua capacidade, ou seja,
distribuir todos os itens no menor nmero possvel de recipientes, respeitando o
tamanho mximo permitido da soma dos itens alocados em cada bin [MARTELLO &
TOTH,1990].
3. Algoritmos Utilizados
3.1 Busca em feixe local
O algoritmo de busca em feixe um algoritmo do tipo heurstico de busca local
que tem como caracterstica expandir ns mais promissores em um nmero limitado de
expanso. O algoritmo de busca em feixe (beam search) pode ser considerado uma
variante do algoritmo de subida de encosta, porm neste, mantm-se o controle de k
estados, em vez de apenas um, o algoritmo inicia com k estados gerados aleatoriamente,
onde em cada passo so gerados todos os sucessores de todos os k estados. Caso
qualquer um deles for um objetivo, o algoritmo deve parar, caso contrrio, o mesmo
selecionar os k melhores sucessores a partir da lista completa e repetir a ao
novamente. [Russell e Norvig, 2004].
4. Resultados e Discusses
As implementaes dos algoritmos utilizados para a soluo do problema foram
realizadas atravs da ferramenta Matlab e Dev-C++, utilizando a linguagem de
programao C.
Para a soluo do problema foram utilizados os seguintes valores para os itens:
Tabela 1. Instncias do Problema
Item (i=1,... n)
Hi(m)
Item (i=1,... n)
Hi(m)
Item (i=1,... n)
Hi(m)
Item (i=1,... n)
Hi(m)
1
3
8
3
15
2
22
5
2
5
9
7
16
3
23
4
3
7
10
2
17
8
24
9
4
2
11
9
18
5
25
4
5
8
12
5
19
1
26
2
6
6
13
1
20
7
27
9
7
4
14
3
21
3
28
7
=1
Onde:
Fitness do PEU
B Nmero de recipientes que esto sendo utilizados
Somatrio dos tamanhos itens no recipiente i
indivduo, seleo de pais pelo processo de roleta (quanto maior o fitness, maior a
probabilidade de ser escolhido), ponto de corte aleatrio e processo de mutao
aleatrio. Ao final de cada processo de crossover se os filhos gerados no atendem ao
requisito de limitao de ocupao no recipiente (filhos inviveis), estes filhos so
passados por um processo de correo, onde o operador calcula o aproveitamento de
cada um dos recipientes e guarda os quais excederam a taxa de ocupao daquele
recipiente. A partir deste ponto a estratgia implica ento retirar do recipiente que
excedeu a capacidade o menor item que deixe a soluo vivel. Aps de ter verificado
qual item deveria ser retirado, verifica-se dentre todos os recipientes que suportem o
item, este colocado na de menor capacidade disponvel. Para esta estratgia tambm
foi considerado que aps 10 tentativas de tornar aquele individuo vivel, seno o
sistema aceita aquele filho invivel, s que o aplica uma penalizao no seu fitness, para
que este no seja sorteado pela roleta na prxima gerao, assim formada a nova
populao. Estas populaes so armazenadas em uma outra matriz para consulta e
comparao entre as geraes.
Ao executar o AG foi observado que quanto menor a populao, menor a
variabilidade, portanto isso afeta negativamente no processo de crossover. E quanto
maior o nmero da populao, maior a melhoria global de fitness de todos os indivduos
da populao posteriores. E que aproximadamente entre 12 a 16 geraes o fitness
mdio das populaes tendem a se estabilizar, sendo constitudos por populaes como
indivduos idnticos ou muito prximos. O AG foi executado com 5, 10 e 20 indivduos
para populao inicial, tendo 30 geraes num ciclo de 50 vezes. A soluo tima foi
obtido com 36%, 86% e 96% respectivamente das vezes executado o AG.
4.1. Utilizao de algoritmos de busca clssica
Foi discutido durante a implementao dos algoritmos citados acima, se seria
possvel a utilizao de algoritmos de busca clssica, como por exemplo busca
cega/informada off-line ou on-line, para a resoluo do problema de empacotamento
unidimensional.
Foi constatado ento que a utilizao destes algoritmos seria possvel, porm o custo
inviabilizaria sua implementao. Isto seria causado basicamente pelo fato de que a
formulao de tal problema para esses algoritmos no ideal ou at mesmo no
possvel, a comear pelo espao de estados. Neste problema, no temos um estado
inicial especifico, como por exemplo, quando temos problemas do tipo navegao,
quando o objetivo ir de um estado outro. No caso do empacotamento
unidimensional, o estado inicial qualquer, que determinado normalmente de forma
aleatria.
J para o estado objetivo, nos algoritmos de busca cega/informada, o objetivo
atingir um estado especfico ou encontrar um caminho, que satisfaz uma funo
objetivo, como por exemplo, no caso de navegao, estar em um lugar, ou at mesmo
no caso das n rainhas no tabuleiro, aonde a funo objetivo que nenhuma das
rainhas podem se atacar. [SOSIE, R.; GU, 1991] Para o caso do problema
empacotamento unidimensional, no possumos um estado ou funo objetivo, a
inteno nestes casos apenas minimizar a heurstica, ou minimizar o nmero de
recipientes utilizados. Neste caso no h a certeza de que a soluo tima atingida,
porm, com a utilizao dos algoritmos certos, h uma grande chance de que a soluo
tima seja alcanada.
5. Consideraes Finais
Aps a executar os algoritmos implementados, foi observado que ao utilizar o
algoritmo genticos para resolver o problema proposto, o nmero de indivduos da
populao inicial pode afetar o aproveitamento e a eficincia do algoritmo. Quando
utilizado um nmero pequeno de indivduos na populao inicial, h uma grande chance
da soluo no convergir para a soluo tima. O nmero de geraes tambm
influencia diretamente na melhoria da populao, porem pode ser um alto custo
computacional.
Na execuo do algoritmo de busca em feixe, observou-se que o mesmo
encontrava rapidamente a soluo tima dependendo de como gerava a populao
inicial, porm em alguns casos, dependendo da configurao utilizada e dos estados
iniciais sorteados, a soluo encontrada no era a tima.
Ambos os algoritmos no garantem encontrar uma soluo tima com 100% das
vezes executado os algoritmos. Mas ambos se no obtm a soluo tima, obtm uma
soluo prxima a ela.
Referncias
Lin, F.-T. (2008). Solving the knapsack problem with imprecise weight
coefficients using
genetic algorithms. European Journal of Operational Research, 185:133145.
HOLLAND, J. H: Adaptation in natural and artificial systems, 1975.
MARTELLO, S. & TOTH, P. Knapsack Problems: Algorithms and Computer
Implementations, Wiley, Chinchester, 1990.
SOSIE, R.; GU, J.: Fast Search Algorithms for the N-Queens Problem. IEEE
Transactions on Systems, Man, and Cybernetics, 21:1572-1576, 1991.
Russel, S. e Norvig, P.: Inteligncia Artificial: Um enfoque moderno. Traduo da 2.
ed. So Paulo: Prentice Hall. 1021 p., 2004