O Problema da Mochila, um dos 21 problemas NP-completos de Richard Karp, consiste em uma situação em que é necessário carregar uma mochila - a qual tem um limite em sua capacidade - com vários itens de diferentes pesos e valores. O objetivo é ocupar a mochila com o maior valor possível, sem ultrapassar sua capacidade. O Algoritmo Genético, uma meta-heurística inspirada no processo de evolução genética, tem sido utilizado para resolver problemas complexos pelo fato de ser extremamente simples e adaptativo. Este trabalho tem por objetivo reportar o desenvolvimento de um Algoritmo Genético híbrido para a resolução do Problema da Mochila. Foram estudadas quatro capacidades diferentes para a mochila (50, 100, 200 e 500 itens), sendo geradas 5 instâncias aleatórias para cada capacidade, variando o lucro e o peso de cada item para cada uma das instâncias. O tamanho da população e a probabilidade de mutação foram mantidos constantes em todos os casos (100 e 0,05 respectivamente) e o número de gerações foram variados de acordo com a capacidade da mochila (20n, em que n é o número de itens). Fazendo o uso desses dados, o problema da mochila foi solucionado tanto pelo Algoritmo Genético, implementado em linguagem de programação C, quanto pelo solver LINGO. Com os resultados exatos obtidos pelo LINGO, os resultados obtidos pelo Algoritmo Genético puderam ser comparados, sendo bem competitivos. Em uma média geral, os resultados obtidos pelo Algoritmo Genético estiveram a 2,9% do resultado exato, sendo que para cada capacidade diferente os resultados foram 0,6%, 3,4%, 3,4% e 4,2% (50, 100, 200 e 500 itens, respectivamente). Deste modo conclui-se que o Algoritmo Genético híbrido proposto se apresenta de maneira competitiva, podendo ser usado em outros problemas reais, já que é um algoritmo de fácil uso, baixo custo computacional e de uma grande modularidade.
2. DO QUE SE
TRATA ESSA
APRESENTAÇÃO?
1
O Problema da Mochila, de Richard Karp
2
O Algoritmo Genético, desenvolvido por John Henry Holland
3
O desenvolvimento de um Algoritmo Genético Híbrido para o Problema da Mochila
45. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
46. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
47. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
48. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
4 – REALIZAR O CRUZAMENTO DOS PAIS, DADA UMA PROBABILIDADE
49. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
4 – REALIZAR O CRUZAMENTO DOS PAIS, DADA UMA PROBABILIDADE
5 – REALIZAR A MUTAÇÃO DAS W SOLUÇÕES GERADAS,
COM UMA DADA PROBABILIDADE
50. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
4 – REALIZAR O CRUZAMENTO DOS PAIS, DADA UMA PROBABILIDADE
5 – REALIZAR A MUTAÇÃO DAS W SOLUÇÕES GERADAS,
COM UMA DADA PROBABILIDADE
6 – AVALIAR A APTIDÃO DAS SOLUÇÕES GERADAS
51. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
4 – REALIZAR O CRUZAMENTO DOS PAIS, DADA UMA PROBABILIDADE
5 – REALIZAR A MUTAÇÃO DAS W SOLUÇÕES GERADAS,
COM UMA DADA PROBABILIDADE
6 – AVALIAR A APTIDÃO DAS SOLUÇÕES GERADAS
7 – ATUALIZAR A POPULAÇÃO
52. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
4 – REALIZAR O CRUZAMENTO DOS PAIS, DADA UMA PROBABILIDADE
5 – REALIZAR A MUTAÇÃO DAS W SOLUÇÕES GERADAS,
COM UMA DADA PROBABILIDADE
6 – AVALIAR A APTIDÃO DAS SOLUÇÕES GERADAS
7 – ATUALIZAR A POPULAÇÃO
FIM DO ENQUANTO
53. PSEUDO-CÓDIGO DE UM AG PADRÃO
1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
2 – AVALIAR AS SOLUÇÕES GERADAS.
ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
3 – SELECIONAR UM CONJUNTO K DE PAIS.
4 – REALIZAR O CRUZAMENTO DOS PAIS, DADA UMA PROBABILIDADE
5 – REALIZAR A MUTAÇÃO DAS W SOLUÇÕES GERADAS,
COM UMA DADA PROBABILIDADE
6 – AVALIAR A APTIDÃO DAS SOLUÇÕES GERADAS
7 – ATUALIZAR A POPULAÇÃO
FIM DO ENQUANTO
IMPRIMIR A MELHOR SOLUÇÃO OBTIDA
64. TAMANHO DA POPULAÇÃO:
100
PROBABILIDADE DE MUTAÇÃO:
0,05
NÚMERO DE GERAÇÕES:
20n
INSTÂNCIAS PARA CADA CAPACIDADE:
5, ALEATÓRIAS
ITENS A SEREM AVALIADOS:
50, 100, 200 E 500 ITENS