• Nenhum resultado encontrado

Trabalho Final Empacotamento (Bin Packing) Busca Tabu (BT)

N/A
N/A
Protected

Academic year: 2022

Share "Trabalho Final Empacotamento (Bin Packing) Busca Tabu (BT)"

Copied!
25
0
0

Texto

(1)

Trabalho Final

Empacotamento (Bin Packing) Busca Tabu (BT)

Eduardo Simões Lopes Gastal - 141921 Rafael Henkin - 141920

Thiago Winkler Alves - 141946

(2)

Problema

Instância: n elementos com tamanhos wi, 1 < i < n, o tamanho de uma caixa W.

Solução: Uma alocação dos elementos para caixas, tal que a soma dos tamanhos dos elementos em cada caixa não ultrapasse W.

Objetivo: Minimizar o número de caixas.

(3)

Busca Tabu

Baseada em busca local;

Mantém uma lista de soluções tabu;

Solução tabu depende da regra de ativação tabu;

Permite soluções piores:

Desde que não estejam na lista tabu;

Parâmetros:

Tamanho da lista tabu;

Número máximo de iterações.

(4)

Busca Tabu

Geração de nova solução:

Busca local na vizinhança;

Escolhe o melhor vizinho que não está na lista tabu;

Randomização somente em caso extremo:

Todas as soluções possíveis num dado momento estão na lista tabu.

(5)

Algoritmo utilizado

Solução Básica Inicial: n caixas, cada uma com um elemento alocado.

Representação da Solução: Lista de caixas, cada uma contendo uma lista de elementos alocados,

ordenados em ordem decrescente de tamanho (i.e.

sempre deixamos os itens mais ”pesados” no ”fundo”

das caixas).

(6)

Algoritmo utilizado

Passo Inicial Opcional: Ordena-se a lista de caixas em relação ao espaço alocado de cada caixa.

Constatação: Para a maioria das instâncias, não ordenar a lista no início do processo levou a

resultados melhores.

Entretanto, algumas instâncias chegaram a soluções melhores (algumas ótimas) quando a lista inicial era ordenada.

(7)

Busca Local

Lista de m caixas;

Retirar elementos da primeira caixa;

Se há espaço na última caixa, coloca-se nela;

Caso contrário, tenta-se a penúltima e assim por diante;

Repete-se os passos para a segunda caixa, terceira caixa...

Ao final, há uma nova lista de caixas, a Solução Ótima Local, e esta é adicionada à Lista Tabu.

(8)

Vizinhança

Primeiro vizinho:

m+1 caixas

nova caixa:

ex:

solução ótima: 3 caixas >> 4 itens, 3 itens, 6 itens.

vizinho: 4 caixas >> 1 item, 4 itens, 3 itens, 5 itens.

(9)

Vizinhança

Logo:

Vizinho 1: m+1

Vizinho 2: m+2

Vizinho 3: m+3

...

Vizinho Y: m+Y

Limitado por uma constante y

(10)

Vizinhança

(Opcional) Ordenação das caixas contidas em cada vizinho (ordem crescente de espaço ocupado);

Busca local nos vizinhos;

Ordenação dos vizinhos por quantidade de caixas.

(11)

Vizinhança

Passos:

Seleciona primeiro vizinho da lista de vizinhos (que está ordenada por quantidade de caixas);

Verifica Lista Tabu;

Se está na Lista Tabu, descartar e testar próximo vizinho;

Caso contrário, esta é a nova solução atual;

Os outros vizinhos são descartados;

Se a nova solução for a melhor até o momento, está é a nova Solução Ótima Global.

(12)

Vizinhança

Na Lista Tabu,

Solução [ 1 2 ] [ 3 ]

Solução [ 3 ] [ 1 2 ]

São diferentes!

Duas soluções são iguais se suas listas de caixas são iguais (mesmo tamanho e mesmas caixas na mesma ordem);

Duas caixas são consideradas iguais se possuem o mesmo número de elementos ([ 1 2 ] != [ 3 ]) e o

(13)

Vizinhança

Se todas as soluções testadas estão na Lista Tabu,

Retornar à solução básica inicial...

Shuffle nesta solução;

Ex: Shuffle([1] [2] [3]) = [2] [1] [3]

Iniciar novamente com esta nova solução básica.

(14)

Extras

Se passarmos z iterações sem obter uma nova Solução Ótima Global,

Gerar uma nova solução através de um Shuffle sobre a Solução Básica Inicial;

Iniciar novamente utilizando a nova solução.

(15)

Exemplo

n = 7; W = 6; w1 = 1; w2 = 2; w3 = 2; w4 = 2; w5 = 3; w6 = 3; w7 = 4.

Solução Básica Inicial [1][2][2][2][3][3][4]

Solução Ótima Local [2][3 2][3 2][4 1]

Solução Ótima Global [2][3 2][3 2][4 1]

Lista Tabu [2][3 2][3 2][4 1]

(16)

Exemplo

n = 7; W = 6; w1 = 1; w2 = 2; w3 = 2; w4 = 2; w5 = 3; w6 = 3; w7 = 4.

Solução Básica Inicial [1][2][2][2][3][3][4]

Solução Ótima Local [2][3 2][3 2][4 1]

Solução Ótima Global [2][3 2][3 2][4 1]

Lista Tabu [2][3 2][3 2][4 1]

Vizinhança

[1][2][3 2][3 2][4]

(17)

Exemplo

n = 7; W = 6; w1 = 1; w2 = 2; w3 = 2; w4 = 2; w5 = 3; w6 = 3; w7 = 4.

Solução Básica Inicial [1][2][2][2][3][3][4]

Solução Ótima Local [2][3 2][3 2][4 1]

Solução Ótima Global [2][3 2][3 2][4 1]

Lista Tabu [2][3 2][3 2][4 1]

Vizinhança

[1][2][3 2][3 2][4]

[2][1][2][3 2][3][4]

(18)

Exemplo

n = 7; W = 6; w1 = 1; w2 = 2; w3 = 2; w4 = 2; w5 = 3; w6 = 3; w7 = 4.

Solução Básica Inicial [1][2][2][2][3][3][4]

Solução Ótima Local [2][3 2][3 2][4 1]

Solução Ótima Global [2][3 2][3 2][4 1]

Lista Tabu [2][3 2][3 2][4 1]

Vizinhança

[1][2][3 2][3 2][4]

[2][1][2][3 2][3][4]

[2][2][1][2][3][3][4]

(19)

Exemplo

n = 7; W = 6; w1 = 1; w2 = 2; w3 = 2; w4 = 2; w5 = 3; w6 = 3; w7 = 4.

Solução Básica Inicial [1][2][2][2][3][3][4]

Solução Ótima Local [2][3 2][3 2][4 1]

Solução Ótima Global [2][3 2][3 2][4 1]

Lista Tabu [2][3 2][3 2][4 1]

Vizinhança

[1][2][3 2][3 2][4] -> Busca Local -> [2][3 2][3 2][4 1]

[2][1][2][3 2][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[2][2][1][2][3][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

(20)

Exemplo

Ordena-se a lista de vizinhos

Ordem crescente de número de caixas

[2][2][1][2][3][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[2][1][2][3 2][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[1][2][3 2][3 2][4] -> Busca Local -> [2][3 2][3 2][4 1]

(21)

Exemplo

Ordena-se a lista de vizinhos

Ordem crescente de número de caixas

[2][2][1][2][3][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[2][1][2][3 2][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[1][2][3 2][3 2][4] -> Busca Local -> [2][3 2][3 2][4 1]

Testa-se a primeira solução contra a Lista Tabu:

Lista Tabu [2][3 2][3 2][4 1]

(22)

Exemplo

Ordena-se a lista de vizinhos

Ordem crescente de número de caixas

[2][2][1][2][3][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[2][1][2][3 2][3][4] -> Busca Local -> [3 2][3 2 1][4 2]

[1][2][3 2][3 2][4] -> Busca Local -> [2][3 2][3 2][4 1]

Testa-se a primeira solução contra a Lista Tabu:

Lista Tabu [2][3 2][3 2][4 1]

Como não está na lista, é a nova solução ótima local

(23)

Exemplo

Solução Ótima Local [3 2][3 2 1][4 2]

Solução Ótima Global [3 2][3 2 1][4 2]

Lista Tabu: [2][3 2 ][3 2][4 1], [3 2][3 2 1][4 2]

Resultado final:

3 caixas

[3 2] [3 2 1] [4 2]

(24)

Avaliação Experimental

Instância N1C1W1_A N1W1B1R0 N2C2W1_A N2C2W2_F N2W2B2R2 N2W3B2R6 1196018415 1196016646 1196013689 1196014633 1196015535 1196015536

N N Y Y N N

MAX_STEPS 2000 400 400 400 400 400

RAND_STEPS 250 100 100 100 100 100

TABU_SIZE 1000 150 150 150 150 150

Duração 1.184s 0.224s 1.368s 1.564s 0.900s 0.860s

Resultado 25 18 42 21 14

Seed

Initial Array Shuffled Shuffled Sorted Sorted Sorted Sorted LS Sort?

48 (42)

Onde:

Seed é a semente do gerador randômico;

Initial Array corresponde a solução básica inicial;

LS Sort? indica se o o conjunto de caixas de cada vizinho sofre ou não uma ordenação antes de ser feita a sua busca local;

MAX_STEPS representa o número máximo de iterações que serão realizadas;

RAND_STEPS representa o número de passos que serão realizados até que uma nova solução básica randômica seja gerada (caso não apareça nenhuma nova Solução Ótima Global nesse período de tempo);

(25)

Avaliação Experimental

Instância N3C2W4_O N3W3B3R4 N4C3W4_R N4W4B1R6 HARD2 HARD7 1196017511 1196015549 1196028096 1196016090 1196022566 1196020529

Y N Y N Y Y

MAX_STEPS 1000 400 400 400 2000 400

RAND_STEPS 250 100 100 100 250 100

TABU_SIZE 150 150 150 150 500 150

Duração 8.121s 1.244s 4.052s 2.120s 9.273s 1.744s

Resultado 113 29 56 57 (55)

Seed

Initial Array Shuffled Shuffled Shuffled Shuffled Shuffled Shuffled LS Sort?

220 (214) 60 (56)

Onde:

Seed é a semente do gerador randômico;

Initial Array corresponde a solução básica inicial;

LS Sort? indica se o o conjunto de caixas de cada vizinho sofre ou não uma ordenação antes de ser feita a sua busca local;

MAX_STEPS representa o número máximo de iterações que serão realizadas;

RAND_STEPS representa o número de passos que serão realizados até que uma nova solução básica randômica seja gerada (caso não apareça nenhuma nova Solução Ótima Global nesse período de tempo);

TABU_SIZE determina o tamanho da Lista Tabu;

Duração mostra o tempo de duração da execução de cada instância;

Resultado mostra o resultado da aplicação do algoritmo na instância em questão (caso não seja a solução ótima, a

Referências

Documentos relacionados

Dessa forma, a partir da perspectiva teórica do sociólogo francês Pierre Bourdieu, o presente trabalho busca compreender como a lógica produtivista introduzida no campo

(...) o controle da convencionalidade em sede internacional seria um mecanismo processual que a Corte Interamericana de Direitos Humanos teria para averiguar se o direito

The present study evaluated the potential effects on nutrient intake, when non- complying food products were replaced by Choices-compliant ones, in typical Daily Menus, based on

Este estudo tem como objetivos identificar os níveis de trauma manifestados e de estratégias de coping utilizadas pelos TEPH; caracterizar os incidentes mais

publicação em que Machado de Assis estava inserido, as formulações originais de suas obras e as condições e disposições do regime de produção oferecido pela interação entre

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

Foi membro da Comissão Instaladora do Instituto Universitário de Évora e viria a exercer muitos outros cargos de relevo na Universidade de Évora, nomeadamente, o de Pró-reitor (1976-