You are on page 1of 4

Anlise Comparativa dos Algoritmos Gentico e Busca em Feixe Local

Aplicado ao Problema da Mochila 0/1


Anderson Andrei De Bona, Alfredo Conceio Erdmann
1

Unio Dinmica de Faculdades Cataratas (UDC)-Foz do Iguau


Universidade Tecnolgica Federal do Paran (UTFPR)-Medianeira
{debona}@inf.ufsc.br, {alfredo.erdmann}@gmail.com

Resumo Este artigo descreve duas solues para o problema de encontrar um conjunto de itens nos quais a
soma de seus pesos no exceda um valor dado e que a soma de seus valores seja a maior possvel, utilizando
o famoso problema da mochila 0/1. So aplicados dois mecanismos de busca evolutiva, sendo que a primeira
tcnica utilizada o algoritmo Gentico, e a segunda busca em feixe local. No decorrer do artigo
discutiremos cada um destes.
Palavras-chave: Algoritmo gentico; Problema da mochila; Busca evolutiva.
Abstract This paper describes two solutions to the problem of finding a set of items for which the sum of
their weights not exceeding a given value and the sum of their values is the highest possible, using the
famous knapsack problem 0/1. Are applied two evolutionary search engines, and the first technique is a
genetic algorithm, the second local beam search. Throughout the article will discuss each of these.
Keywords: Genetic algorithm; Knapsack problem; Evolutionary searchs.

INTRODUO
Atualmente so inmeros os problemas que podem ser considerados como
computacionalmente intratveis, como por exemplo, problemas de roteamento, de
empacotamento, de alocao, entre outros Goldbarg (2000).
De acordo com Toscani (2002) problemas intratveis no podem ser
resolvidos com algoritmos determinsticos em tempo polinomial. Isso significa que
resolver um problema intratvel pelo tradicional mtodo de busca exaustiva, onde todas as
solues possveis so analisadas, acarreta em um tempo de computao que, para entradas
suficientemente grandes, levaria sculos para gerar o resultado, como pode ser visto em
Garey (1979). Existem formas alternativas para se buscar uma soluo vivel a estes
problemas em tempo polinomial. Uma possvel soluo o uso de algoritmos aproximativos
Cormen (2002), que se constituem em algoritmos que encontram solues prximas da
soluo tima, j que muitas aplicaes no requerem uma soluo exata Toscani (2002).
Outra alternativa para buscar solues a problemas intratveis o uso de
mtodos heursticos. De acordo com Toscani (2002) existem vrios exemplos de
mtodos heursticos, porm neste artigo foi explorado os algoritmos Genticos e a Busca
em Feixe Local, onde sero aplicados para fins de estudos o famoso problema da mochila,
tambm conhecido (em ingls, Knapsack problem) que um problema de optimizao
combinatria, classificado como NP-Completo, segundo Garey (1979).
PROBLEMA DA MOCHILA 0/1
O problema caracterizado por este nome, devido ao modelo de uma situao em
que necessrio carregar uma mochila com capacidade limitada (objetos de diferentes
pesos e valores). O objetivo que se carregue a mochila com o maior valor possvel,
respeitando o limite de peso, Goldberg (2000).

No problema da Mochila 0/1 (0/ 1 knapsack Problem), cada item pode ser escolhido
no mximo uma vez, a forma mais geral o problema da Mochila com multi-restries
(Multi-constrained Knapsack Problem) o qual basicamente um problema de
Programao Inteira Geral com Coeficientes Positivos, Caldas (2002).
Todos os problemas da Mochila pertencem famlia NP-Completo, significando que
muito improvvel que possamos desenvolver algoritmos polinomiais para este problema.
Porm, a despeito do tempo para o pior caso de todos os algoritmos terem tempo
exponencial, diversos exemplos de grandes instncias podem ser resolvidos de maneira
tima em frao de segundos. Estes resultados surpreendentes vm de vrias dcadas de
pesquisa que tem exposto as propriedades estruturais especiais do Problema da Mochila,
que tornam o problema to relativamente fcil de resolver, Caldas (2002).
Neste trabalho os dois algoritmos apresentados resolvem o Problema da Mochila 0/1
proposto, o qual solicitado uma mochila com capacidade mxima de 25 kg, com 14
objetos de diferentes pesos e valores, que consiste em escolher itens, tais que o somatrio
do valor maximizado sem que o somatrio dos pesos extrapole a capacidade da Mochila.
ALGORITMOS GENTICOS
Algoritmos Genticos (GA) uma variao da busca de feixe estocstica,
especificados primeiramente por Holland (1975), em que os estados sucessores so gerados
pela combinao de dois outros. A ideia do processo envolvido em GA inspirada na
teoria de seleo natural proposta por Darwin no livro A Origem das Espcies, que
descreve uma dinmica na natureza em que somente os mais aptos sobrevivem. Desta
forma, a nomenclatura usada vem da biologia, como o caso de cromossomos, genes,
crossover e mutao Russell e Norvig (2004).
Os elementos de busca so chamados de indivduos e so representados por uma
estrutura que chamada de cromossomo. Embora na natureza um indivduo possa ter
vrios cromossomos, na representao desta estratgia de busca apenas um cromossomo
identifica um indivduo. Mantendo a analogia, pode-se pensar em indivduos unicromossmicos. Esses cromossomos so estruturas de dados codificadas com informaes
do problema e representam uma cadeia de elementos, os genes. Os estados do gene so
chamados de alelos, Linden (2008).
Inicia-se o processo pela gerao aleatria de k indivduos, chamado esse conjunto de
populao. Uma relao avalia o grau de adequao de um indivduo s necessidades do
problema, e denominada funo de fitness. Uma nova gerao de indivduos obtida por
operaes genticas. O crossover o processo, em que h o cruzamento entre
indivduos, selecionando os pares de acordo com seu valor de fitness, sendo um indivduo
criado por troca de material gentico da estrutura dos cromossomos pais. Os k elementos
de maior fitness so preservados e o processo se repete at estes comearem convergir, ou
seja, os indivduos comearem a se repetir ou a variao de fitness comear a no ser
significativa. Outras condies de parada podem ser tambm estipuladas, como um nmero
mximo de geraes, Linden (2008).
As sucessivas geraes podem convergir para um mximo local no espectro de
optimalidade. Isso pode ser evitado com o uso de uma operao gentica chamada
mutao, processo no qual se pode introduzir, a cada nova gerao, mudanas aleatrias
em genes de uma pequena porcentagem dos indivduos, permitindo a possibilidade de
novos pontos de convergncia, Linden (2008).
BUSCA EM FEIXE LOCAL
O algoritmo de busca em feixe caracterizado por ser um algoritmo heurstico de

busca que tem como caracterstica expandir os ns mais promissores em um nmero


limitado de expanso, para ento se gerar sucessores a fim de encontrar o resultado
desejado
O algoritmo de busca em feixe (beam search), pode ser considerado uma variante do
algoritmo de subida de encosta, onde se mantm o controle de k estados, em vez de apenas
um. Tem que iniciar com k estados gerados aleatoriamente, onde em cada passo so
gerados todos os sucessores de todos os k estados, sendo que qualquer um deles for um
objetivo, o algoritmo tem que parar, caso contrrio, o mesmo selecionar os k melhores
sucessores a partir da lista completa e repetir a ao novamente Russell e Norvig (2004).
METODOLOGIA
O problema ser tratado da seguinte maneira: os pesos e os valores que sero utilizados so
os que esto apresentados na Tabela 1 e a Capacidade da mochila C=25 kg .
Tabela 1. Parmetros para realizao dos testes da Mochila 0/1
Obj(i=1,...n)
1
2
3
4
5
6
7
8
9
Peso (kg)
3
5
7
2
8
4
4
3
7
Valor
5
2
3
8
9
3
2
4
5

10
2
1

11
3
2

12
5
6

13
4
3

14
3
2

Para o algoritmo gentico, utilizamos a quantidade de cromossomos da populao,


ou seja, a quantidade das possveis solues para o problema. Conforme Linden (2008),
para cada gene ser gerado 30 e 60 cromossomos. Em cada cromossomo feito de forma
aleatria a escolha dos itens que iro participar da possvel soluo. Em seguida ser
inserido os valores dos itens e os pesos dos itens da mochila, e uma possvel quantia de
geraes. Em cada gerao feito os operadores de crossover com uma porcentagem de
0.04%, O operador de mutao com uma taxa de 0.002%, onde determina as melhores
solues da populao gerada. A quantidade de populao a ser utilizada ser de 10, 100,
1.000, 10.000 e 100.000 os quais sero executados 10 vezes.
Para o algoritmo de busca em feixe local, ser informada a quantidade de ns e a
profundidade a ser expandido utilizando a mesma quantidade de populao utilizada no
algoritmo gentico. Os algoritmos foram implementados em linguagem C# e Java.
RESULTADOS

Populao
Peso Mdio
Peso Mximo
Valor Mdio
Melhor Soluo
Valor/Peso
Encontrada
Soluo Ideal

10
24,2
25
27,9
31/23
No

Tabela 2. Anlise dos resultados Algoritmos Genticos


30 Cromossomos
60 Cromossomos
100
1.000 10.000 100.000
10
100
1.000 10.000
24,2
24,9
24,7
25
24,7
24,6
24,7
25
25
25
25
25
25
25
25
25
30,7
31,5
33,5
35
30,9
32,9
33,5
35
33/25 35/25 35/25
35/25
35/25 35/25 35/25 35/25
No

Sim

Sim

Sim

Sim

Sim

Sim

Sim

100.000
25
25
35
35/25
Sim

Aps anlise dos testes realizados, (veja Tabela 1), fica evidente que a quantidade da
populao e a quantidade de cromossomos influncia diretamente no resultado da soluo.
O objetivo atingido pelo algoritmo gentico foi satisfatrio, obtendo o maior valor do
problema proposto, com valor de 35 e peso 25 (limite da mochila), encontrando a melhor
soluo somente quando a populao com nmero de 1.000 quando utilizando 30
cromossomos, e com populao 10 quando utilizando 60 cromossomos, demonstrando que
quanto maior a quantidade de cromossomos menor ser a necessidade de utilizar

populaes maiores, e a probabilidade de encontrar a soluo ser maior, ou seja, quanto


menor a populao mais rpida a execuo do algoritmo.
Tabela 3. Anlise dos resultados Busca em Feixe Local
Profundidade
10
100
1.000
10.000
Peso Mdio
21,3
23,3
24,5
25
Peso Mximo
25
25
25
25
Valor Mdio
26,8
30,6
32/8
35
Melhor Soluo Valor/Peso
31/22
34/24
34/24
35/25
Encontrou a Soluo Ideal
No
No
No
Sim

100.000
25
25
35
35/25
Sim

A busca em feixe local obteve resultado satisfatrio somente quando a profundidade


foi superior a 10.000, sendo que a partir desta quantidade os resultados sempre so
satisfatrios em todas as suas execues, obtendo o melhor valor 35 e peso 25 .
CONCLUSO
Aps implementao dos algoritmos e realizao dos testes com a quantidade de
populao para o algoritmo gentico e a quantidade de ns expandidos para a busca em
feixe local com nmeros iguais, podemos observar que os dois algoritmos apresentaram
resultados que demonstram a diferena entre os dois mtodos heursticos. Nos testes ambos
os algoritmos encontraram soluo ideal, atingindo o objetivo, porm o algoritmo de busca
em feixe local precisou de maior quantidade de ns (populao gentica) para encontrar a
soluo, e na mdia encontrou solues piores do que quando comparada ao algoritmo
gentico tanto quando comparada o algoritmo gentico com 30 ou 60 cromossomos.
Destacamos que os melhores resultados na mdia para o algoritmo gentico
demonstram superioridade com os parmetros testados para este problema da Mochila 0/1
e que sua capacidade superior ao do mtodo de busca em feixe local, porm
interessante realizar testes com parmetros diferentes para o mesmo problema ou em
outros problemas de natureza NP-completo, para se concluir realmente que o algoritmo
gentico superior na execuo de problemas pertencente a esta classe.
REFERNCIAS
Caldas, B.R. (2004) Projeto e Anlise de Algoritmos, UFMG - Instituto de Cincia Exatas
- Departamento de Cincia da Computao, Belo Horizonte-MG, 2004 disponvel em
(http://homepages.dcc.ufmg.br/~nivio/cursos/pa04/tp2/tp22/tp22.pdf).
Cormen, Thomas H. (2004) et al. Algoritmos: teoria e prtica: Traduo da 2 edio
Souza, V.D. Rio de Janeiro Ed. Campus.
Garey, M. R.; Johnson, D.S. (1979) Computers and Intractability: A Guide to the Theory
of Np-Completeness. W.H Freeman & Co.
Goldberg, M.C.; Luna, H.P.L. (2000) Otimizao Combinatria e Programao Linear:
Modelos e Algoritmos, Editora Campos, Rio de Janeiro.
Holland, J. H. (1975) Adaptation in Natural and Artificial Systems: An Introductory
Analysis with Applications to Biology, Control and Artificial Intelligence (Complex
Adaptive Systems S.). Cambridge, MA, USA: MIT Press.
Linden, R., (2008) Algoritmos Genticos Uma importante ferramenta de Inteligncia
Computacional 2 Edio Rio de Janeiro Editora Brasport.
Russel, S. e Norvig, P.(2004) Inteligncia Artificial: Um enfoque moderno. Traduo da
2. ed. So Paulo: Prentice Hall. 1021 p.
Toscani, L; Veloso P. (2002) Complexidade de Algoritmo. Editora Sagra Luzzato. Porto
Alegre - Rio Grande do Sul.

You might also like