tÓpicos especiais em inteligÊncia artificial

12
Bounded Knapsack Problem – BPK (Problema da Mochila Inteira) TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

Upload: ryu

Post on 21-Mar-2016

23 views

Category:

Documents


3 download

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 Presentation

TRANSCRIPT

Page 1: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

• Bounded Knapsack Problem – BPK

• (Problema da Mochila Inteira)

TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

Page 2: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

• NP-difícil;

• Técnica utilizada;

• Modelagem;

O PROBLEMA

Page 3: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

• Leitura dos dados;• Montagem do modelo de solução;• Submissão da solução a uma heurística

VND ou VNS

MODELAGEM

Page 4: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

• Leitura dos Dados;

• Implementação dos movimentos;

• Solução inicial;

• VND ou VNS;

ALGORITMO

Page 5: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

• Vetor de tipos de objetos

• Vetor de benefício dos objetos;

• Vetor de quantidade dos tipos de objeto;

LEITURA

Page 6: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

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;

Page 7: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

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

Page 8: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

• 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

Page 9: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

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

Page 10: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

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%

Page 11: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

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 %

Page 12: TÓPICOS ESPECIAIS EM INTELIGÊNCIA ARTIFICIAL

COMPONENTE

Adriano Pedrosa Maia