tÓpicos especiais em inteligÊncia artificial
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
• Bounded Knapsack Problem – BPK
• (Problema da Mochila Inteira)
TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL
• NP-difícil;
• Técnica utilizada;
• Modelagem;
O PROBLEMA
• Leitura dos dados;• Montagem do modelo de solução;• Submissão da solução a uma heurística
VND ou VNS
MODELAGEM
• Leitura dos Dados;
• Implementação dos movimentos;
• Solução inicial;
• VND ou VNS;
ALGORITMO
• Vetor de tipos de objetos
• Vetor de benefício dos objetos;
• Vetor de quantidade dos tipos de objeto;
LEITURA
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;
MOVIMENTOint 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
• Verifica se o peso dos objetos não ultrapassa a capacidade da mochila (inviabilidade);
• Se ultrapassar é aplicada uma penalidade;
• fo = benefício – inviabilidade * penalidade;
FUNÇÃO OBJETIVO
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 InviabilidadeInicial
Solução
FunçãoObjetivo
Inicial VND
1 22 s = [2, 2, 0, 0, 0, 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, 0, 0, 2, 1, 1, 1] -1358 49
4 33 s = [3, 5, 0, 0, 1, 0, 1, 2, 0, 0] -3044 56
5 25 s = [4, 1, 0, 0, 1, 0, 1, 2, 1, 1] -2292 57
Média: 51,6 Desvio Padrão: 6,188%
RESULTADOS COMPUTACIONAIS PARA VNS
TesteInviabilidade
InicialSolução
FunçãoObjetivo
Inicial VND
1 25 s = [4, 0, 0, 1, 1, 0, 3, 2, 0, 0] -2316 63
2 8 s = [4, 2, 0, 0, 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
Testes executados em 5 segundos de VNS
Média: 63,2 Desvio Padrão: 0,44 %
COMPONENTE
Adriano Pedrosa Maia