• Nenhum resultado encontrado

4 IMPLEMENTAÇÃO E RESULTADOS PARA O BRKGA 75

4.3 IMPLEMENTAÇÃO COMPUTACIONAL DO BRKGA PARA O CASO

4.3.7 Resultados computacionais parciais

Primeiramente, como teste inicial, o algoritmo BRKGA implementado foi verificado para o Exemplo-Teste bidimensional, pois, além da solução ótima ser conhecida, objetivou-se validar os resultados através de valores simples e, no qual, a solução ótima poderia ser facilmente determinada. Esperava-se que o fato de ter-se mantido a mesma estrutura base do algoritmo para ambos os casos, bi e tridimensional, pudesse tornar mais fácil a implementação computacional do caso tridimensional.

Além da validação da implementação do BRKGA para o caso bidimensional piloto, os testes tiveram como objetivo adjacente a verificação do impacto das reinicializações externas (CPE) no desempenho do algoritmo. Para isso, foram realizados um total de 60 testes computacionais introdutórios, divididos em 4 grupos de 15 conjuntos de dados, e que investigaram estas questões acerca do CPE e da qualidade das soluções obtidas considerando também o CPI. Os resultados estão apresentados na Tabela 4.2.

94 inicializações igual a três, gerando-se uma nova população inicial de forma aleatória a cada reinicialização externa. O CPI estabelecido para o Grupo 1A foi considerado como a interrupção da execução após 3 repetições da melhor solução encontrada, e, para o Grupo 1B, um CPI sendo igual à repetição de 20 melhores soluções iguais. Para o Grupo 2A e 2B, estratégia análoga foi adotada, mantendo-se o CPE igual a 75 reinicializações, e variando-se o número de repetições internas, CPI, de 8 no Grupo 2A, para 20, no Grupo 2B.

Tabela 4.2 - Resultados Computacionais do Exemplo-Teste.

Código do Grupo

Número de execuções - Reinicializações

Número de repetições da melhor solução encontrada

Melhores soluções encontradas

Tempo total de execução

do Problema (CPE) (CPI

) (média) 3,40; 3,40; 3,40 0h24 3,40; 3,40; 3,35 0h33 Grupo 1A 3 8 3,35; 3,40; 3,35 0h32 3,40; 3,40; 3,40 0h18 3,40; 3,40; 3,40 0h33 Média 3,39 0h28 3,35; 3,40; 3,40 1h51 3,40; 3,35; 3,40 1h46 Grupo 1B 3 20 3,35; 3,40; 3,35 1h59 3,35; 3,40; 3,40 1h55 3,40; 3,40; 3,35 1h51 Média 3,38 1h52 3,35; 3,35; 3,40 28h39 2,01; 2,01; 3,35 25h41 Grupo 2A 75 8 2,01; 3,35; 3,35 19h17 3,35; 2,01; 3,35 24h35 2,01; 2,01; 3,35 25h39 Média 2,82 24h46 2,01; 2,01; 3,40 57h50 2,01; 2,01; 2,01 45h59 Grupo 2B 75 20 3,35; 2,01; 3,35 55h12 2,01; 2,01; 3,35 56h17 3,35; 2,01; 2,01 57h45 Média 2,46 54h37

Fonte: Elaboração do próprio autor.

A opção por tomar-se valores extremos, principalmente no que concerne ao CPE, teve como objetivo potencializar a percepção proveniente dos resultados obtidos que possui natureza empírica. Valores maiores que 20 para as repetições no CPI também foram inicialmente supostos, porém, a

95 exequibilidade foi comprometida, culminando, portanto, em uma menor variação para o CPI.

A quarta coluna da Tabela 4.2 apresenta as quinze melhores soluções encontradas para cada grupo, que foram agrupadas de três em três, em cada linha da tabela. Ressalta-se que a opção de se agrupar em trios não faz correlação com as três execuções sequenciais externas do CPE, do Grupo 1. Cada um destes quinze melhores valores, tiveram suas 3 reinicializações externas e suas 8 repetições de soluções internas, por exemplo, no que concerne ao Grupo 1A. Procedimento semelhante é aplicada aos demais grupos, enfatizando que a implementação retorna como valor final, independentemente do número CPE ou CPI, apenas um único valor final fitness, que é a melhor aproximação encontrada para a solução do problema real. A única intenção foi apresentar apenas uma contagem de 5 tempos, ao invés de 15 tempos, para detalhar com maior precisão a média final de tempo demandado, no lugar de apenas apresentar uma média de tempo por grupo.

Os 60 valores computacionais da tabela indicam que um maior número de reinicializações para o CPE influencia com maior impacto no melhoramento da qualidade das soluções obtidas do que o aumento do CPI. A solução ótima 2.0125 do Problema-Teste (Subseção 4.3.1) não foi obtida em nenhuma das 30 iterações do Grupo 1, com um número pequeno para o CPE, mesmo para um caso simples bidimensional.

Mesmo utilizando o critério de parada interno igual a uma repetição de apenas 8 aproximações iguais, com 75 reinicializações, o BRKGA-2DBPP conseguiu em 80% dos casos encontrar a solução ótima, já previamente conhecida (ver Subseção 4.3.1). Em contrapartida, aumentando-se para 20 as repetições internas e considerando apenas 3 reinicializações globais, o Algoritmo não produziu a solução ótima, em nenhuma das vezes testadas.

Além disso, pode-se constatar o fato de que as duas configurações de carregamento obtidas pelas ocorrências de solução ótima do grupo 2 são diferentes daquelas em que se almejava determinar, e explicitada na Seção 4.3.1, porém com mesma fitness, demonstrando a eficácia da implementação do Algoritmo BRKGA. São elas:

Configuração de Carregamento 1: Contêiner 1:

Caixa 5: [(0, 0, 0), (3, 4, 0)] com orientação 2. Caixa 11: [(0, 4, 0), (9, 6, 0)] com orientação 1. Caixa 6: [(3, 0, 0), (6, 4, 0)] com orientação 2. Caixa 2: [(6, 0, 0), (10, 4, 0)] com orientação 1.

96 Caixa 10: [(0, 6, 0), (9, 8, 0)] com orientação 1.

Caixa 12: [(9, 4, 0), (10, 7, 0)] com orientação 2.

Contêiner 2:

Caixa 4: [(0, 0, 0), (3, 4, 0)] com orientação 2. Caixa 7: [(0, 4, 0), (1, 7, 0)] com orientação 1. Caixa 9: [(1, 4, 0), (3, 6, 0)] com orientação 2. Caixa 8: [(1, 6, 0), (7, 8, 0)] com orientação 1. Caixa 3: [(7, 0, 0), (10, 8, 0)] com orientação 2. Caixa 1: [(3, 0, 0), (7, 6, 0)] com orientação 1.

Figura 4.10 - Configuração de Carregamento 1.

Fonte: Elaboração do próprio autor.

Configuração de Carregamento 2:

Contêiner 1:

Caixa 2: [(0, 0, 0), (4, 4, 0)] com orientação 2. Caixa 11: [(0, 4, 0), (9, 6, 0)] com orientação 1. Caixa 4: [(4, 0, 0), (7, 4, 0)] com orientação 2. Caixa 6: [(7, 0, 0), (10, 4, 0)] com orientação 2. Caixa 10: [(0, 6, 0), (9, 8, 0)] com orientação 1. Caixa 12: [(9, 4, 0), (10, 7, 0)] com orientação 2.

97

Contêiner 2:

Caixa 1: [(0, 0, 0), (4, 6, 0)] com orientação 1. Caixa 5: [(4, 0, 0), (7, 4, 0)] com orientação 2. Caixa 3: [(7, 0, 0), (10, 8, 0)] com orientação 2. Caixa 8: [(0, 6, 0), (6, 8, 0)] com orientação 1. Caixa 9: [(4, 4, 0), (6, 6, 0)] com orientação 1. Caixa 7: [(6, 4, 0), (7, 7, 0)] com orientação 1.

Figura 4.11 - Configuração de Carregamento 2.

Fonte: Elaboração do próprio autor.

4.4 IMPLEMENTAÇÃO COMPUTACIONAL DO BRKGA PARA O CASO

TRIDIMENSIONAL

A estrutura da implementação do BRKGA para o caso tridimensional foi realizada, praticamente, de maneira idêntica à que foi desenvolvida para o caso bidimensional, com algumas exceções. Primeiramente, as terceiras componentes das caixas, contêiners, e pontos que descrevem os posicionamentos das caixas dentro dos contêiners, deixaram de ter valores apenas iguais a zero. Isso incidiu diretamente no fato de que, agora, o segundo conjunto de n componentes dos cromossomos, que descreve o vetor VPH, foi ativado, e que o vetor VBO começou a considerar as seis possibilidades de rotacionamento para cada caixa. Dentro do Processo DP, também, os últimos EMS gerados (5o e 6o EMS, dentre os 6 novos possíveis) passaram a fazer sentido e, portanto, a influenciar na determinação de espaços maximais vazios.

98

Problema-Teste Tridimensional, cuja solução ótima era conhecida e trivial, e no qual

objetivou-se, apenas, a validação da estrutura do algoritmo BRKGA, também para o caso tridimensional. A estrutura deste exemplo considera um único contêiner e contém poucas caixas, estas, fortemente heterogêneas.

Na sequência, foram realizados testes computacionais para os primeiros exemplos de grande porte, para problemas do tipo 3D-BPP, envolvendo 50 caixas e pelo menos 10 contêiners. A escolha destes problemas de grande porte é proveniente do fato de que, além de serem exemplos complexos para se resolver, são os problemas encontrados na bibliografia base deste trabalho, apresentados no Capítulo 1.4. Dessa forma, a ideia foi estabelecer-se um critério de comparação entre os resultados obtidos e verificar-se a coerência da implementação efetuada. A expectativa era de que os resultados estivessem próximos ou iguais aos determinados pelo trabalho de Resende e Gonçalves [12].

Esta subseção final cumpre com o terceiro objetivo específico determinado no início deste trabalho.