Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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
10
2
1
11
3
2
12
5
6
13
4
3
14
3
2
Populao
Peso Mdio
Peso Mximo
Valor Mdio
Melhor Soluo
Valor/Peso
Encontrada
Soluo Ideal
10
24,2
25
27,9
31/23
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
100.000
25
25
35
35/25
Sim