120 likes | 218 Views
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.
E N D
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;
int troca_quantidade(s, j, q, lim) { if (q > 0) { // if 1 if ((s[j]+q) <= lim[j]) { // if 2 s[j]+=q; return q; } else {// else if 2 s[j]=lim[j]; return 0; } //else if 2 }// if 2 else { // else if 1 if ((s[j]+q) < 0) {// if 3 int result =s[j]; s[j] = 0; return (-1)*(result); } else { // else if 3 s[j]+=q; return q; } //else if 3 } //if 3 } //if1 } // troca_quantidade MOVIMENTO
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 Média: 51,6 Desvio Padrão: 6,188%
RESULTADOS COMPUTACIONAIS PARA VNS Testes executados em 5 segundos de VNS Média: 63,2 Desvio Padrão: 0,44 %
COMPONENTE Adriano Pedrosa Maia