TPICOS ESPECIAIS EM INTELIGNCIA ARTIFICIAL Bounded Knapsack Problem
TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL • Bounded Knapsack Problem – BPK • (Problema da Mochila Inteira)
O PROBLEMA • NP-difícil; • Técnica utilizada; • Modelagem;
MODELAGEM • Leitura dos dados; • Montagem do modelo de solução; • Submissão da solução a uma heurística VND ou VNS
ALGORITMO • Leitura dos Dados; • Implementação dos movimentos; • Solução inicial; • VND ou VNS;
LEITURA • Vetor de tipos de objetos • Vetor de benefício dos objetos; • Vetor de quantidade dos tipos de objeto;
IMPLEMENTAÇÃO DOS MOVIMENTOS Os movimentos consistem em tirar ou acrescentar um objeto em uma dada posição, ou tirar um objeto de uma posição e acrescentar um outro objeto em uma outra posição. O movimento básico foi implementado da seguinte maneira: Onde: s = vetor solução; j = posição do vetor solução; q = quantidade a ser adicionada (1 ou – 1); lim = limite da quantidade existente do objeto;
MOVIMENTO int troca_quantidade(s, j, q, lim) { if (q > 0) { // if 1 if ((s[j]+q) <= lim[j]) { // if 2 else { // else if 1 if ((s[j]+q) < 0) {// if 3 int result =s[j]; s[j]+=q; s[j] = 0; return q; } return (-1)*(result); } else {// else if 2 s[j]=lim[j]; return 0; } //else if 2 }// if 2 else { // else if 3 s[j]+=q; return q; } //else if 3 } //if 1 } // troca_quantidade
FUNÇÃO OBJETIVO • Verifica se o peso dos objetos não ultrapassa a capacidade da mochila (inviabilidade); • Se ultrapassar é aplicada uma penalidade; • fo = benefício – inviabilidade * penalidade;
RESULTADOS COMPUTACIONAIS Testes realizados com: n = 50 (número de tipos de objetos) c= 100 (capacidade da mochila) srand = relógio do computador 5 testes para VND 5 testes para VNS
RESULTADOS COMPUTACIONAIS PARA VND Teste Inviabilidade Inicial Função Objetivo Solução Inicial VND 1 22 s = [2, 2, 0, 0, 0, 2, 2] -2018 42 2 6 s = [3, 1, 0, 0, 1, 0, 2, 1, 1, 1] -513 54 4 15 s = [2, 2, 0, 0, 2, 1, 1, 1] -1358 49 4 33 s = [3, 5, 0, 0, 1, 2, 0, 0] -3044 56 5 25 s = [4, 1, 0, 0, 1, 2, 1, 1] -2292 57 Média: 51, 6 Desvio Padrão: 6, 188%
RESULTADOS COMPUTACIONAIS PARA VNS Testes executados em 5 segundos de VNS Inviabilidade Teste Inicial Função Objetivo Solução Inicial VND 1 25 s = [4, 0, 0, 1, 1, 0, 3, 2, 0, 0] -2316 63 2 8 s = [4, 2, 0, 0, 3, 2, 0, 0] -696 63 4 19 s = [4, 1, 0, 0, 1, 0, 3, 3, 0, 0] -1737 64 4 24 s = [4, 3, 0, 0, 1, 0, 3, 0, 0, 0] -2202 63 5 19 s = [4, 0, 0, 1, 1, 0, 3, 2, 0, 0] -1729 63 Média: 63, 2 Desvio Padrão: 0, 44 %
COMPONENTE Adriano Pedrosa Maia
- Slides: 12