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

756 visualizações

Publicada em

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.

  • Seja o primeiro a comentar

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

  1. 1. O PROBL DA MOCHI EMA COMO UM PROBLEMA RELATIVAMENTE COMPLEXO PODE SER SOLUCIONADO POR UM ALGORITMO DE FÁCIL USO E BAIXO CUSTO COMPUTACIONAL LA
  2. 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
  3. 3. PROBLEMA DA MOCHILA
  4. 4. Ocupar a mochila com o MAIOR não ultrapassando o seu VALOR POSSÍVEL, PESO MÁXIMO.
  5. 5. TEMPO (s) NÚMERO DE ITENS
  6. 6. ENTÃO, QUAL A SOLUÇÃO
  7. 7. ALGORITMO GENÉTICO
  8. 8. EVOLUÇ
  9. 9. EVOLUÇ
  10. 10. EVOLUÇ
  11. 11. EVOLUÇ
  12. 12. EVOLUÇ
  13. 13. EVOLUÇ
  14. 14. EVOLUÇ
  15. 15. EVOLUÇ
  16. 16. APTIDÃO
  17. 17. APTIDÃO Indivíduos MAIS FORTES têm mais chances de sobreviver e de GERAR DESCENDENTES
  18. 18. SELEÇÃO
  19. 19. SELEÇÃO
  20. 20. SELEÇÃO
  21. 21. SELEÇÃO
  22. 22. SELEÇÃO
  23. 23. SELEÇÃO
  24. 24. CRUZAMENTO
  25. 25. CRUZAMENTO
  26. 26. CRUZAMENTO +
  27. 27. CRUZAMENTO +
  28. 28. CRUZAMENTO + =
  29. 29. CRUZAMENTO + =
  30. 30. MUTAÇÃO
  31. 31. MUTAÇÃO
  32. 32. MUTAÇÃO
  33. 33. MUTAÇÃO
  34. 34. REPOSIÇÃO
  35. 35. REPOSIÇÃO
  36. 36. REPOSIÇÃO
  37. 37. REPOSIÇÃO
  38. 38. PSEUDO-CÓDIGO DE UM AG PADRÃO
  39. 39. PSEUDO-CÓDIGO DE UM AG PADRÃO 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES.
  40. 40. PSEUDO-CÓDIGO DE UM AG PADRÃO 1 – GERAR UMA POPULAÇÃO DE SOLUÇÕES. 2 – AVALIAR AS SOLUÇÕES GERADAS.
  41. 41. 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
  42. 42. 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.
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 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 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
  47. 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. 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
  48. 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 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
  49. 49. DADOS
  50. 50. TAMANHO DA POPULAÇÃO:
  51. 51. TAMANHO DA POPULAÇÃO: 100
  52. 52. TAMANHO DA POPULAÇÃO: 100 PROBABILIDADE DE MUTAÇÃO:
  53. 53. TAMANHO DA POPULAÇÃO: 100 PROBABILIDADE DE MUTAÇÃO: 0,05
  54. 54. TAMANHO DA POPULAÇÃO: 100 PROBABILIDADE DE MUTAÇÃO: 0,05 NÚMERO DE GERAÇÕES:
  55. 55. TAMANHO DA POPULAÇÃO: 100 PROBABILIDADE DE MUTAÇÃO: 0,05 NÚMERO DE GERAÇÕES: 20n
  56. 56. TAMANHO DA POPULAÇÃO: 100 PROBABILIDADE DE MUTAÇÃO: 0,05 NÚMERO DE GERAÇÕES: 20n INSTÂNCIAS PARA CADA CAPACIDADE:
  57. 57. 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
  58. 58. 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:
  59. 59. 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
  60. 60. RESULTADOS
  61. 61. GAP MELHOR SOLUÇÃO
  62. 62. GAP MELHOR SOLUÇÃO 50 ITENS: 0%
  63. 63. GAP MELHOR SOLUÇÃO 50 ITENS: 100 ITENS: 0% 0,8 %
  64. 64. GAP MELHOR SOLUÇÃO 50 ITENS: 0% 100 ITENS: 0,8 % 200 ITENS: 1,2 %
  65. 65. GAP MELHOR SOLUÇÃO 50 ITENS: 0% 100 ITENS: 0,8 % 200 ITENS: 1,2 % 500 ITENS: 2,8 %
  66. 66. GAP MELHOR SOLUÇÃO 50 ITENS: 0% 100 ITENS: 0,8 % 200 ITENS: 1,2 % 500 ITENS: 2,8 % MÉDIA GERAL: 1,2 %
  67. 67. CONCLUSÕES
  68. 68. COMPETITIVO
  69. 69. COMPETITIVO DIVERSAS APLICAÇÕES
  70. 70. COMPETITIVO DIVERSAS APLICAÇÕES FÁCIL USO
  71. 71. COMPETITIVO DIVERSAS APLICAÇÕES FÁCIL USO BAIXO CUSTO COMPUTACIONAL
  72. 72. COMPETITIVO DIVERSAS APLICAÇÕES FÁCIL USO BAIXO CUSTO COMPUTACIONAL GRANDE ADAPTABILIDADE
  73. 73. MATHEUS GOMES CORREIA RAFAEL WENDELL BARROS FORTE DA SILVA BRUNO DE ATHAYDE PRATA WWW.LRI.UFC.BR

×