Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Um Algoritmo Genético Híbrido para o Problema da Mochila

Matheus Correia
November 28, 2013

Um Algoritmo Genético Híbrido para o Problema da Mochila

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.

Matheus Correia

November 28, 2013
Tweet

More Decks by Matheus Correia

Other Decks in Research

Transcript

  1. O COMO UM PROBLEMA RELATIVAMENTE COMPLEXO PODE SER SOLUCIONADO POR

    UM ALGORITMO DE FÁCIL USO E BAIXO CUSTO COMPUTACIONAL DA PROBL MOCHI EMA LA
  2. DO QUE SE TRATA ESSA APRESENTAÇÃO? 1 2 3 O

    Problema da Mochila, de Richard Karp O Algoritmo Genético, desenvolvido por John Henry Holland O desenvolvimento de um Algoritmo Genético Híbrido para o Problema da Mochila
  3. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
  4. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA
  5. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. ENQUANTO UM CRITÉRIO DE PARADA NÃO FOR SATISFEITO, FAÇA 3 – SELECIONAR UM CONJUNTO K DE PAIS.
  6. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 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
  7. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 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
  8. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 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
  9. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 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
  10. PSEUDO-CÓDIGO DE UM AG PADRÃO 2 – AVALIAR AS SOLUÇÕES

    GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 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
  11. PSEUDO-CÓDIGO DE UM AG PADRÃO IMPRIMIR A MELHOR SOLUÇÃO OBTIDA

    2 – AVALIAR AS SOLUÇÕES GERADAS. 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 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
  12. TAMANHO DA POPULAÇÃO: PROBABILIDADE DE MUTAÇÃO: NÚMERO DE GERAÇÕES: ITENS

    A SEREM AVALIADOS: INSTÂNCIAS PARA CADA CAPACIDADE: 100 0,05 20n 5, ALEATÓRIAS
  13. TAMANHO DA POPULAÇÃO: PROBABILIDADE DE MUTAÇÃO: NÚMERO DE GERAÇÕES: ITENS

    A SEREM AVALIADOS: INSTÂNCIAS PARA CADA CAPACIDADE: 100 0,05 20n 5, ALEATÓRIAS 50, 100, 200 E 500 ITENS
  14. 50 ITENS: 100 ITENS: 200 ITENS: 500 ITENS: MÉDIA GERAL:

    GAP MELHOR SOLUÇÃO 0 % 0,8 % 1,2 % 2,8 % 1,2 %