UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente...

135
UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA PROGRAMA DE PÓS-GRADUAÇÃO STRICTO SENSU EM ENGENHARIA DE PRODUÇÃO CURSO DE DOUTORADO EM ENGENHARIA DE PRODUÇÃO ANDRÉ SOARES VELASCO ALGORITMOS HÍBRIDOS PARA O PROBLEMA DE CORTE BIDIMENSIONAL Tese apresentada ao Curso de Doutorado em Engenharia de Produção da Universidade Federal Fluminense como requisito parcial para obtenção do Grau de Doutor em Engenharia de Produção. Professor Orientador: Prof. EDUARDO UCHOA BARBOZA, DSc. Niterói 2017

Transcript of UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente...

Page 1: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA

PROGRAMA DE PÓS-GRADUAÇÃO STRICTO SENSU EM ENGENHARIA DE PRODUÇÃO CURSO DE DOUTORADO EM ENGENHARIA DE PRODUÇÃO

ANDRÉ SOARES VELASCO

ALGORITMOS HÍBRIDOS PARA O PROBLEMA DE CORTE BIDIMENSIONAL

Tese apresentada ao Curso de Doutorado em

Engenharia de Produção da Universidade

Federal Fluminense como requisito parcial

para obtenção do Grau de Doutor em

Engenharia de Produção.

Professor Orientador:

Prof. EDUARDO UCHOA BARBOZA, DSc.

Niterói 2017

Page 2: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

V433 Velasco, André Soares

Algoritmos híbridos para o problema de corte bidimensional /

André Soares Velasco. – Niterói, RJ : [s.n.], 2017.

134 f.

Tese (Doutorado em Engenharia de Produção) - Universidade

Federal Fluminense, 2017.

Orientador: Eduardo Uchoa Barboza.

1. Pesquisa operacional. 2. Metaheurística. 3. Programação

inteira. 4. Programação dinâmica. I. Título.

CDD 658.4034

Page 3: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

ANDRÉ SOARES VELASCO

ALGORITMOS HÍBRIDOS PARA O PROBLEMA DE CORTE BIDIMENSIONAL

Tese apresentada ao Curso de Doutorado em

Engenharia de Produção da Universidade

Federal Fluminense como requisito parcial

para obtenção do Grau de Doutor em

Engenharia de Produção.

Aprovada em 22 de março de 2017

BANCA EXAMINADORA

____________________________________________ Professor Orientador: Eduardo Uchoa Barboza, D.Sc.

Universidade Federal Fluminense

____________________________________________ Artur Alves Pessoa, D.Sc.

Universidade Federal Fluminense

____________________________________________ Luiz Satoru Ochi, D.Sc.

Universidade Federal Fluminense

____________________________________________ Geraldo Galdino de Paula Junior, D.Sc.

Universidade Estadual do Norte Fluminense

____________________________________________ Reinaldo Morabito Neto, D.Sc.

Universidade Federal de São Carlos

Niterói 2017

Page 4: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

DEDICATÓRIA

A minha doce mãe Hudinéa†, ao meu corajoso irmão Julinho† e

aos queridos avós Irani e Florentino†.

Page 5: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

AGRADECIMENTOS

Agradeço a Deus, por ter me conduzido e iluminado em todos os momentos. Ao meu orientador Eduardo Uchoa Barboza, pela valiosa orientação, amizade, compreensão e, sobretudo, pela confiança depositada no desenvolvimento deste trabalho. Aos amigos Frederico Galaxe e Marcos Roboredo, pelo apoio e amizade imprescindíveis para essa conquista. A vocês minha eterna gratidão. Aos professores Artur Alves Pessoa, Luiz Satoru Ochi, Geraldo Galdino de Paula Junior e Reinaldo Morabito Neto, membros da comissão examinadora, pelas sugestões apresentadas para o aperfeiçoamento deste trabalho. Aos meus amigos, colegas de doutorado e servidores da UFF: Leonardo Lube, Alex Barcellos, Ricardo Gurgel, Wirley Almeida, Diogo Nadai, Ricardo Torres, Ronaldo Rangel, Elaine Moreira, Roberta Ramalho, Augusto Pimentel, Philippe Leal, Tiago Santos, Ailton Ferreira, Érik Oliveira, Liana Souza, Hugo Kramer, Max Oliveira, Daniel Dias, Luiz Santanna, Eduardo Montalvão, José Mauricio Brasil, Luiz Aizemberg, Ana Paula dos Santos, Mario Brazão, Hermilcinéa Alves, Tânia Machado e tantos outros que, direta ou indiretamente, contribuíram para realização deste trabalho, não hesitando momento algum em me incentivar. Ao querido casal Marcelo e Danielle Velasco e a todos os demais familiares, pelo apoio irrestrito e palavras de encorajamento nos momentos difíceis. Ao meu filho Pedro Julio, pela sua presença na minha vida ser a maior fonte de encorajamento para realização deste trabalho. Ao Instituto Federal Fluminense e a CAPES pelo incentivo e apoio financeiro durante o período de doutorado.

Page 6: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

RESUMO

O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento, conhecidos na literatura como Problema de Corte Bidimensional Guilhotinado Restrito (PCBGR) e Problema de Corte de Estoque Bidimensional Guilhotinado (PCEBG), ambos pertencendo à classe NP-difícil, nos casos com e sem rotação de itens. Esses problemas possuem grande aplicabilidade em diversos setores produtivos que consideram as ações de corte na transformação de materiais em produtos semiacabados ou finais, tais como: metal mecânico, moveleiro, rochas ornamentais, entre outros. Primeiramente, são apresentadas as contribuições para o PCBGR: o algoritmo RG2D, fundamentado no Reactive Greedy Randomized Adaptive Search Procedure (GRASP Reativo) e implementado a partir de melhorias feitas no algoritmo GRASP-2D (G2D), para tratar o problema em destaque; o algoritmo X, baseado em Programação Inteira e capaz de provadamente obter os pesos ótimos para a relaxação de espaço de estados da Programação Dinâmica proposta em (CHRISTOFIDES; HADJICONSTANTINOU, 1995); o algoritmo X2, proposto como uma generalização de X que usa pesos bidimensionais para obter limites ainda mais fortes; o algoritmo X2H que consiste na adaptação de X2 para transformá-lo em uma heurística primal; o método X2D, resultante da combinação desses quatro elementos, foi testado em um grande conjunto de instâncias e mostrou ser capaz de encontrar soluções com garantias de qualidade ou mesmo certificado de otimalidade nas variantes com e sem rotação dos itens. A seguir, tendo como objeto de estudo o PCEBG, as contribuições são: a proposta de um algoritmo híbrido que combina a técnica de Geração de Colunas com Programação Dinâmica e o novo algoritmo RG2D. Os resultados computacionais obtidos até o momento foram bastante positivos. Em todas as instâncias testadas as soluções encontradas nunca ficaram mais do que 1 unidade além do limite inferior dado pela Geração de Colunas.

Palavras-chave: Corte Bidimensional, GRASP, Programação Dinâmica, Programação Inteira, Geração de Colunas.

Page 7: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

ABSTRACT

The present work addresses two types of Cutting and Packing Problems, known in the literature as Two-dimensional Guillotine Restricted Cutting Problem (TGRCP) and Two-dimensional Guillotine Cutting Stock Problem (TGCSP), both in the NP-hard class, with and without item rotation. Those problems have applications in industry, where cutting operations are performed for transforming raw stocks into final or semi-final products, in sectors like metallurgy, furniture, glass, ornamental stones, among others. Firstly, the following contributions are presented: the RG2D algorithm based on the Reactive Greedy Randomized Adaptive Search Procedure (GRASP Reactive) and implemented from improvements made in the GRASP-2D (G2D) algorithm, to address the highlighted problem; the Algorithm X, based on Integer Programming and capable of provably to obtain the optimal weights for the Dynamic Programming state space relaxation proposed in (CHRISTOFIDES; HADJICONSTANTINOU, 1995); the X2 algorithm proposed as a generalization of X that uses two-dimensional weights in order to obtain even stronger upper bounds; the X2H algorithm that consists in the adaptation of X2 to transform it into a primal heuristic; the method X2D that results from the combination of those four elements was tested in a large set of instances and showed to be able to find solutions with quality guarantees or even certificate of optimality. Next, in order to handle TGCSP, the contributions are: hybrid algorithms that combine in different ways Column Generation with Dynamic Programming and the new RG2D algorithms are proposed. The computational results obtained so far were very positive. In all tested instances, the final solutions were never more than 1 unit above the lower bound given by the Column Generation.

Keywords: Two-dimensional Cutting, GRASP, Integer Programming, Dynamic Programming, Column Generation.

Page 8: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

LISTA DE TABELAS

Tabela 4.1: Instância de Christofides e Whitlock Adaptada...................................................................53 Tabela 4.2: Resultados nas Instâncias Clássicas sem Rotação e com Peso ........................................... 78 Tabela 4.3: Resultados nas Instâncias Clássicas sem Rotação e sem Peso ........................................... 79 Tabela 4.4: Resultados nas Instâncias APT sem Rotação e com Peso .................................................. 80 Tabela 4.5: Resultados nas Instâncias APT sem Rotação e sem Peso .................................................. 80 Tabela 4.6: Resultados nas Instâncias gcut sem Rotação e sem Peso ................................................... 81 Tabela 4.7: Resultados nas Instâncias Clássicas com Rotação e com Peso .......................................... 82 Tabela 4.8: Resultados nas Instâncias Clássicas com Rotação e sem Peso ........................................... 82 Tabela 4.9: Resultados nas Instâncias APT com Rotação e com Peso ................................................. 83 Tabela 4.10: Resultados nas Instâncias APT com Rotação e sem Peso ................................................ 83 Tabela 4.11: Resultados nas Instâncias gcut com Rotação e sem Peso ................................................. 84 Tabela 5.1: Resultados nas Instâncias Clássicas sem Rotação e com Peso ......................................... 106 Tabela 5.2: Resultados nas Instâncias Clássicas sem Rotação e sem Peso ......................................... 107 Tabela 5.3: Resultados nas Instâncias Randômicas da Classe 1 sem Rotação e sem Peso ................. 109 Tabela 5.4: Resultados nas Instâncias Randômicas da Classe 2 sem Rotação e sem Peso ................. 110 Tabela 5.5: Resultados nas Instâncias Randômicas da Classe 3 sem Rotação e sem Peso ................. 111 Tabela 5.6: Resultados nas Instâncias APT sem Rotação e com Peso ................................................ 112 Tabela 5.7: Resultados nas Instâncias APT sem Rotação e sem Peso ................................................ 112 Tabela 5.8: Resultados nas Instâncias gcut sem Rotação e sem Peso ................................................. 113 Tabela 5.9: Resultados nas Instâncias Clássicas com Rotação e com Peso ........................................ 114 Tabela 5.10: Resultados nas Instâncias Clássicas com Rotação e sem Peso ....................................... 114 Tabela 5.11: Resultados nas Instâncias Randômicas da Classe 1 com Rotação e sem Peso ............... 115 Tabela 5.12: Resultados nas Instâncias Randômicas da Classe 2 com Rotação e sem Peso ............... 115 Tabela 5.13: Resultados nas Instâncias Randômicas da Classe 3 com Rotação e sem Peso ............... 116 Tabela 5.14: Resultados nas Instâncias APT com Rotação e com Peso ............................................. 117 Tabela 5.15: Resultados nas Instâncias APT com Rotação e sem Peso .............................................. 117 Tabela 5.16: Resultados nas Instâncias gcut com Rotação e sem Peso ............................................... 118 Tabela 5.17: Limites Superiores e Inferiores por Fases do X2D para o PCBGR ................................. 119 Tabela 5.18: Limites Superiores e Inferiores por Fases do X2D para o PCBGR Rotacionado .......... 119 Tabela 6.1: Resultados do GCH2D com Padrões de Corte Residuais RG2Da ....................................... 124 Tabela 6.2: Resultados do GCH2Dr com Padrões de Corte Residuais RG2Dar ...................................... 124

Page 9: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

LISTA DE FIGURAS

Figura 1.1: Problema de Corte de Estoque Bidimensional Guilhotinado ............................................. 13 Figura 2.1: Estrutura dos Problemas de Corte e Empacotamento ......................................................... 20 Figura 2.2: Padrões de Corte Bidimensionais Ortogonais .................................................................... 24 Figura 3.1: Itens Regulares e Irregulares .............................................................................................. 28 Figura 3.2: Corte Guilhotinado Ortogonal ............................................................................................ 29 Figura 3.3: Cortes Guilhotinados em Dois Estágios ............................................................................. 29 Figura 4.1: Cortes Guilhotinados e Faixas Guilhotinas ........................................................................ 47 Figura 4.2: Faixas Guilhotinas Horizontais e Verticais ........................................................................ 48 Figura 4.3: Padrão de Corte para o PCBGR .......................................................................................... 49 Figura 4.4: Geração de Faixas Guilhotinas Horizontais e Verticais com Algoritmo G2D ..................... 54 Figura 4.5: Geração de Faixas Guilhotinas Horizontais e Verticais com Algoritmo G2D ..................... 55 Figura 4.6: Padrão de Corte Ótimo da Instância CU2 com Repetição de Faixas Homogêneas ............ 58 Figura 4.7: Faixas Guilhotinas Horizontais e Verticais com Melhoria A ............................................. 59 Figura 4.8: Padrão de Corte Ótimo da Instância OF1 com Melhorias M e A ....................................... 62 Figura 4.9: Padrão de Corte Ótimo da Instância ChW1 com Algoritmo G2Dv ...................................... 64 Figura 4.10: Faixas Guilhotinas Horizontais e Reaproveitamento de Dentes ....................................... 66 Figura 4.11: Faixas Guilhotinas Verticais e Reaproveitamento de Dentes ........................................... 67 Figura 4.12: Padrão de Corte com Reaproveitamento de Dentes .......................................................... 70 Figura 4.13: Padrão de Corte gcut13 com Reaproveitamento de Dentes e LRF ................................... 71 Figura 4.14: Padrões de Corte APT33 com Algoritmo RG2D ............................................................... 85 Figura 5.1: Padrões de Corte Inviáveis da Instância CW4 com Algoritmo X ...................................... 94 Figura 5.2: Padrão de Corte Ótimo da Instância CW4 com Algoritmo X2 .......................................... 99

Page 10: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

LISTA DE QUADROS

Quadro 2.1: Nomenclatura da Tipologia ............................................................................................... 26 Quadro 2.2: Tipologia de Alguns Problemas ........................................................................................ 27 Quadro 3.1: Artigos Revisados do Problema de Corte de Estoque ....................................................... 41 Quadro 3.2: Artigos Revisados do Problema de Corte Bidimensional ................................................. 42

Page 11: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

SUMÁRIO

1 INTRODUÇÃO ................................................................................................................... 12

2 TIPOLOGIA DOS PROBLEMAS DE CORTE E EMPACOTAMENTO .................... 19 2.1 DIMENSIONALIDADE .................................................................................................... 20 2.2 MEDIDAS QUANTITATIVAS ........................................................................................ 21 2.3 FORMATO DAS FIGURAS ............................................................................................. 21 2.4 SORTIMENTO .................................................................................................................. 22 2.5 DISPONIBILIDADE ......................................................................................................... 22 2.6 RESTRIÇÕES DE PADRÃO ............................................................................................ 23 2.7 RESTRIÇÕES DE ALOCAÇÃO ....................................................................................... 24 2.8 OBJETIVOS ....................................................................................................................... 25 2.9 ESTADO DA INFORMAÇÃO E VARIABILIDADE ...................................................... 25 2.10 NOMENCLATURA DE DYCKHOFF ............................................................................ 25

3 PROBLEMAS DE CORTE BIDIMENSIONAL .............................................................. 28 3.1 PROBLEMA DE CORTE DE ESTOQUE BIDIMENSIONAL GUILHOTINADO ........ 30 3.2 PROBLEMA DE CORTE BIDIMENSIONAL GUILHOTINADO RESTRITO ............. 32 3.3 REVISÃO BIBLIOGRÁFICA ........................................................................................... 33

4 AMPLIAÇÕES DO ALGORITMO G2D PARA O PCBGR ............................................ 43 4.1 METAHEURÍSTICA GRASP ........................................................................................... 43 4.1.1 Fase de Construção da GRASP .................................................................................... 44 4.1.2 Fase de Melhoria da GRASP ........................................................................................ 45 4.1.3 GRASP Reativo ............................................................................................................. 46 4.2 ALGORITMO G2D ORIGINAL ......................................................................................... 46 4.2.1 Fundamentos para Implementação do G2D ................................................................. 47 4.2.2 Fase de Construção das Faixas no Algoritmo G2D ...................................................... 50 4.2.3 Fase de Melhoria das Faixas no Algoritmo G2D .......................................................... 51 4.2.4 Geração de Padrão de Corte no Algoritmo G2D ......................................................... 53 4.2.5 Algoritmo G2D ................................................................................................................ 56 4.3 ALGORITMOS G2Da E G2Dv ............................................................................................. 57 4.3.1 Parâmetro φ e Repetição de Faixas Homogêneas ....................................................... 58 4.3.2 Movimento de Melhoria A ............................................................................................ 59 4.3.2 Pseudocódigo do Algoritmo G2Da ................................................................................. 62 4.3.3 Lista Restrita de Candidatos do Algoritmo G2Dv ........................................................ 63 4.4 ALGORITMOS G2D REATIVOS ...................................................................................... 64 4.4.1 Parâmetro δ e Dentes nas Faixas Guilhotinas ........................................................... 66 4.4.2 Parâmetro ψ e Lista Restrita de Faixas ...................................................................... 70 4.4.3 Pseudocódigo Genérico do Algoritmo RG2D ............................................................... 72 4.5 RESULTADOS COMPUTACIONAIS ............................................................................. 74

5 ALGORITMO PRIMAL-DUAL PARA O PCBGR ........................................................ 86 5.1 PROGRAMAÇÃO DINÂMICA PARA O PCBGI ........................................................... 86 5.1.1 Programação Dinâmica para Discretização ................................................................ 87 5.1.2 Algoritmo Dynamic Programming .............................................................................. 87 5.2 PROGRAMAÇÃO DINÂMICA PARA O PCBGR ......................................................... 89 5.2.1 Relaxação do Espaço de Estados da Programação Dinâmica .................................. 90 5.3 LIMITES SUPERIORES PARA O PCBGR POR PROGRAMAÇÃO DINÂMICA E INTEIRA .................................................................................................................................. 92 5.3.1 Algoritmo X .................................................................................................................... 92

Page 12: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

5.3.2 Algoritmo X2 .................................................................................................................. 96 5.4 LIMITES INFERIORES PARA O PCBGR POR GRASP, PROGRAMAÇÃO DINÂMICA E INTEIRA ......................................................................................................... 99 5.4.1 Heurística X2H ............................................................................................................ 100 5.4.2 Múltiplos Padrões na Matriz da Programação Dinâmica ....................................... 102 5.4.3 Heurística de Viabilização .......................................................................................... 102 5.5 ALGORITMO X2D ........................................................................................................... 103 5.6 RESULTADOS COMPUTACIONAIS ........................................................................... 104

6 ALGORITMOS GERAÇÃO DE COLUNAS PARA O PCEBG .................................. 120 6.1 ALGORITMOS GCH2D E GCH2Dr .................................................................................. 120 6.2 RESULTADOS COMPUTACIONAIS ........................................................................... 122

7 CONCLUSÕES E TRABALHOS FUTUROS ................................................................ 125

REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................... 129

ANEXO: INSTÂNCIAS DOS PADRÕES DE CORTE ILUSTRADOS ......................... 133

Page 13: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

12

1 INTRODUÇÃO

O planejamento operacional de ações que consistem na transformação de materiais

em produtos semiacabados ou finais, não somente evidenciam a tecnologia de processos como

também destacam a produtividade, utilizando de forma inteligente os recursos da produção.

Nas empresas atuantes em setores produtivos que consideram o beneficiamento de materiais,

através do corte realizado em madeiras, metais, vidros, rochas ornamentais, tecidos entre

outras matérias-primas, cujas sobras praticamente não são reaproveitadas, o objetivo de

minimizar o desperdício nestas transformações resultariam em considerável melhoria e

eficiência dos processos, promovendo estimável redução nos custos e, principalmente,

agregando diferencial competitivo a esses produtos.

Nesse contexto, é importante ressaltar que as empresas bem sucedidas consideram

imprescindível um rigoroso controle de seus custos. As empresas que desejam aumentar sua

competitividade no mercado devem ter como objetivos a alta qualidade e a eficiência, pois um

processo não otimizado pode significar altos custos. Diminuir o desperdício de matéria prima

no processo produtivo reduz os custos e, consequentemente, esses produtos podem chegar ao

mercado com um preço menor, aumentando o volume de vendas, a receita da empresa e a

satisfação do consumidor. Ressaltando ainda que os custos de uma operação podem ser

reduzidos melhorando a eficiência do processo. Assim, a realização de suas atividades de

forma apropriada, no menor custo possível, proporciona a uma empresa considerável

vantagem competitiva.

Dos problemas de Engenharia de Produção que podem ser representados através de

um modelo de otimização, o trabalho destaca alguns dos Problemas de Corte e

Empacotamento, como são conhecidos na literatura, evidenciando variantes dos clássicos

Problema de Corte (Cutting Problem) e Problema de Corte de Estoque (Cutting Stock

Problem). Restringido a cortes ortogonais do tipo guilhotina, possivelmente realizados por

lâminas ou lasers, para obtenção de produtos retangulares a partir de materiais com o mesmo

formato, o Problema de Corte Bidimensional Guilhotinado Restrito (PCBGR) e o Problema

de Corte de Estoque Bidimensional Guilhotinado (PCEBG) apresentam-se como objeto de

estudo no presente trabalho.

Nessa ordem, um problema com relativo destaque na literatura é o Problema de

Corte Bidimensional (PCB) que busca determinar um único padrão de corte, com duas

dimensões relevantes, comprimento e largura, que minimize a perda de matéria prima gerada

ou maximize o lucro total, com o corte dos itens, dá as características necessárias para

Page 14: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

13

identificar as variantes do PCB. Aos itens, atribui-se um valor de utilidade que pode ser a

medida de sua área (PCB sem peso) ou estar relacionado à sua importância em presença aos

outros itens (PCB com peso). Uma rotação de 90º nos itens pode ser aceita (PCB com

rotação) ou proibida (PCB sem rotação). Os cortes ortogonais podem ser guilhotinados e gerar

dois novos retângulos (PCBG) ou não guilhotinados (PCBNG). A quantidade de cada item

produzido a partir de cortes guilhotina pode ser restrita (PCBGR) ou ilimitada (PCBGI), e

abordagens para estas variantes também são evidenciadas neste trabalho. O número de

estágios no padrão de corte está relacionado à quantidade de mudanças permitidas na direção

dos cortes guilhotina, ou seja, pode-se admitir apenas k rotações de 90º nas direções destes

cortes (k-estagiado) ou não restringir esta quantidade (não estagiado). A Figura 1.1 destaca

dois padrões de corte distintos com dois e quatro estágios, respectivamente, e indicando a

sequência dos k estágios por Gk.

FIGURA 1.1 – Problema de Corte de Estoque Bidimensional Guilhotinado

Já o PCEBG consiste em determinar como se deve cortar um conjunto de peças

retangulares (Objetos) em quantidade suficiente, a partir de cortes ortogonais a um dos lados

dessas peças, com o intuito de produzir certa quantidade de peças retangulares menores

(Itens), utilizando a menor quantidade possível desses objetos. Com sua grande aplicabilidade

em variados setores de produção, anteriormente exemplificados, uma solução ótima para este

problema apresentaria quais padrões bidimensionais, produzidos a partir de cortes com

guilhotina, devem ser repetidos o mínimo de vezes para atender uma demanda, conforme

ilustrado na Figura 1.1.

Na tipologia apresentada por Dyckhoff (1990) para os Problemas de Corte e

Empacotamento, o PCBGR é apontado pela quádrupla 2/B/O/R, que determina ser um

Itens a Produzir Padrão de Corte 1 Padrão de Corte 2

Perda

Page 15: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

14

problema da classe bidimensional (2), (B) determina a alocação de todos os objetos e uma

parte dos itens, (O) delimita o problema a um objeto e relativamente poucos itens, com várias

cópias de cada item (R). Já o PCEBG é indicado pela quádrupla ordenada 2/V/I/R, com todos

os itens sendo designados a uma seleção de objetos (V) e estes possuindo formatos idênticos

(I). Uma nova tipologia, aprimorada a partir desta por Wäscher et al. (2007), na qual os

Problemas de Corte e Empacotamento são caracterizados por dimensionalidade, tipo de

alocação, variedade dos itens, variedade dos objetos e forma dos itens, também aparece em

destaque na literatura e atribui aos respectivos problemas supracitados a seguinte

classificação: 2-d Retangular SLOPP (Two-dimensional Rectangular Single Large Object

Placement Problem) e 2-d Retangular SSSCSP (Two-dimensional Rectangular Single Stock-

Size Cutting Stock Problem).

Do ponto de vista prático, o PCBGR e o PCEBG estão presentes no cotidiano das

várias empresas do setor de beneficiamento de rochas ornamentais, por exemplo, as

encontradas nas regiões Norte e Noroeste Fluminense. As marmorarias, como são conhecidas

essas empresas, produzem peças sob encomenda para a construção civil, cortando-se placas

de mármore ou granito em pedaços menores. Os cortes nessas placas podem ser arranjados de

várias maneiras e, geralmente, produzem retalhos de matéria prima, provenientes dos pedaços

que sobram, após o corte das peças desejadas. Nos casos em que a otimização das placas não

se faz presente, os retalhos, sobras de matéria-prima que dificilmente são reaproveitadas,

acabam influenciando o preço do produto final, devido ao valor irrelevante destes no

mercado. Como em muitas dessas empresas, a forma de se determinar este arranjo não é

fundamentada em métodos científicos, e sim por métodos, que, baseados apenas na

experiência, acabam produzindo retalhos em quantidades indesejáveis, refletindo diretamente

no custo final do produto. Portanto, minimizar a perda de matéria prima, ou maximizar o seu

aproveitamento, com a melhoria e a eficiência das atividades de corte, pode resultar em

economias substanciais vindos a ser um importante diferencial de competitividade para as

empresas deste setor.

A fácil compreensão destes problemas supracitados esconde a sua real complexidade

quando o objetivo é obter soluções rápidas, que atendam às necessidades cotidianas dos

setores produtivos em tempo real. De uma forma geral, os Problemas de Corte pertencem à

classe de problemas denominada NP-Difícil (GAREY; JOHSON, 1979), em que não é

interessante o uso exclusivo de algoritmos exatos para problemas de médio e grande porte.

Isto significa que a determinação da solução ótima para todas essas variantes do PCB, assim

como o PCEBG correspondente, está relacionada a um processo de otimização combinatória

Page 16: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

15

intratável do ponto de vista computacional, devido ao grande número de padrões de corte

possíveis. Nestes casos, os métodos heurísticos e híbridos são bastante considerados,

constituindo-se uma alternativa válida para os respectivos problemas.

Uma abordagem clássica para o tratamento dos Problemas de Corte de Estoque

(PCE) em geral, é a Geração de Colunas (GC), introduzida por Gilmore e Gomory (1961,

1963, 1965). Para determinar as colunas interessantes no Problema Linear Mestre (PL

Mestre), a GC exige a solução dos chamados problemas de corte com peso (subproblema de

apreçamento), que buscam por um padrão de corte que maximize o lucro total dos itens

produzidos nesse padrão. Na literatura, as técnicas baseadas em GC têm alcançado bons

resultados no PCEBG k-estagiado, onde os subproblemas de apreçamento são do tipo PCBGR

k-estagiado ou PCBGI k-estagiado. Neste caso, abordagens utilizando híbridos com GC e

heurísticas, ou mesmo modelos completos de Programação Inteira Mista (PIM), podem ser

conferidas em Cintra et al. (2008), Silva et al. (2010) e Furini et al.(2012).

Entretanto, sabe-se que o PCBGR é fortemente NP-Difícil (HIFI, 2004b) e o não

estagiado é mais difícil de resolver de forma exata do que o PCBGR k-estagiado ou o PCBGI

não estagiado. Existem relativamente poucos trabalhos propondo métodos exatos para a

resolução do PCBGR, como os algoritmos exatos propostos por Christofides e Whitlock

(1977), Christofides e Hadjiconstantinou (1995), Hifi (1997a), Cung et al. (2000) e

Dolatabadi et al. (2012). Algumas abordagens utilizam também Programação Inteira Mista

(PIM) como apresentado em Furini et al. (2016). Porém, todos estes métodos ainda

apresentam tempos proibitivos nas instâncias consideradas de médio e grande porte.

Consequentemente, a utilização de métodos heurísticos e híbridos aparece com uma

alternativa plausível e algumas dessas abordagens podem ser conferidas nos trabalhos de

Alvarez-Valdés et al. (2002a), Hifi (2004b), Morabito e Pureza (2010).

Defronte a esta dificuldade, o trabalho apresenta um estudo sobre a aplicação da

técnica Reactive Greedy Randomized Adaptive Search Procedure (GRASP Reativo),

juntamente a algoritmos baseados em Programação Dinâmica (PD) e Programação Inteira

(PI), para o PCBGR. Com a mesma incumbência, propõe-se reunir as técnicas GC, PD e a

metaheurística GRASP na construção de um algoritmo para tratar do PCEBG.

Apresentado inicialmente em (VELASCO et al., 2008), as novas ampliações do

algoritmo GRASP-2D (G2D) são inspiradas nos conceitos GRASP Reativo (PRAIS;

RIBEIRO, 2000) para determinação do melhor parâmetro α. Entretanto, a fase de ajustes

nesses novos algoritmos reativos vai incorporar o parâmetro ψ, associado à escolha da nova

faixa que compõe um padrão de corte. Sendo as ampliações reativas denominadas RG2Da e

Page 17: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

16

RG2Dv para as variantes sem peso e com peso do PCBGR, estas também passam a considerar

os casos sem rotação e com rotação via RG2Dar e RG2Dvr. Além disso, são realizados melhorias

nas faixas que consideram inclusive o reaproveitamento dos subretângulos categorizados

como perdas e chamados de dentes. Para fins de validação, os resultados para o caso sem

rotação são comparados com os apresentados nos trabalhos de Alvarez-Valdés et al. (2002a),

Morabito e Pureza (2010), e Dolatabadi et al. (2012).

Sabendo que Christofides e Hadjiconstantinou (1995) propuseram uma PD com

relaxação do espaço de estados para obter de limites superiores ZUB fortes para o PCBGR,

onde a qualidade desse limite depende de um vetor de pesos q, com dimensão dada pelo total

de itens distintos. Para ajustar tais pesos, criaram um algoritmo inspirado no método do

subgradiente para relaxação lagrangeana. O presente trabalho propõe o algoritmo dual X, em

que os pesos são calculados por PI. Esse algoritmo é provadamente ótimo no sentido de

sempre obter os pesos que minimizam o limite superior final alcançado. É proposta também

uma generalização da relaxação do espaço de estados que utiliza pesos bidimensionais, para

melhorar ainda mais a qualidade dos limites superiores, e o algoritmo dual X2 é apresentado

para esse ajuste ótimo dos pesos. O algoritmo primal X2H é outra proposta que consiste em

uma heurística primal baseada na adaptação de X2. Assim como os novos algoritmos RG2D,

X2H tem a finalidade de obter um padrão de corte viável que melhore o limite inferior ZLB.

Admitindo a possibilidade de que a substituição de itens que apresentam quantidade acima da

demanda por outros ainda não produzidos pode gerar uma solução de maior valor, é

apresentada uma heurística de viabilização do padrão de corte. Esse processo de viabilização

pode ser realizado nos padrões ótimos e subótimos da PD relaxada para algum vetor de pesos

q. Finalmente, o método composto pelos algoritmos X, X2 RG2D e X2H é proposto para

resolução do PCBGR, nas variantes que se diferenciam pelo valor de utilidade dos itens e a

questão de sua rotação. Chamado de X2D, este algoritmo é capaz de fornecer certificado de

otimalidade a solução de valor ZLB igual a ZUB. Este algoritmo X2D é testado em 513

instâncias que se dividem nas variantes sem rotação e seus respectivos resultados são

comparados com os algoritmos DP_AOG e A1, propostos por Morabito e Pureza (2010) e

Dolatabadi et al. (2012). No caso rotacionado, é importante ressaltar que ainda não há

resultados disponíveis na literatura para comparação com o algoritmo X2D.

A aplicação conjugada da técnica GC para o PCEBG, com um algoritmo de

Programação Dinâmica para o PCBGI e a versão reativa RG2D para o PCBGR, constitui o

algoritmo híbrido GCH2D, proposto por Velasco e Uchoa (2015). Sabendo que o algoritmo

denominado DP, incialmente apresentado por Beasley (1985) para o PCBGI, foi reestruturado

Page 18: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

17

para o subproblema da GC proposta por Cintra et al. (2008) e caso a solução ótima do PL

Mestre não seja inteira, basicamente o processo consiste em utilizar o RG2D para resolver o

problema residual como um PCBGR até que a demanda seja atendida. Para avaliar o

desempenho dos algoritmos híbridos GCH2D e GCH2Dr, nos casos sem e com rotação, foram

realizados testes em 24 instâncias do PCEBG e comparados com os algoritmos CG, CGP,

CGR e CGRP apresentados em Cintra et al. (2008).

Este trabalho está dividido em 7 capítulos. Além do Capítulo 1 introdutório, duas

estruturas lógicas, compreendendo as características essenciais para a classificação dos

Problemas de Corte e Empacotamento, segundo Dyckhoff (1990) e Wäscher et al.(2007), são

descritas no Capítulo 2.

No Capítulo 3, são apresentadas as definições dos Problemas de Corte Bidimensional

que caracterizam o PCEBG e o PCBGR. Ainda neste capítulo, são mostradas as dificuldades

envolvidas na modelagem destes problemas e uma introdução conceitual do método Geração

de Colunas, concluindo com uma revisão bibliográfica que aborda ambos.

No Capítulo 4, é apresentada a implementação computacional das ampliações do

algoritmo G2D que culminaram nas suas versões reativas para o PCBGR, com e sem peso ou

rotação. Este capítulo inicia-se com os procedimentos característicos da metodologia GRASP

e as definições necessárias na arquitetura dos procedimentos que dão origem as faixas

horizontais e verticais do padrão de corte guilhotinado. Os novos parâmetros e estratégias de

ajuste, definição de uma Lista Restrita de Faixas e suas atualizações e movimentos de

melhoria que incluem o reaproveitamento de dentes nas faixas guilhotinas são apresentados

com ênfase no decorrer desse Capítulo. Por último, é descrito o pseudocódigo geral do

algoritmo RG2D e confrontados os respectivos resultados computacionais com algoritmos

reconhecidos da literatura.

Inicialmente no Capítulo 5, é descrito o algoritmo DP para o PCBGI apresentado em

(CINTRA et al., 2008), incluindo o algoritmo DDP que retorna um conjunto de pontos de

discretização de um padrão canônico. Também é dada a devida ênfase a relaxação do espaço

de estados proposta por Christofides e Hadjiconstantinou (1995). Em seguida, os algoritmos

duais X e X2 são apresentados de forma a obter limites superiores sempre mais fortes, com os

respectivos vetores de pesos da PD relaxada sendo calculados por Programação Inteira.

Descreve-se então, a heurística primal X2H e a possibilidade de atualizar os limites inferiores

com os respectivos algoritmos RG2D, nos múltiplos padrões subótimos da PD ou através de

uma heurística de viabilização aplicada nos padrões inviáveis gerados por X, X2 e X2H.

Sendo o algoritmo X2D uma composição dos algoritmos supracitados, este é apresentado com

Page 19: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

18

destaque por ter a capacidade de garantir certificação de otimalidade para soluções do

PCBGR, nas variantes com e sem rotação. Ao final desse Capítulo, são expostos os testes

computacionais e suas devidas comparações para validação do algoritmo proposto.

O Capítulo 6 apresenta o desenvolvimento dos algoritmos híbridos GCH2D e GCH2Dr,

para o PCEBG com e sem rotação. O Capítulo inicia-se com a apresentação dos fundamentos

necessários na arquitetura desses algoritmos, seguido de um pseudocódigo genérico e dos

resultados computacionais dos algoritmos relacionados.

Finalmente, no Capítulo 7, são apresentadas algumas considerações sobre as

contribuições adquiridas com a utilização dos algoritmos RG2D, X2D e GCH2D propostos para

otimização dos respectivos PCBGR e PCEBG, além de expor novas sugestões para

continuidade da pesquisa.

Page 20: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

19

2 TIPOLOGIA DOS PROBLEMAS DE CORTE E EMPACOTAMENTO

O Problema de Corte consiste em determinar a melhor maneira de produzir um

conjunto de peças menores (denominadas itens) efetuando cortes em peças maiores

(denominadas objetos). Enquanto, o Problema de Empacotamento consiste basicamente em

determinar o melhor arranjo de um conjunto de itens dentro de objetos. Empacotar itens

dentro de objetos também pode ser visto como cortes de espaços, sendo estes espaços

ocupados por itens ou considerados perdas. De forma recíproca, o problema de corte pode ser

encarado como empacotamento de espaços ocupados por itens em espaços ocupados por

objetos (DYCKHOFF, 1990).

Os Problemas de Corte e Empacotamento, tais como corte de barras de ferro e

barrotes de madeira na construção civil, corte de placas de granito nas marmorarias, corte de

espumas para colchões e empacotamento de caixas em contêineres estão centrados em objetos

e itens definidos por uma, duas ou três dimensões do espaço Euclidiano. De forma análoga,

problemas desta categoria podem ter objetos e itens com dimensões abstratas, como por

exemplo, o balanceamento de uma linha de montagem com dimensões temporais. Neste caso,

o estoque de objetos é definido pelas estações de trabalho com intervalos de tempo fixados e a

lista de itens é dada por tarefas específicas com durações que devem ser determinadas. Exceto

pela restrição que impõe um ordenamento nas tarefas a cumprir, a estrutura lógica é a mesma

encontrada nos problemas de empacotamento.

Assim como em Dyckhoff (1990), a Figura 2.1 exibe uma estrutura dos Problemas de

Corte e Empacotamento, evidenciando a questão das dimensões espaciais e abstratas. E

também, nos exemplos citados são apresentadas algumas das aplicações para os problemas

dessa natureza.

Em vista da multiplicidade dos Problemas de Corte e Empacotamento nos setores

produtivos e da importância desses problemas no planejamento da produção de algumas

empresas há um incessante interesse de administradores, economistas, engenheiros,

matemáticos, entre outros pesquisadores, em buscar soluções para esses problemas. Com a

finalidade de classificar os Problemas de Corte e Empacotamento, identificar características

comuns e concentrar pesquisas futuras em problemas de tipos específicos, Dyckhoff (1990)

sugeriu em seu artigo uma nomenclatura baseada em uma estrutura lógica. A notoriedade

deste trabalho culmina na publicação do livro Cutting and Packing in Production and

Distribution, por Dyckhoff e Finke (1992), relacionando esta estrutura lógica junto à realidade

dos Problemas de Corte e Empacotamento.

Page 21: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

20

FIGURA 2.1 – Estrutura dos Problemas de Corte e Empacotamento.

Esta estrutura lógica inclui características suficientes para especificar o tipo de um

problema de corte e empacotamento. A seguir, uma precisa descrição dessas características é

apresentada.

2.1 DIMENSIONALIDADE

A dimensionalidade é a característica mais importante, já que determina o número de

dimensões relevantes, em objetos e itens, na definição de um padrão para o problema. Um

padrão corresponde a uma disposição de itens em objetos. Quanto à dimensionalidade, um

problema pode ser classificado como:

� Unidimensional;

� Bidimensional;

� Tridimensional;

� Multidimensional;

� n½ - dimensional.

O problema é unidimensional quando uma única dimensão é relevante para a

definição de um padrão. Por exemplo, na indústria de papel, bobinas de comprimento

padronizado devem ser cortadas em rolos de vários comprimentos pré-determinados. O

problema mencionado anteriormente de balanceamento de uma linha de montagem é um

problema unidimensional.

Page 22: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

21

Quando duas dimensões são relevantes na determinação de um padrão, o problema é

bidimensional. No corte de placas de granito em peças menores, nas empresas do setor de

beneficiamento de rochas ornamentais (marmorarias), a largura e o comprimento são as

medidas relevantes. A Figura 1.1 ilustra padrões de corte para o problema bidimensional.

No corte de colchões a partir de blocos de espumas ou no empacotamento de caixas

em contêineres, a largura, o comprimento e a altura de objetos e itens são imprescindíveis na

resolução do problema. Este problema é dito tridimensional devido às três dimensões

relevantes na definição de um padrão.

Se o número de dimensões relevantes para definição de um padrão for maior que

três, então este problema é multidimensional. Um exemplo de problema de quatro dimensões

seria estocar caixas num contêiner por períodos de tempo fixados e ininterruptos. Neste caso,

junto ao problema de empacotamento tridimensional, apresenta-se uma quarta dimensão, o

tempo de permanência de cada caixa.

Os problemas n½ - dimensionais têm n+1 dimensões relevantes na definição de um

padrão, sendo n dimensões fixas e uma variável. No cotidiano das gráficas, o corte de lona em

rolos, para produção de cartazes de dimensões fixas, é um exemplo de problema 1,5

dimensional. Um padrão de corte para este problema, que apresenta 1+1 dimensões

relevantes, é definido em um tecido de largura fixa e comprimento variável, ou seja, com

comprimento suficiente para atender a demanda.

2.2 MEDIDAS QUANTITATIVAS

Os valores atribuídos às variáveis que indicam o número de objetos e itens em uma

solução podem ser:

� Discretos;

� Contínuos.

Em problemas com dimensões bem definidas, como o caso bidimensional, as

variáveis estão condicionadas a assumir valores discretos. Enquanto nos problemas com uma

dimensão variável há variáveis assumindo valores contínuos.

2.3 FORMATO DAS FIGURAS

Outra característica a ser observada é o formato das figuras de objetos e itens

envolvidos no problema. Seja uma figura distinguida por:

� Forma;

� Tamanho;

� Orientação.

Page 23: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

22

Figuras de mesma forma podem diferir em tamanho ou orientação no espaço

relevante. Como por exemplo, no corte de vergalhões para armadura na construção civil

(VIEIRA NETO et al., 2013), onde objetos e itens apresentam comprimentos variados, ou no

corte de peças retangulares de vidro, onde é permitida uma rotação de 90 graus em objetos e

itens. Em problemas com mais dimensões relevantes, as figuras possuem formas regulares,

especialmente retangulares ou em blocos, ou irregulares, no caso destas serem assimétricas ou

não convexas tipicamente encontradas nas indústrias têxteis e de calçados.

O tamanho de uma figura pode ser determinado pela medida de seu comprimento,

área ou volume. Este consiste em um importante aspecto, pois o tamanho dos itens em relação

aos objetos pode impor dificuldades na resolução de um problema específico. Em um

problema bidimensional, o tamanho das figuras pode ser definido pelas suas respectivas áreas.

De acordo com o problema, a posição ou orientação de itens em relação a objetos

pode ser fixa, admitindo-se apenas 90 graus de rotação ou permitindo-se qualquer orientação.

Neste trabalho, também se trata a hipótese de um item qualquer poder ser rotacionado em 90

graus e as respectivas figuras rotacionadas ou não rotacionadas serem consideradas idênticas.

Sob essa hipótese, um item retangular de comprimento x e largura y não difere de outro item

que possui comprimento y e largura x.

2.4 SORTIMENTO

Tanto o formato quanto a diversidade das figuras de objetos e itens são fundamentais

na caracterização de um problema. Por exemplo, a indústria de circuito impresso convive com

o problema de cortar chapas retangulares (objetos com formatos idênticos) de fibra de vidro

para fabricação de placas (muitos itens com formatos distintos) de circuito impresso.

2.5 DISPONIBILIDADE

Com respeito à disponibilidade de objetos e itens são considerados três fatores:

� Limites, superior e inferior, em sua quantidade;

� Sequência ou ordem;

� Data de utilização.

De acordo com o problema, a quantidade de objetos e itens pode ser restrita ou

irrestrita, isto é, limitada ou ilimitada, respectivamente. Em alguns problemas, os padrões são

determinados em uma quantidade limitada de objetos com itens em quantidades ilimitadas. Já

em outros, deseja-se obter padrões que produzam itens em quantidades limitadas ou não, a

partir de uma indefinida quantidade de objetos. Por exemplo, no cotidiano das empresas do

Page 24: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

23

setor vidraceiro, uma quantidade suficiente de chapas é utilizada na produção de uma

determinada quantidade de peças.

Nas metalúrgicas, a necessidade de se respeitar certa ordem para objetos e itens,

quanto ao tempo na definição de um padrão, é observado quando barras incandescentes

cobertas de aço são produzidas, em um processo sequencial e sem retardos.

2.6 RESTRIÇÕES DE PADRÃO

Basicamente, as restrições de padrão estão ligadas às características geométricas e

operacionais do problema. Estas restrições são esclarecidas e distinguidas em quatro

importantes grupos descritos a seguir.

i) Os espaços entre os itens em um padrão são extremamente importantes em alguns

casos, como por exemplo, no corte de placas de vidro, onde estes espaços resultam em perda

de matéria-prima. Outra situação relevante em processos produtivos está relacionada ao

desperdício do objeto, ocasionado por um instrumento cortante. Neste caso, geralmente, esta

espessura está adicionada às dimensões dos itens encontrados no padrão em questão.

ii) A posição dos itens, em relação aos mesmos, ou em relação ao objeto, tem de ser

levada em consideração, como no caso do carregamento de produtos frágeis.

iii) Podem existir restrições quanto ao número de itens em um padrão, como por

exemplo, no empacotamento de bombons de chocolate em caixas para comercialização, onde

a quantidade de itens distintos é limitada.

iv) O tipo de corte executado e o número de cortes permitidos são essenciais nos

problemas em que objetos e itens são retangulares ou em forma de blocos. Em um problema

bidimensional, cujo padrão é definido através de cortes guilhotinados e ortogonais, a sua

complexidade depende do número de mudanças nas direções de corte (estágios) como

também do número de cortes paralelos por estágio.

Pode haver padrões resultantes de cortes não ortogonais e guilhotinados, como

também, de cortes ortogonais e não guilhotinados. A Figura 2.2 destaca dois tipos de padrões

resultantes de cortes ortogonais, com cinco itens em ambos, sendo o padrão de corte

guilhotinado configurado com cinco estágios. Ainda nessa figura, os k estágios são indicados

por Gk e consideram uma sequência de rotações de 90º na direção dos cortes, paralelas aos

lados do objeto.

Page 25: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

24

FIGURA 2.2 – Padrões de Corte Bidimensionais Ortogonais.

2.7 RESTRIÇÕES DE ALOCAÇÃO

Em relação à designação de itens para objetos, são evidenciadas as seguintes

restrições:

� Tipo de alocação;

� Número de estágios;

� Número, frequência ou sequência dos padrões;

� Dinâmica de alocação.

O tipo de alocação é uma propriedade fundamental na classificação de um problema

de corte e empacotamento. O corte de objetos para produção de itens pode ser visto como uma

alocação de itens em objetos, onde duas categorias de alocação se destacam na distinção de

um problema:

i) Típica dos problemas clássicos de corte e empacotamento, a designação de um

conjunto de itens a um subconjunto de objetos.

ii) Observada no carregamento de pallet, quando um subconjunto de itens é

designado a um conjunto de objetos.

O número de estágios de um problema está relacionado com a quantidade de passos

necessários para definição de um padrão. No problema bidimensional, um padrão pode ser

obtido por cortes ou empacotamentos, estagiados (com um número pré-determinado de

estágios) ou não estagiados (sem limitação de estágios).

Nos processos produtivos, tanto as conexões estabelecidas entre as etapas, como as

tecnologias envolvidas nos processos de alocação podem impor restrições relacionadas à

Padrão Ortogonal Não Guilhotinado

Padrão Ortogonal Guilhotinado

Perda

Page 26: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

25

sequência ou ordem de padrões. Também podem existir limitações quanto ao número de

padrões de mesmo tipo ou de tipos distintos.

A alocação de itens em objetos pode ser de natureza dinâmica ou estática. Na

alocação estática, se os objetos e itens são previamente conhecidos, o processo é dito off-line,

caso contrário o processo é on-line. Já no processo dinâmico, em função da não

disponibilidade de objetos e itens em um mesmo período, as alocações seguem uma regra pré-

estabelecida que permita a realocação dos itens em objetos.

2.8 OBJETIVOS

Um objetivo significa usar um critério a ser maximizado ou minimizado para

expressar a dimensão da eficácia obtida na solução de um problema. Alguns critérios a serem

satisfeitos em Problemas de Corte e Empacotamento são listados abaixo.

i) Minimizar a perda de material nos processos de corte ou empacotamento.

ii) Minimizar os custos envolvidos no processo produtivo, como por exemplo,

despesas com armazenagem.

iii) Maximizar os lucros com a eficácia e a qualidade dos processos.

2.9 ESTADO DA INFORMAÇÃO E VARIABILIDADE

Determinar se os dados de um problema são determinísticos ou estocásticos, ou

ainda, se estes são exatos ou podem ser variáveis, são características relevantes não apenas

para os Problemas de Corte e Empacotamento. Por exemplo, uma demanda de determinados

itens ordenada em um pedido geralmente possui dados determinísticos podendo ser variável

caso certas mudanças sejam admitidas pelos clientes.

2.10 NOMENCLATURA DE DYCKHOFF

As características dimensionalidade, sortimento e restrições de alocação constituem

uma base para elaboração de uma nomenclatura que associe os Problemas de Corte e

Empacotamento afins, além de influenciarem diretamente na escolha e na complexidade do

método de solução. A tipologia de um problema é indicada através da quádrupla,

dimensionalidade/ tipo de alocação/ sortimento de objetos/ sortimento de itens, e cada

característica é subdividida em determinados tipos que são indicados por letras, conforme o

quadro 2.1 a seguir.

Page 27: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

26

QUADRO 2.1 – Nomenclatura da Tipologia.

Dimensionalidade Tipo de Alocação

(1) Unidimensional

(2) Bidimensional

(3) Tridimensional

(N) N-dimensional, com N > 3

(B) Todos os objetos e uma seleção de itens

(V) Uma seleção de objetos e todos os itens

Sortimento de Objetos Sortimento de Itens

(O) Um objeto

(I) Objetos de formatos idênticos

(D) Objetos de formatos distintos

(F) Poucos itens de diferentes formatos

(M) Muitos itens de muitos formatos distintos

(R) Muitos itens de formatos distintos em relativa

quantidade

(C) Itens de formatos congruentes

Os agrupamentos formados por todos os tipos destas quatro características indicam

96 tipos distintos de Problemas de Corte e Empacotamento, onde cada agrupamento consta de

uma quadrúpla ordenada α/β/γ/δ, em que α representa o número de dimensões relevantes do

problema, β o tipo de alocação considerada com relação a objetos e itens, γ o sortimento dos

objetos envolvidos e δ o sortimento dos itens requisitados. Por exemplo, a notação 2/V/I/R é

utilizada para indicar o PCEBG, enfatizado neste trabalho, que é do tipo bidimensional (2),

com todos os itens sendo designados a uma seleção de objetos (V), objetos estes de formatos

idênticos (I) e itens de formatos distintos em relativa quantidade (R). No quadro 2.2 são

listados alguns dos clássicos da literatura atribuídos à classe dos Problemas de Corte e

Empacotamento, com as suas respectivas quadrúplas, como o PCBGR que é apontado pela

quádrupla 2/B/O/R, onde (B) determina a alocação de todos os objetos e uma parte dos itens e

(O) delimita o problema a um objeto.

É importante ressaltar, também, que uma nova tipologia, aprimorada a partir dessa

por Wäscher et al. (2007), onde os Problemas de Corte e Empacotamento são caracterizados

por dimensionalidade, tipo de alocação, variedade dos itens, variedade dos objetos e forma

dos itens. Segundo Wäscher et al. (2007), as modificações permitiram que cada problema

tivesse uma codificação única, de acordo com a sua modelagem e os respectivos métodos, e

atribui aos objetos deste estudo a seguinte classificação: 2-d Retangular SSSCSP (Two-

dimensional Rectangular Single Stock-Size Cutting Stock Problem) e 2-d Retangular SLOPP

(Two-dimensional Rectangular Single Large Object Placement Problem).

Page 28: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

27

QUADRO 2.2 – Tipologia de alguns problemas.

Problema Tipo

Problema da mochila clássico 1/B/O/ Problema da mochila multidimensional /B/O/

Problema do carregamento de pallet 2/B/O/C

Problema do carregamento de veículos 1/V/I/F ou 1/V/I/F Problema do carregamento de contêiner 3/V/I/ ou 3/B/O/

Problema do bin packing clássico 1/V/I/M

Problema do bin packing dual 1/B/O/M

Problema do bin packing bidimensional 2/V/D/M

Problema do cutting stock clássico 1/V/I/R

Problema do cutting stock bidimensional 2/V/I/R

Problema do cutting stock generalizado 1/ / / , 2/ / / ou 3/ / / Problema do balanceamento de uma linha de montagem 1/V/I/M

Problema de alocação de memória 1/V/I/M

Problema de alocação de tarefas em multiprocessador 1/V/I/M

Problema de câmbio monetário 1/B/O/R

Problema de investimento financeiro em multiperíodos N/B/O/

Page 29: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

28

3 PROBLEMAS DE CORTE BIDIMENSIONAL

Em diversos processos produtivos encontram-se atividades de corte de material, que

são efetuadas em objetos retangulares para atender a uma demanda de itens retangulares

menores, de maneira que o desperdício de material durante este processo seja minimizado.

Este problema caracteriza-se como bidimensional quando duas dimensões são fundamentais

na sua resolução, ou seja, a largura e o comprimento dos objetos e itens envolvidos no

processo são essenciais na definição de um padrão de corte.

A geração de padrões de corte para o problema bidimensional, envolvendo objeto e

itens que a presentam forma regular, isto é, de formato retangular, aparecem com relativo

destaque na literatura deste problema. Porém, em alguns casos, os itens podem ser irregulares,

ou seja, não apresentam formato retangular. A Figura 3.1 exibe alguns exemplos de contornos

de itens que possuem forma regular e irregular.

FIGURA 3.1 – Itens Regulares e Irregulares.

De acordo com a geometria dos itens envolvidos e as características operacionais do

problema, se os itens apresentam formato retangular, um padrão de corte pode ser obtido

através de cortes guilhotinados ou não guilhotinados. Esses padrões guilhotinados são

distinguidos em ortogonais e não ortogonais. Se um corte ao ser realizado em um objeto

retangular gerar outros dois retângulos, este é chamado de guilhotinado ortogonal, quando

não, é denominado de guilhotinado não ortogonal. A fim de delimitar o problema, os cortes

efetivados devem ser paralelos aos lados do retângulo, conforme é apresentado na Figura 3.2,

e um padrão de corte guilhotinado é aquele definido por série de cortes guilhotinados verticais

ou horizontais.

Forma Regular Forma Irregular

Page 30: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

29

FIGURA 3.2 – Corte Guilhotinado Ortogonal.

Na utilização de cortes guilhotinados, estes ainda são classificados em:

� Cortes estagiados;

� Cortes não estagiados.

Os cortes são estagiados se houver restrições, provenientes das características

operacionais do problema, que limitam o número de estágios permitidos para determinação de

um padrão de corte. No entanto, se o número de estágios em um padrão de corte é irrelevante

na solução de um problema, os cortes são ditos não estagiados. A Figura 3.3 ilustra um

processo de execução de cortes guilhotinados, onde os cortes efetuados em uma única direção

definem um estágio e a cada mudança na direção dos cortes, um novo estágio é estabelecido.

FIGURA 3.3 – Cortes Guilhotinados em Dois Estágios.

Assim como no cotidiano das empresas, os valores associados aos objetos e itens

podem estar relacionados a grandezas de natureza quantitativa ou qualitativa distintas. Neste

Corte Guilhotinado

Corte Vertical Corte Horizontal

Corte Guilhotinado

1º Estágio 2º Estágio Itens Produzidos

P2

P1 P1 P3

P2 P2

P1 P1 P3

P2 P2 P2

P1 P1 P3

Page 31: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

30

trabalho, os cortes guilhotinados são realizados em objetos idênticos, com suas dimensões

previamente padronizadas, onde não se fez necessário discutir seu valor. Porém, aos itens

têm-se associado um valor de utilidade que pode ser a medida de sua área ou estar relacionado

à sua importância em presença aos outros itens.

Com relação ao número de itens existentes em um padrão de corte, o problema pode

ser restrito ou irrestrito. Se não houver restrições de limitação associadas ao número de itens,

o problema é irrestrito. Caso contrário, o problema é dito restrito. A imposição de um limite

superior à quantidade de um determinado item no padrão de corte, assim como o

desimpedimento relativo ao número de estágios permitidos, acrescenta considerável

dificuldade à resolução deste problema.

Para o melhor entendimento dos problemas objeto de estudo deste trabalho, as seções

seguintes discriminaram as especificidades do PCEBG e do PCBGR.

3.1 PROBLEMA DE CORTE DE ESTOQUE BIDIMENSIONAL GUILHOTINADO

Com os padrões de corte bidimensionais guilhotinados definidos e uma quantidade

de objetos em estoque suficiente para atender a uma demanda de itens pré-estabelecida, o

PCEBG consiste em escolher quais e quantos destes padrões devem ser executados para que

todos os itens sejam produzidos. É importante ressaltar que esta seleção dos objetos pode ser

modelada como um problema de Programação Linear Inteira. A formulação clássica para o

PCEBG a seguir, consiste em determinar o número de vezes xj que cada padrão de corte j é

utilizado, de forma a atender a demanda di, consumindo-se o menor número possível de

objetos.

n

jj=1

n

ij j ij=1

j

Min x

s.a: a x d , i = 1,...,m (3.1)

x 0 e Inteiro, j = 1,...,n

Onde:

� xj é a variável que representa o total de vezes que o padrão de corte j é utilizado;

� aij é a constante que indica número de itens i gerados no padrão de corte j;

� di é a constante que indica a demanda de itens i;

� m é a constante que indica o número de itens distintos;

� n é a constante que indica o número total de padrões de corte.

Page 32: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

31

A condição que o modelo impõe às variáveis xj de não assumir valores contínuos

torna o problema difícil de ser resolvido, até para instâncias relativamente pequenas. Mas

mesmo resolver a relaxação contínua do modelo pode não ser fácil. Se a quantidade de itens

diferentes, encontrados em problemas de médio e grande porte, promove um aumento

considerável no número n de padrões viáveis e para encontrar a solução ótima da relaxação

contínua é preciso conhecer todos os padrões de corte, então a utilização do método simplex

para resolução deste problema se torna inviável nestas circunstâncias, visto que o número de

colunas do modelo pode ultrapassar facilmente a casa dos bilhões.

Esse impedimento pode ser contornado com o método conhecido como Geração de

Colunas (DANTIZG; WOLFE, 1960). Este método pode ser visto como uma extensão do

Simplex Revisado, onde o apreçamento (pricing) das variáveis é realizado através da

resolução de um subproblema, e foi primeiramente introduzido por Gilmore e Gomory (1961,

1963) para versão unidimensional desse problema.

De forma geral, a GC é iniciada montando-se o Problema Linear Mestre (PL Mestre),

que corresponde ao modelo 3.1 sem a restrição de integralidade e contendo apenas um

pequeno subconjunto das variáveis, correspondendo a alguns dos muitos padrões de corte

viáveis. Por exemplo, este subconjunto inicial pode ser formado apenas pelos padrões de corte

homogêneos, onde um único item é colocado o maior número de vezes possível. A GC

baseia-se na utilização do método do simplex revisado, onde, a cada iteração, é gerado e

inserido um novo padrão desde que ele possa melhorar o valor da função objetivo. Caso

contrário, a solução corrente relaxada é ótima. Sendo o problema de minimização, deve-se

buscar por novos padrões que correspondam as variáveis com custo reduzido negativo. Sejam

cj = 1

zj = cB B-1 aj ⇔ zj = П aj ⇔ zj = ∑ πi

mi=1 aij

Onde:

� П é o vetor dos multiplicadores duais;

� cj é o coeficiente da variável j na função objetivo no PL Mestre;

� cB é o vetor de coeficientes das variáveis básicas na função objetivo no PL Mestre;

� B-1 é a inversa da matriz dos coeficientes das variáveis básicas nas restrições no PL

Mestre;

� aj é a coluna da variável j na matriz dos coeficientes do PL Mestre e aij é o coeficiente na

linha i nessa coluna.

Page 33: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

32

O custo reduzido de uma variável j é dado por cj - zj. O objetivo de selecionar essas

melhores colunas ou padrões com custo reduzido negativo resulta no seguinte subproblema:

[ ]

m

i i

t

1 m

i=1

i

Min (1 - π y )

s.a: é um padrão viável (3.2)

y 0 e

y , ..

In

.,

o

y

teir≥

Onde:

� yi é a variável que representa o número de itens i no padrão de corte;

� πi é o multiplicador da restrição i no PL Mestre.

É importante ressaltar que no PCEBG tratado neste trabalho, o subproblema 3.2 seria

apenas um PCBGI com peso. Ainda assim, é dada a devida ênfase ao PCBGR, pois este além

de ser resolvido pelos algoritmos propostos, também é fundamental na resolução da instância

residual obtida após o arredondamento da solução ótima do PL Mestre.

A relaxação contínua do modelo (3.1) costuma ser muito forte, no sentido em que o

limite inferior obtido costuma ser muito próximo da solução ótima. Para o caso do PCE

Unidimensional, antes do trabalho de Marcote (1986) não se conhecia uma única instância em

que esse limite inferior arredondado para cima não fosse igual ao valor da solução ótima.

Depois disso, Scheithauer e Terno (1995) propuseram a seguinte conjectura, conhecida como

Modified Integer Round-Up Property (MIRUP):

Conjectura MIRUP (para o caso unidimensional). O limite inferior do modelo 3.1

arredondado para cima está no máximo uma unidade abaixo do valor da solução ótima

inteira.

Até hoje, a maior diferença conhecida entre o limite inferior e a solução ótima é de 1,16666...

(RIETZ et al., 2002). Entretanto, apesar de um grande esforço de pesquisa, ainda não foi

possível provar essa conjectura.

Não foi publicada uma conjectura equivalente para qualquer variante do PCE

Bidimensional, mas o autor desta tese desconhece a existência de alguma instância que mostre

que ela não é verdadeira.

3.2 PROBLEMA DE CORTE BIDIMENSIONAL GUILHOTINADO RESTRITO

O PCBGR consiste em determinar a melhor forma de se gerar uma quantidade de

itens menor ou igual a uma demanda pré-estabelecida, realizando cortes ortogonais do tipo

Page 34: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

33

guilhotinado em um objeto também retangular e de dimensão insuficiente para atender toda a

demanda. Diferentemente do problema já apresentado, o PCBGR é abordado na literatura

como uma seleção de itens para um objeto.

Seja o objeto (C, L), de comprimento C e largura L, n itens com demanda di e

dimensões fixas pi = (ci, li), com i = 1,...,m. Uma solução ótima do PCBGR consiste em

determinar o melhor arranjo destes itens, que não extrapolem as dimensões do objeto, nem

apresentem superposição dos mesmos, por meio de cortes guilhotinados, respeitando os

limites di. Então, esta seleção de itens, que atribui o maior somatório de utilidade a um padrão

de corte restrito, pode ser descrito pelo seguinte modelo analítico.

[ ]

m

i ii=1

i

t

1 m

Max v y

s.a: é um padrão viável (3.3)

y 0

y , .

e

.., y

Inteiro≥

Onde:

� yi é a variável que representa o número de itens i produzido no padrão de corte;

� vi é a constante que indica o valor de utilidade do item i.

A viabilidade de um padrão de corte depende das restrições geométricas e

operacionais envolvidas em cada problema. Diante da dificuldade de se apresentar uma

formulação que utiliza cortes guilhotinados não estagiados para o PCBGR, são desenvolvidos

nos próximos Capítulos algoritmos primais e duais, utilizando as técnicas GRASP, PD e PI,

para a resolução do problema supracitado, com estratégias que se distinguem pela forma

como é determinado o valor de utilidade e a permissão por rotação dos itens.

3.3 REVISÃO BIBLIOGRÁFICA

Diversos pesquisadores têm se dedicado a buscar soluções para os problemas de

corte de estoque. Alguns trabalhos, referindo-se ao problema abordado serão citados seguindo

uma evolução cronológica.

Em trabalhos pioneiros, Gilmore e Gomory (1961, 1963) propuseram o

procedimento Geração de Colunas (GC) para obtenção de soluções aproximadas com garantia

de qualidade para o PCE Unidimensional. Para a resolução eficiente do subproblema da

mochila (equivalente ao problema de corte unidimensional), Gilmore e Gomory apresentaram

em 1961, uma PD e, em 1963, um algoritmo de enumeração lexicográfica.

Gilmore e Gomory (1965) trataram do PCEBG restrito a dois e três estágios aplicado

ao corte de rolos de papel. Nesse trabalho, o subproblema de corte é decomposto em duas

Page 35: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

34

etapas que são resolvidas pelo algoritmo lexicográfico. Na primeira etapa, são produzidas

faixas ótimas, maximizando o valor dos itens que são encaixados em uma faixa com largura lj

(lj ≤ L), e na segunda etapa, as faixas são selecionadas e arrumadas em um retângulo (C, L),

com o intuito de gerar um padrão de corte com maior valor possível. Com respeito à geração

de padrões em dois ou três estágios, em dois estágios é imposto que os itens pertencentes às

faixas tenham larguras iguais, e em três estágios é necessário apenas que a largura dos itens

que compõem a faixa (C, lj) não seja superior à largura lj da faixa.

Já em Gilmore e Gomory (1966), foi apresentada uma rotina fundamentada em PD,

que gera padrões guilhotinados para o PCE Bidimensional k-estagiado. Como ainda ocorre, a

PD apenas pode ser aplicada de forma eficiente nos casos em que o número de vezes que um

item pode ser produzido em um padrão de corte não está limitado, ou seja, são problemas

irrestritos.

Herz (1972) propôs uma alteração na PD apresentada por Gilmore e Gomory (1966),

redefinindo as funções recursivas para determinar o melhor padrão de corte na resolução do

PCBGI. Segundo Oliveira e Ferreira (1993), as melhorias feitas por Herz (1972) e

posteriormente por outros pesquisadores não compensam o acréscimo de dificuldade na

implementação desses algoritmos de PD, nem suprime o verdadeiro problema do algoritmo de

Gilmore e Gomory, ou seja, continuam não sendo praticáveis para instâncias de médio ou

grande porte do problema. Como constatado a seguir no presente trabalho, isso não é mais

verdade. Atualmente, algoritmos de PD são capazes de resolver bem instâncias com

dimensões bastante razoáveis.

Utilizando um algoritmo de busca em árvores, que emprega uma rotina baseada no

problema de transporte, Christofides e Whitlock (1977) sugeriram um método exato para

resolução do PCBGR que utiliza PD junto a um procedimento para a avaliação de nós. Neste

caso, cada nó determinado por um conjunto de itens cortados, a localização do próximo corte

a ser efetuado e os ramos da árvore são definidos com as condições impostas para realização

de um corte guilhotinado.

Wang (1983) apresenta dois métodos combinatórios que geram padrões de corte a

partir de uma sequência de construções horizontais e verticais em estruturas resultantes da

composição dos itens requeridos. Estas estruturas são produtos do agrupamento dos itens na

horizontal ou na vertical. Com a finalidade de diminuir o número de subconjuntos de

estruturas armazenados, adota-se um limite para o percentual de perda aceitável em cada

subconjunto. Desta forma, as abordagens heurísticas propostas nesse trabalho são clássicas na

literatura do PCBGR.

Page 36: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

35

Beasley (1985) propôs uma formulação baseadas em PD para o PCBGI que,

diferentemente das propostas feitas por Gilmore e Gomory (65) e, posteriormente, por

Christofides e Whitlock (1977), não restringe o número de estágios no padrão de corte. Essa

fórmula de recorrência é de grande importância no desenvolvimento dos algoritmos descritos

neste trabalho para o PCEBG e, portanto, será apresentada de forma mais detalhada no

Capítulo 5.

Oliveira e Ferreira (1990) introduzem modificações no algoritmo desenvolvido por

Wang, melhorando o desempenho. O algoritmo Wang Modificado (MWA) é o resultado de

uma alteração no nível de aspiração, isto é, no critério de rejeição de soluções indesejáveis.

Desta forma, o algoritmo avalia a perda associada a cada solução parcial construída (padrão

embrionário). Caso este valor seja maior que o limite estabelecido, a solução parcial é

rejeitada.

O PCBGI é tratado por Morabito, Arenales e Arcaro (1992) adotando a representação

grafo E/OU, apresentada anteriormente em Morabito et al. (1989), para construção de

soluções viáveis do referido problema. Um percurso completo no grafo supracitado representa

uma sequência de cortes guilhotinados (arcos) a ser efetuada no objeto original, produzindo

novos retângulos (nós) de forma a gerar uma solução viável para o problema. O caminho a ser

escolhido é aquele que maximiza o valor dos itens gerados e, portanto, representa o melhor

padrão de corte produzido. Nesse trabalho, a proposta de uma busca híbrida, combinando as

estratégias clássicas de busca depht-first e hill-climbing com procedimentos heurísticos

específicos, conseguem diminuir significantemente os branchings e, em consequência, o

tempo de execução.

Um procedimento de busca em grafos E/OU invertido foi apresentado por Alvarenga

e Daza (1992) para o PCBGR. A composição entre retângulos, tal como empregado no

algoritmo de Wang, foi representada por um grafo E/OU invertido, sendo que cada estrutura

equivale a um nó e cada agrupamento entre as estruturas representa um arco. Os nós são

agrupados dois a dois para gerar um terceiro. Assim, um par de nós dá origem a dois novos

nós considerando a geração de um agrupamento horizontal e um vertical. Quando comparado

ao algoritmo Wang Modificado, apresentou vantagens, tanto em relação à memória requerida

como em número de operações.

Os algoritmos heurísticos Busca Tabu e Simulated Annealing são apresentados por

Amaral (1994) para tratar o PCBGR. Com o objetivo de produzir padrões, de uma forma

ótima, esta abordagem permite aceitar padrões de corte inviáveis como soluções na busca do

melhor padrão. Sendo assim, uma penalidade é inserida na função objetivo, de forma a

Page 37: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

36

conduzir o procedimento para uma solução viável. Para ilustrar a efetividade dos algoritmos

propostos, foram apresentados resultados computacionais, descrevendo seus respectivos

desempenhos para alguns exemplos gerados aleatoriamente e outros extraídos de trabalhos

considerados na literatura. As instâncias, assim como os resultados apresentados pelos

algoritmos Busca Tabu e Simulated Annealing, foram utilizadas para validar a versão original

do algoritmo G2D (VELASCO, 2005), que será abordada no Capítulo 4.

Christofides e Hadjiconstantinou (1995) apresentam algoritmo de busca em árvores

para resolução do PCBGR, que é um melhoramento do algoritmo proposto por Christofides e

Whitlock (1977). Esse algoritmo exato diminui o espaço de soluções a ser examinado,

utilizando um limite superior proveniente de uma relaxação do espaço de estados da

formulação de PD para o problema. Como o limite superior dessa PD relaxada depende do

vetor de pesos q, um algoritmo inspirado no método do subgradiente foi proposto para obter

bons pesos. Os resultados obtidos indicam que este procedimento executa razoavelmente bem

problemas de porte médio e apresenta um desempenho computacional bem superior à

proposta de Christofides e Whitlock.

Em Daza, Alvarenga e Diego (1995) foi proposto um algoritmo exato para tratar o

PCBGR. Uma generalização dos algoritmos apresentados por Wang (1983) e Oliveira e

Ferreira (1990) foi usada para definir o algoritmo AAO*, que é um método de busca sobre

grafos E/OU aditivo. Esses grafos são usados para representar uma combinação entre as

estruturas, garantindo a viabilidade do padrão a ser gerado. O algoritmo AAO* usa

informação futura para orientar a busca no espaço de soluções. Para isto, uma função é

definida como a medida aproximada da perda futura associada a uma solução parcial.

Fazendo uso dessa função, denominada função heurística, é possível analisar várias

alternativas percorrendo o domínio do problema parcialmente. Esse método é um resultado

importante porque, por meio de uma representação adequada, pode ser usado não somente

para resolver o PCBGR, mas também resolver outros problemas tão difíceis.

Uma abordagem em grafo E/OU para o PCBGR estagiado foi proposta por Morabito

e Arenales (1996). Essa proposta consiste em representar padrões de corte como caminhos

completos no grafo E/OU, onde os nós representam os retângulos provenientes do objeto e os

arcos representam os cortes guilhotinados, respeitando o número máximo de estágios. Além

do fato da abordagem em grafo E/OU poder controlar restrições importantes, esse

procedimento pode ser facilmente estendido para resolver o Problema de Empacotamento

Tridimensional.

Page 38: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

37

Em um trabalho pioneiro, Vieira Neto (1999) utilizou a técnica GRASP na resolução

do PCE Unidimensional. Como base para o desenvolvimento do algoritmo GRASP, foi

utilizada a técnica heurística First Fit Decreasing (FFD). Na implementação da fase de

construção do algoritmo proposto por Vieira Neto, foi criada a estratégia de compor a Lista

Restrita de Candidatos aplicando o parâmetro de aleatoriedade ao valor dado por uma função

gulosa, que retorna o comprimento do maior item com demanda não atendida. Utilizando

dados de problemas reais e da literatura, foram executados testes computacionais que

permitiram a comparação entre a FFD e a GRASP. Demostrando assim, a eficiência do

algoritmo GRASP na otimização de cortes unidimensionais.

Cung, Hifi e Le Cun (2000) desenvolveram um algoritmo Branch-and-Bound, que é

uma nova versão do algoritmo proposto por Hifi (1997a) para o PCBGR. Para melhorar o

desempenho do algoritmo, foi aumentado o limite inferior inicial, diminuindo inicialmente o

espaço de busca. Também se tentou aperfeiçoar o limite superior efetuado a cada nó

desenvolvido na árvore, aplicando algumas combinações simples e eficientes. Além disso,

foram introduzidas novas estratégias simétricas usadas para negligenciar alguns padrões de

corte duplicados.

Inspirados na busca de um melhor desempenho computacional dos métodos de busca

orientada, Parada, Pradenas e Solar (2000) sugeriram um método híbrido para resolução do

PCBGR e, também, da variante não guilhotinada. O algoritmo reuniu elementos construtivos

dos métodos de busca informada e elementos evolutivos dos algoritmos genéticos. A proposta

consiste em utilizar ramificações reguladas na geração dos nós intermediários, armazenando

as populações de nós que evoluíram segundo os princípios envolvidos nos algoritmos

genéticos.

Em Alvarez-Valdés, Parajón e Tamarit (2002a), foi proposto um sofisticado

algoritmo Busca Tabu (TS500), para tratar instâncias de grande porte do PCBGR, que obtém

resultados de alta qualidade em tempos computacionais moderados. Também foram

apresentados mais dois algoritmos, um GRASP puro muito rápido que retorna bons resultados

e outro que utiliza a GRASP com Path Relinking (GR/PR), tanto para problemas restritos

como irrestritos. Para auxiliar na construção dos padrões de corte, foram propostos dois

algoritmos heurísticos, baseados em limites superiores simples (BK1 e BK2) que são obtidos

resolvendo um problema de mochila. A fase de melhoria está focalizada na fusão de cada

retângulo desperdiçado, isto se possível, com um item adjacente, para criação de um novo

retângulo que poderia ser cortado com maior valor. Em tal processo, dois retângulos são

consideramos adjacentes se eles tiverem um lado em comum. O critério de parada utilizado

Page 39: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

38

pelo algoritmo GRASP é um determinado número de iterações sem aperfeiçoar a melhor

solução conhecida. Os resultados computacionais serão explorados no Capítulo 4 para fins de

comparação com a versão reativa do algoritmo G2D.

O estudo computacional apresentado por Alvarez-Valdés, Parajón e Tamarit (2002b)

considerou o PCEBG com múltiplos objetos sendo abordado pela técnica GC, onde a cada

iteração um padrão de corte é obtido como solução de um subproblema. Na resolução do

subproblema foi utilizada a técnica de PD proposta por Beasley (1985) e, também, três

heurísticas baseadas nas metodologias GRASP e Busca Tabu. Para obter a solução inteira a

partir da solução ótima do PL Mestre, segundo o clássico processo de Gilmore e Gomory,

foram considerados três procedimentos: arredondamento para cima, truncamento na árvore

Branch-and-Bound e a solução do problema residual. Os resultados demostraram que as

melhores soluções foram obtidas com a PD de Beasley (1985), com considerável custo

computacional.

Vieira Neto (2004) apresentou três algoritmos baseados na técnica GRASP, sendo

que dois foram desenvolvidos com a metodologia GRASP com filtro, para o PCE

Unidimensional. Esse trabalho teve como escopo avaliar a independência entre as soluções

finais e as soluções iniciais construídas, assim como a influência do parâmetro de

aleatoriedade nas soluções finais. Os algoritmos foram testados computacionalmente,

utilizando instâncias geradas aleatoriamente e instâncias práticas retiradas da indústria. Os

testes da GRASP com filtro apresentaram resultados superiores aos obtidos pela heurística

FFD.

Hifi (2004b) propõe um algoritmo híbrido que utiliza a técnica hill-climbing de busca

em profundidade combinada com alguns procedimentos baseados em PD para tratar o

PCBGR, nos casos com e sem peso conferido aos itens. Com o limite inferior calculado a

partir da resolução de uma série de problemas da mochila, para construção das faixas

horizontais e verticais, os autores afirmam que a aplicação de estratégias hill-climbing

promovem ganho computacional em tempo e qualidade. Os resultados computacionais foram

superiores aos mostrados em Alvarez-Valdés et al. (2002a).

Com a metodologia GRASP sendo utilizada na composição de faixas horizontais e

verticais do padrão de corte, o algoritmo GRASP-2D (G2D) foi proposto por Velasco (2005)

para resolver simultaneamente o PCBGR e o PCEBG, no caso não estagiado, sem peso e

admitindo a rotação dos itens. Com o intuito de validar a heurística proposta, as soluções dos

testes realizados foram comparadas as soluções produzidas com algoritmos Busca Tabu e

Simulated Annealing, propostos por Amaral (1994) para resolver PCBGR. Os resultados

Page 40: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

39

foram bastante significativos, demonstrando que a GRASP pode ser aplicada com sucesso

para o PCBGR.

Cui (2007) apresenta um algoritmo que combina as técnicas de recursão com a

abordagem Branch-and-Bound para resolução do PCBGI sem rotação, retornando a solução

denominada padrão SB (simple block). Inicialmente é selecionado um item denominado

principal, colocado no canto inferior esquerdo do objeto. Sendo que, a cada corte no objeto é

produzida apenas uma faixa SB. Adota-se um limite superior externo para podar alguns ramos

pouco promissores durante o processo de busca. Os resultados são obtidos em tempos

computacionais razoáveis e indicaram que o algoritmo é eficiente.

Chen (2008) apresenta um algoritmo heurístico recursivo para o PCBGR sem

rotação. Com uma estratégia que consiste em dividir o objeto em subretângulos menores,

efetuando cortes horizontais ou verticais, a partir de cada item selecionado e posicionado no

canto inferior esquerdo. O algoritmo utiliza como limite superior o valor da melhor solução

do PCBGI, obtida com o algoritmo recursivo apresentado por Cui (2007). Os resultados

computacionais em instâncias da literatura foram satisfatórios na comparação com a Busca

Tabu proposta por Alvarez-Valdés et al. (2002a) e o híbrido TDH2 de Hifi (2004b).

Cintra, Miyazawa, Wakabayashi e Xavier (2008) apresentou um artigo que trata das

variantes do PCBGI, com e sem limitação de estágios, do PCEBG considerando um único

objeto e múltiplos objetos e o problema 1,5 dimensional, conhecido na literatura como strip

packing, todos admitindo também a rotação dos itens. Em destaque, a partir de uma

modificação na fórmula de recorrência proposta por Beasley (1985) que, juntamente com os

pontos de discretização definidos por Herz (1972), propuseram o algoritmo Dynamic

Programming (DP), que confirmou sua eficiência ao produzir a solução ótima de uma

instância clássica do PCBGI até então em aberto. O algoritmo DP é de grande importância no

presente trabalho e será apresentado com mais detalhes no Capítulo 5. Considerado uma

importante referência da literatura do PCEBG com um objeto, os resultados obtidos com os

algoritmos GC propostos para este problema são confrontados no presente trabalho.

Morabito e Pureza (2010) apresentam um procedimento heurístico que emprega PD e

busca em grafo E/OU para resolução do PCBGR, retratando as variantes que os itens podem

ou não ter seu valor igual à medida de sua área. O método consiste em combinar a formulação

dinâmica proposta por Christofides e Hadjiconstantinou (1995), com a abordagem de busca

em grafo E/OU e uma heurística de viabilização para produzir padrões de corte não estagiado.

O excelente desempenho desse algoritmo foi comprovado a partir das comparações com os

algoritmos propostos por Fayard et al. (1998), Alvarez-Valdés et al. (2002a) e Hifi (2004b) e

Page 41: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

40

dos certificados de otimalidade para as respectivas instâncias teste. Além disso, tais resultados

computacionais são utilizados neste trabalho com o propósito de validar as respectivas

versões propostas dos algoritmos RG2D e X2D.

Em Silva, Alvelos e Carvalho (2010), para o PCEBG limitado a dois e três estágios,

foi proposto um modelo de PI. Em tal modelo, considerado uma extensão do “one-cut model”

proposto por Dyckhoff (1981) para o PCE Unidimensional, as colunas correspondem aos

possíveis cortes no objeto e as respectivas variáveis representam o número de vezes que o

corte é realizado. Um algoritmo ficou responsável por fornecer como dado de entrada do

modelo um conjunto com todos os cortes possíveis para o modelo. Nessa proposta,

obtiveram-se os ótimos da maioria das instancias, limitando-se o tempo de execução em duas

horas, também mostrou eficiência quando comparado com os modelos de propostos por Lodi

e Monaci (2003) e Puchinger e Raidl (2007), para os casos de dois e três estágios, nesta

ordem.

Furini, Malaguti, Durán, Persiani e Toth (2012) consideraram o PCEBG, onde os

itens são obtidos a partir de cortes, em dois estágios, realizados em objetos de tamanhos

diferentes. Nesse trabalho, foi proposto um algoritmo heurístico baseado na técnica GC, com

o subproplema sendo tratado como um Problema da Mochila Bidimensional com cortes

guilhotinas em dois estágios. Para resolução do problema da mochila supracitado, os autores

evidenciam a definição de um modelo de PIM, assim como um procedimento heurístico

baseado em PD. Os resultados computacionais, para os casos com e sem rotação dos itens,

demostraram a eficácia da proposta quando comparados com Cintra et al. (2008).

Em Dolatabadi, Lodi e Monaci (2012), são apresentados dois algoritmos exatos para

o Problema da Mochila Bidimensional Guilhotinada sem rotação. O algoritmo A1 encontra as

melhores soluções em recursões que fazem busca exaustiva no espaço de soluções.

Entretanto, não é completo porque precisa de um limite inferior e outro superior, ambos

provenientes de algum algoritmo externo. Assim, estes limitantes são tidos como dados de

entrada nesse algoritmo. Por exemplo, nas instâncias de grande porte e indicadas pela sigla

APT, os respectivos limites são encontrados em (HIFI, 2004b) e (CHEN, 2008). Nas demais

instâncias teste, uma heurística aleatorizada de múltiplas descidas baseada no método FFD

obtém o limite inferior e o superior é dado pelo menor valor entre os valores do padrão ótimo

não guilhotinado e do irrestrito. Esse algoritmo exato resolve a maioria das instâncias

clássicas de forma bem rápida, mas pode não melhorar seu limite inferior em outras. É

importante destacar que alguns dos seus melhores resultados são comparados com os

algoritmos propostos RG2D e X2D.

Page 42: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

41

Furini, Malaguti e Thomopulos (2016) propuseram um algoritmo para o Problema da

Mochila Bidimensional Guilhotinada não estagiado em que os cortes são modelados em PIM.

Nesse modelo, cada decisão de corte é representada pelo terno ordenado (q, j, o), onde q é à

distância do canto inferior esquerdo, de um objeto ou subretângulo de tipo j, no qual um corte

com orientação o é realizado. Sua função objetivo determina o valor de utilidade total dos

itens produzidos e o conjunto de restrições impõe: que o número de vezes que determinado

subretângulo é cortado não exceda o número de vezes que o mesmo subretângulo é obtido em

outros subretângulos; o objeto é usado uma única vez; e a demanda dos itens não seja

excedida. O modelo tem complexidade pseudo-polinomial, mas é apresentada uma discussão

sob quais condições o número de variáveis pode ser reduzido.

No Quadro 3.1 encontra-se uma síntese dos artigos revisados que tratam as variantes

evidenciadas do Problema de Corte de Estoque. Com o mesmo propósito, o Quadro 3.2

designa-se aos trabalhos que abordam os casos em destaque do Problema de Corte

Bidimensional. Essas descrições consideram os autores e a ordem cronológica dos trabalhos,

explicitando as principais técnicas que contribuíram na resolução dos respectivos Problemas

de Corte e Empacotamento.

QUADRO 3.1 – Artigos Revisados do Problema de Corte de Estoque.

Autores Técnicas Problemas

Gilmore e Gomory (1961) GC e PD PCE

Unidimensional

Gilmore e Gomory (1963) GC e Enumeração

Lexicográfica PCE

Unidimensional

Gilmore e Gomory (1965) GC e Enumeração

Lexicográfica PCEBG

Gilmore e Gomory (1966) GC e PD PCEBG

Herz (1972) Busca em Árvore, PD e

Heurística PCEBG

Wang (1983) Combinatória e Heurística PCEBG

Vieira Neto (1999) Metaheurística PCE

Unidimensional

Alvarez-Valdés et al. (2002b) GC, Branch-and-Bound,

PD e Metaheurística PCEBG

Vieira Neto (2004) Metaheurística PCE

Unidimensional Velasco (2005) Metaheurística PCEBG

Cintra et al. (2008) GC e PD PCEBG

Silva et al. (2010) PI PCEBG

Furini et al. (2012) GC, PD, PIM e Heurística PCEBG

Page 43: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

42

QUADRO 3.2 – Artigos Revisados do Problema de Corte Bidimensional.

Autores Técnicas Problemas

Christofides e Whitlock (1977) Busca em Árvore e PD PCBGR

Wang (1983) Combinatória e

Heurística PCBGR

Beasley (1985) PD e Heurística PCBGI

Morabito et al. (1989) Busca em Grafos e

Heurística PCBGI

Oliveira e Ferreira (1990) Combinatória e

Heurística PCBGR

Morabito et al. (1992) Busca em Grafos e

Heurística PCBGI

Alvarenga e Daza (1992) Busca em Grafos,

Combinatória e Heurística PCBGR

Amaral (1994) Metaheurística PCBGR

Christofides e Hadjiconstantinou (1995) Busca em Árvore e PD PCBGR

Daza et al. (1995) Busca em Grafos,

Combinatória e Heurística PCBGR

Morabito e Arenales (1996) Busca em Grafos e

Heurística PCBGR

Cung et al. (2000) Branch-and-Bound, PD e

Heurística PCBGR

Parada et al. (2000) Busca em Grafos e

Metaheurística PCBGR

Alvarez-Valdés et al. (2002a) Metaheurística PCBGR/PCBGI

Hifi (2004b) Busca em Grafos, PD e

Heurística PCBGR

Velasco (2005) Metaheurística PCBGR

Cui (2007) Estrutura Recursiva e Branch-and-Bound

PCBGI

Chen (2008) Estrutura Recursiva e

Heurística PCBGR

Cintra et al. (2008) PD PCBGI

Morabito e Pureza (2010) Busca em Grafos, PD e

Heurística PCBGR

Dolatabadi et al. (2012) Estrutura Recursiva e

Heurística PCBGR

Furini et al. (2016) PIM PCBGR

Page 44: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

43

4 AMPLIAÇÕES DO ALGORITMO G2D PARA O PCBGR

Admitindo que nem sempre é possível achar a solução ótima para um problema

fortemente NP-Difícil, certamente, a composição do padrão ótimo do PCBGR deve possuir

faixas otimizadas e um arranjo preciso dessas faixas. Em decorrência a essa dedução, provém

a ideia de implementar um algoritmo sob forte influência da metodologia GRASP que atua

diretamente no processo de formação e organização de faixas guilhotinas do padrão de corte.

Originalmente chamado de GRASP-2D (G2D), o presente capítulo descreve a

evolução deste algoritmo especificando as propostas de melhorias implementadas que

culminaram nas versões dos algoritmos G2D Reativo para resolução das variantes do PCBGR

que combinam a seguintes características: quando o valor dos itens está associado

exclusivamente a sua medida de área (sem peso) ou sem essa distinção (com peso) e com

proibição ou permissão destes itens sofrerem uma rotação de 90º em torno de seus eixos de

simetria.

Na seção seguinte, a metodologia GRASP recebe o devido destaque e são

apresentadas as definições essenciais na implementação dos algoritmos propostos.

4.1 METAHEURÍSTICA GRASP

A metodologia Greedy Randomized Adaptive Search Procedure (GRASP), surgida

na década de 80 e desenvolvida por Feo e Resende (1989), é essencialmente um procedimento

mult-start, em que a cada iteração tem-se a combinação de uma heurística construtiva com

uma de busca local. O método GRASP é um procedimento iterativo probabilístico que atua

por amostragem em um espaço de soluções restrito. A cada iteração é gerada uma solução de

forma míope, aleatória e adaptativa que será refinada por uma busca local, sendo a melhor

solução global mantida como resultado final. Assumindo um problema de maximização, o

pseudocódigo genérico GRASP é apresentado como segue.

Algoritmo GRASP( ) 1. melhorSolução ← -∞; 2. Enquanto (Critério de parada não satisfeito) faça 3. solução ← ConstruçãoGulosaAleatória( ); 4. solução ← BuscaLocal (solução); 5. Se valor(solução) > valor( melhorSolução) então melhorSolução ← solução; 6. Retorna (melhorSolução);

Fim GRASP

Entre as linhas 2 e 5 temos um conjunto de instruções que são executadas

repetidamente até que uma condição de parada seja satisfeita. A fase de construção da

Page 45: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

44

GRASP é indicada na linha 3, enquanto a linha 4 é a fase de busca local, que encontra a

melhor solução dentro de uma certa vizinhança da solução de entrada gerada pelo construtivo.

Caso a busca local tenha obtido alguma melhoria na solução corrente, a solução é atualizada

na linha 5. Todo esse processo pode ser interrompido definindo-se um número máximo de

iterações, determinando um tempo máximo de execução ou quando certo valor de solução

procurada for obtido (FEO; RESENDE, 1995). Neste trabalho, opta-se como critério de

parada por um número máximo de iterações.

Como o algoritmo GRASP constitui-se a cada iteração de duas fases, a primeira de

construção e a segunda de melhoria, estas são descritas separadamente como segue.

4.1.1 FASE DE CONSTRUÇÃO DA GRASP

Basicamente, na primeira fase, uma solução viável é construída iterativamente

incluindo um elemento de cada vez. Esse elemento é retirado aleatoriamente de um conjunto

denominado de Lista Restrita de Candidatos (LRC). A LRC é composta pelos elementos mais

interessantes de uma lista constituída de candidatos a serem incluídos em uma solução,

segundo um critério guloso. Essa técnica de escolha permite que soluções distintas sejam

produzidas em cada iteração GRASP. A cada elemento incluído na solução, uma função

gulosa é adaptada. Essa função gulosa estima o benefício associado à inclusão de cada

elemento a uma determinada solução. O pseudocódigo descrito abaixo apresenta a fase de

construção da GRASP.

Algoritmo ConstruirSoluçãoGulosaAleatória ( ) 1. solução ← ∅; 2. Enquanto (solução estiver incompleta) faça 3. LRC ← CriaLRC ( ); 4. x ← SelecionaElementoAleatório (LRC); 5. solução ← solução ∪ {x}; 6. AtualizaFunçãoGulosa (x); 7. Retorna (solução);

Fim ConstruirSoluçãoGulosaAleatória

A construção iterativa de uma solução é iniciada na linha 1 do pseudocódigo. Os

comandos entre as linhas 3 e 6 são repetidos até que a solução seja construída. Na linha 3, a

lista restrita de candidatos é construída a partir de uma função gulosa. Um candidato de LRC

é selecionado ao acaso na linha 4 e acrescentado a solução na linha 5. Na linha 6, a função

gulosa é atualizada de acordo com o elemento incluído.

Um parâmetro α no intervalo [0,1] determina a quantidade de elementos incluídos no

LRC. Seja X um conjunto finito formado pelos elementos possíveis de serem incluídos na

solução, f: X → ℝ uma função gulosa que indica o valor de cada um desses elementos, ou

Page 46: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

45

seja, quanto à inclusão desse elemento beneficiaria o valor da solução parcial corrente, e

β = max {f(x); x ∈ X} o maior valor retornado pela função gulosa. O subconjunto LRC,

formado pelos melhores elementos de X, é determinado aplicando o parâmetro α ao valor β na

definição de um intervalo de valores como segue, LRC = {x ∈ X | α.β ≤ f(x) ≤ β}.

Para α = 1 se gera soluções totalmente gulosas e para α = 0 se produz soluções

totalmente aleatórias. Assim, o parâmetro α regula o grau de miopia e aleatoriedade da fase de

construção. Este é o principal parâmetro a ser ajustado no algoritmo GRASP original, pois se

a cardinalidade de LRC for pequena, a diversidade das soluções geradas também se constitui

pequena e, consequentemente, a probabilidade de escapar de um ótimo local de baixa

qualidade na fase de melhoria tende a diminuir. Já uma LRC que apresenta uma cardinalidade

grande, produz muitas soluções diferentes, aumentando a perspectiva de escapar de tal ótimo

local na fase melhoria. Entretanto, isto implica em um acréscimo considerável no número de

iterações com soluções ruins, com baixa probabilidade de melhorar a melhor solução

conhecida. Sendo assim, é imprescindível a análise sobre o valor assumido pelo parâmetro α

com respeito à qualidade das soluções encontradas, número de iterações utilizadas e

vizinhança explorada (FEO; RESENDE, 1995).

4.1.2 FASE DE MELHORIA DA GRASP

A segunda fase é um procedimento de busca local. As soluções construídas pela

primeira fase não são necessariamente de boa qualidade e quase sempre a busca local pode

melhorá-las. Determinada uma estrutura de vizinhança V para o problema Y, que gere um

subconjunto de soluções V(y) a partir de uma solução y do problema. A condição para que

uma solução y seja declarada como um ótimo local é não haver solução melhor em V(y). Na

tentativa de melhorar as soluções originadas na fase de construção, emprega-se o

procedimento de busca local, que examina o espaço de soluções mudando de uma solução

para outra vizinha. A eficiência desta fase está diretamente relacionada à qualidade das

soluções iniciais, a estrutura V e sua estratégia de busca local. A seguir é apresentado o

pseudocódigo de um procedimento básico de busca local para um problema Y sobre uma

vizinhança V para essa fase da GRASP:

Algoritmo BuscaLocal (solução) 1. Enquanto (solução não é localmente ótima) faça 2. Encontrar uma melhor solução y ∈ V(solução); 3. solução ← y; 4. Retorna (solução);

Fim BuscaLocal

Page 47: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

46

O laço iniciado na linha 1 é executado até encontrar um ótimo local para uma

vizinhança. A busca por soluções indicada na linha 2 é realizada através de movimentos, isto

é, modificações que transformam uma solução em outra pertencente a sua vizinhança. Caso

uma solução obtida na vizinhança seja melhor que a solução tratada, este vizinho passa a ser a

solução corrente na linha 3. A condição de parada deste procedimento é não haver solução

melhor que a solução atual, em sua estrutura de vizinhança.

4.1.3 GRASP REATIVO

O método GRASP Reativo provém do GRASP clássico e, basicamente, diferencia-se

na fase de construção, quando o parâmetro α é deliberado após uma fina calibragem feita a

partir de uma variação deste parâmetro no decorrer de algumas iterações. Com o intuito de

agregar qualidade às soluções construídas e, consequentemente, obter melhor desempenho na

fase de melhoria, executam-se as demais iterações com o valor do parâmetro α ajustado

(PRAIS; RIBEIRO, 2000).

4.2 ALGORITMO G2D ORIGINAL

Primeiramente, o algoritmo G2D foi proposto por Velasco (2005) e tratou

simultaneamente o PCBGR e o PCEBG, apenas na variante não estagiada, sem peso e com a

possibilidade de rotação dos itens. Fixando-se o parâmetro α e o número máximo de iterações,

a cada execução destas, uma solução do PCEBG é produzida, gerando-se um padrão de cada

vez e atualizando a demanda dos itens já relacionados para que não haja um excesso de

produção. Ao final, este algoritmo retorna além do padrão de corte de maior valor para o

PCBGR, com a função objetivo calculando o seu percentual de aproveitamento em relação à

área do objeto, uma solução de boa qualidade para o PCEBG (VELASCO et al., 2008). Os

resultados computacionais para o PCBGR se mostraram bastante promissores, em testes

realizados em instâncias de até 20 itens, comparados às heurísticas Busca Tabu e Simulated

Annealing (AMARAL, 1994), dando indicativas que o G2D poderia ser aplicado com sucesso

a esse problema.

É importante ressaltar na proposta original que a criação das faixas em um padrão de

corte baseia-se na metodologia GRASP, onde um item é escolhido da LRC na fase de

construção para dar origem a uma faixa horizontal e outra vertical. Os movimentos da fase

seguinte consideram apenas a altura ou o comprimento dos próximos itens a compor as

respectivas faixas horizontal ou vertical, e a escolha das faixas produzidas para integrar um

padrão considera o menor percentual de perda em relação a sua área. Os fundamentos

Page 48: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

47

necessários nessa implementação, assim como as distintas fases da GRASP, são apresentadas

nas subseções a seguir.

4.2.1 FUNDAMENTOS PARA IMPLEMENTAÇÃO DO ALGORITMO G2D

Considere o objeto retangular R = (C, L), de comprimento C e largura L, utilizado

para produzir itens também retangulares xi = (ci, li), pertencentes ao conjunto I, com as

dimensões ci ≤ C e pi ≤ L e demandas di previamente estabelecidas, com i = 1,...,m. Estes

elementos podem ser associados a pontos no plano cartesiano já que o objeto e os itens são

representados por pares ordenados. Em relação a um sistema de coordenadas cartesianas com

origem no canto inferior esquerdo de R, a execução de uma série de cortes guilhotinados

paralelos aos eixos coordenados, isto é, aos lados do objeto R, para produção dos itens xi,

definiria um padrão de corte para o PCBGR.

FIGURA 4.1 – Cortes Guilhotinados e Faixas Guilhotinas.

Se o item xi é obtido em R sem sofrer uma rotação de 90º, este é indicado por

pi = (ci, li). Quando posicionado no canto inferior esquerdo de R, esse dá origem a dois tipos

de faixas com a execução de cortes do tipo guilhotina sobre este objeto. Verifica-se na Figura

4.1(a) que uma faixa guilhotina horizontal FH = (C, li) é definida a começar de um corte

guilhotinado horizontal de largura li. Esse corte ainda determina um subretângulo

SR = (C, L-li) que deve ser utilizado, provavelmente, na definição de outras faixas guilhotina

do padrão. Já a Figura 4.1(b), ilustra uma faixa guilhotina vertical FV = (ci, L), obtida a partir

de um corte guilhotinado vertical, de comprimento ci em R. O outro subretângulo originado

com esse corte vertical, SR = (C-ci, L), também tem o propósito de ser aproveitado na

configuração das demais faixas do padrão de corte. Caso xi seja rotacionado, o item passa a

Corte Vertical

Item (ci, li)

Corte Horizontal

C

ci

li

SR

(a)

FH →

ci

li

C

SR L FV ↑

(b)

Page 49: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

48

ser designado por ri = (li, ci). Deste modo, as faixas guilhotinas FH = (ci, C) e FV = (li, L) e seus

respectivos subretângulos SR são definidos de forma análoga.

Diante disso, um padrão é distinguido pelo conjunto de faixas guilhotina que o

configura e pela maneira como essas faixas são arranjadas. Conforme observado na Figura

4.2, uma faixa guilhotina é constituída pelo agrupamento de peças na horizontal ou na vertical

e, ao posicionar os itens que dão origem a essas faixas sempre no canto inferior esquerdo de R

ou de SR, fica estabelecido um padrão de corte guilhotinado normal (CHRISTOFIDES;

WHITLOCK, 1977).

FIGURA 4.2 – Faixas Guilhotinas Horizontais e Verticais.

Outra questão importante a ser considerada é que se utiliza uma expressão definida

por caracteres alfanuméricos para descrever uma faixa guilhotina. As letras H e V são

empregadas ao executar faixas guilhotinas horizontal e vertical, nessa ordem. Os itens não-

rotacionados pi pertencentes a estas faixas são simbolizados por P e os itens rotacionados ri

por R. Por exemplo, na Figura 4.2, a expressão H3P1 representa uma FH contendo três itens

p1. Ainda na Figura 4.2, a expressão H3R1 indica que a FH possui três itens r1. Da mesma

forma, uma FV composta por quatro itens p2 é indicada pela expressão V4P2. Assim, uma FV

com quatro itens r2, sua expressão é V4R2 e, também, pode ser conferida na Figura 4.2.

Observe que os caracteres começam sempre por H ou V e se apresentam seguidos de: um

dígito representando a quantidade de itens incluídos, um caractere P ou R indicando a

orientação destes itens e outro dígito, informando o índice deste item inserido.

Para descaracterizar a homogeneidade da faixa, esta deve apresentar outros itens

além do item comprometido na sua geração. Neste caso, novas sequências de caracteres

alfanuméricos iniciadas por M são concatenadas as já formadas por H ou V. A presença desta

Faixas Guilhotinas Horizontais e Verticais

H3P1 P1

P1 P1

H3R1

R1 R1 R1

H3P1M3P2 P2 P2 P2 P1 P1 P1

V4R2

R2

R2

R2

R2 V4P2

P2

P2

P2

P2

Page 50: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

49

nova letra particulariza movimentos de melhoria distintos nessas faixas. Se a escolha do

próximo item a compor uma FH, quando comparado aos demais itens com demanda não

atendida e dimensões que não descaracterizem o corte guilhotinado nesta faixa, considera a

largura li deste item, essa melhoria é indicada pela letra M. A ocorrência dessa melhoria em

uma faixa guilhotina horizontal pode ser observada na Figura 4.2 e indicada pela expressão

H3P1M3P2. De forma análoga, considerando a grandeza comprimento ci decisiva na escolha

do próximo item a ser gerado em uma FV, a letra M assinala a efetivação dessa melhoria. Por

exemplo, é compreensível através da Figura 4.2 que uma faixa representada por V4R2M1R1

não inviabiliza algum corte guilhotinado e agrega valor a faixa originária V4R2.

Diante disto, um padrão de corte fica caracterizado pelas diferentes expressões

apresentadas por cada faixa guilhotina, considerando a ordem de registro dessas expressões.

Para exemplificar, a Figura 4.3 ilustra um padrão de corte com três faixas guilhotinas e três

estágios, que pode ser descrito pela sequência de caracteres H2P3M2R5M1P4M1P6M1R7

V2R2 H1P1.

FIGURA 4.3 – Padrão de Corte para o PCBGR.

O somatório das medidas de superfície improdutivas no objeto R define a perda no

padrão de corte e são categorizadas como perda interna e perda externa (WANG, 1983).

Quando um corte realizado em R impossibilita nova faixa guilhotina, a medida de área deste

subretângulo SR é denominada perda externa. Se determinada faixa guilhotina apresenta áreas

improdutivas, estas são apontadas como perda interna. Sendo assim, a perda total de um

padrão de corte equivale à soma das perdas externa e internas de suas faixas guilhotina. Para

G2

G1Ι

G2

G3Ι

Padrão de Corte

Perda Interna

Perda Externa

G3 G1

G3

G3

G3

G2Ι

G2Ι G2Ι G2Ι G2Ι G2Ι G2Ι

P3 P3 R7 R5 P4 R5

FH →

P6

FH →

P1 FV ↑

R2

R2

Page 51: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

50

exemplificar, ainda na Figura 4.3, são evidenciados os dois tipos de perda encontrados nos

padrões de corte.

Em resumo, uma solução para o PCBGR é definida por um conjunto de faixas em

um padrão de corte e representadas respectivamente por sequências de caracteres

alfanuméricos. A perda total encontrada na solução equivale à soma das perdas externas e

internas produzidas nas faixas guilhotina que a compõe. Nas seções seguintes, têm-se o

intuito de apresentar como são abordadas as duas fases características da metodologia GRASP

no algoritmo G2D.

4.2.2 FASE DE CONSTRUÇÃO DAS FAIXAS NO ALGORITMO G2D

Nessa fase é realizada a construção de faixas guilhotinas viáveis sobre um retângulo

S = (CS, LS), que pode ser tanto o objeto original R = (C, L) ou subretângulos residuais SR

gerados após o corte de faixas anteriores. Seja y um vetor solução m-dimensional atualizado

com a quantidade de cada item xi ∈ I na solução parcial corrente. O valor di - yi > 0 indica que

o item xi ainda possui demanda a ser atendida e credencia sua inclusão no padrão de corte

corrente. Com as medidas das faixas sendo definidas não somente pelas dimensões de S, mas

também pelo item xk escolhido aleatoriamente na LRC, destaca-se três elementos

fundamentais na concepção desta lista restrita:

i) A função gulosa ga: ℝ2 → ℝ, que associa a cada item xi um único valor g(xi) = ci.li

igual sua medida de área;

ii) O conjunto I constituído dos itens aspirantes a originar uma faixa, com |I| ≤ m e

atualizado se di - yi = 0;

iii) O critério guloso β = max {ga(x); x ∈ I} que retorna a medida de área do maior

item em I.

Dessa forma, LRC = {x ∈ I | α.β ≤ ga(x) ≤ β} apresenta os itens mais interessantes de

I, segundo valor de utilidade, e sua cardinalidade é diretamente influenciada pelo parâmetro α

∈ [0,1]. Em suma, uma seleção aleatória determina o item de LRC responsável por determinar

as dimensões nas faixas guilhotinas horizontal e vertical como segue.

A escolha aleatória de um item xk = (ck, lk) na LRC dá início ao processo de

construção das faixas FH = (CFH, LFH) e FV = (CFV, LFV) no S corrente. A primeira decisão

refere-se a determinação de uma orientação para produção de xk. Se apenas uma das

orientações pk ou rk puder ser obtido nas dimensões de S, xk = pk ou xk = rk, exclusivamente.

Se tanto pk quanto rk couberem em S, um novo sorteio estabelece qual dessas orientações deve

definir xk. Caso não seja viável a geração de xk, a LRC é atualizada sem este item e o sorteio é

refeito.

Page 52: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

51

A seguir, são construídas duas faixas guilhotinas viáveis FH = (CS, lk) e FV = (ck, LS),

uma através de um corte horizontal e outra a partir de um corte vertical. Com os vetores m-

dimensionais yH e yV sendo atualizados pelas respectivas quantidades dos itens presentes

nestas faixas, são calculados o número yHk = min{dk-yk, [[CS/ck]]} de itens xk a serem obtidos

na faixa FH e yVk = min{dk-yk, [[LS/lk]]} em FV. Também, nas respectivas faixas, são

determinados os subretângulos residuais SH = (CS-yHk.ck, lk) e SV = (ck, LS-yVk.lk),

caracterizados de perda interna, e seus indicadores percentuais de qualidade dados por

perdaint(FH) = (ga(FH)-ga(xk).yHk)/ga(FH) e perdaint(FV) = (ga(FV)-ga(xk).yVk)/ga(FV). O

pseudocódigo da fase de construção das faixas no algoritmo G2D, denominado

ConstruçãoFaixa, é especificado como segue.

Procedimento ConstruçãoFaixa (I, y, α, S) 1. yH = yV = 0, FH = FV = 0, SH = SV = 0; 2. β ← max {ga(x); x ∈ I}; 3. LRC ← {x ∈ I | α.β ≤ ga(x) ≤ β}; 4. Escolha, aleatoriamente, xk de LRC que mantenha a viabilidade em S; 5. Determine a orientação de xk e construa FH e FV; 6. Atualize yH, SH, yV e SV; 7. Retorna (FH, yH, SH, FV, yV, SV);

Fim ConstruçãoFaixa

Se as faixas homogêneas construídas possuem perda interna suficiente para produzir

algum outro item xj de I, as grandezas cj e lj são analisadas nas dimensões dos subretângulos

SF e SV para providenciais melhorias. Ao final, o procedimento de melhoria detalhado na

subseção seguinte retorna à faixa com menor percentual de perda interna.

4.2.3 FASE DE MELHORIA DAS FAIXAS NO ALGORITMO G2D

No procedimento de melhoria, faixas guilhotinas FH e FV, inicialmente construídas,

são tratadas com o propósito de minimizar a perda interna em ambas e, consequentemente,

obter um melhor aproveitamento dos respectivos subretângulos SH = (CSH, LSH) e SV = (CSV,

LSV) correntes. Para intensificar este processo simbolizado com caractere M, dois conjuntos

BH e BV são criados com a finalidade de acelerar as ações dessa etapa, excluindo movimentos

desnecessários que acarretariam em faixas guilhotinas infactíveis ou fariam descaracterizar o

corte do tipo guilhotinado. Sendo assim definidos

BH = {xi ∈ I | (di-yHi > 0) e ((ci ≤ CSH e li ≤ LSH) ou (li ≤ CSH e ci ≤ LSH))} e

BV = {xi ∈ I | (di-yVi > 0) e ((ci ≤ CSV e li ≤ LSV) ou (li ≤ CSV e ci ≤ LSV))},

os itens pertencentes a BH, assim como os incluídos em BV, não apresentam dimensões que

ultrapassem as de SH e SV, nessa ordem, mantendo assim a viabilidade das faixas quando

Page 53: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

52

selecionados para executar melhorias. É importante destacar que no algoritmo G2D original é

permitida a inserção de itens rotacionados nos conjuntos em destaque.

Na faixa horizontal, este processo inicia-se com BH sendo constituído dos itens de I

com demanda positiva e que cabem no subretângulo de perda interna SH atual. Seja o item xj

selecionado neste conjunto por apresentar uma largura maior ou igual aos demais, pois em

caso de empate essa escolha é aleatória. Decerto que a quantidade de itens xj está diretamente

relacionada às dimensões de SH e a sua demanda atualizada, calcula-se o número

yHj = min{dj-yj, [[CSH/cj]]} destes itens a serem incluídos nesta faixa. A cada inclusão de yHj

itens de xj implica na atualização do subretângulo SH = (CSH-yHj.cj, LSH) e dos itens

pertencentes ao conjunto BH. Com o intuito de gerar um melhor aproveitamento da faixa FH,

este processo é repetido enquanto BH não for vazio.

Análogo ao BH, o conjunto BV é constituído pelos itens de I que, ao serem incluídos

no subretângulo SV corrente, não impossibilitariam a efetivação da faixa FV no padrão de

corte gerado. Entre os itens deste conjunto, um item xt também entra na composição da faixa

FV desde que apresente o maior comprimento entre os demais. Nesse caso, a quantidade

yVt = min{dt-yt, [[LSV/lt]]}de itens xt, a serem produzidos no subretângulo SV presente,

considera o mínimo entre a demanda existente e o piso do coeficiente LV/lt. Assim como

SV = (CSV, LSV-yVt.lt), o conjunto BV também é atualizado, até não existir mais item que

melhore o valor de utilidade da faixa FV.

Ao término desta fase, a faixa guilhotina que apresenta o menor percentual de perda

interna é incluída no padrão de corte. Os percentuais de perda interna destas faixas são

atualizados por perdaint(FH) = (ga(FH)-∑ g�(x).� � y�)/ga(FH) e perdaint(FV) = (ga(FV)-

∑ g�(x).� � y�)/ga(FV). Caso haja empate entre estes valores, a escolha da faixa a compor o

padrão de corte é aleatória. Além disso, o subretângulo residual da perda externa deve ser

atualizado de acordo com as dimensões da melhor faixa, isto é, SR = (CS, LS - LFH) ou SR = (CS-

CFV, LS). O pseudocódigo MelhoriaFaixa esboçado a seguir, representa a fase de melhoria das

faixas do algoritmo G2D original.

Procedimento MelhoriaFaixa (I, y, S, FH, yH, SH, FV, yV, SV) 1. Crie BH e BV; 2. Enquanto (|BH| ≠ 0) faça 3. Selecione xj de BH com maior largura, para usar “M”; 4. Atualize yH, SH e BH; 5. Enquanto (|BV| ≠ 0) faça 6. Selecione xt de BV com maior comprimento, para usar “M”; 7. Atualize yV, SV e BV; 8. Determine perdaintFmelhor = min {perdaint(FH), perdaint(FV)}; 9. Atualize y e S relacionado à perdaintFmelhor;

Page 54: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

53

10. Retorna (y, S); Fim MelhoriaFaixa

Nessa versão, a fase de melhoria ainda pode ser interpretada como continuação do

procedimento de construção das respectivas faixas FH e FV. Entretanto, os itens utilizados na

nova composição da faixa corrente não mais são retirados da LRC, contrapondo a

metodologia adotada. Sob outra perspectiva, se as faixas FH e FV são analisadas como vetores

de m-dimensonais e suas posições inicialmente preenchidas com as respectivas quantidades

do item escolhido na fase de construção apresentam-se fixas, qualquer simples atualização

destes vetores com estratégias diferentes da construção inicial já caracterizam um

procedimento de busca local.

4.2.4 GERAÇÃO DE PADRÃO DE CORTE NO ALGORITMO G2D

Um padrão de corte é obtido numa subrotina da primeira versão do G2D que inicia

com os procedimentos de construção e de melhoria das faixas guilhotinas sendo executados

em sequência e termina quando não houver mais item em I com demanda positiva que puder

ser produzido no S corrente, isto é, fazendo I = ∅. Com os parâmetros de entrada do

GeraPadraoCorte já declarados anteriormente, conforme descrito a seguir, este procedimento

retorna uma solução y do PCBGR e seu valor de utilidade total Zy = ∑ g�(x).� � y.

Procedimento GeraPadraoCorte (I, y, α, S) 1. Enquanto (|I| > 0) faça 2. Execute ConstruçãoFaixa (I, y, α, S); 3. Execute MelhoriaFaixa (I, y, S, FH, yH, SH, FV, yV, SV); 4. Atualize I; 5. Calcule Zy; 6. Retorna (y, Zy);

Fim GeraPadraoCorte

TABELA 4.1 – Instância de Christofides e Whitlock Adaptada.

Para exemplificar a geração de um padrão de corte rotacionado, a instância clássica

ChW1 de Christofides e Whitlock (1977), com o total de itens m = 7 e o objeto de dimensões

C = 15 e L = 10, é adaptada para a variante sem peso, isto é, o valor dos itens vi passa a

i di (ci, li) vi

1 1 (2, 1) 2 2 2 (3, 2) 6 3 2 (3, 3) 9 4 5 (3, 4) 12 5 3 (8, 2) 16 6 1 (3, 7) 21 7 2 (8, 4) 32

Page 55: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

54

corresponder à medida de sua área. Na Tabela 4.1, suas colunas trazem informações sobre

índice, demanda, dimensões e valor dos respectivos itens xi.

Adotando o parâmetro α = 0.1, primeiramente, assume-se I possuindo todos os 7

itens, os vetores y, yH e yV nulos e S = (15, 10). Inicia-se então a fase de construção, obtendo

β = 32 e LRC = {x2, x3, x4, x5, x6, x7}. Sendo o item x2 escolhido aleatoriamente em LRC,

uma nova escolha decide pela orientação p2 = (3, 2). A Figura 4.4 (a) apresenta as faixas

FH = (15, 2) e FV = (3, 10) iniciais, descritas a princípio por H2P2 e V2P2, ambas com a

quantidade de itens yH2 = yV2 = 2 determinada por sua demanda d2 = 2. Definidos, também, os

subretângulos SH = (15-6, 2) = (9, 2) e SV = (3, 10-4) = (3, 6), a fase de melhoria começa com

BH = {p5, r1} e BV = {p1, p3, p4, r1, r3}. Na melhoria da FH, a escolha do item r1 promove as

seguintes mudanças em yH1 = d1 = 1, SH = (9-1, 2) = (8, 2) e BH = {p5}. Essa última escolha

aconteceu porque r1 e p5 têm medidas iguais de largura. Como BH é unitário, isto indica que a

melhoria de FH continua com a inserção do item p5 e as atualizações são yH5 = [[8/8]] = 1,

SH = (8-8, 2) = (0, 2) e BH = ∅. Com BH vazio, dá-se início a melhoria na faixa FV e a escolha

do item p4 em BV resulta nas modificações em yV4 = [[6/4]] = 1, SV = (3, 6-4) = (3, 2) e

BV = {p1, r1}. Essa fase se encerra com a inclusão do item p1 e, consequentemente, com as

alterações yV1 = d1 = 1, SV = (3, 2-1) = (3, 1) e BV = ∅. A Figura 4.4 (a), também, ilustra as

modificações realizadas nas respectivas faixas pela fase de melhoria, H2P2M1R1M1P5 e

V2P2M1P4M1R1. Como perdaint(FH) = 0 é inferior a perdaint(FV) = 4/30 = 0.13, o vetor

solução y = y + yH e S = (15, 10-2) = (15, 8) e I = {x3, x4, x5, x6, x7} são atualizados com a

presença desta FH na composição do padrão de corte.

FIGURA 4.4 – Geração de Faixas Guilhotinas Horizontais e Verticais com Algoritmo G2D.

Geração de Faixas Guilhotinas

(a) (b)

Page 56: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

55

Para o subretângulo corrente S = (15, 8), mantém-se β = 32. Um sorteio na nova

LRC = {x3, x4, x5, x6, x7} define que o item x7, com orientação p7, é responsável pelas novas

faixas FH = (15, 4) e FV = (8, 8) e pela atualização dos vetores nulos yH e yV, modificando-os

em yH7 = [[15/8]] = 1 e yV7 = d7 = 2, além dos subretângulos SH = (7, 4) e SV = (8, 0). No

processo de melhoria da FH, o item p4 é selecionado em BH = {p3, p4, r3, r4, r6} por ter maior

largura. Isso acarreta em yH4 = [[7/3]] = 2, SH = (7-6, 4) = (1, 4) e BH = ∅. Observe na Figura

4.4 (b) a ilustração desses passos, indicados pelas sequências por H1P7M2P4 e V2P7, sem a

melhoria da FV, pois SV = (8, 0) resulta em BV = ∅. A inclusão da FV no padrão de corte se

deve ao seu valor de perda interna menor que perdaint(FH) = 4/60 = 0.07.

FIGURA 4.5 – Geração de Faixas Guilhotinas Horizontais e Verticais com Algoritmo G2D.

Posteriormente as atualizações de y = y + yV, S = (15-8, 8) = (7, 8) e I = {x3, x4, x5,

x6}, inicia-se a nova fase de construção, fazendo yH e yV nulos e calculando β = 21, para

construir a LRC = {x3, x4, x5, x6}. Sendo x4 escolhido na orientação p4, as respectivas

alterações em yH4 = [[7/3]] = 2 e yV4 = [[8/4]] = 2 produzem as faixas FH = (7, 4) e FV = (3, 8)

e suas perdas internas SH = (3, 0) e SV = (1, 4), conforme observado na Figura 4.5 (a). Com

BH e BV ambos vazios e a perdaint(FH) = 4/21 = 0.19, decide-se então pela FV com

perdaint(FV) = 0 para composição do agora padrão de corte H2P2M1R1M1P5 V2P7 V2P4.

Dessa forma, é necessário registrar os incrementos com as modificações em y = y + yV e

S = (7-3, 8) = (4, 8).

Esse processo finaliza com a escolha do item r5 na última LRC, e a decisão entre as

faixas indicadas por H2R5 e V1R5 se deu por sorteio, pois ambas possuem perdaint(FH) =

perdaint(FV) = 0. Nesse caso, o vetor nulo yH é atualizado na posição yH5 = [[4/2]] = 2 e

Geração de Faixas Guilhotinas

(a) (b)

Page 57: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

56

y = y + yH. Na Figura 4.5 (b) é possível verificar, com a sequência de decisões tomadas, que o

arranjo destas faixas produz o padrão de corte ótimo representado pelos caracteres

H2P2M1R1M1P5 V2P7 V2P4 H2R5.

4.2.5 ALGORITMO G2D

Sendo utilizado de forma concomitante na resolução dos problemas em destaque

PCBGR e PCEBG, ambos no caso não estagiado, sem peso e rotacionado, o algoritmo G2D

original inicia com o parâmetro α e o número de iterações maxiter pré-estabelecidos e sem

testes preliminares. Onde, a cada iteração, uma sequência de n padrões de corte é gerada,

atualizando sua demanda padrão a padrão, para compor uma solução Y = {y1, y2,..., yn} do

PCEBG. Ao final, o algoritmo, além de retornar o melhor padrão y* obtido para o PCBGR e

seu valor Zy*, produz uma solução de boa qualidade Y* para o PCEBG, com o total de objetos

utilizados ZY* para atender estritamente sua demanda. O pseudocódigo do G2D é apresentado

como segue.

Algoritmo G2D (α, maxiter) 1. Y* = ∅, ZY* = 0, y* = 0, Zy* = 0; 2. Para (Iter = 1, 2,..., maxiter) faça 3. Y = ∅, ZY = 0, n = 1; 4. I ← {x1,..., xm}; 5. Enquanto (|I| > 0) faça 6. �� = 0, S = R; 7. Execute GeraPadraoCorte (I, ��, α, S); 8. Se (Zy* < Zy) então 9. Atualize melhor solução do PCBGR, y* ← �� e Zy* ← Zy; 10. Atualize solução corrente do PCEBG, Y ← Y U{��} e ZY ← n; 11. Atualize I = {xi; di - ∑ ��

��� � > 0}e n ← n + 1;

12. Se (ZY * > ZY) então 13. Atualize melhor solução do PCEBG, Y* ← Y e ZY* ← ZY; 14. Retorna (Y*, ZY*, y*, Zy*);

Fim G2D

É importante ressaltar, ainda, que os percentuais de aproveitamento calculados nas

funções objetivo da versão original são equivalentes ao somatório do valor de utilidade de

cada item produzido na solução do PCBGR e ao total de objetos necessários no atendimento

da demanda do PCEBG, respectivamente. Isso acontece apenas na variante em que o valor do

item é sua medida de área, isto é, vi = ga(xi). Nesse caso, a melhor solução é aquela que

apresenta maior percentual de aproveitamento do objeto. Por exemplo, o padrão de corte

ilustrado na Figura 4.5 (b) apresenta aproveitamento total do objeto porque Zy* = ga(x1) +

2ga(x2) + 2ga(x4) + 3ga(x5) + 2ga(x7) = ga(R) = 150. Com as novas versões do algoritmo G2D

também abordando a variante que o valor do item pode distinguir da sua medida de área, é

Page 58: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

57

necessário que a formulação da função objetivo diferencie da proposta original, sendo

modificada para retornar o valor de utilidade total Zy = ∑ v.� � y, dos itens relacionados no

padrão de corte y.

4.3 ALGORITMOS G2Da e G2Dv

Em (VELASCO; UCHOA, 2014b) foram realizadas as primeiras modificações na

versão original que culminaram nos algoritmos G2Da e G2Dv. Estes novos algoritmos tratam

exclusivamente dos respectivos casos do PCBGR sem peso e com peso, ambos com

impedimento de rotação dos itens. A versão G2Da é usada quando o valor de utilidade vi,

associado a cada item xi, é igual a sua medida de área. Se o conjunto I possui algum item xi tal

que vi ≠ ci.li, a versão utilizada é chamada G2Dv. Basicamente, a distinção entre essas novas

abordagens consiste na maneira pela qual é determinado o valor de utilidade de cada item e na

formação da LRC. As diferentes estratégias e modificações feitas no G2D original são:

i) O parâmetro pitens é o valor percentual responsável por interromper a geração de

padrões de corte para o conjunto Y, impondo um limite máximo ao número de itens com

demanda ainda não atendida. Com os novos algoritmos empenhados em resolver somente o

PCBGR, a cada padrão gerado e atualização do conjunto I, o algoritmo G2D é modificado na

linha 5 e passa a verificar se |I| ≤ (pitens.m). Por exemplo, se m = 50 e pitens = 0.9, então

|I| ≤ 45 indica que novos padrões são gerados até atender a demanda de 10% desses m itens;

ii) O valor das faixas horizontais e verticais deixa de ser atribuído ao percentual de

perda interna e é calculado simplesmente pela medida de área improdutiva. Para exemplificar,

o valor da faixa vertical observada na Figura 4.4 (a) muda para perdaint(FV) = 4;

iii) O parâmetro φ atua diretamente na fase de construção das faixas guilhotinas,

possibilitando a repetição de faixas completamente homogêneas em algumas iterações pré-

estabelecidas;

iv) Um novo movimento indicado pela letra A é proposto para fase de melhoria. A

estratégia consiste em escolher do conjunto BH o item de maior comprimento para compor a

faixa horizontal em formação. De forma análoga, um item de maior largura em BV deve ser

utilizado para valorizar a faixa vertical corrente;

v) Uma diferente formulação da LRC é proposta para o algoritmo G2Dv, utilizado na

resolução da variante com peso do PCBGR. Como o valor de utilidade dos itens pode diferir

de sua medida de área, é necessário que haja uma avaliação dessas grandezas de forma

multiobjetiva.

Page 59: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

58

Por apresentarem maiores detalhes e serem providenciais nos resultados obtidos

nessas novas versões do G2D, as ampliações descritas nos itens iii), iv) e v) são explicadas nas

próximas subseções.

4.3.1 PARÂMETRO φ E REPETIÇÃO DE FAIXAS HOMOGÊNEAS

Se as faixas FH e FV, construídas de forma sequencial, depois de extraído um item xk

na LCR, não apresentam perda interna, essas podem ser repetidas em quantidades que não

extrapolem as dimensões de S = (CS, LS) nem violem a demanda atual. O parâmetro φ

determina a frequência de iterações que admitem tais repetições no padrão de corte presente.

Se a iteração corrente Iter é múltipla de φ, o número de repetições destas faixas homogêneas

FH e FV é dado por numFH = min {[[LS/lk]], [[dk-yk/yHk]]} e numFV = min {[[CS/ck]],

[[dk-yk/yVk]]}, respectivamente.

O padrão de corte da Figura 4.6 é o ótimo da instância clássica CU2, do PCBGR sem

peso (HIFI, 2004b), e seu valor de utilidade total é 26100. É possível verificar nesse padrão a

existência de numFH = [[8/3]] = 2 faixas horizontais homogêneas idênticas e perfeitas, cada

uma com três itens p30 = (50, 45). Certamente, estas podem ser produzidas pelo G2Da, de

forma mais eficiente devido ao uso do parâmetro φ, com a solução dessa instância

representada por H3P30H3P30 H1P25M2P30 H2P28.

FIGURA 4.6 – Padrão de Corte Ótimo da Instância CU2 com Repetição de Faixas Homogêneas.

Com a ampliação que utiliza o parâmetro φ, o procedimento ContruçãoFaixa além de

receber também os parâmetros φ e Iter, acrescenta após a linha 6 o novo procedimento

RepetiçãoFaixa. Observe no pseudocódigo a seguir que, se houver possibilidade de repetição

Padrão de Corte Ótimo CU2 com Repetição de Faixas Homogêneas

Page 60: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

59

de faixas, as novas atualizações consistem em: FH = (CFH, numFH.LFH), yH = yH.numFH,

SH = (0, numFH.LH), FV = (numFV.CFV, LFV), yV = yV.numFV e SV = (numFV.CV, 0).

Procedimento RepetiçãoFaixa (FH, yH, FV, yV, Iter, φ) 1. Se (MOD(Iter, φ) = 0) então 2. Se (perdaint(FH) = 0) então 3. Calcule numFH; 4. Atualize FH, yH e SH; 5. Se (perdaint(FV) = 0) então 6. Calcule numFV; 7. Atualize FV, yV e SV;

Fim RepetiçãoFaixa

4.3.2 MOVIMENTO DE MELHORIA A

Ao contrário do movimento de melhoria indicado por M, a presença da letra A em

uma solução, representada por uma sequência de caracteres iniciadas por H ou V, estabelece

que o item escolhido para compor uma das faixas FH ou FV possui maior comprimento em BH

ou maior largura em BV, respectivamente. Ainda se houver mais itens com a mesma

dimensão, a seleção deve ser aleatória nesses conjuntos. A Figura 4.7 ilustra algumas faixas

guilhotinas com a aplicação da melhoria A.

FIGURA 4. 7 – Faixas Guilhotinas Horizontais e Verticais com Melhoria A.

É importante destacar que as estratégias de movimento no algoritmo G2Da são usadas

separadamente para produzir duas configurações de faixas guilhotinas horizontais e duas

verticais, representadas pelos vetores m-dimensionais auxiliares yHM, yHA, yVM e yVA.

Sendo SH = (CSH, LSH) e SV = (CSV, LSV) os respectivos subretângulos tratados como

perda interna das faixas FH e FV, provenientes da fase de construção, e os conjuntos BH e BV

redefinidos, na presente subseção para o PCBGR sem rotação dos itens, por

H3P1A1P5A1P3

P5

P3

H3P1A2P6

P1 P1 P1 P6

P6

Faixas Guilhotinas com Melhoria A

V2P2A1P7A1P4

P2

P7 P4

P2

P1 P1 P1

Page 61: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

60

BH = {xi ∈ I | (di-yHi > 0) e (ci ≤ CSH e li ≤ LSH)} e

BV = {xi ∈ I | (di-yVi > 0) e (ci ≤ CSV e li ≤ LSV)}.

O procedimento MelhoriaFaixa passa a ser desmembrado em outros dois, chamados

de MelhoriaFaixaH e MelhoriaFaixaV, pois as estratégias assinaladas por M ou A são

utilizadas separadamente no processo de melhoria das faixas FH e FV. Dessa forma, na

abordagem dos novos procedimentos, se faz necessário à utilização de alguns elementos

complementares como segue. Os vetores yHM, yHA, yVM e yVA são inicialmente preenchidos

com os respectivos dados da fase de construção de yH e yV. Assim como, SHM, SHA, SVM e SVA

recebem as dimensões do subretângulo residual SH. Já os conjuntos BHM e BHA são

inicializados com os elementos de BH e, BVM e BVA com os pertencentes à BV. Os

procedimentos em destaque são apresentados na sequência.

Procedimento MelhoriaFaixaH (I, FH, yH, SH, BH) 1. yHM = yHA = yH, SHM = SHA = SH, BHM = BHA = BH; 2. Enquanto (|BHM| ≠ 0) faça 3. Selecione xj’ de BHM com maior largura, para usar “M”; 4. Atualize yHM, SHM e BHM; 5. Enquanto (|BHA| ≠ 0) faça 6. Selecione xj’’ de BHA com maior comprimento, para usar “A”; 7. Atualize yHA, SHA e BHA; 8. Determine perdaint(FH) = min {perdaint(FHM), perdaint(FHA)}; 9. Atualize yH relacionado à perdaint(FH); 10. Retorna (yH, perdaint(FH));

Fim MelhoriaFaixaH

No pseudocódigo MelhoriaFaixaH, a melhoria M da faixa horizontal inicia-se com a

escolha do item xj’ de BHM, de acordo com sua largura, em quantidade yHMj’ = min{dj’-yj’,

[[CSH/cj’]]}, seguido das atualizações SHM = (CSH-yHMj’.cj’, LSH) e de BHM. Assim como, o

movimento indicado por A começa com a seleção do item xj’’ de maior comprimento em BHA,

com os incrementos sendo renovados continuamente em yHAj’’ = min{dj’’-yj’’, [[LSH/lj’’]]},

SHA = (CSH, LSH-yHAj’’.lj’’) e BHA. Com o objetivo de minimizar as perdas internas nos

subretângulos SHM e SHA, este processo é repetido até não existir mais itens em BHM e BHA,

finalizando com yH atualizado por apenas um dos vetores yHM ou yHA, escolhido pelo critério

menor percentual de perda interna apresentado. Para então, posteriormente, executar o

Procedimento MelhoriaFaixaV.

Procedimento MelhoriaFaixaV (I, FV, yV, SV, BV) 1. yVM = yVA = yV, SVM = SVA = SV, BVM = BVA = BV; 2. Enquanto (|BVM| ≠ 0) faça 3. Selecione xt’ de BVM com maior comprimento, para usar “M”; 4. Atualize yVM, SVM e BVM; 5. Enquanto (|BVA| ≠ 0) faça

Page 62: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

61

6. Selecione xt’’ de BVA com maior largura, para usar “A”; 7. Atualize yVA, SVA e BVA; 8. Determine perdaint(FV) = min {perdaint(FVM), perdaint(FVA)}; 9. Atualize yV relacionado à perdaint(FV); 10. Retorna (yV, perdaint(FV));

Fim MelhoriaFaixaV

Equivalente ao procedimento anterior, o MelhoriaFaixaV produz melhorias do tipo

M ou A, nas faixas verticais anotadas nos vetores yVM e yVA, até que os conjuntos BVM e

BVA, com as mesmas características de BV, apresentem cardinalidade zero, respectivamente.

Com a melhoria promovida pelo mais comprido item xt’ de BHM, as atualizações são

yVMt’ = min{dt’-yt’, [[LSH/lt’]]}, SVM = (CSH, LSH-yVMt’.lt’) e BVM. Na inclusão do item xt’’ de maior

largura em BVA, os aperfeiçoamentos registrados são yVAt’’ = min{dt’’-yt’’, [[CSH/ct’’]]}, seguido

das atualizações SVA = (CSH-yVAt’’.ct’’, LSH) e de BVA. O presente processo finaliza com yV

atualizado pela faixa de menor perda interna entre yVM e yVA.

A execução dos procedimentos MelhoriaFaixaH e MelhoriaFaixaV, nessa ordem,

são consideradas pelo novo MelhoriaFaixa, conforme apresentado no pseudocódigo seguinte.

Sendo que, ao final, espera-se ter produzido quatro configurações distintas de faixas

guilhotinas e, então, aproveitar a faixa com o menor valor de perda interna na composição do

padrão de corte corrente. Considerando a possibilidade de acontecer empate nos valores

perdaint(FH) e perdaint(FV), a escolha da faixa a ser registrada em y e configurar no padrão de

corte é aleatória.

Procedimento MelhoriaFaixa (I, y, S, FH, yH, SH, FV, yV, SV) 1. Crie BH e BV; 2. Se (|BH| ≠ 0) então 3. Execute MelhoriaFaixaH (I, FH, yH, SH, BH); 4. Se (|BV| ≠ 0) então 5. Execute MelhoriaFaixaV (I, FV, yV, SV, BV); 6. Determine perdaintFmelhor = min {perdaint(FH), perdaint(FV)}; 7. Atualize y e S relacionado à perdaintFmelhor; 8. Retorna (y, S);

Fim MelhoriaFaixa

O padrão de corte exposto na Figura 4.8 é o ótimo da instância clássica OF1, com

valor de utilidade total 2737 (OLIVEIRA; FERREIRA, 1990). Esta solução apresenta cinco

faixas guilhotinas que podem ser descritas como V2P8 V1P2 H1P8A1P7A1P1 V1P6 H2P5

H1P10. Observe que a faixa guilhotina horizontal apresenta ações da melhoria A. É

necessário destacar que sem essa ampliação, considerando apenas a melhoria M, o melhor

padrão produzido é H3P8M2P5 V1P6 V1P6 V1P6 e possui valor 2713.

.

Page 63: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

62

FIGURA 4.8 – Padrão de Corte Ótimo da Instância OF1 com Melhorias M e A.

4.3.3 PSEUDOCÓDIGO DO ALGORITMO G2Da

Sendo o algoritmo G2Da utilizado para resolver instâncias do PCBGR sem rotação e

cujo valor dos itens corresponde a sua medida deárea, este retorna ao final da sua execução o

algoritmo a melhor solução y* obtida para o problema em questão e seu valor de utilidade

total Zy*. Antes de apresentar um pseudocódigo para tal ampliação, pretende-se mostrar as

informações referentes aos dados do problema, de entrada e suas variáveis que são

reconsideradas para o melhor entendimento desse algoritmo. Em relação aos dados do

problema tem-se:

� m : total de itens demandados;

� xi : item i sem orientação pré-estabelecida a ser produzido;

� ci : comprimento do item i;

� li : largura do item i;

� di : demanda do item i a ser atendida;

� vi : valor de utilidade do item i;

� R : objeto retangular em estoque, de comprimento C e largura L;

� S : subretângulo resultante de um corte guilhotinado que define uma faixa em R.

No que se refere aos parâmetros, estes são:

� α : parâmetro que controla o grau de miopia e aleatoriedade da fase de construção;

� maxiter : número máximo de iterações;

� pitens : valor percentual do número de itens utilizados na geração dos padrões;

� φ : parâmetro que determina as iterações com repetição de uma faixa homogênea.

Padrão de Corte Ótimo OF1 com Melhorias M e A

Page 64: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

63

As variáveis relacionadas na codificação deste algoritmo são apresentadas a seguir.

� I : conjunto de itens xi candidatos a compor uma solução;

� β : item xi de maior área em I;

� LRC : lista restrita composta pelos melhores itens de I;

� y : padrão de corte corrente;

� Zy : valor de utilidade total do padrão de corte corrente;

� y* : melhor padrão de corte;

� Zy* : valor de utilidade total do melhor padrão de corte.

Em seguida, descreve-se o pseudocódigo do algoritmo G2Da.

Algoritmo G2Da (α, maxiter, pitens, φ) 1. y

* = 0, Zy* = 0;

2. Para (Iter = 1, 2,..., maxiter) faça 3. I ← {x1,..., xm}; 4. Enquanto (|I| ≤ pitens.m) faça 5. y = 0, S = R; 6. Execute GeraPadraoCorte (I, y, α, S, φ); 7. Se (Zy

* < Zy) então 8. Atualize melhor solução do PCBGR, y* ← y e Zy

* ← Zy; 9. Atualize I = {xi; di - ∑ ��

��� � > 0};

10. Retorna (y*, Zy*);

Fim G2Da

4.3.3 LISTA RESTRITA DE CANDIDATOS DO G2Dv

O algoritmo G2Dv utiliza praticamente os mesmos alicerces empregados na

arquitetura do G2Da, diferenciando-se apenas no modo que se constitui a LRC e as

modificações necessárias nas linhas 2 e 3 do pseudocódigo ConstruçãoFaixa são descritas a

seguir.

Primeiramente, é importante ressaltar que os itens das instâncias utilizadas nos testes

com o algoritmo G2Dv apresentam valor de utilidade vi, associado a cada item xi, não

necessariamente igual à sua medida de área. Isto é, deve existir pelo menos um item xi tal que

vi ≠ ci.li.

A mudança na concepção da LRC se deve a escolha aleatória do item xk que define a

criação das faixas FH e FV. Passa-se a considerar, simultaneamente, as grandezas medida de

área e valor de utilidade. Utilizando os elementos da LRC tradicional do G2Da, denominada

LRCa, o processo de formação da nova LRCv se estabelece com mais dois elementos:

i) A função gulosa gv: I → ℝ, onde gv(xi) = vi é o valor de utilidade de cada item de

I;

Page 65: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

64

ii) O critério guloso βv = max {gv(xi); xi ∈ LRCa} que retorna o maior valor de

utilidade entre os itens de LRCa.

Então, define-se LRCv = {x ∈ LRCa | α.βv ≤ gv(x) ≤ βv} com os itens de LRCa que

apresentam os maiores valores de utilidade e sua cardinalidade é determinada pelo parâmetro

α ∈ [0,1].

A Figura 4.9 apresenta o padrão de corte ótimo gerado pelo G2Dv para a instância

clássica ChW1 (CHRISTOFIDES; WHITLOCK, 1977). Com valor 244 e representação

V2P7M1P5 V1P6A1P3 V2P4M1P2, este padrão apresenta 10/150 = 0.07 de perda interna em

relação à área do objeto. Para justificar a mudança feita na LRC do algoritmo G2Dv, evidencia-

se a distinção entre as listas LRCa e LRCv na execução deste algoritmo. A utilização da LRCa

no G2Dv retorna o padrão V1P6A1P3 H4P4 V1P7M1P5 V1P4A1P2, de perda interna 6/150 =

0.04 para ChW1. Entretanto, optando produzir mais itens p4 ao invés de p7, este padrão tem

valor de utilidade total 229. Assim, considera-se importante que haja uma ponderação entre o

valor de utilidade dos itens e sua medida de área ao tratar o caso com peso do PCBGR.

FIGURA 4.9 – Padrão de Corte Ótimo da Instância ChW1 com Algoritmo G2Dv.

4.4 ALGORITMOS G2D REATIVOS

Com o valor empregado ao parâmetro α e o critério de seleção da faixa a compor o

padrão de corte exercendo forte influência nos resultados dos algoritmos G2Da e G2Dv e

propensos a calibração, as novas extensões do G2D são inspiradas no método GRASP Reativo

proposto por Prais e Ribeiro (2000). As ampliações reativas do G2D original, denominadas

RG2Da, RG2Dv, RG2Dar e RG2Dvr são destinadas a resolução das variantes do PCBGR que se

distinguem pelo valor do item e também consideram a possibilidade de rotação (ar ou vr) para

Padrão de Corte Ótimo ChW1

Page 66: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

65

ambos os casos. A implementação do algoritmo genérico RG2D considerado na presente

subseção apresenta duas etapas distintas, chamadas de fase de calibragem e fase reativa. A

eficiência de tais versões pode ser verificada na qualidade de suas soluções, totalizando o

melhor resultado em 7 instâncias, incluindo mais 4 ótimos, se comparado com os resultados

produzidos em (VELASCO; UCHOA, 2014b) nas 30 instâncias consideradas clássicas. A

seguir são destacadas as inovações e diferentes alterações utilizadas na arquitetura dessas

versões reativas do G2D:

i) No ajuste do parâmetro α realizado na fase de calibragem, inicialmente, considera-

se um conjunto finito Α de valores no intervalo [0, 1], pré-definidos de acordo com as

características do problema. Com uma aprimorada calibragem após um determinado número

de iterações iterC, define-se o alfa reativo αR como aquele que apresenta com maior frequência

a melhor solução. Na fase seguinte, um novo conjunto A’ é criado, a partir de incrementos e

decrementos de valores constantes realizados na mediana αR. Com Α’ assim definido, o

algoritmo ainda deve ser executado iterR iterações para cada valor de α ∈ A’.

ii) O critério guloso βv é redefinido nos algoritmos RG2Dv e RG2Dvr de forma que a

LRCv seja formada pelos itens que apresentam as maiores razões entre o valor de utilidade e

sua medida de área. Sejam as funções gv(x) e ga(x) responsáveis por retornar os respectivos

valores de utilidade e de medida de área de um item x, então βv = max {gv(xi)/ga(xi);

xi ∈ LRCa} determina o índice de maior valor para composição da LRCv = {x ∈ LRCa | α.βv ≤

gv(x) ≤ βv}. É importante destacar que a diferença entre os algoritmos supracitados e seus

correspondentes RG2Da e RG2Dar, do caso sem peso do PCBGR, limita-se apenas ao modo

como é constituída a LRC.

iii) Para intensificar as ações da fase de melhoria, os subretângulos de perda interna

SDH e SDV, definidos como dentes e gerados nas respectivas faixas guilhotinas a partir da

inclusão dos itens oriundos dos movimentos de melhoria M ou A, são aproveitados em novas

ações de melhoria denotadas com as letras m e a. Análogo ao propósito dos conjuntos BH e

BV, os conjuntos DH e DV são constituídos dos itens de I com demanda não atendida e que

viabilizam o corte guilhotinado nos respectivos dentes SDH e SDV. Para este procedimento,

também é estabelecido o parâmetro δ, responsável pela frequência de iterações que permitem

a recuperação dos dentes.

iv) É introduzido o parâmetro psi (ψ) como o percentual de perda aceitável de uma

faixa inserida no padrão de corte. Com as quatro faixas guilhotinas resultantes da fase de

melhoria FHM, FHA, FVM, e FVA, define-se FMin como a faixa guilhotina de menor valor

percentual de perda interna. Com a inclusão destes elementos, institui-se a Lista Restrita de

Page 67: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

66

Faixas (LRF) como um conjunto das próximas faixas candidata a compor o padrão de corte

corrente. Vale ressaltar que, assim como o parâmetro α, o novo parâmetro ψ deve ser ajustado

na fase de calibragem a partir de um conjunto finito Ψ de valores pré-estabelecidos.

Nas subseções seguintes, as propostas de inovação para fase melhoria, citadas nos

itens iii) e iv), e o pseudocódigo genérico do algoritmo RG2D é apresentado com a devida

importância.

4.4.1 PARÂMETRO δ E DENTES DAS FAIXAS GUILHOTINAS

Ainda sobre a inserção de novos itens na fase de melhoria, em movimentos indicados

pelas letras M ou A, estes podem não fazer o uso dessas faixas guilhotinas em sua totalidade.

Considerando que no processamento de tais faixas, com dimensões definidas por xk = (ck, lk) e

por algum subretângulo de perda interna SH = (CSH, LSH) ou SV = (CSV, LSV), a inclusão de

certas quantidades de cada item selecionado a partir de uma única dimensão relevante, largura

ou comprimento, dos respectivos conjuntos BHM BHA BVM e BVA, pode originar um

subretângulo residual no interior da faixa, possivelmente reaproveitável, denominado dente.

Na Figura 4.10(a), deve-se observar que os três itens p2 = (c2, l2), escolhidos após o

movimento M, produziram um dente de comprimento 3c2 igual ao triplo do comprimento

deste item. Já sua largura é igual à diferença entre as larguras da faixa e de p2, isto é, LSH-l2.

Ainda nesta Figura e de forma análoga, o dente gerado pelo único item p6 tem comprimento

igual ao deste item e sua largura é dada pela diferença das larguras da faixa e do item p6.

FIGURA 4.10 – Faixas Guilhotinas Horizontais e Reaproveitamento de Dentes.

Dentes em Faixas Guilhotinas Horizontais

(a) H2P1M3P2M1P6

(b) H2P1M3P2a2P4M1P6m3P5

Page 68: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

67

Os dentes determinados em faixas guilhotinas verticais ganham evidência na Figura

4.11(a). Na sequência do movimento A, o primeiro dente tem comprimento igual a 2c3 e

largura calculada por LSV-l3. Enquanto no segundo dente, o dobro comprimento do item r4 =

(l4, c4) define seu comprimento 2l4 e a diferença entre as respectivas medidas de largura LSV-c4

passa a ser a outra dimensão do dente.

No reaproveitamento dos dentes são utilizadas as letras minúsculas m e a em novas

expressões, indicando o acréscimo de movimentos de melhoria realizado de forma

equivalente as indicadas por M e A, respectivamente. Estas novas ampliações no G2D podem

ser conferidas nas Figuras 4.10(b) e 4.11(b), com as respectivas FH e FV representadas por

H2P1M3P2a2P4M1P6m3P5 e V2R1A2P3a1P2A2R4m2P5.

Com os movimentos de melhoria indicados por M e A gerando perdas internas que

ainda possam ser reaproveitadas, as novas ações propostas objetivam o melhor

aproveitamento nos dentes genéricos SDH = (CDH, LDH) e SDV = (CDV, LDV), das faixas FH e FV,

nessa ordem. Sendo o custo computacional elevado, na aplicação desse procedimento em

todas as faixas guilhotinas produzidas, opta-se apenas nas iterações múltiplas do parâmetro δ

para realização das ações descritas como segue.

FIGURA 4.11 – Faixas Guilhotinas Verticais e Reaproveitamento de Dentes.

Derivando da estrutura dos conjuntos BH e BV, os conjuntos DH = {xi ∈ I | (di-yHi > 0)

e ((ci ≤ CDH e li ≤ LDH) ou (li ≤ CDH e ci ≤ LDH))} e DV = {xi ∈ I | (di-yVi > 0) e ((ci ≤ CDV e

Dentes em Faixas Guilhotinas Verticais

(a) V2R1A2P3A2R4 (b) V2R1A2P3a1P2A2R4m2P5

Page 69: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

68

li ≤ LDV) ou (li ≤ CDV e ci ≤ LDV))} são constituídos dos itens com demanda não atendida, que

garantam o corte guilhotinado nos respectivos dentes SDH e SDV. Destaca-se que os conjuntos

DH e DV estão definidos para o caso rotacionado do PCBGR.

Sintetizando a nova fase de melhoria em uma faixa horizontal, a cada uma das

estratégias assinaladas por M ou A, calculam-se individualmente os números yHMj’ e yHAj’’ de

itens xj’ e xj’’ a serem incluídos nos subretângulos SHM = (CSHM, LSHM) e SHA = (CSHA, LSHA). A

partir disto, admitindo que xj’ = (cj’, lj’) e xj’’ = (cj’’, lj’’) tenham às coordenadas das orientações

adotadas com os movimentos M e A e que os novos movimentos melhoria sejam realizados

no decorrer de uma iteração condicionada ao parâmetro δ, tem-se SDH = (yHMj’.cj’, LSHM-lj’) ou

SDH = (CSHA-cj’’, yHAj’’.lj’’) definidos como os respectivos dentes gerados na inclusão dos itens xj’

e xj’’. Análoga às anteriores, as ações de melhoria apresentadas a seguir, são realizadas

separadamente nos dentes estabelecidos em cada movimento designado pelas letras M e A.

Analisando apenas o dente SDH gerado após a melhoria M com o item xj’, o processo

começa considerando também a formação do conjunto de itens DH. A seguir, com os vetores

auxiliares m-dimensionais yDm e yDa inicializados nulos, decide-se pela inclusão do próximo

item pertencente ao conjunto DH, com xw’ escolhido por apresentar maior largura e xw’’ o

maior comprimento, nas quantidades yDmw’ = min{dw’-yw’, [[CDH/cw’]]} e yDaw’’ = min{dw’’-yw’’,

[[LDH/lw’’]]}, em ações denotadas pelas respectivas letras minúsculas m e a. Buscando o

melhor aproveitamento do dente atual e consequentemente da faixa FH corrente, o movimento

que apresentar menor percentual de perda interna perdaint(SDH) no correspondente SDH,

escolhido entre os valores perdaint(SDHm) = (ga(SDH)-∑ g�(x).� � y��)/ga(SDH) e perdaint(SDHa)

= (ga(SDH)-∑ g�(x).� � y��)/ga(SDH), determina a melhoria a ser aplicada no dente atual. Caso

haja empate entre esses valores de perda interna, a escolha deve ser aleatória. A seguir,

atualizam-se as dimensões deste dente conforme com a composição atribuída a perdaint(SDH),

assumindo SDH = (CDH-yDmw’.cw’, LDH) ou SDH = (CDH, LDH-yDaw’’.lw’’), juntamente com o conjunto

DH, até que este torne-se vazio.

O procedimento MelhoriaDenteH a seguir, descreve apenas a possibilidade de

reaproveitamento do dente SDH = (yHMj’.cj’, LSHM - lj’), depois da melhoria do tipo M utilizar

yHMj’ cópias do item xj’ na faixa horizontal. Entretanto, o reaproveitamento do dente

procedente de uma melhoria A na faixa vertical, com yHAj’’ itens xj’’ em SDH = (CSHA-cj’’,

yHAj’’.lj’’), é realizado de forma equivalente e difere apenas na passagem dos relativos

parâmetros yHA, SHA e BHA.

Procedimento MelhoriaDenteH (yHM, SHM, BHM) 1. Determine SDH;

Page 70: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

69

2. Crie DH; 3. Enquanto (|DH| ≠ 0) faça 4. yDm = yDa = 0; 5. Selecione xw’ de DH com maior largura, para usar “m”; 6. Selecione xw’’ de DH com maior comprimento, para usar “a”; 7. Atualize yDm e yDa; 8. Determine perdaint(SDH) = min {perdaint(SDHm), perdaint(SDHa)}; 9. Atualize yHM, SDH e DH relacionado à perdaint(SDH); 10. Retorna (yHM);

Fim MelhoriaDenteH

As inovações na fase de melhoria de uma faixa vertical, com a inserção desses

movimentos representados nas letras m e a, são adaptadas de maneira semelhante as suas

aplicações na faixa horizontal. Calculando-se as quantidades yVMt’ e yVAt’’, de itens xt’ e xt’’,

após cada melhoria M e A em FV corrente, para acrescentá-los nos subretângulos SVM = (CSVM,

LSVM) e SVA = (CSVA, LSVA), em uma iteração múltipla de δ, determina-se os respectivos dentes

SDV = (CSVM-ct’, yVMt’.lt’) ou SDV = (yVAt’’.ct’’, LSVA-lt’’).

Considerando apenas a melhoria do subretângulo residuais SDV, gerado pela melhoria

M do item xt’, seleciona-se no conjunto DV o item xt’ de maior largura e o xt’’ de maior

comprimento, nas quantidades yDmt’ = min{dt’-yt’, [[LDV/lt’]]} e yDat’’ = min{dt’’-yt’’, [[CDV/ct’’]]}.

Desta seleção, escolhe-se o movimento que produza o menor percentual de perda interna no

SDV atual. Com a atualização ininterrupta dos dentes com valor positivo igual à perdaint(SDV),

fazendo SDV = (CDV-yDmt’.ct’, LDV) ou SDV = (CDV, LDV-yDat’’.lt’’), e consequentemente do conjunto

de itens DV, esse processo encerra-se quando |DV| = 0. Com o dente SDV = (CSVM-ct’, yVMt’.lt’)

em destaque, originado na melhoria M com o item xt’, apresenta-se a seguir o pseudocódigo

MelhoriaDenteV que retorna o vetor yVM atualizado dos itens de DV cortados no dente em

questão. É importante distinguir que no processo de reaproveitamento do dente resultante de

uma melhoria A na faixa vertical, com yVAt’’ itens xt’’ em SDV = (yHAt’’.ct’’, LSVA-lt’’), são

considerados os parâmetros yVA, SVA e BVA.

Procedimento MelhoriaDenteV (yVM, SVM, BVM) 1. Determine SDV; 2. Crie DV; 3. Enquanto (|DV| ≠ 0) faça 4. yDm = yDa = 0; 5. Selecione xt’ de DV com maior comprimento, para usar “m”; 6. Selecione xt’’ de DV com maior largura, para usar “a”; 7. Atualize yDm e yDa; 8. Determine perdaint(SDV) = min {perdaint(SDVm), perdaint(SDVa)}; 9. Atualize yVM, SDV e DV relacionado à perdaint(SDV); 10. Retorna (yVM);

Fim MelhoriaDenteV

Page 71: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

70

As chamadas de execução dos procedimentos MelhoriaDenteH e MelhoriaDenteV

são realizadas internamente nos procedimentos MelhoriaFaixaH e MelhoriaFaixaV, logo após

as respectivas atualizações das linhas 4 e 7.

Certamente, a utilização dos respectivos procedimentos MelhoriaDenteH e

MelhoriaDenteV, que abordam o melhor tratamento das perdas internas relacionadas aos

subretângulos denominados dentes, em qualquer das quatro faixas guilhotinas produzidas na

fase de melhoria, acarretaria em considerável diversificação e aperfeiçoamento do processo de

composição dessas faixas, deixando o algoritmo G2D mais inteligente para escapar de padrões

de corte considerados ótimos locais. Para fins de ilustração, a Figura 4.12 apresenta uma

solução do PCBGR com a rotação e suas respectivas melhorias descritas na sequência

alfanumérica H1P8A1R4a2P5A1P6m2P9 V1P7A4P2 H1R3M1P2a1P5m1p1.

FIGURA 4.12 – Padrão de Corte com Reaproveitamento de Dentes.

4.4.2 PARÂMETRO ψ E LISTA RESTRITA DE FAIXAS

Assim como na versão inicial do algoritmo G2D, que também admite a rotação dos

itens, o valor da faixa guilhotina volta ser calculado pelo seu percentual de perda interna.

Sabendo que ao final de cada fase de melhoria com algoritmo G2D, tem-se produzida quatro

possíveis configurações distintas de faixas guilhotinas FHM, FHA, FVM e FVA. Define-se FMin

como a faixa guilhotina de menor valor percentual entre as faixas do conjunto F = {FHM, FHA,

FVM, FVA}. Seja ψ um parâmetro usado para delimitar o percentual de perda aceitável nas

faixas guilhotinas de uma solução do PCBGR. Se a diferença entre o valores das faixas

pertencentes ao conjunto F e de FMin não maior que ψ, esta faixa é incluída no conjunto

Padrão de Corte com Reaproveitamento de Dentes

Page 72: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

71

chamado de Lista Restrita de Faixas (LRF). Assim como o parâmetro α da LRC, ψ também é

responsável pela cardinalidade de LRF = {f ∈ F | perdaint(f)-perdaint(FMin) ≤ ψ }, com a

próxima faixa a compor o padrão de corte atual sendo escolhida aleatoriamente deste

conjunto. É importante ressaltar que o parâmetro ψ reativo (ψR) não é arbitrário e também

deve ser calibrado a partir de um conjunto finito Ψ de valores pré-estabelecidos nas versões

do algoritmo RG2D.

/

FIGURA 4.13 – Padrão de Corte gcut13 com Reaproveitamento de Dentes e LRF.

O pseudocódigo seguinte, primeiramente, considera que os respectivos

procedimentos MelhoriaFaixaH e MelhoriaFaixaV são modificados para retornar os vetores

yHM, yHA, yVM e yVA, referentes às quatro faixas produzidas nessa fase. Tomando esses

vetores, o conjunto F e um valor pré-estabelecido de ψ como parâmetros de entrada, o

procedimento SeleçãoFaixa encarrega-se de fornecer uma faixa guilhotina a partir de uma

escolha aleatória na LRF. Esse procedimento deve substituir as linhas 6 e 7 no procedimento

MelhoriaFaixa.

Padrão de Corte gcut13 com Reaproveitamento de Dentes e LRF

P24

P22

P6

P25

P20

P19

P27

P28

P29

P30

P17

P18

P23

P9

P16

P26

P2

P1

Page 73: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

72

Procedimento SeleçãoFaixa (yHM, yHA, yVM, yVA, F, ψ) 1. FMin ← min {perdaint(f); f ∈ F}; 2. LRF ← {f ∈ F | perdaint(f)-perdaint(FMin) ≤ ψ} 3. Escolha, aleatoriamente, fz de LRF; 4. Atualize y e S relacionado à fz; 5. Retorna (y, S);

Fim SeleçãoFaixa

Para exemplificar a utilização das ampliações em destaque nas subseções 4.4.1 e

4.4.2, a Figura 4.13 apresenta o melhor padrão de corte obtido com a versão mais recente do

G2Da para instância gcut13. Utilizando α = 0.2, ψ = 0.03 e o reaproveitamento de dentes, este

possui valor total de utilidade 8618394 e tem representação V1P22A1P24 V1P20A1P25m1P6

H1P30M1P9M1P2a1P1 V1P29M1P28M1P27M1P19 V1P23M1P18M1P17 V1P26M1P16.

Essa instância também é considerada clássica de uma variante dos Problemas de Corte e

Empacotamento, em que os itens apresentam demanda unitária e valor de utilidade igual à

medida de área, conhecida como Two-Dimensional Bin Packing Problem.

4.4.3 PSEUDOCÓDIGO GENÉRICO DO ALGORITMO RG2D

Diferentemente da proposta original do método GRASP Reativo (PRAIS; RIBEIRO,

2000), as versões do algoritmo RG2D consideram não somente a calibragem do parâmetro α

da LRC em sua fase de diversificação, mas também o ajuste do novo parâmetro ψ presente na

LRF. Nessa primeira fase, denominada de fase de diversificação, consideram-se os dois

conjuntos finitos Α e Ψ, de valores pertencentes ao intervalo [0, 1]. Esses conjuntos são pré-

definidos, de acordo com as características do problema, com os respectivos valores

atribuídos aos parâmetros α e ψ nessa fase de calibragem para determinação dos parâmetros

reativos αR e ψR. Para isso, em conformidade com a variante que se refere à instância e

incluindo as modificações em destaque nas subseções anteriores, executa-se um dos

algoritmos G2Da, G2Dar, G2Dv ou G2Dvr no total de iterC iterações, para cada par de combinação

de elementos de Α e Ψ. Nessa fase, esses algoritmos reativos retornam a solução y* de maior

frequência entre as que apresentam valor Zy* e sua frequência indicada por fαψ. Ao final dessa

etapa, o par de valores de α e ψ que obtém a solução de maior valor e maior frequência fαψ,

definem os parâmetros reativos da próxima fase. É importante relatar, ainda, que em caso de

empate das respectivas frequências, um sorteio estabelece os parâmetros que melhor se

adequam à instância.

Na fase posterior, denominada fase reativa, inicia-se com a determinação de um novo

conjunto A’ constituído de valores no entorno da mediana αR, estabelecendo acréscimos e

decréscimos a serem realizados nesse parâmetro reativo. Assim como na fase de

Page 74: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

73

diversificação, executa-se nesta fase as ampliações do algoritmo G2D, com o total de iterR

iterações para cada combinação dos elemento de A’ e ψR pré-determinado, com o objetivo de

escapar possíveis ótimos locais e produzir um padrão de corte de melhor valor de utilidade

total.

Em seguida, o pseudocódigo com os passos do algoritmo RG2D expõe seu

desenvolvimento que tem os seguintes parâmetros:

� Α : conjunto dos valores do parâmetro α considerados na fase de diversificação;

� Ψ : conjunto dos valores do parâmetro ψ considerados fase de diversificação;

� iterC : número de iterações na fase de diversificação;

� iterR : número de iterações na fase reativa.

Algumas das variáveis utilizadas nesse pseudocódigo, também, recebem o devido

destaque como segue.

� αR : parâmetro α da melhor solução;

� ψR : parâmetro ψ da melhor solução;

� fαR : frequência da melhor solução para o valor αR corrente;

� α1 : parâmetro α corrente da fase de diversificação;

� ψ1 : parâmetro ψ corrente da fase de diversificação;

� fαψ : frequência da melhor solução com os parâmetros α e ψ correntes;

� Α’ : conjunto dos valores resultante do parâmetro αR considerados na fase reativa;

� α2 : parâmetro α corrente da fase reativa;

� y* : melhor padrão de corte do G2D, com α e ψ correntes;

� Zy* : valor de utilidade total do melhor padrão de corte do G2D, com α e ψ correntes;

� yR : melhor padrão de corte reativo;

� ZyR : valor de utilidade total do melhor padrão de corte reativo.

O pseudocódigo apresentado posteriormente é referente ao algoritmo proposto RG2D,

que obtém o padrão de corte yR de maior valor ZyR, a partir dos parâmetros reativos αR e ψR

em alguma das fases características da metodologia em destaque.

Algoritmo RG2D (Α,Ψ, iterC, iterR) 1. yR = 0, ZyR = 0, fαR = 0; 2. Para (α1 ∈ Α) faça 3. Para (ψ1 ∈ Ψ) faça 4. Execute G2D (α1, ψ1, maxiter, pitens, φ, δ), com maxiter = iterC; 5. Se (Zy

* > ZyR) então

6. αR = α1, ψR = ψ1, fαR = fαψ, yR = y*, ZyR = Zy*;

7. Se (Zy* = ZyR) então

Page 75: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

74

8. Se (fαψ > fαR) então 9. αR = α1, ψR = ψ1, fαR = fαψ, yR = y*, ZyR = Zy

*; 10. Se (fαψ = fαR) então 11. Escolha, aleatoriamente, αR e atualize ψR, fαR, yR e ZyR; 12. Atualize Ψ = Ψ - {ψ1}; 13. Atualize A = A - {α1}; 14. Determine Α’; 15. Para (α2 ∈ Α’) faça 16. Execute G2D (α2, ψR, maxiter, pitens, φ, δ), com maxiter = iterR; 17. Se (Zy

* > ZyR) então

18. yR = y*, ZyR = Zy*;

19. Atualize A’ = A’ - {α2}; 20. Retorna (yR , ZyR);

Fim RG2D

4.5 RESULTADOS COMPUTACIONAIS

Para analisar o desempenho das versões reativas do algoritmo RG2D, foram

realizados testes em dois grupos de instâncias extensamente utilizadas na literatura,

totalizando 63 problemas, distinguidos pelos valores de utilidade dos itens e com a maioria

das soluções ótimas conhecidas. Esses resultados podem ser encontrados nos trabalhos de

Alvarez-Valdés et al. (2002a), Hifi (2004b), Chen (2008), Morabito e Pureza (2010) e

Dolatabadi et al. (2012).

As 24 instâncias do primeiro grupo, com valor de utilidade dos itens não

necessariamente atribuído a sua medida de área, são: ChW1, ChW2, ChW3, CW1-CW11 e

APT40-APT49. O segundo grupo com 39 instâncias, apresenta itens com valor de utilidade

relacionado à sua medida de área e é assinalado como: WANG1, WANG2, WANG3, OF1,

OF2, CU1-CU11, APT30-APT39 e gcut1-gcut13. Os problemas indicados com a sigla APT

são reconhecidos como de grande porte e seus dados podem ser obtidos na página de endereço

http://www.laria.u-picardie.fr/hifi/OR-Benchmark. As demais instâncias são disponibilizadas

pelo EURO Special Interest Group on Cutting and Packing (ESICUP) ou no repositório de

instâncias OR-Library, em seus respectivos endereços: http://paginas.fe.up.pt/~esicup/ e

http://people.brunel.ac.uk/~mastjjb/jeb/info.html.

Para variante sem rotação do PCBGR, os melhores resultados das consideradas

versões do RG2D são confrontados com os também produzidos pelos algoritmos propostos por

Alvarez-Valdés et al. (2002a), Morabito e Pureza (2010) e Dolatabadi et al. (2012). Os gaps

são calculados considerando as melhores soluções de toda a literatura. Alvarez-Valdés et al.

(2002a) apresentam, além de um sofisticado Busca Tabu, um algoritmo GRASP e a ampliação

desta GRASP com Path Relinking. Morabito e Pureza (2010) apresentam um algoritmo

heurístico que combina PD, busca em grafo E/OU e um procedimento para viabilização de

Page 76: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

75

padrões de corte infactíveis. Já Dolatabadi et al. (2012) propõem um algoritmo recursivo

exato de busca exaustiva no espaço de soluções que necessita de limites inferiores e exteriores

externos. Estes algoritmos são indicados por TS50002, GRASP02, GR/PR02, DP_AOG10 e

A112, utilizando uma notação que destaca o ano de sua publicação. Vale ressaltar que não há

comparações do algoritmo heurístico proposto com outro algoritmo para o caso rotacionado

do PCBGR, porque não se conhece na literatura algum trabalho que abrangesse grande parte

dessas instâncias.

As versões dos algoritmos RG2D foram implementados em linguagem C/C++ (Visual

C++ 2010 Express) e seus testes foram realizados no ambiente computacional com núcleo

único de um processador Intel(R) Core(TM) i7-4790 3.6 GHz, com 16GB de memória RAM

e sistema operacional Windows 8.1 de 64 bits. Os algoritmos TS50002, GRASP02, GR/PR02

foram codificados em C++ e rodados em processador Pentium II 350 MHz. O DP_AOG10 foi

feito em Pascal (Delphi 7/Borland) e executado com processador Pentium IV 2.99 GHz e

2GB de RAM. Na execução do A112, utilizou-se também a linguagem C++ e seus testes

ocorreram no Intel(R) Dual CPU T3400 2.16 GHz. Segundo consulta ao benchmark

www.cpubenchmark.net, os processadores usados nos testes com os algoritmos DP_AOG e

A1 são, respectivamente, 3.5 e 3.1 vezes mais lentos do que o processador usado neste

trabalho.

Sabendo que os valores de função objetivo informam o valor de utilidade total do

padrão de corte, nas tabelas seguintes são apresentados os resultados médios e da melhor

solução obtida em 10 execuções com o respectivo algoritmo RG2D. Para conseguir os

referidos resultados, em todos os testes foram adotados os seguintes parâmetros: sorteios

estabelecidos a partir de semente aleatória; φ = 5 para a repetição de faixas homogêneas no

padrão de corte; δ = 10 para o reaproveitamento dos dentes nas faixas horizontais e verticais;

os conjuntos da fase de diversificação são estabelecidos como Α = {0.1, 0.2, 0.3, 0.4, 0.5} e

Ψ = {0.01, 0.02, 0.03, 0.04, 0.05}; o conjunto com os valores constituído a partir do αR na

fase reativa como Α’ = {αR, αR ± 0.025, αR ± 0.05}; como número máximo de iterações nas

respectivas fases iterC = 1000 para cada combinação de parâmetros α obtido em Α e ψ em Ψ e

iterR = 5000 para cada um dos valores pertencentes a A’, totalizando 50000 iterações; pitens =

50% na primeira metade das iterações e pitens = 10% nas seguintes para cada combinação de

α e ψ. É importante ressaltar que tal parametrização foi escolhida levando-se em consideração

que os tempos de execução médios não deveriam ultrapassar 60 segundos nas instâncias

utilizadas do PCBGR.

Page 77: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

76

Para os casos sem rotação com peso e sem peso, os resultados dos algoritmos

referenciados encontram-se nas Tabelas 4.2-4.6. Nas Tabelas 4.2 e 4.3, as colunas 1-5 se

referem ao nome das instâncias clássicas, ao número de itens distintos, a totalidade desses

itens, o comprimento do objeto e sua largura, nessa ordem. Nas colunas 6-10 são apresentados

os respectivos resultados dos algoritmos GRASP, GR/PR, TS500 e DP_AOG, incluindo

apenas os tempos anotados para melhor solução e execução total desse último algoritmo. Em

seguida, nas colunas 11-13, têm-se o resultado médio em 10 rodadas, da melhor solução

gerada nessas execuções e, assim como o DP_AOG, os tempos relacionados à melhor solução

do RG2D. As três colunas finais 14-16 informam os parâmetros α e ψ da melhor solução

encontrada com o RG2D e o seu respectivo gap percentual da melhor solução. As Tabelas 4.4-

4.5 mostram os resultados das instâncias abreviadas de APT e diferem das tabelas anteriores

por apresentar nas colunas 9 e 10 informações relacionadas às soluções do algoritmo A1 e seu

tempo de execução. Já na Tabela 4.6, as colunas 1-5 mostram os dados das instâncias gcut,

que possuem itens com demanda unitária e os resultados dos algoritmos A1 e RG2D nas

demais colunas.

É necessário observar ainda nessas tabelas, que os tempos expostos estão em

segundos, as colunas com os tempos referentes aos algoritmos DP_AOG e RG2D mostram o

tempo para encontrar a melhor solução e o tempo de execução total, nessa ordem. Como o

algoritmo A1 sempre converge para a melhor solução, é apresentado apenas seu tempo de

execução. Entretanto, destaca-se que o algoritmo A1 utiliza limites procedentes de algoritmos

externos e os tempos para obtenção desses valores são desconsiderados. Em Alvarez-Valdés

et al. (2002a), não especificaram os tempos individuais nos testes dos algoritmos propostos

em seu trabalho, apenas relataram os tempos médios que consideram também a resolução de

outras instâncias do PCBGR. Além disso, as tabelas dessa seção adotam uma simbologia

distinguida da seguinte forma: as instâncias não executadas por alguns desses algoritmos são

indicadas com -; se o valor da melhor solução gerada com o RG2D for superior às

apresentadas pelos algoritmos GRASP, GR/PR e TS500, esta é assinalada com o sobrescrito

dos respectivos números 1, 2 e 3; no caso de gap negativo para melhor solução do RG2D, esta

é apresentada em negrito; as soluções ótimas conhecidas na literatura são denotadas com * e

os ótimos obtidos com certificação possuem **.

Os resultados da Tabela 4.2, constituído de 14 instâncias sem rotação e com peso do

PCBGR, mostram que o RG2Dv conseguiu 11 soluções ótimas. Os tempos computacionais de

execução do algoritmo DP_AOG são confrontáveis, pois a máquina utilizada nos testes do

RG2Dv é 3.5 vezes mais rápida. Mesmo com a impossibilidade de comparar tempos com os

Page 78: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

77

algoritmos em Alvarez-Valdés et al. (2002a), os ótimos adicionais obtidos nas instâncias

CW2, CW4, CW5 e CW7 indicam superioridade do algoritmo RG2Dv quando comparado às

soluções apresentadas pelos GRASP e GR/PR. O RG2Dv apresentou resultados comparáveis

aos do TS500 e inferiores ao DP_AOG em 3 instâncias. Nas instâncias com gap indesejável,

pressupõe-se que as estratégias adotadas na construção das faixas, que consideram as

dimensões das faixas definidas por um único item e a utilização dos itens em sua composição

na maior quantidade disponível sem inviabiliza-la, podem impedir a geração desses padrões

de corte.

Analisando os resultados mostrados na Tabela 4.3, verifica-se que nas 16 instâncias

sem peso, o algoritmo RG2Da encontrou 12 soluções ótimas e as demais apresentaram gap

inferior a 0,0026, indicando que essa abordagem reativa é melhor quando aplicada ao caso

sem peso. Em tais instâncias, a superioridade nas comparações com os algoritmos GRASP,

GR/PR e TS500 pode ser verificada pela qualidade das soluções produzidas em CU4, CU8 e

CU11. Já na comparação com o DP_AOG, destacam-se os tempos médios para obter a melhor

solução e de execução do RG2Da com 3.5 e 14.0 segundos contra 25.8 e 368.9 segundos.

Ao confrontar os resultados apresentados por Velasco e Uchoa (2014b) nessas 30

instâncias clássicas com os algoritmos G2Dv e G2Da com os das Tabelas 4.2 e 4.3, verifica-se

que as respectivas versões reativas com suas ampliações RG2Dv e RG2Da melhoraram esses

resultados, reduzindo o gap nas 7 instâncias indicadas por CW4*, CW6, CW8*, CW10,

CU4*, CU8* e CU11 e acrescentando as 4 novas soluções ótimas destacadas com *.

A Tabela 4.4 expõe os resultados das instâncias APT40-APT49, para o caso sem

rotação e com peso. O algoritmo exato A1 destaca-se pelo quantitativo de soluções ótimas e a

heurística TS500 pela qualidade de suas soluções, superando o algoritmo proposto RG2Dv em

7 dessas instâncias, empatando em 2 e perdendo na APT48. Na comparação entre as

heurísticas baseadas na GRASP, o RG2Dv é bem superior aos algoritmos GRASP e GR/PR,

perdendo apenas nas instâncias APT44 e APT47. É importante destacar que os tempos

computacionais apresentados pelo RG2Dv com a parametrização adotada reiteram sua relativa

eficiência diante dos resultados apresentados pelo algoritmo A1. Esta observação se deve ao

fato que os limites inferior e superior utilizados como dados de entrada no algoritmo A1foram

fornecidos por Hifi (2004b) e Chen (2008) sem que os respectivos tempos tenham sido

computados. Em particular, as soluções de valor 33503 e 214561 para as instâncias APT42 e

APT43 vieram diretamente de Hifi (2004b), o algoritmo A1 não conseguiu melhorar essas

soluções e nem provar sua otimalidade no tempo limite de 3600 segundos.

Page 79: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

78

TABELA 4.2 – Resultados nas Instâncias Clássicas sem Rotação e com Peso.

Instâncias AlgoritmosNome m m̅ C L GRASP02 GR/PR02 TS50002 DP_AOG10 Tempo RG2DMed RG2 D Tempo Alfa Psi Gap(%)

ChW1 7 16 15 10 - - - **244 <0.1 0.1 *244.0 *244 <0.1 4.3 0.5 0.05 0ChW2 10 23 40 70 *2892 *2892 *2892 **2892 0.8 38.4 2842.6 *2892 0.6 5.5 0.2 0.05 0ChW3 20 62 40 70 *1860 *1860 *1860 **1860 0.1 19.9 *1860.0 *1860 <0.1 11.8 0.1 0.05 0CW1 25 67 125 105 *6402 *6402 *6402 **6402 1.1 25.6 *6402.0 *6402 <0.1 11.9 0.2 0.05 0CW2 35 63 145 165 5333 5333 *5354 *5354 0.7 1118.8 5339.4 ¹²*5354 0.1 11.3 0.1 0.05 0CW3 40 96 267 207 *5689 *5689 *5689 **5689 0.5 26.9 5675.2 *5689 14.1 17.1 0.225 0.01 0CW4 39 86 465 387 6158 6165 6170 **6175 1.3 46.8 6161.4 ¹²³*6175 9.4 16.3 0.05 0.02 0CW5 35 91 524 678 11580 11580 11644 **11659 0.8 1268.5 11594.3 ¹²³*11659 7.7 14.9 0.15 0.02 0CW6 55 149 781 657 12907 *12923 *12923 **12923 33.3 890.6 12221.3 12651 1.1 28.2 0.1 0.04 2.10CW7 45 123 276 374 9687 9687 *9898 **9898 4.1 10.7 9783.1 ¹²*9898 2.0 21.3 0.1 0.01 0CW8 60 168 305 287 *4605 *4605 *4605 **4605 20.8 340.5 4434.8 *4605 <0.1 34.4 0.1 0.05 0CW9 50 131 405 362 *10748 *10748 *10748 **10748 7.0 121.3 10723.3 *10748 0.3 25.4 0.1 0.05 0CW10 60 130 992 970 6016 *6515 *6515 **6515 2.8 182.2 6149.4 ¹6471 23.6 29.7 0.125 0.04 0.68CW11 60 114 982 967 *6321 *6321 *6321 **6321 2.0 1375.0 6006.3 6084 11.8 24.8 0.15 0.03 3.75Média 5.4 390.4 5.1 18.3

78

Page 80: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

79

TABELA 4.3 – Resultados nas Instâncias Clássicas sem Rotação e sem Peso.

Instâncias AlgoritmosNome m m̅ C L GRASP02 GR/PR02 TS50002 DP_AOG10 Tempo RG2DM ed RG2 D Tempo Alfa Psi Gap(%)

WANG1 20 42 33 69 - - - **2277 <0.1 0.1 *2277.0 *2277 <0.1 7.1 0.5 0.05 0WANG2 20 42 39 70 - - - **2694 <0.1 0.2 *2694.0 *2694 <0.1 6.7 0.1 0.05 0WANG3 20 42 40 70 *2721 *2721 *2721 **2721 <0.1 0.6 *2721.0 *2721 <0.1 7.0 0.4 0.05 0OF1 10 23 70 40 *2737 *2737 *2737 **2737 0.1 11.2 *2737.0 *2737 0.3 5.5 0.5 0.05 0OF2 10 24 70 40 *2690 *2690 *2690 *2690 0.1 23.6 *2690.0 *2690 <0.1 4.2 0.2 0.04 0CU1 25 82 100 125 12312 12312 *12330 **12330 0.1 0.5 *12330.0 ¹²*12330 <0.1 11.5 0.5 0.05 0CU2 35 90 150 175 *26100 *26100 *26100 **26100 0.2 1.4 *26100.0 *26100 0.1 14.7 0.1 0.05 0CU3 45 158 134 125 16652 16652 16679 **16723 0.3 5.8 16638.3 ¹²16679 17.4 24.8 0.1 0.02 0.26CU4 45 113 285 354 99264 99264 99366 **99495 3.8 35.0 99292.8 ¹²³*99495 10.0 17.2 0.15 0.05 0CU5 50 120 456 385 *173364 *173364 *173364 **173364 2.7 873.2 173003.0 173010 0.1 22.2 0.1 0.05 0.20CU6 45 124 356 447 *158572 *158572 *158572 **158572 1.3 11.8 *158572.0 *158572 <0.1 19.3 0.1 0.05 0CU7 25 56 563 458 *247150 *247150 *247150 *247150 0.1 1800.0 247049.0 *247150 0.1 9.3 0.1 0.05 0CU8 35 78 587 756 432714 432714 432714 **433331 0.5 26.8 432617.0 ¹²³*433331 9.1 14.0 0.075 0.04 0CU9 25 76 856 785 651597 *657055 *657055 **657055 0.1 19.7 *657055.0 ¹*657055 <0.1 13.2 0.5 0.05 0CU10 40 129 794 985 767580 770659 773485 *773772 69.2 1800.0 772445.0 ¹²772982 3.5 21.7 0.2 0.02 0.10CU11 50 134 977 953 909898 914399 922161 *924696 333.6 1293.1 918369.0 ¹²³924311 14.6 24.7 0.15 0.01 0.04Média 25.8 368.9 3.5 14.0

79

Page 81: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

80

TABELA 4.4 – Resultados nas Instâncias APT sem Rotação e com Peso.

TABELA 4.5 – Resultados nas Instâncias APT sem Rotação e sem Peso.

Instâncias AlgoritmosNome m m̅ C L GRASP02 GR/PR02 TS50002 A112 Tempo RG2DMed RG2D Tempo Alfa Psi Gap(%)

APT40 56 290 138 683 65002 65002 66362 **67154 25.86 64713.5 ¹²65896 13.19 50.20 0.3 0.01 1.87APT41 36 177 367 837 199349 200826 *206542 **206542 229.30 202839.1 ¹²206302 1.19 27.89 0.1 0.03 0.12APT42 59 325 291 167 32644 32714 33435 33503 3600.00 32048.1 ¹²32770 3.39 52.47 0.1 0.02 2.19APT43 49 259 917 362 206627 206627 214651 214651 3600.00 212302.9 ¹²214471 16.92 41.27 0.5 0.05 0.08APT44 39 196 496 223 72261 72906 73410 **73868 19.23 72048.8 ¹72895 0.73 25.67 0.1 0.04 1.32APT45 33 156 578 188 73210 73231 *74691 **74691 19.73 72773.3 ¹²*74691 0.64 22.95 0.1 0.04 0APT46 42 197 514 416 147340 147387 *149911 **149911 37.00 147945.9 ¹²*149911 8.38 31.09 0.3 0.01 0APT47 43 204 554 393 148638 148638 148764 **150234 51.80 144126.5 146892 29.20 33.16 0.425 0.03 2.22APT48 34 167 254 931 163484 166115 166927 **167660 75.93 163146.4 ¹²³167023 20.02 23.34 0.125 0.03 0.38APT49 25 119 449 759 209472 211570 215728 **219354 2680.39 211099.3 ¹²214365 6.39 18.19 0.4 0.02 2.27

Média 1033.92 10.00 32.62

Instâncias AlgoritmosNome m m̅ C L GRASP02 GR/PR02 TS50002 A112 Tempo RG2DMed RG2D Tempo Alfa Psi Gap(%)

APT30 38 192 152 927 138863 138863 140144 **140904 2.43 139930.6 ¹²³140461 7.62 30.64 0.3 0.02 0.31APT31 51 258 964 856 801767 804476 814081 **823976 178.99 819712.6 ¹²³821345 10.93 43.06 0.3 0.02 0.32APT32 56 249 124 307 37786 37810 38030 **38068 0.37 37974.6 ¹²38011 29.89 41.16 0.5 0.01 0.15APT33 44 224 983 241 231178 231367 234920 **236611 40.62 235302.8 ¹²³236024 3.36 33.22 0.2 0.05 0.25APT34 27 130 456 795 353822 353822 360084 **361398 79.08 359543.0 ¹²³360420 19.00 21.46 0.225 0.01 0.27APT35 29 153 649 960 607864 612997 620700 **621021 15.36 617964.4 ¹²619426 1.17 20.36 0.1 0.03 0.26APT36 28 153 244 537 129634 130156 130338 **130744 18.06 129826.2 ¹²130276 21.43 24.91 0.425 0.02 0.36APT37 43 222 881 440 379329 379329 381966 **387276 48.03 384875.9 ¹²³385828 1.82 30.11 0.1 0.02 0.37APT38 40 202 358 731 252605 252886 259380 **261395 44.63 259742.3 ¹²³260622 2.77 29.95 0.1 0.01 0.30APT39 33 163 501 538 263076 263471 267168 **268750 33.70 267972.9 ¹²³268081 4.69 25.02 0.2 0.01 0.25

Média 46.13 10.27 29.99

80

Page 82: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

81

Já na Tabela 4.5, podem ser comparados os resultados dos algoritmos supracitados

nas instâncias sem peso APT30-APT39. Superando os algoritmos GRASP e GR/PR em todas

as instâncias e fazendo 7 soluções melhores do que o TS500, seus resultados acentuam sua

predominância nessa variante do PCBGR. Ainda que o algoritmo RG2Da não tenha gerado

alguma solução ótima nas instâncias APT30-39, os tempos computacionais apresentados pelo

RG2Da estão condizentes com a proposta de uma heurística. Visto que nos tempos computados

do A1 não são considerados a determinação dos seus limites essenciais

Os resultados dos algoritmos A1 e RG2Da nas instâncias gcut podem ser discutidos a

partir da Tabela 4.6. O algoritmo RG2Da mostra excelente desempenho em instâncias sem peso

e com demanda unitária para cada item. Não somente a quantidade de soluções ótimas

observada, inclusive em suas médias, e seus tempos computacionais corrobora essa afirmativa

em tal comparação com o algoritmo A1, mas também o gap negativo da solução gerada por

RG2Da para gcut13 de valor 8618394.

TABELA 4.6 – Resultados nas Instâncias gcut sem Rotação e sem Peso.

Os resultados dos algoritmos propostos RG2Dvr e RG2Dar, para o PCBGR com rotação

nas variantes com peso e sem peso, com a mesma configuração de parâmetros nesses grupos

de instâncias, estão disponibilizados nas Tabelas 4.7-4.9. Como não se encontra um trabalho

de grande relevância na literatura do PCBGR rotacionado, os novos resultados ainda não são

confrontados com outro algoritmo. Entretanto, no Capítulo 5 será apresentado o algoritmo

X2D para o PCBGR que também contempla o caso com rotação. Nas colunas que apresentam

os percentuais de gap das referidas tabelas, estes são calculados a partir dos limites superiores

Instâncias AlgoritmosNome m m̅ C L A112 Tempo RG2DMe d RG2D Tempo Alfa Psi Gap(%)

gcut1 10 10 250 250 **48368 2.89 *48368.0 *48368 <0.01 2.23 0.3 0.05 0gcut2 20 20 250 250 **59307 5.56 *59307.0 *59307 <0.01 4.36 0.4 0.05 0gcut3 30 30 250 250 **60241 6.50 *60241.0 *60241 0.28 6.33 0.4 0.04 0gcut4 50 50 250 250 **60942 12.95 *60942.0 *60942 <0.01 11.91 0.5 0.05 0gcut5 10 10 250 250 **195582 4.35 193379.0 193379 <0.01 2.26 0.1 0.05 1.13gcut6 20 20 500 500 **236305 7.13 *236305.0 *236305 <0.01 4.30 0.5 0.05 0gcut7 30 30 500 500 **238974 11.06 *238974.0 *238974 <0.01 6.44 0.4 0.05 0gcut8 50 50 500 500 **245758 18.71 *245758.0 *245758 <0.01 11.28 0.5 0.05 0gcut9 10 10 500 500 **919476 14.51 *919476.0 *919476 <0.01 2.81 0.4 0.05 0gcut10 20 20 1000 1000 **903435 17.85 *903435.0 *903435 <0.01 3.88 0.5 0.05 0gcut11 30 30 1000 1000 **955389 29.65 *955389.0 955389 0.03 6.44 0.5 0.05 0gcut12 50 50 1000 1000 **970744 46.48 *970744.0 970744 <0.01 11.44 0.4 0.05 0gcut13 32 32 3000 3000 8532720 3600.00 8550366.5 8618394 2.00 13.23 0.2 0.03 -1.00

Média 290.59 0.18 6.69

Page 83: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

82

produzidos pelo X2D.

Para simplificar, as novas tabelas não possuem os dados completos das respectivas

instâncias. Basicamente, as Tabelas 4.7 e 4.8 reúnem as instâncias da literatura antes

observadas nas Tabelas 4.2 e 4.3, nas Tabelas 4.9 e 4.10 concentram-se as instâncias APT

referentes às Tabelas 4.4 e 4.5 e as instâncias gcut encontram-se na Tabela 4.11.

TABELA 4.7 – Resultados nas Instâncias Clássicas com Rotação e com Peso.

TABELA 4.8 – Resultados nas Instâncias Clássicas com Rotação e sem Peso.

Instâncias AlgoritmoNome m RG2DMed RG2D Tempo Alfa Psi Gap(%)

ChW1 7 *260.0 *260 <0.1 4.6 0.4 0.05 0ChW2 10 2867.1 2896 0.8 6.4 0.2 0.04 0.17ChW3 20 1902.0 *1920 0.4 12.8 0.1 0.04 0CW1 25 6747.8 6764 0.8 11.6 0.1 0.02 0.30CW2 35 5461.3 *5689 6.4 12.8 0.15 0.01 0CW3 40 5656.6 *5744 0.8 17.9 0.1 0.03 0CW4 39 7432.0 7466 10.2 17.8 0.15 0.01 0.40CW5 35 11587.9 *11659 16.5 16.9 0.15 0.01 0CW6 55 12086.1 12967 21.6 30.0 0.1 0.02 1.79CW7 45 10656.7 *10880 0.3 21.9 0.1 0.05 0CW8 60 4571.5 *4736 8.6 37.1 0.3 0.04 0CW9 50 10737.4 *11479 18.9 27.5 0.075 0.05 0CW10 60 6343.7 *6835 21.2 31.3 0.075 0.04 0CW11 60 6299.5 6520 20.1 25.5 0.1 0.03 3.89Média 9.1 19.6

Instâncias AlgoritmoNome m RG2DMed RG2 D Tempo Alfa Psi Gap(%)

WANG1 20 *2277.0 *2277 <0.1 7.6 0.5 0.05 0WANG2 20 *2716.0 *2716 <0.1 8.4 0.5 0.05 0WANG3 20 *2771.0 *2771 0.1 8.4 0.4 0.05 0OF1 10 2735.8 2737 1.4 4.9 0.3 0.01 0.73OF2 10 *2769.0 *2769 <0.1 4.9 0.3 0.04 0CU1 25 *12500.0 *12500 <0.1 12.8 0.1 0.05 0CU2 35 *26200.0 *26200 0.2 15.7 0.1 0.05 0CU3 45 16695.5 16723 4.8 26.4 0.2 0.02 0.16CU4 45 99868.0 100158 2.2 18.4 0.2 0.05 0.07CU5 50 *174705.0 *174705 <0.1 25.8 0.1 0.05 0CU6 45 158520.0 *158572 0.3 20.8 0.1 0.05 0CU7 25 254183.0 *255684 6.2 9.3 0.075 0.05 0CU8 35 437652.0 *438383 0.9 15.2 0.1 0.03 0CU9 25 658330.0 *659648 5.5 15.7 0.4 0.04 0CU10 40 774990.0 777112 22.1 24.4 0.25 0.04 0.27CU11 50 922813.0 927133 4.6 28.3 0.2 0.02 0.12Média 3.0 15.4

Page 84: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

83

Na Tabela 4.7 das instâncias denominadas clássicas com peso, constatam-se 9

soluções ótimas, 3 soluções apresentando gap menor do que 0.01 e outras 2 com gap superior

a este valor. Com o total de 20 soluções ótimas, incluindo as soluções mostradas na Tabela

4.8 para as instâncias sem peso, produzidas em tempos relativamente pequenos, deduz-se que

as propostas reativas RG2Dvr e RG2Dar também podem ser aplicadas com sucesso em instâncias

consideradas pequenas e médias do PCBGR rotacionado.

Os resultados das instâncias de grande porte indicadas pela sigla ATP e do caso com

rotação encontram-se nas Tabelas 4.9 e 4.10. De acordo com o tamanho das instâncias e

analisando o gap percentual apresentado nas respectivas tabelas supracitadas, verifica-se que

a versão reativa do RG2D para tratar o caso com rotação e sem peso também é mais eficiente

do que para o mesmo tratar a variante com peso.

TABELA 4.9 – Resultados nas Instâncias APT com Rotação e com Peso.

TABELA 4.10 – Resultados nas Instâncias APT com Rotação e sem Peso.

Instâncias AlgoritmoNome m RG2DMed RG2D Tempo Alfa Psi Gap(%)

APT40 56 65163.1 65961 8.69 47.19 0.2 0.01 1.98APT41 36 208163.9 210075 9.94 27.08 0.4 0.02 0.73APT42 59 32549.8 33073 35.13 59.38 0.05 0.03 2.76APT43 49 213911.3 214092 6.92 39.19 0.2 0.01 2.53APT44 39 73883.6 75127 14.16 27.67 0.25 0.01 1.55APT45 33 73484.3 *74691 1.01 23.36 0.1 0.03 0APT46 42 148441.3 150680 24.73 37.83 0.375 0.05 0.20APT47 43 146606.6 149866 29.59 34.69 0.425 0.03 2.02APT48 34 167861.8 170039 0.81 23.66 0.1 0.04 1.08APT49 25 213932.5 219264 19.42 19.70 0.25 0.01 2.54

Média 15.04 33.97

Instâncias AlgoritmoNome m RG2DM ed RG2D Tempo Alfa Psi Gap(%)

APT30 38 139939.3 140461 8.19 33.64 0.3 0.03 0.31APT31 51 822141.9 823978 22.59 46.58 0.5 0.01 0.15APT32 56 38050.9 *38068 27.06 38.47 0.5 0.01 0APT33 44 235689.5 236135 8.72 34.02 0.3 0.02 0.32APT34 27 360794.0 361292 1.53 20.69 0.1 0.02 0.34APT35 29 619251.8 619871 6.97 24.98 0.3 0.01 0.50APT36 28 130102.3 130628 0.08 21.69 0.1 0.05 0.27APT37 43 385664.9 387097 11.75 32.19 0.4 0.02 0.14APT38 40 260459.5 260943 2.16 32.38 0.1 0.02 0.29APT39 33 268336.2 269181 13.88 30.20 0.5 0.01 0.07

Média 10.29 31.48

Page 85: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

84

Na Tabela 4.11 estão descritos os resultados do algoritmo RG2Dar nas instâncias gcut

para a variante do PCBGR sem peso e com rotação. Ainda que no cálculo desses gaps sejam

utilizados os respectivos limites superiores do algoritmo X2D, que serão esclarecidos no

próximo capítulo, é importante ressaltar que a solução gerada para instância gcut13 de valor

8825746 é domínio exclusivo do algoritmo RG2Dar.

TABELA 4.11 – Resultados nas Instâncias gcut com Rotação e sem Peso.

Na Figura 4.14, padrões de corte obtidos com a execução dos algoritmos RG2Da e

RG2Dar são ilustrados. Destacam-se então, as soluções da instância APT33, tanto para o

PCBGR sem rotação (a) como para a variante rotacionada (b). Seus valores totais são 236024

e 236135, respectivamente, e as representações na forma de strings de caracteres são descritas

como V2P26A1P40A1P37a1P37 H4P39 V2P36 V2P36 V2P36 V2P30A1P10 e H3P17

V1P39A1P15 H3P18 V4R10M1R4m1R4 H1P29.

Instâncias AlgoritmoNome m RG2DM ed RG2D Tempo Alfa Psi Gap(%)

gcut1 10 *58136.0 *58136 <0.01 2.82 0.5 0.05 0gcut2 20 *60403.0 *60403 0.02 5.22 0.4 0.04 0gcut3 30 60485.0 60485 0.05 7.43 0.3 0.05 0.20gcut4 50 *61710.0 *61710 0.01 13.60 0.5 0.05 0gcut5 10 *233969.0 *233969 <0.01 2.78 0.4 0.05 0gcut6 20 *239393.0 *239393 <0.01 4.80 0.1 0.05 0gcut7 30 *245306.0 *245306 0.02 7.55 0.3 0.04 0gcut8 50 *247462.0 *247462 0.01 12.63 0.3 0.04 0gcut9 10 *933169.0 *933169 <0.01 3.10 0.5 0.05 0gcut10 20 922695.0 922695 0.01 4.62 0.3 0.05 0.88gcut11 30 *969151.0 *969151 0.01 7.72 0.5 0.05 0gcut12 50 979728.6 980640 0.46 12.60 0.1 0.04 0.10gcut13 32 8739934.3 8825746 3.08 15.83 0.2 0.01 1.91

Média 0.28 7.75

Page 86: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

85

Padrões de Corte APT33 com RG2D

P26

P26

P

40

P37

P37

P39P39 P39 P39

P36

P36

P36

P36

P36

P36

P30

P30

P10

(a) (b)

FIGURA 4.14 – Padrões de Corte APT33 com Algoritmo RG2D.

Page 87: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

86

5 ALGORITMO PRIMAL-DUAL PARA O PCBGR

O presente capítulo descreve uma conjunção de métodos denominada X2D e

resultante de técnicas baseadas em Programação Dinâmica (PD), Programação Inteira (PI) e

na metaheurística GRASP, para tratar as variantes do PCBGR abordadas anteriormente em

relação ao valor e a rotação dos itens. Além do algoritmo primal RG2D já apresentado no

Capítulo 4, são propostos os algoritmos duais X e X2, a heurística primal X2H e a

organização desses quatro elementos que resulta no algoritmo primal-dual X2D. A importância

dessa nova abordagem primal-dual pode ser compreendida na sua capacidade de obter

soluções com garantia de qualidade ou mesmo certificado de otimalidade para o problema em

destaque.

Basicamente, o algoritmo X baseia-se em PI e é capaz de provadamente obter os

pesos ótimos para a relaxação de espaço de estados da PD proposta por Christofides e

Hadjiconstantinou (1995). O algoritmo X2 é proposto como uma generalização de X, que usa

pesos bidimensionais para obter limites ainda mais fortes. Já o algoritmo X2H, consiste na

adaptação de X2 para transformá-lo em uma heurística primal. Uma composição dos

algoritmos X, X2, RG2D e X2H constitui o algoritmo X2D que é executado em quatro fases

interligadas e nessa ordem, atualizando o melhor limite superior (ZUB) somente nas duas

primeiras fases pela solução ótima da PD relaxada de X ou X2 e o melhor limite inferior (ZLB)

oriundo das soluções viáveis geradas nas respectivas quatro fases. No decorrer desse

processo, se a solução corrente ocasionar a igualdade ZUB = ZLB, então a esta solução é

assegurado o certificado de otimalidade e isto encerraria a execução.

Sendo a PD uma metodologia reconhecida na literatura dos Problemas de Corte e

Empacotamento, esta é tida como primordial na geração de padrões de corte tanto para o

PCBGI quanto para o PCBGR com a relaxação de espaço de estados. Em consequência, é

descrito com destaque a utilização da referida técnica nas subseções seguintes para ambos os

problemas.

5.1 PROGRAMAÇÃO DINÂMICA PARA O PCBGI

Um padrão de corte ótimo para o PCBGI pode ser gerado a partir das soluções dos

subproblemas dados pela aplicação de cada um dos possíveis cortes guilhotinados horizontais

ou verticais. Isso permite que este problema seja resolvido via PD em tempo pseudo-

polinomial e a complexidade do algoritmo depende dos valores de C e L. Diferentemente da

abordagem proposta por Gilmore e Gomory (1965), as fórmulas de recorrência apresentadas

Page 88: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

87

por Beasley (1985) não limitam a quantidade de estágios no padrão de corte e juntamente com

os conceitos de Pontos de Discretização de Herz (1972), são utilizadas por Cintra et al. (2008)

no desenvolvimento de um algoritmo exato para o PCBGI como segue.

5.1.1 PROGRAMAÇÃO DINÂMICA PARA DISCRETIZAÇÃO

Para determinar os pontos de discretização em um objeto R = (C, L), a partir das

dimensões dos itens requisitados, utiliza-se uma técnica de PD para o problema da mochila

que providencia o preenchimento ótimo de uma mochila de capacidade inteira D, por itens de

peso e valor igual a di, com i = 1,...,m. Define-se que os pontos de discretização do

comprimento C calculados como uma combinação cônica inteira dos comprimentos dos itens

nessa dimensão pertencem ao conjunto P. De forma análoga, tem-se em Q os pontos

associados à largura L. O pseudocódigo do algoritmo Discretization using Dynamic

Programming (DDP), que retorna o conjunto P dos pontos de discretização para uma

dimensão D, é apresentado a seguir.

Algoritmo DDP (D, d) 1. P ={0}; 2. Para (j = 0,..., D) faça cj = 0; 3. Para (i = 1,..., m) faça 4. Para (j = di,..., D) faça 5. Se (cj < cj - di + di) então cj = cj - di + di; 6. Para (j = 1,..., D) faça 7. Se (cj = j) então P = P ∪ {j}; 8. Retorna (P);

Fim DDP

Sejam cmin e lmin o menor comprimento e a menor largura entre os itens nessa ordem.

Denomina-se por P0 o conjunto dos pontos de discretização associados ao comprimento C do

objeto com o elemento genérico p ≤ C - cmin. Analogamente, define-se Q0 como conjunto dos

pontos de discretização associados à largura L e elemento genérico q ≤ L - lmin. Com as

devidas inserções no algoritmo DDP, a substituição dos respectivos conjuntos P e Q pelos

conjuntos P1 = P0 ∪ {C} e P2 = Q0 ∪ {L} vão produzir significativo ganho computacional na

execução do algoritmo descrito na próxima subseção.

Estabelecendo que os cortes guilhotinados horizontal e vertical em R são realizados

apenas nestes pontos de discretização, o padrão de corte ótimo para o PCBGI é categorizado

de canônico por Herz (1972).

5.1.2 ALGORITMO DYNAMIC PROGRAMMING

O algoritmo Dynamic Programming (DP) aproveita os pontos de discretização com o

Page 89: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

88

intuito de obter exclusivamente padrões canônicos. Isto significa que o padrão de corte ótimo

para o PCBGI que o DP retorna, apresenta suas faixas guilhotinas geradas a partir de cortes

realizados apenas nestes pontos discretizados.

Considerando que v(c, l) = max({vi|1 ≤ i ≤ m, ci ≤ c, li ≤ l} ∪ {0}) é o maior valor

obtido com a produção de um único item no subretângulo (c, l) ou 0 caso não caiba algum

item. Admitindo a possibilidade de um padrão de corte não possuir cortes guilhotina ou

apresentar o primeiro corte guilhotina vertical na posição c’ ou mostrar o primeiro corte

guilhotina horizontal na posição l’, a seguinte fórmula de recorrência é utilizada

construtivamente conforme descrito na sequência.

Inicialmente, para cada subretângulo de dimensões pi ∈ P1 e qj ∈ P2, o item de maior

valor é designado. Na sequência, ainda para os subretângulos (pi, qj), verifica-se para cada

possível corte vertical em px ou horizontal em qy, com px ≤ pi/2 e qy ≤ qj/2 arredondados para

baixo, se este promove alteração no valor ótimo de (pi, qj) considerando a melhor utilização

dos subretângulos (pi-px, qj) ou (pi, qj-qy), nessa ordem, com i = 1,..,r e j = 1,..,s. Sendo assim,

na composição da solução ótima, o processo inicia-se com o menor subretângulo (pi, qj) e

conforme as dimensões desses subretângulos vão aumentando, até atingir as dimensões de R,

as informações sobre as suas respectivas melhores soluções parciais e seus valores são

utilizadas na determinação do padrão ótimo de corte.

Uma descrição do algoritmo DP (CINTRA et al., 2008), que utiliza as informações

da instância como dados de entrada e retorna o padrão de corte ótimo (PCIOtimo) para o

PCBGI com peso atribuído aos itens, é apresentada como segue.

Algoritmo DP (C, L, c, l, v) 1. Determine pi < ... < pr, os pontos de discretização do conjunto P1; 2. Determine qi < ... < qs, os pontos de discretização do conjunto P2; 3. Para (i = 1,..., r) faça 4. Para (j = 1,..., s) faça 5. V(i, j) = max ({vk|1 ≤ k ≤ m, ck ≤ pi e lk ≤ qj}∪{0}); 6. item(i, j) = max ({k|1 ≤ k ≤ m, ck ≤ pi, lk ≤ qj e vk = V(i, j)}∪{0}); 7. guilhotina(i, j) = nil; 8. Para (i = 2,..., r) faça 9. Para (j = 2,..., s) faça n = max(k|1 ≤ k ≤ i e pk ≤ [[pi/2]]); 10. Para (x = 1,..., n) faça t = max(k|1 ≤ k ≤ r e pk ≤ pi - px); 11. Se (V(i, j) < V(x, j) + V(t, j)) então 12. V(i, j) = V(x, j) + V(t, j), posição(i, j) = px e guilhotina(i, j) = ‘V’; 13. n = max(k|1 ≤ k ≤ j e qk ≤ [[qj/2]]);

( )

( )

( ) ( )

( ) ( )1

2

{v c, l

V c, l {V c’, l + V c - c’, l c’ P , ’

}

= max | c } c/2

V c, l’ + V c, l - l’ l’ P , l’

{ | } l/ 2

∈ ≤

∈ ≤

U

U

(5.1)

Page 90: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

89

14. Para (y = 1,..., n) faça t = max(k|1 ≤ k ≤ s e qk ≤ qj - qy); 15. Se (V(i, j) < V(i, y) + V(i, t)) então 16. V(i, j) = V(i, y) + V(i, t), posição(i, j) = qy e guilhotina(i, j) = ‘H’; 17. Retorna (PCIOtimo);

Fim DP

Na reconstrução do padrão de corte ótimo, o algoritmo DP recupera em determinada

matriz as informações referentes à direção e posição do primeiro corte guilhotina, realizado

nos subretângulos determinados a partir dos pontos de discretização. Se não houver

ocorrência de corte guilhotina, é indicado qual item deve ser produzido nesse subretângulo.

Isto é, os subretângulos de dimensões (pi, qj) apresentam valor de utilidade ótimo V(i, j) ≤

V(r, s), guilhotina(i, j) indica a direção horizontal ou vertical do primeiro corte e item(i, j)

aponta onde deve ser feito este primeiro corte. Se guilhotina(i, j) = nil, então nenhum corte

guilhotina é realizado e item(i, j) determina qual item deve ser gerado em (pi, qj).

O algoritmo descrito anteriormente também pode gerar padrões ótimos para PCBGI

com peso e rotação. Neste caso, para cada item de uma instância com dimensões ci ≠ li , ci ≤

C, li ≤ L e valor de utilidade vi, foi adicionado a essa instância um novo item (li, ci),

apresentando o mesmo valor de utilidade vi, com i = 1,...,m.

5.2 PROGRAMAÇÃO DINÂMICA PARA O PCBGR

A resolução do PCBGR por PD pode ser muito mais desafiadora do que a do PCBGI.

Isso se deve a necessidade de controlar quantas cópias de cada item vão estar nas soluções de

cada um dos subproblemas. Sejam d = [d1,..., dm] e δ = [δ1,..., δm] vetores de m dimensões

indicando a demanda original dos itens e o maior número permitido de cópias de cada item na

solução de um subproblema, respectivamente. Define-se v(c, l, δ) = max({vi | 1 ≤ i ≤ m, ci ≤ c,

li ≤ l, δi ≥ 1} ∪ {0}) como o maior valor obtido com a possível produção de um único item i

sem rotação e com δi positivo no subretângulo (c, l). Considerando que o padrão de corte

ótimo pode ser composto por um único item ou ter um corte guilhotinado vertical na posição

c’ ou possuir um corte guilhotinado horizontal na posição l’, o valor da melhor solução no

subretângulo (c, l) respeitando as respectivas demandas máximas indicadas em δ é obtido pela

seguinte recorrência:

onde P1 e são P2 os pontos de discretização para os cortes verticais e horizontais.

( )

( )

( ) ( )

( ) ( )1

2

{v c, l,

V c, l, {V c’, l, ’ + V c - c’, l, - ’ c’ P , ’ c/2, 0 ’

V c, l’, ’ + V c, l - l’, - ’ l’ P ,

}

= max | c }

’ l

{ | l /

∈ ≤ ≤ ≤

∈ ≤

δ

δ δ δ δ δ δ

δ δ δ

U

U

}, (52, .2)0 ’

≤ ≤

δ δ

Page 91: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

90

Como o valor da solução ótima do PCBGR é dado por V(C, L, D), essa PD apenas

teria utilidade prática em problemas muito pequenos. A necessidade de analisar todas as

possíveis divisões de demandas relacionadas no vetor d com os dois subproblemas δ e δ - δ’

faz com que o número de estados cresça por um fator de ∏ (��� di+1) em relação ao número de

estados do PCBGI correspondente. Desta forma, isso resultaria em grande número de estados

da PD e a “Maldição da Dimensionalidade” levaria ao crescimento exponencial do tempo de

execução com o incremento do número de itens.

5.2.1 RELAXAÇÃO DO ESPAÇO DE ESTADOS DA PROGRAMAÇÃO DINÂMICA

Christofides e Hadjiconstantinou (1995) propuseram uma relaxação do espaço de

estados para produzir limites superiores fortes para o PCBGR. A ideia é associar um peso

inteiro não negativo qi para cada item i e impor que a soma do produto desses pesos pela

demanda dos itens em uma solução não deve exceder o valor Q = ∑ d�. q���� . Desta forma, a

PD relaxada que determina o valor da melhor solução em (c, l) para todo peso não maior do

que o escalar inteiro q = 0,...,Q define-se nas seguintes fórmulas:

Assim sendo, o limite superior do PCBGR é dado por V(C, L, Q). Essa relaxação tende a ser

melhor tratável porque o número de estados em relação ao número de estados da PD para o

PCBGI é apenas multiplicado pelo fator (Q+1). De fato, atribuindo-se pesos zeros para a

maioria dos itens é possível manter o valor de Q relativamente baixo.

O valor do limite superior obtido com essa PD depende fortemente do vetor de pesos

q = [q1,..., qm] escolhido. Com o objetivo de obter bons pesos capazes de determinar limites

superiores de qualidade, Christofides e Hadjiconstantinou propuseram um algoritmo inspirado

no método do subgradiente.

Seja b = [b1,..., bm] o vetor correspondente a solução ótima da PD com certo vetor de

pesos q e de valor Z. Caso bi ≤ di para todo item i, então esse b viável é certamente a solução

ótima do PCBGR. Caso contrário, b é uma solução inviável e Z é um limite superior válido. O

algoritmo de ajuste de pesos faz sua primeira iteração com o vetor de pesos q nulo, isto é, Q

tem valor 0. Em seguida, a PD é executada e retorna uma solução b. As iterações seguintes

atualizam q de acordo com as soluções correntes b, usando a seguinte fórmula:

( ) { } { }

( )

( )

( )

i

i i i = max( | ) (5.3)

}

v c, l, q v 1 i m, c c,

l l, q q 0

{v c , l, q

V c, l

, q {V c’, l, q’ + V c -

= ma cx

≤ ≤ ≤ ≤ ≤ U

U

( )

( ) ( )1

2

’, l, q - q’ c’ P , ’ c/2, q’ q

V c, l’, q’ +

| c 0 }

{ | 0 } (5.4) V c, l - l’, q - q’ l’ P , l’ l/2, q’ q

∈ ≤ ≤ ≤

∈ ≤ ≤

U

Page 92: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

91

onde t é um escalar positivo que representa o tamanho do passo. A proposta consiste em

aumentar o peso dos itens que estão em excesso e reduzir o peso dos itens que aparecem

abaixo da demanda. Assim, na proposta original t é dado por:

onde o parâmetro π é inicializado com valor 1.0 e reduzido pela metade a cada 3 iterações até

que este seja menor que ε = 0.05, e ZUB e ZLB são os limites superiores e inferiores,

provenientes da PD relaxada e de um procedimento heurístico, respectivamente.

Silveira e Morabito (2002) e Morabito e Pureza (2010) também utilizam esse

esquema de ajuste de pesos, mas propondo uma melhoria na fórmula de cálculo do passo,

impondo um limite inferior t = 1 admitindo assim que qi seja modificado se bi ≠ di, e

inicializando π com valor 2.0 na formulação a seguir.

Esse algoritmo pode terminar em um dos seguintes casos: (i) o passo se torna muito

pequeno; (ii) o valor de Q está muito grande; (iii) o valor de Z se iguala ao valor da melhor

solução viável conhecida. Neste último caso, essa solução passa a ter um certificado de

otimalidade. De qualquer forma, denomina-se como ZUB o menor valor de Z ao longo das

iterações e este é um limite superior para o PCBGR.

A PD correspondente às fórmulas (5.3) e (5.4) é válida para a variante do PCBGR

sem rotação do item. No entanto, isso pode ser facilmente adaptado para lidar com a variante

que admite essa rotação. Primeiro, a equação (5.3) deve ser substituída por v(c, l, q) =

max({vi | 1 ≤ i ≤ m, (ci ≤ c, li ≤ l) ou (li ≤ c, ci ≤ l), qi ≤ q } ∪ {0}). Em segundo lugar, os

conjuntos de pontos de discretização P1 e P2 utilizados na equação (5.4) devem ser

substituídos por um único conjunto P que correspondem a todas as combinações cônicas

inteiras possíveis de comprimento ou largura dos itens. Portanto, torna-se importante ressaltar

que os algoritmos apresentados em seguida são válidos para ambas variantes, assumindo que

a versão correta do PD seja utilizada.

( )

i i i i i

i

i i i i i

q t b - d se b > d q =

max 0, q - t d - b se b d , (5.5)

+

m 2UB LB i ii 1

1t = π(Z - Z ) / (d - b ) , (5.6)

2 =∑

m 2 UB LB i ii 1

t = max 1, π(Z - Z ) / (d - b ) (5.7)=

Page 93: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

92

5.3 LIMITES SUPERIORES PARA O PCBGR POR PROGRAMAÇÃO DINÂMICA E

INTEIRA

Na PD com relaxação do espaço de estados para a obtenção de limites superiores

ZUB, proposta por Christofides e Hadjiconstantinou (1995), a qualidade do limite depende dos

valores atribuídos aos pesos qi dos respectivos itens. Diferentemente da formulação de ajuste

de pesos baseado no método do subgradiente para relaxação Lagrangeana, são propostos

algoritmos X e X2 que calculam estes pesos por PI. Sendo o algoritmo X provadamente ótimo

no sentido de sempre obter os pesos que minimizam o limite superior ZUB e o algoritmo X2

uma generalização da relaxação do espaço de estados que utiliza pesos bidimensionais, estes

são apresentados com maiores detalhes nas subseções seguintes.

5.3.1 ALGORITMO X

Propõe-se um novo algoritmo de ajuste de pesos para a relaxação do espaço de

estados de Christofides e Hadjiconstantinou. Uma característica desse novo algoritmo é

considerar não apenas a solução b da iteração corrente, mas todas as soluções obtidas nas n

iterações já realizadas. Seja bj = [b1j,..., bmj] o vetor da solução de valor Zj gerada na iteração j

com bij sendo o número de vezes que o item i aparece em tal solução. Assume-se que todas

essas n soluções são inviáveis, caso contrário, a solução ótima do PCBGR já teria sido

encontrada. Define-se o seguinte programa linear inteiro chamado de PIX(n):

m

i ii=1

m

ij i ii=1

Min Q = d .q (5.8)

s.a: (b - d )q 1 para todo j = 1,...,n (5.9)

0 e Inteiro (5.10) ≥q

Os novos pesos para a iteração seguinte são dados pela solução de PIX(n). As restrições (5.9)

se baseiam no fato de que a possibilidade do novo vetor de pesos q melhorar ZUB está

condicionada a eliminação de todas as n soluções geradas anteriormente do conjunto de

soluções da PD relaxada. No algoritmo X descrito a seguir, maxiter e Qmax são parâmetros

limitantes do número máximo de iterações e o do valor máximo permitido para Q e a saída

Certopt notifica se há um certificado de otimalidade.

Algoritmo X (maxiter, Qmax) 1. n = 1, q = 0, ZUB = ∞; 2. Resolva a PD relaxada com o vetor q, obtendo uma solução bn de valor Zn; 3. Se (Zn < ZUB) então ZUB = Zn; 4. Se (bn viável) então Retorna (ZUB, Certopt = True); 5. Resolva o PIX(n);

Page 94: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

93

6. Se (PIX(n) inviável) então Retorna (ZUB, Certopt = False); 7. Atualize vetor q e Q com a solução ótima de PIX(n); 8. n = n + 1; 9. Se (n > maxiter ou Q > Qmax) então Retorna (ZUB, Certopt = False); 10. Volta ao passo 2;

Fim X

Lema 1. Mesmo se maxiter = ∞ e Qmax = ∞, o algoritmo X termina em um número finito de

iterações.

Prova: A definição de PIX(n) garante que a solução bn+1 é distinta das soluções bj , 1 ≤ j ≤ n.

Como existe um número finito de soluções, o algoritmo deve parar. □

Teorema 1. Se maxiter = ∞ e Qmax = ∞, algoritmo X sempre retorna ZUB = ZUBopt, que é o

menor limite superior possível de ser encontrado pela PD relaxada com qualquer vetor de

pesos q. Além disso, a iteração da PD relaxada que encontra ZUBopt utiliza o menor valor de

Q que obtém esse limite superior.

Prova: Pelo Lema 1, o algoritmo X para. Se X para com um certificado de otimalidade,

certamente ZUB = ZUBopt. Caso contrário, X parou na iteração n porque PIX(n) é inviável.

Suponha que o ZUB retornado não é ótimo, isto é, ZUB > ZUBopt. Neste caso, suponha que

exista um vetor de pesos inteiros qopt que produza um limite ZUBopt < ZUB. Não é possível que

∑ (��� bij - di).qopt i < 1 para algum j, 1 ≤ j ≤ n. Caso contrário, a solução bj com valor Zj ≥ ZUB

seria uma solução da PD relaxada com pesos qopt. Portanto, qopt é viável para PIX(n).

Contradição.

Seja n’ a primeira iteração que produziu a solução bn’ de valor Z n’ = ZUBopt. Se n’ =

1, então o valor de Q era 0 nessa iteração. Se n’ > 1, o vetor de pesos q da PD relaxada na

iteração n’ foi obtido da solução ótima de PIX(n’-1). Para cada solução bj, 1 ≤ j ≤ n-1, esta

tem valor Zj > ZUBopt. Logo, qualquer vetor de pesos q que produzir uma solução de valor

ZUBopt deve satisfazer ∑ (��� bij - di).qi ≥ 1, para todo j =1,...,n’-1. Portanto, Q = ∑ d�. q�

��� pode

não ser menor do que o valor obtido na solução do PIX(n’-1). □

Na grande maioria das instâncias da literatura testadas, o algoritmo X com maxiter =

∞ e Qmax = ∞ termina em menos de 10 iterações e com valores de Q inferiores a 20.

Entretanto, em algumas instâncias, o número de iterações e os valores de Q podem crescer

consideravelmente, tornando o algoritmo lento demais em sua execução. Além disso, nesses

casos, o valor final ZUB não é significativamente melhor do que os valores de ZUB obtidos nas

primeiras iterações, quando os valores de Q eram razoávelmente pequenos. Para impedir essa

Page 95: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

94

Padrões de Corte Inviáveis CW4

situação, pode-se truncar o algoritmo X fazendo uso dos parâmetros maxiter e Qmax, que

limitam o número máximo de iterações e um valor máximo para Q. Este último limite é

implementado da seguinte forma: ao se resolver PIX(n), caso o Q obtido seja maior que Qmax,

o algoritmo finaliza retornando (Zmin, Certopt = false). O Teorema 2 enuncia que o algoritmo

X ainda obtém solução ótima para determinado Qmax. Sua prova é omitida por ser análoga a

do Teorema 1.

Teorema 2. Suponha que o algoritmo X seja executado com maxIter = ∞ e um limite Qmax.

Nesse caso, o ZUB retornado sempre vai ser igual ao melhor limite superior possível de ser

encontrado pela PD relaxada com qualquer vetor de pesos q tal que Q = ∑ �� . ����� ≤ Qmax.

FIGURA 5.1 – Padrões de Corte Inviáveis da Instância CW4 com Algoritmo X.

(a) (b)

(c) (d)

Page 96: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

95

Para ilustrar o algoritmo X para o caso sem rotação, é introduzida uma execução

detalhada sobre a instância clássica CW4 do PCBGR sem peso, apresentada em (FAYARD et

al., 1998). Essa instância totaliza 86 itens demandados com valores distintos às suas medidas

de área, m = 38, C = 465 e L = 387.

O algoritmo X inicia resolvendo o PD com o vetor q nulo e o escalar Q = 0 e isso é

equivalente a resolver o PCBGI. A solução ótima obtida com valor Z1 = 6551 é mostrada na

Figura 1 (a). Nesses padrões, o excesso de produção de algum item é ilustrado com a presença

de itens coloridos. O vetor de solução b1 tem como componentes não nulos b12 = 3, b18 = 6 e

b25 = 1 e com as respectivas demandas d12 = 6, d18 = 2 e d25 = 3, o item 18 ultrapassa em 4

itens sua demanda. Observe no PIX(1) mostrado a seguir, assim como os demais, que as

variáveis correspondentes a itens que não aparecem em alguma solução bj, 1 ≤ j ≤ n, podem

ser omitidas dos respectivos PIX(n) uma vez que têm valor zero em qualquer solução ótima.

12 18 25

12 18 25

Min Q = 6q + 2q + 3q s.a: - 3q + 4q - 2q 1 ≥

≥q 0 e Inteiro

A solução ótima de PIX(1) fornece um vetor de pesos onde q18 = 1 e valor Q = 2. Na

sequência, a PD relaxada na iteração 2 obtém a solução de valor Z2 = 6183 que pode ser

conferida na Figura 1 (b). Verifica-se que o item 28 é produzido 9 vezes mas sua demanda é

apenas 4. PIX(2) é descrito a seguir e tem solução ótima Q = 8 com q18 = 2 e q28 = 1.

12 18 25 28

12 18 25 28

12 18 25 28

Min Q = 6q + 2q + 3q 4q s.a: - 3q + 4q - 2q - 4q 1

- 6q - 2q - 3q 5q 1

0 e Inteiro

+

+ ≥

≥q

A iteração 3 produz a solução mostrada na Figura 1 (c), com Z3 = 6238. Como o item

26 tem d26 = 7, o PIX(3) construído a seguir tem solução ótima de valor Q = 26 com q18 = 7 e

q28 = 3.

12 18 25 26 28

12 18 25 26 28

12 18 25 26 28

12 18 25 26 28

Min Q = 6q + 2q + 3q + 7q + 4q s.a: - 3q + 4q - 2q - 7q - 4q 1

- 6q - 2q - 3q - 7q 5q 1 - 3q + q - 2q - 6q - 2q 1

0 e Intei

+ ≥

≥q ro

A solução obtida na iteração 4 com Z4 = 6233 é representada na Figura 1 (d) e

conduz ao PIX(4) como segue.

Page 97: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

96

12 18 25 26 28

12 18 25 26 28

12 18 25 26 28

12 18 25 26 28

12 18

Min Q = 6q + 2q + 3q + 7q + 4q s.a: - 3q + 4q - 2q - 7q - 4q 1

- 6q - 2q - 3q - 7q 5q 1 - 3q + q - 2q - 6q - 2q 1 - 2q + q - 2

+ ≥

25 26 28

q - 6q - 3q 1

0 e Inteiro ≥

≥q

Como o PIX(4) é inviável, o algoritmo X termina com ZUB = Z2 = 6183. Ressalta-se

ainda que o tempo de resolução destes programas inteiros é praticamente insignificante em

relação ao tomado pela PD.

5.3.2 ALGORITMO X2

Com o objetivo de obter limites superiores ainda mais fortes por PD, introduz-se aqui

uma generalização do conceito de relaxação de espaço de estados de Christofides e

Hadjiconstantinou (1995). A ideia é que cada item i passa ser associado a um peso inteiro não

negativo bidimensional qi = (q1i, q2i). Define-se então q = [q1 = (q11, q21),..., qm = (q1m, q2m)],

q1 = [q11,..., q1m] e q2 = [q21,..., q2m]. A nova PD relaxada deve impor que a soma do produto

dos respectivos pesos dos itens pelas suas demandas em uma solução não deve exceder o

valor bidimensional Q = (Q1 = ∑ d���� .q1i, Q2 = ∑ d�

��� .q2i). A formulação de recorrência é

similar à expressa em (5.3) e (5.4), mas nessa nova interpretação em que q representa um

vetores de pesos bidimensionais. Em tais fórmulas, também, são consideradas as combinações

de todos os pesos não maiores que os escalares inteiros q1 = 0,...,Q1 e q2 = 0,...,Q2. Sendo

assim, o limite superior do PCBGR é dado por V(C, L, (Q1, Q2)) e o número de estados passa

a ser (Q1+1).(Q2+1) vezes maior, se comparado ao número de estados da PD para o PCBGI.

A adaptação do algoritmo X para os pesos bidimensionais exige a definição de um

novo problema de otimização. A atualização desse vetor bidimensional q pode ser dada pelo

seguinte Programa Inteiro Quadrático denominado PQIX2(n):

1 2m

1 i 1ii=1

Min (Q +1).(Q +1) (5.11)

s.a: Q = (D .q ) (5∑

m

2 i 2ii=1

m

ij 1i 1 ji=1

.12)

Q = (D .q ) (5.13)

(b .q ) - Q + M(1 - y ) 1 para todo j = 1,...,n (5.1

m

ij 2i 2 ji=1

1

4)

(b .q ) - Q + My 1 para todo j = 1,...,n (5.15)

y = 1 (5.16)

≥∑

j

, 0 e Inteiro (5.17) y Binário

≥1 2q q (5.18)

Page 98: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

97

No modelo PQIX2(n), a função objetivo quadrática busca minimizar o número de

estados na PD relaxada e existem 2(m+1) variáveis inteiras não negativas e n variáveis

binárias. Para cada i, 1 ≤ i ≤ m, as variáveis individuais q1i e q2i representam as duas

dimensões de pesos do item i. As igualdades (5.12) e (5.13) são as definições das variáveis Q1

e Q2 em função dos respectivos vetores de variáveis q1 e q2. Para cada j, 1 ≤ j ≤ n, a variável

binária yj indica que a solução bj da PD relaxada deve ser eliminada pela primeira dimensão

de pesos (yj = 1) ou pela segunda dimensão (yj = 0). Estas variáveis aparecem nas restrições

(5.14) e (5.15) e os coeficientes M devem grandes o suficiente para garantir que uma solução

bj nunca precisa ser eliminada por ambas as dimensões. A restrição (5.16) não é essencial,

mas ajuda reduzir o grau de simetria de PQIX2(n), indicando que a primeira solução deve ser

eliminada pelos pesos de q1.

Define-se o algoritmo X2 como sendo a generalização do algoritmo X para pesos

bidimensionais, que agora são atualizados pela solução de PQIX2(n).

Algoritmo X2 (maxiter, Qmax, ZUB) 1. n = 1, q = [0, 0]; 2. Resolva a PD relaxada com o vetor q, obtendo uma solução bn de valor Zn; 3. Se (Zn < ZUB) então ZUB = Zn; 4. Se (bn viável) então Retorna (ZUB, Certopt = True); 5. Resolva o PQIX2(n); 6. Se (PQIX2(n) inviável) então Retorna (ZUB, Certopt = False); 7. Atualize vetor q = [q1, q2] e Q = (Q1, Q2) com a solução ótima de PQIX2(n); 8. n = n + 1; 9. Se (n > maxiter ou Q1 > Qmax ou Q2 > Qmax) então Retorna (ZUB, Certopt = False); 10. Volta ao passo 2;

Fim X2

A prova do teorema 3 é análoga ao do Teorema 1.

Teorema 3. Se maxiter = ∞ e Qmax = ∞, algoritmo X2 sempre retorna ZUB2 = ZUB2opt, que é o

menor limite superior possível de ser encontrado pela PD relaxada com qualquer vetor

bidimensional de pesos q. Além disso, a iteração da PD relaxada que encontra ZUB2opt, utiliza

pesos que fazem a quantidade (Q1+1).(Q2+1) ser a menor possível dentre todos os pesos que

podem obter esse limite superior.

Teorema 4. ZUB2opt ≤ ZUBopt e há instâncias onde esta desigualdade é estrita.

Prova: Para obter um limite igual a ZUBopt usando uma PD com pesos bidimensionais,

bastaria usar valores de q1 iguais aos pesos ótimos da PD com pesos unidimensionais q* e

manter os valores em q2 iguais a 0. Para mostrar que a desigualdade pode ser estrita, dá-se um

exemplo com a instância definida por R = (6, 1), m = 2, p1 = (3, 1), d1 = 1, v1 = 3, p2 = (2, 1),

Page 99: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

98

d2 = 2 e v2 = 2. Executando o algoritmo X, obtém-se b1 = [2, 0] e Z1 = 6 na primeira iteração.

Após a resolução de PIX(1), a segunda iteração utiliza q* = [1, 0] e produz a solução b2 = [0,

3] com Z2 = 6. Sendo assim, o PIX(2) é o seguinte:

1 2

1 2

1 2

Min q + 2q s.a: q - 2q 1

- q + q 1 ≥

0 e Inteiro ≥q

Como PIX(2) é inviável, o algoritmo X terminaria com ZUB = ZUBopt = 6. Entretanto, o

algoritmo X2 terminaria por otimalidade com ZUB = ZUB2opt = 5. Esse limite é obtido com os

pesos vetores q1 = [1,0] e q2 = [0,1]. □

Existem softwares disponíveis para resolver problemas de PI com função objetivo

quadrática. Entretanto, por simplicidade e para evitar a possibilidade dessa resolução

demandar um tempo computacional maior, opta-se nos experimentos computacionais em

simplificar a função objetivo de PQI(n) para

Min Q1 + Q2. (5.19)

Adotando (5.19) como função objetivo sujeito as restrições (5.12) - (5.18), formula-

se o problema de PI denominado PIX2(n). Note que mesmo com essa simplificação, o

algoritmo X2 usando PIX2(n) ainda encontra o melhor limite superior possível ZUB2opt se

maxiter = ∞ e Qmax = ∞. No entanto, esse limite possivelmente vai ser obtido com um conjunto

de pesos bidimensionais que não minimizam o número de estados na PD.

Consequentemente, pesos bidimensionais podem obter limites superiores mais fortes,

mas também as relaxações da PD podem ser mais demoradas para serem resolvidas. Por essa

razão, torna-se mais interessante utilizar os pesos bidimensionais apenas quando o algoritmo

X finalizar sem o certificado de otimalidade para a instância. Assim sendo, X2 inicializa com

as n soluções inviáveis bj, 1 ≤ j ≤ n, encontradas anteriormente pelo algoritmo X. Isto

significa que em vez de iniciar com q1 = 0 e q2 = 0, considera-se as n soluções documentadas

para atribuir a tais vetores os respectivos pesos da solução de PIX2(n). Isto é coerente porque

X2 somente pode melhorar o limite superior ZUB produzido pelo X usando pesos que

eliminem do relaxamento do espaço de estados todas essas n soluções.

Considerando o desenvolvimento do algoritmo X2 na instância CW4, esse é

inicializado com as 4 soluções inviáveis encontradas pelo algoritmo X, então o primeiro

problema inteiro resolvido é o PIX2 (4) como segue.

Page 100: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

99

Padrão de Corte Ótimo CW4

1 2

1_12 1_ 18 1_25 1 _ 26 11 _ 28

Min Q + Q s.a: 6q 2q 3q 7q 4q Q = + + + +

2_12 2 _18 2_25 2 _ 26 2 _ 28

1_12 1_ 18 1_25 1

2_12 2 _ 18 2_25 1

1_ 28

1

1 2

2

2

6q 2q 3q 7q 4q

3q 6q q - M(1- y ) 1 3q 6q q - My 1

9q

Q

- M(1 - y

= Q

QQ ) 1

9

+ + + +

+ + + ≥

+ + + ≥

+ ≥

2 _ 28 2

1_12 1 _18 1_25 1 _ 26 1_ 2

2

1

2

8 3

2_12 2 _ 18 2_25 2 _ 26 2 _ 28 3

1_12 1 _18 1_25 1 _ 26 1 _ 2 18 4

q - My 1 3q 3q 1q 1q 2q - M(1 - y ) 1

3q 3q 1q 1q 2q - My 1 4q 3q 1q 1q 1q - M(1 - y )

QQ

QQ 1

4q

+ ≥

+ + + + + ≥

+ + + + + ≥

+ + + + + ≥

2_12 2 _18 2_25 2 _ 26 2 _ 28 4

1

2

3q 1q 1q 1q - My 1 y 1

, 0 e Inteiro y Binário

Q

+ + + + + ≥

=

≥1 2q q

A solução ótima de PIX2 (4) tem as variáveis binárias y1 = 1, y2 = 0, y3 = 1 e y4 = 1 e

os pesos individuais não nulos são q1_18 = 1 e q2_28 = 1 produzindo Q1 = 2 e Q2 = 4. Desta

forma, a PD relaxada com esses pesos bidimensionais encontra a solução viável apresentada

na Figura 5.2 de valor Z5 = 6175. Essa solução é certificada como sendo ótima, encerrando a

execução do algoritmo X2.

FIGURA 5.2 – Padrão de Corte Ótimo da Instância CW4 com Algoritmo X2.

5.4 LIMITES INFERIORES PARA O PCBGR POR GRASP, PROGRAMAÇÃO

DINÂMICA E INTEIRA

O esforço computacional a cada execução da PD com os algoritmos X e X2 justifica-

se não somente pelos fortes limites superiores ZUB obtidos, mas também pela qualidade dos

Page 101: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

100

múltiplos padrões ótimos ou subótimos encontrados pela PD relaxada para cada possível corte

horizontal ou vertical no retângulo (C, L). Sabendo que um limite superior ZUB é dado pelo

padrão de corte de maior valor, se a PD relaxada dos respectivos algoritmos X e X2

produzirem uma solução viável no decorrer do processo com ZUB = ZLB, é atribuído o

certificado de otimalidade a essa solução e o programa termina. Senão, busca-se melhorar o

limite inferior ZLB utilizando as seguintes estratégias: (i) rodar a instância no algoritmo RG2D

após o X2, apenas se o gap entre o ZUB e o ZLB corrente for maior que o limitante Gapmax; (ii)

utilizar uma heurística baseada na relaxação do espaço de estados da PD com pesos

bidimensionais; (iii) pesquisar nos múltiplos padrões ótimos ou subótimos encontrados na

matriz da PD, para cada possível corte horizontal ou vertical no retângulo (C, L), por uma

solução que atualize esse limite; (iv) executa-se um procedimento de viabilização em padrões

inviáveis e com valor superior ao ZLB corrente, que consiste na substituição de itens com

produção acima por outros itens com demanda não atendida. Com as versões do RG2D

apresentadas no Capítulo 4, nas próximas subseções são esclarecidos detalhes sobre os

métodos (ii), (iii) e (iv) utilizados na tentativa de incrementar o ZLB.

5.4.1 HEURÍSTICA X2H

Supondo que se tenha escolhido um determinado vetor de pesos unidimensional q

tenha vários itens com peso positivo. Para a PD relaxada encontrar um limite superior válido,

deve-se resolver V(C, L, Q) com a recursão (5.3) - (5.4), onde Q = ∑ (��� di.qi). Esse valor de

Q se faz necessário porque é possível que a solução ótima do PCBGR use exatamente di

cópias de cada item com peso positivo. Porém, na prática, é muito improvável que isso

aconteça. Isso significa que calculando V(C, L, Qheu), onde Qheu é um escalar inteiro não

negativo de valor menor ou igual a Q, é provável que a solução ótima do PCBGR não seja

eliminada. Além disso, uma vez que muitas soluções inviáveis são eliminadas, há uma chance

de encontrar boas soluções viáveis na PD relaxada. O algoritmo proposto X2H é uma

heurística baseada nessa observação, a ser usada depois que X2 encerra sem um certificado de

otimalidade para as soluções da PD relaxada nessa fase.

Sendo assim, o algoritmo X2H utiliza os pesos bidimensionais e é inicializado com

todas as soluções inviáveis encontradas ao longo da execução dos algoritmos X e X2, nos

quais todas elas apresentam valor maior ou igual a ZUB. A ideia consiste em fixar valores

arbitrários para Qheu = (Q1heu, Q2heu) e então escolher os pesos q resolvendo o seguinte

modelo, chamado PIX2H (n, Qheu):

Page 102: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

101

m

i 1i 2ii=1m

ij 1i 1heu ji=1

Min d .(q q ) (5.20)

s.a: (b .q ) - Q + M(1 - y ) 1 para todo j = 1,...,n (5.21)

+

m

ij 2i 2heu ji=1

1

(b .q ) - Q + My 1 para todo j = 1,...,n (5.22)

y = 1 (5.23)

≥∑

j

, 0 e Inteiro (5.24) y Binário (5.

≥1 2q q25)

Dependendo do Qheu escolhido, PIX2H(n, Qheu) pode ser viável mesmo com PIX2(n)

inviável. Isto acontece porque PIX2H(n, Qheu) pode ter soluções tais que Q1 = ∑ (��� di.q1i) >

Q1heu ou Q2 = ∑ (��� di.q2i) > Q1heu. Como consequência, a solução de V(C, L, Qheu) por PD não

estabelece um limite superior válido. Por outro lado, PIX2H(n, Qheu) consegue eliminar da PD

conjuntos de soluções indesejáveis bem maiores do que os modelos exatos poderiam fazer e,

possivelmente, encontrar soluções viáveis capazes de melhorar ZLB, o melhor limite inferior

corrente.

O procedimento DescidaX2H descrito a seguir é uma busca por uma solução viável

para um valor bidimensional fixo de Qheu. De início, utiliza as n soluções inviáveis

disponíveis ao final do algoritmo X2 e outras soluções inviáveis encontradas pela PD são

incorporadas no PIX2H(n, Qheu) para serem eliminadas nas próximas iterações. O

procedimento é chamado de "descida" porque os valores sucessivos de Zn são suscetíveis a

diminuir e este procedimento para quando Zn ≤ ZLB.

Procedimento DescidaX2H (maxiter, Qheu, n, ZLB) 1. Resolve PIX2H(n, Qheu); 2. Se (PIX2H(n, Qheu) inviável ou n > maxiter) então Retorna (ZLB); 3. Atualize o vetor q com a solução ótima de PIX2H(n, Qheu); 4. n = n + 1; 5. Resolva a PD relaxada com o vetor q e Qheu, obtendo uma solução bn de valor Zn; 6. Se (bn viável e Zn > ZLB) então ZLB = Zn; 7. Volta ao passo 1;

Fim DescidaX2H

O algoritmo X2H consiste em chamar DescidaX2H para diferentes valores de Qheu. A

seleção destes valores é descrita como segue. Sejam Q1X2 e Q2X2 os últimos valores para Q1 e

Q2 menores que Qmax obtidos com a execução do algoritmo X2. Quando X2 termina porque

PIX2(n) é inviável, esses valores correspondem à solução de PIX2(n-1). Visto que a execução

do procedimento DescidaX2H para todos os possíveis pares de inteiros positivos Q1heu e Q2heu,

tais que Q1heu ≤ Q1X2 e Q2heu ≤ Q2X2, representa um esforço computacional considerável nas

Page 103: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

102

respectivas relaxações da PD, considera-se apenas a utilização de Qheu = (Q1X2, Q2X2) na

tentativa de encontrar uma solução que atualize ZLB.

5.4.2 MÚLTIPLOS PADRÕES NA MATRIZ DA PROGRAMAÇÃO DINÂMICA

Os algoritmos X, X2 e X2H, tal como apresentados antes, somente podem encontrar

soluções viáveis que correspondam à solução ótima de uma PD. De fato, os algoritmos X e

X2 apenas podem encontrar soluções viáveis na sua última iteração e apenas para casos em

que ZUBopt e ZUB2opt, respectivamente, são iguais ao valor da solução ótima do PCBGR. Seria,

então, conveniente usar o esforço computacional significativo já gasto na resolução de cada

PD para também tentar encontrar boas soluções viáveis a cada iteração desses algoritmos.

A primeira observação é que, de acordo com a equação (5.4), calcula-se V(C, L, Q)

como o melhor valor de 1 + | P1 | + | P2 | soluções, correspondendo a todas as formas de corte

horizontal ou vertical do objeto original. Pode acontecer que algumas dessas soluções sejam

viáveis, mesmo que a melhor dessas soluções com valor Zn seja inviável. O esforço

computacional para verificar cada uma dessas soluções é desprezível em comparação com o

tempo gasto pela PD. Além disso, a verificação das soluções subótimas para valores menores

do que Q é apropriada em vários casos, pois bons limites inferiores ZLB são obtidos desta

forma com os algoritmos X, X2 e X2H.

É importante ressaltar que com a aplicação desta proposta, o algoritmo X retorna

ainda na terceira iteração a solução ótima da instância CW4 ilustrada na Figura 5.2.

5.4.3 HEURÍSTICA DE VIABILIZAÇÃO

Esta última estratégia consiste em providenciar mudanças nos padrões de corte

referentes a algumas soluções ótimas ou subótimas da PD, que têm valor maior do que ZLB e

são inviáveis com poucos itens excedendo suas demandas. O objetivo da heurística de

viabilização é reparar esses padrões de corte, substituindo os itens em excesso por itens com a

demanda disponível com o intuito de torná-los factíveis. Essa recomposição tende a diminuir

o valor desta solução mas também considera a possibilidade do novo valor ser maior do que

ZLB atual ou até igual ao ZUB, garantindo assim um certificado de otimalidade.

Em Morabito e Pureza (2010) é proposta uma heurística de viabilização onde os

espaços ocupados pelos itens em excesso e, possivelmente, áreas improdutivas do objeto no

entorno destes, são substituídos por arranjos de um ou mais itens distintos, selecionados de

forma a proporcionar maior valor na solução.

Nessa mesma diretriz, propõe-se também um procedimento heurístico que não

somente verifique a possibilidade de substituições homogêneas, mas também realiza trocas

Page 104: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

103

heterogêneas com as versões do RG2D. Este procedimento é utilizado em qualquer padrão

inviável obtido com os algoritmos X, X2 e X2H que apresente no máximo 2 itens produzidos

além da demanda. É importante ressaltar que essa viabilização não considera a possibilidade

de composições na horizontal ou na vertical de itens adjacentes com produção acima da

demanda, o aproveitamento de espaços considerados perdas do objeto e o número máximo de

itens cujos espaços podem reaproveitados é ajustável nesse procedimento.

Sendo E o conjunto dos itens com demanda em excesso com |E| ≤ 2 e I o conjunto

dos itens com demanda não atendida no padrão corrente. O processo inicia-se com um item de

E sendo selecionado aleatoriamente se |E| = 2. Caso contrário, o conjunto E é unitário e não

há necessidade de sorteio. Definido então as dimensões do retângulo a ser substituído a partir

das condições supracitadas, as tentativas de permutações homogêneas em no máximo 2

estágios são priorizadas e, se ainda houver algum item de I com medida de área menor ou

igual à perda interna da melhor troca homogênea, o procedimento chama o RG2D para

produzir uma possível substituição heterogênea de maior valor. Assim como na simples

substituição homogênea do item considerando o corte guilhotina em dois estágios, o RG2D

trata a viabilização como um PCBGR com o objeto apresentando as dimensões desse item em

excesso.

É importante destacar que cada execução do RG2D na heurística de viabilização é

rápida, porque considera um espaço restrito e apenas os itens que são pequenos o suficiente

para caber nesse espaço. No entanto, o quantitativo de padrões inviáveis obtidos na matriz da

PD é elevado e o tempo gasto em cada viabilização não é desprezível. Consequentemente,

torna-se conveniente utilizar essa heurística apenas em soluções que são realmente quase

viáveis com uma quantidade bem pequena de itens excedentes.

5.5 ALGORITMO X2D

Com os algoritmos X utilizando PI para determinar os pesos ótimos da PD com

relaxação do espaço de estados, X2 sendo uma generalização de X que utiliza pesos

bidimensionais na relaxação dos espaços de estados da PD, G2D em sua versão reativa que

inclui a calibragem dos parâmetros α e ψ, e X2H consistindo de uma heurística primal

modelada a partir de X2, uma proposta de composição destes algoritmos denominada X2D é

apresentada para resolução do PCBGR nas variantes já destacadas neste trabalho. A utilização

destes algoritmos na presente ordem é distinguida numa composição de 4 fases distintas e o

algoritmo é inicializado com os dados da instância e os limitantes de parada por iterações

(maxiter) ou tempo limite de execução (TLim) e que condiciona a execução da fase 3 (Gapmax),

conforme pseudocódigo a seguir.

Page 105: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

104

Algoritmo X2D (maxiter, TLim, GapMax) 1. Determine os pontos de discretização dos conjuntos P1 e P2; 2. n = 1, q = 0, T = 0, ZUB = ∞, ZLB = 0; 3. Enquanto (n ≤ maxiter e T ≤ TLim) faça 4. Execute o Algoritmo X e, se possível, atualize Certopt, ZUB e ZLB; 5. Se (Certopt = False) então 6. Execute o Algoritmo X2 e, se possível, atualize Certopt, ZUB e ZLB; 7. Se (Certopt = False e (ZUB - ZLB)/ZUB > GapMax) então 8. Execute o Algoritmo RG2D e, se possível, atualize Certopt e ZLB; 9. Se (Certopt = False e Q > 0) então 10. Execute o Algoritmo X2H e, se possível, atualize Certopt e ZLB; 11. Retorna (Certopt, ZUB, ZLB);

Fim X2D

5.6 RESULTADOS COMPUTACIONAIS

Nos testes realizados com o algoritmo primal-dual completo X2D, impondo o

limitante de tempo TLim = 600 segundos, essa execução pode ser especificada nas seguintes

fases:

1. Executar o algoritmo X com maxiter = 100 e Qmax = 20. A heurística de

viabilização usando RG2D sobre as soluções da PD Relaxada ótimas e subótimas, como

descrito anteriormente, é chamada em cada iteração. Com os limites inferiores e superiores

sendo produzidos e atualizados a cada iteração, se ZLB = ZUB, o algoritmo retorna uma

solução com certificado de otimalidade.

2. Executar Algoritmo X2 com maxiter = 100 e Qmax = 30, incluindo também

chamadas heurística de viabilização usando RG2D. X2 é inicializado com as soluções

inviáveis encontradas pelo algoritmo X, conforme descrito na subseção 5.3.2. Com o

propósito de melhorar os limites inferiores e superiores, se obtiver ZLB = ZUB, o algoritmo X2

para com certificado de otimalidade.

3. Se (ZUB - ZLB)/ZLB > 0.003, executar a heurística primal pura RG2D em rodada

única com a seguinte parametrização: semente 123, φ = 5, δ = 10, Α = {0.1, 0.2, 0.3, 0.4, 0.5},

Ψ = {0.01, 0.02, 0.03, 0.04, 0.05}, Α’ = {αR, αR ± 0.025, αR ± 0.05}, iterC = 1000 e iterR =

5000, produzindo 50000 iterações, pitens = 50% na primeira metade das iterações e pitens =

10% nas demais. Na possível atualização do limite inferior via RG2D, se ZLB = ZUB, encerrar

com certificado de otimalidade.

4. Executar o algoritmo primal X2H conforme descrito na subseção 5.4.1. Se ZLB =

ZUB, parar com certificado de otimalidade. Caso contrário, a última fase do X2D termina com

os valores finais de ZLB e ZUB e a melhor solução gerada.

Os limites superiores ZUB podem ser obtidos somente nas fases 1 e 2. As fases 3 e 4

destinam-se a melhorar os limites inferiores ZLB. A heurística primal pura RG2D é chamada

Page 106: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

105

após a execução do algoritmo X2 e se a instância apresentar relativa dificuldade para os

métodos baseados em DP, como indicado por um intervalo entre os limites inferior e superior

maiores que 0.3%. No entanto, por razões de comparação, também são apresentados os

resultados que o RG2D obtém como uma heurística autônoma em todas as instâncias.

O algoritmo X2D foi executado uma vez para cada instância e, em todas as instâncias,

a semente de números aleatórios foi definida como 123. Por outro lado, para testar RG2D de

forma autônoma, foram realizadas 10 execuções para cada instância com a semente retirada

do clock do sistema.

Os algoritmos X, X2, RG2D e X2H e a composição destes, indicada por X2D, foram

implementados em linguagem C/C++ e compilados no Microsoft Visual C++ 2010 Express,

os modelos de PI foram resolvidos pelo CPLEX 12.5.1 e os testes foram realizados em um

computador com núcleo único de um processador Intel(R) Core(TM) i7-4790 3.6GHz, com

16Gb de RAM e Windows 8 de 64 bits.

Os testes são realizados em instâncias reconhecidas na literatura do PCBGR e

fornecidas nas páginas do ESICUP e do repositório de instâncias OR-Library,

http://paginas.fe.up.pt/~esicup/datasets) e http://people.brunel.ac.uk/~mastjjb/jeb/info.html, e

no endereço eletrônico http://www.laria.u-picardie.fr/hifi/OR-Benchmark, conforme

especificado no Capítulo 4.

Neste momento, os problemas testados são divididos em quatro conjuntos de

instâncias. O primeiro conjunto de 30 instâncias corresponde aos exemplos mais clássicos da

literatura, sendo 14 com peso e o restante sem peso. O segundo conjunto contém 450

instâncias aleatórias sem peso, geradas por Morabito e Pureza (2010). Estas instâncias são

divididas em 3 classes: as instâncias na classe 1 são moderadamente restritas, apresentando

demandas relativamente grandes; as da classe 2 são mais restritas com demandas pequenas; e

as instâncias da classe 3 são altamente limitadas e possuem demandas unitárias. Cada classe é

dividida em 10 grupos de 15 instâncias e cada grupo é denotado por R_m_Κ, onde o número

de itens distintos m pode ser 10, 20, 30, 40 ou 50 e a letra Κ é substituída por S ou L,

representando itens pequenos ou grandes, respectivamente. O terceiro conjunto é constituído

das instâncias propostas por Alvarez-Valdés et al. (2002a) e iniciadas com a sigla APT.

Consideradas problemas de grande porte e identificadas segundo valor de utilidade dos itens,

as APT40-APT49 são referentes ao caso com peso e as APT30-APT39 sem peso. O último

conjunto é formado pelas instâncias sem peso gcut1-gcut13, propostas inicialmente por

Beasley (1985) para o PCBGI, mas com demanda unitária dos itens.

Page 107: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

106

Os algoritmos propostos X2D e RG2D são comparados com o algoritmo heurístico

DP_AOG proposto por Morabito e Pureza (2010), nas instâncias do primeiro e segundo

conjunto, para variante sem rotação do PCBGR. Nas instâncias do terceiro e quarto conjunto,

as comparações, também do caso não rotacionado, são feitas com o algoritmo exato A1

proposto por Dolatabadi et al. (2012). Vale ressaltar ainda, que os tempos estão em segundos

e, conforme explicado no Capítulo 4, os algoritmos DP_AOG e A1 rodaram em

processadores 3.5 e 3.1 vezes mais lentos, nessa ordem.

Nas Tabelas 5.1-5.6 encontram-se os resultados dos algoritmos em destaque para a

variante sem rotação do PCBGR, discriminado de acordo com os respectivos conjuntos de

instâncias. As colunas das Tabelas 5.1 e 5.2, do primeiro conjunto de instâncias, são as

seguintes: nome da instância; o número de itens distintos; a melhor solução encontrada pelo

DP_AOG; o tempo que o DP_AOG levou para encontrar sua melhor solução e o tempo de

execução total com limite de 1800 segundos; o limite superior obtido pelo X2D; a melhor

solução obtida pelo X2D; o tempo que o X2D levou para encontrá-la e seu tempo total de

execução; a melhor solução em 10 execuções do RG2D como uma heurística autônoma, o

tempo para encontrar esta solução e seu tempo total. Um único * em um valor de solução

indica que ele corresponde ao ótimo conhecido na literatura e um duplo * significa que a

solução é certificada como ótima pelo método que a produziu.

TABELA 5.1 – Resultados nas Instâncias Clássicas sem Rotação e com Peso.

A partir dos resultados nas Tabelas 5.1 e 5.2, pode ser observado que tanto o

DP_AOG como o X2D retornam todas as soluções ótimas. No entanto, em alguns casos X2D

Instâncias AlgoritmosNome m DP_AOG Tempo ZUB X2D Tempo RG2D TempoChW1 7 **244 <0.1 0.1 244 **244 0.1 0.1 *244 <0.1 4.3

ChW2 10 **2892 0.8 38.4 2892 **2892 0.3 0.3 *2892 0.6 5.5

ChW3 20 **1860 0.1 19.9 1860 **1860 <0.1 0.1 *1860 <0.1 11.8

CW1 25 **6402 1.1 25.6 6402 **6402 <0.1 <0.1 *6402 <0.1 11.9

CW2 35 *5354 0.7 1118.8 5354 **5354 <0.1 0.4 *5354 0.1 11.3

CW3 40 **5689 0.5 26.9 5689 **5689 <0.1 <0.1 *5689 14.1 17.1

CW4 39 **6175 1.3 46.8 6175 **6175 0.1 0.2 *6175 9.4 16.3

CW5 35 **11659 0.8 1268.5 11659 **11659 0.1 0.1 *11659 7.7 14.9

CW6 55 **12923 33.3 890.6 12923 **12923 0.1 0.1 12651 1.1 28.2

CW7 45 **9898 4.1 10.7 9898 **9898 <0.1 <0.1 *9898 2.0 21.3

CW8 60 **4605 20.8 340.5 4605 **4605 <0.1 0.1 *4605 <0.1 34.4

CW9 50 **10748 7.0 121.3 10748 **10748 0.1 0.1 *10748 0.3 25.4

CW10 60 **6515 2.8 182.2 6515 **6515 0.1 0.1 6471 23.6 29.7

CW11 60 **6321 2.0 1375.0 6321 **6321 0.3 1.2 6084 11.8 24.8

Média 5.4 390.4 0.1 0.2 5.1 18.3

Page 108: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

107

leva muito menos tempo para encontrá-las e em sua execução completa. Destaca-se, também,

que este fornece mais dois certificados de otimalidade, nas instâncias CW2 e OF2. O

algoritmo RG2D obteve 23 soluções ótimas e esses resultados foram discutidos com ênfase no

Capítulo anterior.

As Tabelas 5.3-5.5 apresentam resultados nas 450 instâncias aleatórias mais recentes,

separadas por classe. Nestas tabelas, as colunas R_m_S e R_m_L correspondem às médias em

15 instâncias de um grupo. Também são fornecidas médias agregadas para 5 grupos com a

mesma classificação de item, indicada por S ou L. Em suas 5 primeiras linhas, são

apresentados os seguintes resultados do DP_AOG: limite superior, solução média de cada

grupo, tempo para encontrar a melhor solução e tempo total na sua execução, intervalo entre

limite superior e inferior, e porcentagem de instâncias onde a melhor solução foi certificada

por ser ótima. As próximas 5 linhas mostram estatísticas semelhantes as citadas para o X2D.

Nas 4 linhas restantes, as estatísticas sobre RG2D puro são: solução média em 10 execuções

por grupo, média das melhores soluções nas instâncias de cada grupo, tempo desta melhor

média e seu tempo total e intervalo em relação ao melhor limite superior conhecido.

TABELA 5.2 – Resultados nas Instâncias Clássicas sem Rotação e sem Peso.

Os resultados nas Tabelas 5.3-5.5 mostram que o algoritmo X2D diminui

substancialmente os intervalos entre os limites inferiores e superiores nos respectivos grupos.

Isto é observado nos 22 grupos que o X2D apresenta gaps menores em relação ao DP_AOG.

Instâncias AlgoritmosNome m DP_AOG Tempo ZUB X2D Tempo RG2D TempoWANG1 20 **2277 <0.1 0.1 2277 **2277 <0.1 <0.1 *2277 <0.1 7.1

WANG2 20 **2694 <0.1 0.2 2694 **2694 <0.1 <0.1 *2694 <0.1 6.7

WANG3 20 **2721 <0.1 0.6 2721 **2721 <0.1 <0.1 *2721 <0.1 7.0

OF1 10 **2737 0.1 11.2 2737 **2737 0.2 0.2 *2737 0.3 5.5

OF2 10 *2690 0.1 23.6 2690 **2690 0.3 0.3 *2690 <0.1 4.2

CU1 25 **12330 0.1 0.5 12330 **12330 <0.1 <0.1 *12330 <0.1 11.5

CU2 35 **26100 0.2 1.4 26100 **26100 <0.1 <0.1 *26100 0.1 14.7

CU3 45 **16723 0.3 5.8 16723 **16723 <0.1 <0.1 16679 17.4 24.8

CU4 45 **99495 3.8 35.0 99495 **99495 <0.1 0.1 *99495 10.0 17.2

CU5 50 **173364 2.7 873.2 173364 **173364 <0.1 0.1 173010 0.1 22.2

CU6 45 **158572 1.3 11.8 158572 **158572 <0.1 <0.1 *158572 <0.1 19.3

CU7 25 *247150 0.1 1800.0 247392 *247150 0.2 0.5 *247150 0.1 9.3

CU8 35 **433331 0.5 26.8 433331 **433331 <0.1 <0.1 *433331 9.1 14.0

CU9 25 **657055 0.1 19.7 657055 **657055 <0.1 <0.1 *657055 <0.1 13.2

CU10 40 *773772 69.2 1800.0 774954 *773772 2.2 53.6 772982 3.5 21.7

CU11 50 *924696 333.6 1293.1 925276 *924696 0.2 600.0 924311 14.6 24.7

Média 25.8 368.9 0.2 40.9 3.5 14.0

Page 109: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

108

Nos demais grupos, em 6 ambos obtiveram gap zero e o DP_AOG foi melhor apenas nos

grupos R_40_S das classes 2 e 3. A diferença em termos de melhor solução, ou limite

inferior, é quase imperceptível na maioria desses grupos. Verifica-se que ambos os métodos

encontraram as mesmas soluções na classe 1. Nos 5 grupos de instâncias pequenas da classe

2, X2D foi melhor em 2 grupos e perdeu em 1 grupo. Já na classe 3, X2D continuou superior

em 3 desses grupos e DP_AOG foi melhor outros 2. Em geral, o X2D encontrou 307

certificados de otimidade contra 258 do DP_AOG e, mesmo tomando a diferença de

velocidade entre máquinas, X2D é consideravelmente mais rápido na maioria desses grupos.

Ainda sobre as Tabelas 5.3-5.5, o algoritmo RG2Da como uma heurística autônoma

não é competitivo com X2D e DP_AOG nos grupos de itens pequenos das Classes 1 e 2.

Entretanto, obtém resultados muito bons nas mais difíceis de todas as instâncias para os

métodos que utilizam PD, as da Classe 3. Nesta classe, RG2Da foi melhor do que DP_AOG em

3 grupos, empatou em 5 e perdeu em 2 destes. Ainda na classe 3, mesmo superando X2D em

apenas no grupo de itens pequenos R_50_S, é importante destacar que o sucesso do X2D

nestes grupos é atribuído as 31 melhores soluções geradas na fase 3 com a execução do

RG2Da. Em síntese, a qualidade das suas soluções também pode ser verificada nos 14 grupos,

cujos valores das suas melhores soluções não são superados pelo X2D, obtidas em tempo de

execução inferior a 7 segundos.

Os resultados do terceiro conjunto de instâncias, para o caso sem rotação, são

apresentados nas respectivas Tabelas 5.6 e 5.7. As colunas 3-5 são referentes ao algoritmo

A1, e mostram o valor do limite superior, da melhor solução e seu tempo de execução. De

forma análoga, têm-se as colunas 6-8 com as informações relativas à execução do X2D. Nas

colunas 9 e 10 encontram-se o valor da melhor solução e os tempos utilizados nas iterações do

RG2D em sua geração.

Page 110: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

109

TABELA 5.3 – Resultados nas Instâncias Randômicas da Classe 1 sem Rotação e sem Peso.

Classe 1 R_10_S R_20_S R_30_S R_40_S R_50_S Média R_10_L R_20_L R_30_L R_40_L R_50_L MédiaZUB 9838 9978 10000 10000 10000 9963.2 9129 9598 9838 9880 9898 9668.6DP_AOG10 9834 9976 10000 10000 10000 9962.0 9129 9595 9835 9861 9892 9662.4Tempo(s) 8.3 46.3 7.8 79.6 3.1 7.3 1.4 5.8 0.3 4.2 4.2 28.7 <0.1 0.8 1.1 6.7 <0.1 7.2 <0.1 12.8 <0.1 8.5 0.3 7.2

Gap(%) 0.04 0.02 0 0 0 0.01 0 0.03 0.03 0.19 0.06 0.06CO(%) 93.3 86.7 100 100 100 96.0 100 93.3 93.3 80.0 93.3 92.0ZUB 9835 9977 10000 10000 10000 9962.4 9129 9595 9835 9863 9892 9662.8X2D 9834 9976 10000 10000 10000 9962.0 9129 9595 9835 9861 9892 9662.4Tempo(s) <0.1 0.1 0.2 1.5 <0.1 <0.1 <0.1 <0.1 <0.1 0.3 <0.1 0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 0.1 <0.1 <0.1 <0.1 <0.1

Gap(%) 0.01 0.01 0 0 0 <0.01 0 0 0 0.02 0 <0.01CO(%) 93.3 93.3 100 100 100 97.3 100 100 100 93.3 100 98.7RG2DMed 9805.5 9945.0 9980.3 9990.3 9995.6 9943.3 9114.0 9579.3 9826.9 9855.1 9888.8 9652.8RG2D 9818 9958 9995 9998 10000 9953.8 9114 9582 9835 9861 9892 9656.8Tempo(s) 1.2 9.0 3.8 17.9 2.9 29.5 3.5 37.3 6.4 44.7 3.6 27.7 <0.1 3.4 0.1 7.8 0.6 13.0 0.9 16.7 0.4 20.9 0.4 12.4

Gap(%) 0.17 0.19 0.05 0.02 0 0.09 0.16 0.14 0 0.02 0 0.06

109

Page 111: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

110

TABELA 5.4 – Resultados nas Instâncias Randômicas da Classe 2 sem Rotação e sem Peso.

Classe 2 R_10_S R_20_S R_30_S R_40_S R_50_S Média R_10_L R_20_L R_30_L R_40_L R_50_L MédiaZUB 9829 9961 9998 10000 10000 9957.6 9253 9660 9842 9870 9904 9705.8DP_AOG10 9640 9909 9958 9996 10000 9900.6 9230 9635 9842 9867 9902 9695.2Tempo(s) 19.1 942.3 46.2 929.9 85.4 1206.4 48.3 350.6 26.1 31.6 45.0 692.2 <0.1 8.3 <0.1 19.8 <0.1 7.6 <0.1 12.6 <0.1 9.9 <0.1 11.6

Gap(%) 1.92 0.52 0.40 0.04 0 0.58 0.25 0.26 0 0.03 0.02 0.11CO(%) 6.7 6.7 6.7 66.7 100 37.4 86.7 60.0 93.3 86.7 93.3 84.0ZUB 9717 9935 9981 10000 10000 9926.6 9242 9635 9842 9867 9902 9697.6X2D 9644 9909 9960 9995 10000 9901.6 9230 9635 9842 9867 9902 9695.2Tempo(s) 7.5 89.7 0.5 74.3 6.8 92.8 36.7 60.0 8.6 8.6 12.0 65.1 <0.1 0.4 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 0.1

Gap(%) 0.75 0.26 0.21 0.05 0 0.25 0.13 0 0 0 0 0.03CO(%) 20.0 20.0 26.7 66.7 100 46.7 93.3 100 100 100 100 98.7RG2DMed 9592.9 9867.0 9911.6 9952.4 9968.7 9858.5 9230.3 9634.6 9841.5 9859.8 9901.6 9693.6RG2D 9608 9891 9939 9974 9984 9879.2 9230 9635 9842 9867 9902 9695.2Tempo(s) 1.3 6.1 1.6 9.5 3.1 13.7 6.5 19.6 5.0 24.0 3.5 14.6 <0.1 5.3 <0.1 10.8 <0.1 15.9 0.2 22.1 0.1 30.3 0.1 16.9

Gap(%) 1.12 0.44 0.42 0.26 0.16 0.48 0.13 0 0 0 0 0.03

110

Page 112: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

111

TABELA 5.5 – Resultados nas Instâncias Randômicas da Classe 3 sem Rotação e sem Peso.

Classe 3 R_10_S R_20_S R_30_S R_40_S R_50_S Média R_10_L R_20_L R_30_L R_40_L R_50_L MédiaZUB 9263 9923 9880 9890 10000 9791.2 8883 9469 9745 9832 9881 9562.0DP_AOG10 8115 9575 9671 9807 9770 9387.6 8746 9322 9685 9767 9823 9468.6Tempo(s) 0.7 752.2 89.5 532.6 194.7 638.6 425.7 670.6 1.73 1442.4 142.5 807.3 <0.1 11.9 <0.1 42.4 <0.1 47.0 <0.1 46.2 <0.1 59.2 <0.1 41.3

Gap(%) 12.39 3.51 2.12 0.84 2.30 4.23 1.54 1.55 0.62 0.66 0.59 0.99CO(%) 0 0 0 0 0 0 46.7 33.3 40.0 26.7 26.7 34.7ZUB 8910 9844 9952 9996 9998 9740.0 8769 9364 9708 9778 9842 9492.2X2D 8116 9544 9751 9865 9903 9435.8 8746 9322 9685 9767 9823 9468.6Tempo(s) 9.9 39.4 108.1 167.6 120.2 355.3 85.5 279.7 184.9 257.4 101.7 219.9 0.1 0.6 <0.1 1.5 0.1 3.6 0.1 2.0 0.2 5.3 0.1 2.6

Gap(%) 8.91 3.05 2.02 1.31 0.95 3.25 0.26 0.45 0.24 0.11 0.19 0.25CO(%) 6.7 0 0 0 0 1.3 86.7 73.3 53.3 80.0 40.0 66.7RG2DMed 8037.9 9511.4 9713.4 9840.8 9890.1 9398.7 8690.7 9321.3 9684.9 9765.7 9820.6 9456.6RG2D 8038 9522 9737 9864 9904 9413.0 8691 9322 9685 9767 9823 9457.6Tempo(s) <0.1 4.5 0.6 7.7 3.5 10.0 3.4 11.5 4.3 14.0 2.4 9.5 <0.1 2.6 <0.1 4.6 0.1 6.8 <0.1 9.8 0.2 12.1 0.1 7.2

Gap(%) 9.79 3.27 1.45 0.26 0.94 3.14 0.89 0.45 0.24 0.11 0.19 0.38

111

Page 113: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

112

TABELA 5.6 – Resultados nas Instâncias APT sem Rotação e com Peso.

TABELA 5.7 – Resultados nas Instâncias APT sem Rotação e sem Peso.

Nesses testes, em função do tamanho das instâncias APT30-APT49, utilizou-se 3600

segundos como tempo limite de execução do algoritmo A1 e no X2D, TLim foi ampliado para

900 segundos. Além disso, é importante relatar que o algoritmo A1 usa limites inferiores e

superiores obtidos dos artigos de Hifi (2004b) e Chen (2008) como dados de entrada. Em

relação à parametrização do RG2Da não tem alterações.

A Tabela 5.6 mostra o desempenho dos algoritmos nas instâncias com peso APT40-

49. O algoritmo X2D aparece superior ao A1 e, consequentemente ao RG2D também, nas

instâncias APT42 e APT43. O X2D destaca-se pelo quantitativo de 8 soluções ótimas,

incluindo 3 certificados de otimalidade, com todas obtidas em excelente tempo

computacional. Já os resultados destes algoritmos nas instâncias sem peso APT30-APT39,

são apresentados na Tabela 5.7. Nesta tabela, é concludente a superioridade do algoritmo A1

perante a X2D e a RG2Da com as melhores soluções nas instâncias APT33 e APT35. Sendo os

Instâncias AlgoritmosNome m ZuB A1 Tempo ZUB X2D Tempo RG2D Tempo

APT40 56 67654 **67154 25.86 67154 **67154 1.04 23.41 65896 13.19 50.20

APT41 36 215699 **206542 229.30 206542 **206542 2.14 59.18 206302 1.19 27.89

APT42 59 34098 33503 3600.00 33680 33598 280.27 900.00 32770 3.39 52.47

APT43 49 222570 214651 3600.00 217288 214840 24.05 900.00 214471 16.92 41.27

APT44 39 74887 **73868 19.23 73868 **73868 93.54 194.20 72895 0.73 25.67

APT45 33 75888 **74691 19.73 74691 **74691 0.53 7.40 *74691 0.64 22.95

APT46 42 151813 **149911 37.00 149911 **149911 0.62 0.62 *149911 8.38 31.09

APT47 43 153747 **150234 51.80 150659 *150234 286.57 900.00 146892 29.20 33.16

APT48 34 170914 **167660 75.93 167835 *167660 144.38 900.00 167023 20.02 23.34

APT49 25 226346 **219354 2680.39 220383 *219354 254.31 900.00 214365 6.39 18.19

Média 1033.92 108.74 478.48 10.00 32.62

Instâncias AlgoritmosNome m ZuB A1 Tempo ZUB X2D Tempo RG2D Tempo

APT30 38 140904 **140904 2.43 140904 **140904 23.67 23.67 140461 7.62 30.64

APT31 51 824931 **823976 178.99 824483 *823976 150.24 900.00 821345 10.93 43.06

APT32 56 38068 **38068 0.37 38068 **38068 23.98 23.98 38011 29.89 41.16

APT33 44 236818 **236611 40.62 236678 236588 744.03 900.00 236024 3.36 33.22

APT34 27 362520 **361398 79.08 362219 *361398 176.17 900.00 360420 19.00 21.46

APT35 29 622644 **621021 15.36 622161 620948 18.89 900.00 619426 1.17 20.36

APT36 28 130744 **130744 18.06 130800 *130744 1.43 900.00 130276 21.43 24.91

APT37 43 387276 **387276 48.03 387276 **387276 24.27 277.31 385828 1.82 30.11

APT38 40 261698 **261395 44.63 261572 *261395 117.68 900.00 260622 2.77 29.95

APT39 33 268750 **268750 33.70 268926 *268750 602.00 900.00 268081 4.69 25.02

Média 46.13 188.24 662.50 10.27 29.99

Page 114: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

113

limites primais estabelecidos através de algoritmos externos ao A1 com os tempos de geração

não contabilizados, torna-se difícil um parecer sobre a eficiência de A1 nestas instâncias.

Sobre o último conjunto de instâncias sem peso gcut1-gcut13, a Tabela 5.8 expõe

seus resultados em colunas equivalentes às tabelas anteriores. Objetivando confrontar os

resultados dos algoritmos propostos X2D e RG2Da, juntamente com o A1, nas instâncias de

demanda unitária pertencentes a este conjunto, estas confirmam como grande destaque o

RG2Da. Por exemplo, além do quantitativo de soluções ótimas ou iguais aos demais

algoritmos, a solução apresentada pela heurística GRASP na instância gcut13 é reconhecida

como a melhor da literatura para esta instância. Em relação ao X2D, este mantém o parâmetro

TLim = 600 segundos e não obtém limite inferior para gcut13 durante esse tempo. Nessas

instâncias, o algoritmo A1 utiliza uma heurística aleatorizada de múltiplas descidas baseada

no método First Fit Decreasing (FFD), rodada por 60 segundos, para obter o limite inferior

usado em sua entrada. Na gcut13, o tempo de execução dessa heurística é ampliado para 600

segundos. Já o limite superior de entrada é dado pelo menor valor entre os valores do padrão

ótimo não guilhotinado e do padrão ótimo irrestrito. Os tempos para obter esses limites

superiores não são reportados. Ainda sobre a execução do A1 nesse conjunto, informa-se que

seu limite de tempo foi 600 segundos nas instâncias gcut1-gcut12 e 3600 segundos na gcut13.

TABELA 5.8 – Resultados nas Instâncias gcut sem Rotação e sem Peso.

As tabelas restantes mostram resultados para a variante que permitem rotações de

itens. As Tabelas 5.9-5.10 correspondem às instâncias clássicas com e sem peso, 5.11-5.13 às

instâncias aleatórias mais recentes somente para o caso sem peso, 5.14-5.15 às instâncias de

Instâncias AlgoritmosNome m ZuB A1 Tempo ZUB X2D Tempo RG2D Tempo

gcut1 10 48368 **48368 2.89 48368 **48368 0.01 0.03 *48368 <0.01 2.23

gcut2 20 59798 **59307 5.56 59307 **59307 0.01 0.30 *59307 <0.01 4.36

gcut3 30 61275 **60241 6.50 60241 **60241 <0.01 0.01 *60241 0.28 6.33

gcut4 50 61380 **60942 12.95 61450 *60942 <0.01 18.55 *60942 <0.01 11.91

gcut5 10 195582 **195582 4.35 195582 **195582 0.10 0.73 193379 <0.01 2.26

gcut6 20 236305 **236305 7.13 236305 **236305 <0.01 0.01 *236305 <0.01 4.30

gcut7 30 240143 **238974 11.06 238974 **238974 0.01 0.03 *238974 <0.01 6.44

gcut8 50 245758 **245758 18.71 245758 **245758 0.01 0.03 *245758 <0.01 11.28

gcut9 10 939600 **919476 14.51 919476 **919476 0.05 0.35 *919476 <0.01 2.81

gcut10 20 937349 **903435 17.85 919796 *903435 <0.01 4.96 *903435 <0.01 3.88

gcut11 30 969709 **955389 29.65 960148 *955389 0.12 8.54 *955389 0.03 6.44

gcut12 50 979521 **970744 46.48 974394 *970744 <0.01 14.64 *970744 <0.01 11.44

gcut13 32 8736757 8532720 3600.00 8978489 – – 600.00 8618394 2.00 13.23

Média 290.59 0.02 49.86 0.18 6.69

Page 115: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

114

grande porte para ambos os casos e 5.16 as instâncias com demandas unitárias e sem peso. O

formato dessas tabelas é semelhante às tabelas anteriores, exceto que não possuem os

resultados dos algoritmos DP_AOG e A1 para o PCBGR sem rotação. Vale ressaltar que não

há comparações dos algoritmos propostos neste trabalho com outro da literatura para o caso

rotacionado, porque não se conhece algum trabalho que abrangesse grande parte dessas

instâncias.

TABELA 5.9 – Resultados nas Instâncias Clássicas com Rotação e com Peso.

TABELA 5.10 – Resultados nas Instâncias Clássicas com Rotação e sem Peso.

Instâncias AlgoritmosNome m ZUB X2D Tempo RG2D TempoChW1 7 260 **260 <0.1 0.2 *260 <0.1 4.6

ChW2 10 2901 **2901 <0.1 1.0 2896 0.8 6.4

ChW3 20 1920 **1920 <0.1 0.5 *1920 0.4 12.8

CW1 25 6766 **6766 <0.1 0.2 6764 0.8 11.6

CW2 35 5689 **5689 <0.1 0.4 *5689 6.4 12.8

CW3 40 5744 **5744 0.1 8.2 *5744 0.8 17.9

CW4 39 7496 **7496 0.6 0.6 7466 10.2 17.8

CW5 35 11659 **11659 0.5 0.5 *11659 16.5 16.9

CW6 55 13203 **13203 0.4 20.1 12967 21.6 30.0

CW7 45 10880 **10880 <0.1 <0.1 *10880 0.3 21.9

CW8 60 4736 **4736 <0.1 0.1 *4736 8.6 37.1

CW9 50 11479 **11479 0.3 0.3 *11479 18.9 27.5

CW10 60 6835 **6835 1.6 1.6 *6835 21.2 31.3

CW11 60 6784 **6784 1.6 2.6 6520 20.1 25.5

Média 0.4 2.6 9.1 19.6

Instâncias AlgoritmosNome m ZUB X2D Tempo RG2D TempoWANG1 20 2277 **2277 <0.1 <0.1 *2277 <0.1 7.6

WANG2 20 2716 **2716 <0.1 <0.1 *2716 <0.1 8.4

WANG3 20 2771 **2771 <0.1 <0.1 *2771 0.1 8.4

OF1 10 2757 **2757 <0.1 0.2 2737 1.4 4.9

OF2 10 2769 **2769 <0.1 0.3 *2769 <0.1 4.9

CU1 25 12500 **12500 <0.1 <0.1 *12500 <0.1 12.8

CU2 35 26200 **26200 <0.1 <0.1 *26200 0.2 15.7

CU3 45 16750 **16750 <0.1 <0.1 16723 4.8 26.4

CU4 45 100230 **100230 <0.1 0.4 100158 2.2 18.4

CU5 50 174705 **174705 <0.1 0.1 *174705 <0.1 25.8

CU6 45 158572 **158572 <0.1 <0.1 *158572 0.3 20.8

CU7 25 255684 **255684 <0.1 <0.1 *255684 6.2 9.3

CU8 35 438383 **438383 <0.1 0.2 *438383 0.9 15.2

CU9 25 659648 **659648 <0.1 0.1 *659648 5.5 15.7

CU10 40 779239 **779239 0.1 0.1 777112 22.1 24.4

CU11 50 928215 928170 0.4 600.0 927133 4.6 28.3

Média <0.1 37.6 3.0 15.4

Page 116: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

115 TABELA 5.11 – Resultados nas Instâncias Randômicas da Classe 1 com Rotação e sem Peso.

TABELA 5.12 – Resultados nas Instâncias Randômicas da Classe 2 com Rotação e sem Peso.

Classe 1 R_10_S R_20_S R_30_S R_40_S R_50_S Média R_10_L R_20_L R_30_L R_40_L R_50_L MédiaZUB 9961 9999 10000 10000 10000 9992.0 9286 9776 9904 9929 9971 9773.2X2D 9961 9999 10000 10000 10000 9992.0 9286 9774 9904 9929 9971 9772.8Tempo(s) <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 <0.1 0.1 <0.1 <0.1 <0.1 0.1 <0.1 <0.1 <0.1 <0.1

Gap(%) 0 0 0 0 0 0 0 0,02 0 0 0 <0.01CO(%) 100 100 100 100 100 100 100 93.3 100 100 100 98.7RG2DMed 9908.5 9984.5 9995.0 9999.8 9999.6 9977.5 9285.1 9766.9 9902.1 9915.5 9963.0 9766.5RG2D 9925 9990 10000 10000 10000 9983.0 9286 9774 9903 9921 9969 9770.6Tempo(s) 1.7 10.9 1.6 19.8 2.8 33.6 1.4 42.4 0.5 54.5 1.6 32.2 <0.1 4.1 0.1 8.9 0.2 14.9 1.3 18.7 1.3 23.1 0.6 13.9

Gap(%) 0.36 0.09 0 0 0 0.09 0 0.02 0.01 0.08 0.02 0.03

Classe 2 R_10_S R_20_S R_30_S R_40_S R_50_S Média R_10_L R_20_L R_30_L R_40_L R_50_L MédiaZUB 9887 9989 10000 10000 10000 9975.2 9546 9797 9909 9945 9966 9832.6X2D 9850 9976 10000 10000 10000 9965.4 9546 9797 9909 9945 9966 9832.6Tempo(s) 18.2 175.1 1.4 90.4 2.5 2.5 0.7 0.7 0.6 0.6 4.7 53.9 <0.1 <0.1 <0.1 <0.1 <0.1 0.1 <0.1 0.1 <0.1 <0.1 <0.1 <0.1

Gap(%) 0.37 0.13 0 0 0 0.10 0 0 0 0 0 0CO(%) 20.0 46.7 100 100 100 73.3 100 100 100 100 100 100RG2DMed 9795.8 9923.5 9962.9 9987.8 9996.8 9933.4 9546.3 9796.6 9908.5 9938.3 9964.8 9830.9RG2D 9817 9942 9974 9997 9999 9945.8 9546 9797 9909 9945 9966 9832.6Tempo(s) 1.0 6.9 3.3 11.6 6.6 16.9 3.1 20.2 2.2 26.6 3.2 16.4 <0.1 6.2 0.1 12.3 0.1 19.1 1.9 24.8 0.3 33.4 0.5 19.2

Gap(%) 0.71 0.47 0.26 0.03 0.01 0.30 0 0 0 0 0 0

115

Page 117: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

116 TABELA 5.13 – Resultados nas Instâncias Randômicas da Classe 3 com Rotação e sem Peso.

Classe 3 R_10_S R_20_S R_30_S R_40_S R_50_S Média R_10_L R_20_L R_30_L R_40_L R_50_L MédiaZUB 9205 9950 10000 10000 10000 9831.0 9188 9624 9812 9910 9933 9693.4X2D 8413 9781 9887 9949 9967 9599.4 9183 9621 9803 9900 9927 9686.8Tempo 3.2 75.2 80.4 180.5 91.0 161.9 13.3 49.3 33.2 41.5 44.2 101.7 0.1 0.7 0.1 0.4 0.7 1.9 0.1 1.8 <0.1 1.7 0.2 1.3

Gap(%) 8.60 1.70 1.13 0.51 0.33 2.45 0.05 0.03 0.09 0.10 0.06 0.07CO(%) 0 0 0 6.7 13.3 4.0 93.3 93.3 80.0 60.0 73.3 80.0RG2DMed 8385.3 9762.6 9878.5 9933.5 9961.0 9584.2 9182.9 9621.1 9799.4 9895.8 9921.7 9684.2RG2D 8385 9773 9906 9953 9984 9600.2 9183 9621 9803 9896 9928 9686.2Tempo <0.1 5.0 1.8 7.9 3.7 10.8 6.3 12.0 8.0 14.1 4.0 10.0 <0.1 2.9 <0.1 5.0 0.5 7,7 0.3 10,2 1.2 12.7 0.4 7.7

Gap(%) 8.91 1.78 0.94 0.47 0.16 2.45 0.05 0.03 0.09 0.14 0.05 0.07

116

Page 118: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

117

As Tabelas 5.9 e 5.10 mostram que X2D obtém certificados de otimalidade para 29

das 30 instâncias clássicas. Apenas a instância CU11 encontrou o limite superior de 928215

que difere do limite inferior 928170, com um gap muito pequeno de 0,005%. Os tempos para

gerar tais soluções também são pequenos. Verifica-se ainda que RG2D encontrou 20 dessas

soluções ótimas.

Comparando as Tabelas 5.11-5.13 com as Tabelas 5.3-5.5, entende-se que a variante

com rotação é melhor resolvida pelo X2D. As diferenças entre os limites superiores e

inferiores médios diminuem e o número total de certificados de otimalidade aumenta para

342. A maior diferença entre os algoritmos X2D e RG2Dar encontra-se nos grupos da classe 3.

Considerando a relação qualidade de solução versus tempo computacional na resolução, o

RG2Dar puro apresenta-se melhor do que o X2D nas instâncias com itens pequenos desta classe.

TABELA 5.14 – Resultados nas Instâncias APT com Rotação e com Peso.

TABELA 5.15 – Resultados nas Instâncias APT com Rotação e sem Peso.

Instâncias Algoritmos

Nome m ZUB X2D Tempo RG2D Tempo

APT40 56 67294 **67294 103.19 226.49 65961 8.69 47.19

APT41 36 211613 210713 140.04 900.00 210075 9.94 27.08

APT42 59 34010 33756 880.95 900.00 33073 35.13 59.38

APT43 49 219654 218820 727.45 900.00 214092 6.92 39.19

APT44 39 76306 76122 235.88 900.00 75127 14.16 27.67

APT45 33 74691 **74691 1.15 16.70 74691 1.01 23.36

APT46 42 150983 **150983 18.48 56.73 150680 24.73 37.83

APT47 43 152951 152778 89.38 900.00 149866 29.59 34.69

APT48 34 171896 170678 135.95 900.00 170039 0.81 23.66

APT49 25 224987 222248 727.90 900.00 219264 19.42 19.70

Média 306.04 659.99 15.04 33.97

Instâncias Algoritmos

Nome m ZUB X2D Tempo RG2D Tempo

APT30 38 140904 *140904 771.18 771.18 140461 8.19 33.64

APT31 51 825184 824878 723.32 900.00 823978 22.59 46.58

APT32 56 38068 *38068 424.94 458.79 38068 27.06 38.47

APT33 44 236903 *236903 0.39 0.39 236135 8.72 34.02

APT34 27 362520 361952 499.10 900.00 361292 1.53 20.69

APT35 29 622965 622518 144.88 900.00 619871 6.97 24.98

APT36 28 130988 130965 0.13 900.00 130628 0.08 21.69

APT37 43 387640 387439 19.54 900.00 387097 11.75 32.19

APT38 40 261698 261625 288.06 900.00 260943 2.16 32.38

APT39 33 269376 269278 38.16 900.00 269181 13.88 30.20

Média 290.97 753.04 10.29 31.48

Page 119: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

118

Para analisar o comportamento dos algoritmos propostos neste trabalho em instâncias

maiores do PCBGR rotacionado com peso e sem peso, executam-se esses algoritmos nas

respectivas instâncias APT40-APT49 e APT30-APT39. De acordo com as Tabelas 5.14 e

5.15, o X2D obteve o total de 6 ótimos com certificação, no tempo limite de 900 segundos. Já

o RG2Dvr encontrou apenas 2 soluções ótimas nessas instâncias mas seus tempos médios são

bem razoáveis.

Na Tabela 5.16 estão os resultados das instâncias gcut para a variante do PCBGR

sem rotação e sem peso. Assim como no Capítulo 4, o RG2Dar destaca-se nesse tipo de

instância e, não somente reproduz todas as soluções encontradas pelo X2D, mas também

obtém uma solução de valor 8825746 na gcut13. Nesta instância, torna-se importante declarar

que o X2D utilizou todo o tempo de execução delimitado em 600 segundos no algoritmo X,

sem conseguir obter uma solução viável nos múltiplos padrões da PD relaxada e nas

viabilizações permitidas.

TABELA 5.16 – Resultados nas Instâncias gcut com Rotação e sem Peso.

A presente seção é concluída com uma análise detalhada dos resultados do X2D na

resolução do PCBGR sem rotação e com rotação. Como um total de 513 instâncias nos 4

conjuntos utilizados nos testes computacionais, as Tabelas 5.17 e 5.18 apresentam nas suas

colunas 2-4 os seguintes quantitativos discriminados por fases: soluções com certificado de

otimalidade (CO), melhores limites superiores (ZUB) e melhores soluções retornadas (ZB). Nas

colunas 5-8 são distinguidas quantas vezes essas melhores soluções foram encontradas

diretamente na solução ótima da PD relaxada (PD), pela viabilização desta solução ótima da

Instâncias AlgoritmosNome m ZUB X2D Tempo RG2D Tempo

gcut1 10 58136 **58136 0.01 0.01 *58136 <0.01 2.82

gcut2 20 60403 **60403 0.06 0.08 *60403 0.02 5.22

gcut3 30 60604 60485 0.03 2.30 60485 0.05 7.43

gcut4 50 61710 **61710 0.04 0.13 *61710 0.01 13.60

gcut5 10 233969 **233969 0.21 0.25 *233969 <0.01 2.78

gcut6 20 239393 **239393 0.01 0.02 *239393 <0.01 4.80

gcut7 30 245306 **245306 0.04 0.04 *245306 0.02 7.55

gcut8 50 247462 **247462 0.01 0.04 *247462 0.01 12.63

gcut9 10 933169 **933169 0.03 0.22 *933169 <0.01 3.10

gcut10 20 930896 922695 0.15 5.58 922695 0.01 4.62

gcut11 30 969151 **969151 0.01 11.98 *969151 0.01 7.72

gcut12 50 981660 980640 0.02 2.23 980640 0.46 12.60

gcut13 32 8997450 – – 600.00 8825746 3.08 15.83

Média 0.05 47.91 0.28 7.75

Page 120: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

119

PD (Via. PD), encontrada nos subótimos da matriz desta PD (MPD) ou produzida a partir de

alguma viabilização nos múltiplos padrões desta matriz (Via. MPD).

Considerando todos os 1026 problemas resolvidos com ou sem rotação, é possível

concluir que a maioria dos 737 padrões de corte com certificação de ótimo é produzida pelo

algoritmo X. Ao aproveitar também seus múltiplos padrões, inclusive fazendo a viabilização,

aumenta-se consideravelmente a possibilidade de obter um limite inferior melhor ou até uma

solução com garantia de ótimo. A heurística X2H está sendo providencial para o resultado de

algumas poucas instâncias, mas consideradas importantes, como por exemplo, as clássicas

CU7 e CU10 do PCBGR sem rotação e sem peso. Ainda assim, a fase 4 do X2D carece de um

estudo mais minucioso que determine melhor os parâmetros utilizados na sua execução.

TABELA 5.17 – Limites Superiores e Inferiores por Fases do X2D para o PCBGR.

TABELA 5.18 – Limites Superiores e Inferiores por Fases do X2D para o PCBGR Rotacionado.

X2D CO ZUB ZB PD Viab. PD MPD Via. MPDFase 1 (X) 296 334 394 134 14 222 24Fase 2 (X2) 55 179 74 7 0 45 22Fase 3 (RG2D) - - 34 - - - -

Fase 4 (X2H) - - 10 1 0 8 1

X2D CO ZUB ZB PD Viab. PD MPD Via. MPDFase 1 (X) 326 379 413 149 14 209 41Fase 2 (X2) 60 134 61 13 0 30 18

Fase 3 (RG2D) - - 36 - - - -Fase 4 (X2H) - - 1 0 0 1 0

Page 121: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

120

6 ALGORITMOS GERAÇÃO DE COLUNAS PARA O PCEBG

Os algoritmos GCH2D e GCH2Dr foram desenvolvidos por Velasco e Uchoa (2015)

para o PCEBG não estagiado, baseando-se na estratégia apresentada por Gilmore e Gomory

(1961), que além apresentar uma técnica de geração de colunas (GC), propuseram uma

abordagem residual que determina soluções inteiras aproximadas. Em geral, na GC, a solução

ótima para o PL Mestre (3.1) relaxado não é inteira. Admitindo que nesse vetor solução exista

pelo menos um padrão de corte com produção fracionada, consegue-se uma solução inteira

aproximada arredondando para baixo o número de repetições desse padrão. Restando assim,

uma instância residual denominada de Problema Residual, que geralmente apresenta uma

demanda consideravelmente menor que a do problema original. Sendo este Problema

Residual abordado como uma sequencia de PCBGR, são utilizados os algoritmos RG2Da e

RG2Dar na resolução dos respectivos casos sem e com rotação de itens. Outra questão

importante a ser considerada é que, diante da dificuldade de se resolver de forma exata o

subproblema (3.2) com padrões de corte restrito para o PCEBG não estagiado, utilizou-se uma

ideia apresentada por Cintra et al. (2008), que consiste em resolver este subproblema, gerando

padrões irrestritos e com peso atribuído aos itens, até para instâncias que admitem rotação dos

itens, por meio da técnica de Programação Dinâmica.

6.1 ALGORITMOS GCH2D e GCH2Dr

A versão original dos algoritmos GCH2D ou GCH2Dr inicia com o PL Mestre

contendo um conjunto de m+1 colunas, constituído de m padrões homogêneos, com os itens

copiados em sua quantidade máxima em cada objeto, e adicionado de um padrão gerado, com

o valor de utilidade dos itens igual as respectivas medidas de área, pelo algoritmo DP

apresentado no Capítulo 5. A cada iteração seguinte, se for vantajoso, atribui-se aos itens os

valores das suas respectivas variáveis duais, gera e insere uma nova coluna ao PL Mestre.

Caso a solução ótima desse PL Mestre não seja inteira, a instância residual é extraída por

arredondamento para o maior inteiro menor ou igual à solução relaxada corrente e, os

algoritmos RG2Da ou RG2Dar, solucionam o problema residual com padrões de corte restritos,

compondo assim a solução inteira do PCEBG original. Na etapa em que se resolve o

Problema Residual, é interessante ressaltar que fica estabelecido como critério de parada nos

algoritmos RG2D atender toda demanda remanescente.

Page 122: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

121

Na seguinte descrição do pseudocódigo geral, para os dois algoritmos enfatizados na

subseção presente, primeiramente, considera-se a definição das variáveis ainda não declaradas

para os respectivos processos.

� S*PCEBG : solução do PCEBG;

� valorS*PCEBG : número total de objetos na solução do PCEBG;

� S*

Rel : solução relaxada do PL Mestre;

� SApr : solução inteira aproximada do PL Mestre;

� valorSApr : número de objetos na solução inteira aproximada;

� itensPR : número total de itens na instância residual.

Algoritmo GCH2D (Α,Ψ, iterC, iterR) 1. S

*PCEBG = ∅ e valorS

*PCEBG = 0;

2. Determine as colunas [y1,..., ym]t de padrões homogêneos para o PL Mestre; 3. Gere nova coluna para o PL Mestre executando DP, com v(pi) = ci.li; 4. Resolva o PL Mestre; 5. Obtenha as variáveis duais πi; 6. Gere uma coluna y para o PL Mestre executando DP, com v(pi) = πi;

7. Se (=1

1 - yπ∑m

i i

i

< 0) então

8. Adicione a nova coluna o PL Mestre e volte ao passo 4; 9. Arredonde para baixo S*

Rel para obter a solução inteira aproximada, SApr e valorSApr; 10. Determine os dados da instância residual, pj` e dj` e itensPR; 11. Atualize S*

PCEBG = SApr e valorS*PCEBG = valorSApr;

12. Enquanto (itensPR > 0) faça 13. Resolva o problema residual executando RG2D (Α,Ψ, iterC, iterR); 14. Atualize S*

PCEBG = S*PCEBG U padcorteS

* e valorS*PCEBG = valorS

*PCEBG + 1;

15. Atualize os dados da instância residual, pj` e dj`; 16. Se (dj` = 0) então 17. Atualize número de itens, itensPR = itensPR - 1; 18. Retorna (S*

PCEBG, valorS*PCEBG);

Fim GCH2D

É importante observar que Cintra et al. (2008) também propuseram quatro

algoritmos baseados na GC para o PCEBG, sem restrições de estágios de corte, chamados de

CG, CGP, CGR e CGRP, distinguindo os dois últimos pela possibilidade de rotação ortogonal

dos itens. O algoritmo CG tenta resolver os problemas residuais recursivamente, fazendo uma

nova geração de colunas e um novo arredondamento. Esse processo para quando todas as

variáveis na solução ótima do PL mestre relaxado tem valor menor que 1, fazendo com que

seu arredondamento para baixo dê zero. Neste momento, o problema residual é resolvido

pelo algoritmo Modified Hybrid First Fit (M-HFF), que consiste numa ampliação do HFF

para o caso restrito. O M-HFF é um algoritmo aproximativo com garantia 2,077, como

provado por Caprara (2002). O algoritmo CGP usa uma estratégia diferente quando o

Page 123: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

122

arredondamento da solução do PL ótimo dá zero. Ao invés de resolver todo o problema

residual com o M-HFF, esse algoritmo é usado para gerar apenas um padrão de corte, que é

subtraído da demanda residual. Essa nova solução residual “perturbada” é resolvida

recursivamente, voltando-se a GC. Os algoritmos CGR e CGRP são versões adaptadas dos

algoritmos CG e CGR, devido à rotação dos itens, onde o algoritmo First Fit Decreasing

Height using Rotations (FFDHR) substitui o algoritmo M-HFF.

6.3 RESULTADOS COMPUTACIONAIS

Os algoritmos propostos para o PCEBG foram implementados em linguagem C/C++,

as relaxações do PL Mestre foram resolvidas pelo CPLEX Optimization Studio 12.5.1 e os

testes foram realizados em um computador com processador Intel(R) Core(TM)i5-3320M

2.60 GHz, com 4GB de memória RAM e sistema operacional Windows 7 de 64 bits.

A seguir, são apresentados os testes computacionais com os algoritmos GCH2D e

GCH2Dr para o PCEBG não estagiado, sem e com rotação, respectivamente. Esses testes, para

comparar os resultados obtidos com os algoritmos CG, CGP, CGR e CGRP, foram divididos

em dois grupos de 12 instâncias, contendo as mesmas informações, que se diferenciam por

permitir ou não a rotação ortogonal dos itens. Originalmente, essas instâncias foram propostas

por Beasley (1985), com o total de itens distintos iguais a 10, 20, 30 e 50, a serem cortados

em objetos de dimensões (250, 250), (500, 500) e (1000, 1000). Estas são referenciadas em

diversos trabalhos que abordam a geração de padrões para o PCBGI e estão disponibilizadas

em OR-Library1. Como estas instâncias eram para o caso irrestrito, Cintra et al. (2008)

providenciou demandas geradas aleatoriamente2 e as renomeou de gcut1d,...,gcut12d e

gcut1dr,...,gcut12dr, respectivamente. Os referidos autores implementaram seus algoritmos

em linguagem C e executaram os testes em um computador com processador Intel Pentium IV

1.8 GHz, com 512 Mb de memória RAM, sistema operacional Linux e resolvedor CLP

(COIN-OR LP Solver). No benchmark de endereço www.cpubenchmark.net, a informação é

que os testes executados neste processador são 3.8 vezes mais lentos, quando a comparação é

feita com o processador utilizado nas rodadas dos algoritmos GCH2D e GCH2Dr.

Nas rodadas dos algoritmos RG2Da e RG2Dar, o critério de parada ficou estabelecido

em atender a demanda do problema residual. Em todas as execuções, foi adotado valor 0 para

o parâmetro ψ e parâmetros φ e δ estavam fixados em 1. Na variação do parâmetro α, este

parâmetro assume os valores de A, que iniciam com 0.1 e é incrementada de 0.1 até o valor 1.

1 http://people.brunel.ac.uk/~mastjjb/jeb/info.html 2 http://www.ime.usp.br/~glauber/gcut/instances/

Page 124: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

123

Dessa maneira, fazendo iterC = 10 e iterR = 0 adotando-se 1 iteração para cada valor α em A e

utilizando pitens = 10%, o melhor padrão gerado é escolhido para compor a solução e a

demanda atualizada. Com esta configuração definida, estes algoritmos são equivalentes aos

respectivos algoritmos G2Da/ar, executando apenas a fase de diversificação com ψ = 0.

As tabelas 6.1 e 6.2 apresentam os resultados obtidos em 10 execuções com os

algoritmos GCH2D e GCH2Dr. As seis primeiras colunas correspondem ao nome da instância,

número de itens distintos, dimensões do objeto, número de colunas geradas pela PD, limite

inferior obtido pela GC, valor da solução aproximada obtida por arredondamento da solução

fracionária. As quatro colunas seguintes se referem à melhor das 10 rodadas, à solução do

problema residual, ao tempo gasto com no residual (Tg), ao valor da solução final do PCE

obtida e o tempo total da rodada, incluindo a GC (T). As duas colunas seguintes são o valor

médio da solução final obtida em cada uma das rodadas e o tempo médio de uma rodada. As

colunas restantes, com valores retirados de Cintra et al. (2008), mostram as melhores soluções

e o tempo gasto pelos algoritmos daqueles autores. Como os algoritmos CG e CGp tiveram

resultados muito similares na Tabela 6.1 eles são mostrados como um único algoritmo. É

importante observar nessas tabelas os valores de soluções marcados com *, pois indicam as

soluções melhoradas obtidas pelos novos algoritmos e os tempos são apresentados em

segundos.

Das instâncias utilizadas no PCEBG sem rotação, verifica-se na tabela 6.1 que o

algoritmo GCH2D encontrou 11 soluções ótimas, ou seja, com o número de padrões de corte

produzidos igual ao limite inferior arredondado para cima. Estes resultados quando

comparados com o desempenho dos algoritmos CG e CGP, que obtiveram a mesma solução

nessas instâncias, evidenciam a eficiência do GCH2D com 8 soluções melhores.

Na tabela 6.2, os resultados para o grupo de instâncias cabíveis de rotação,

demonstram que o algoritmo GCH2Dr também foi eficiente, superando em 9 e 8 instâncias os

algoritmos CGR e CGRP, respectivamente. Ainda nessa tabela 2, é possível conferir que o

algoritmo proposto obteve 12 soluções ótimas com a configuração adotada. Deve-se observar

que em nenhuma instância dos dois grupos, os algoritmos propostos apresentaram resultados

inferiores CG, CGP, CGR e CGRP e que os tempos computacionais dos algoritmos são

confrontáveis, comprovando não só a eficácia, mas também a competitividade, desses

algoritmos. Vale ressaltar, também, que depois de exaustivos testes, aumentando

consideravelmente o número de iterações no algoritmo RG2Da, não foi possível encontrar uma

solução de valor igual ao limite inferior de 690 para a instância gcut8d.

Page 125: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

124

TABELA 6.1 – Resultados do GCH2D com Padrões de Corte Residuais RG2Da.

TABELA 6.2 – Resultados do GCH2Dr com Padrões de Corte Residuais RG2Dar.

Instância m.Dimensões

ObjetoColunas Geradas

Limite Inferior

Solução Aprox.

Solução RG2D

TgSolução

GCH2DT

Solução GCH2Dm

TmSolução CG/CGp

TcSolução

CGRpTp(s)

gcut1d 10 (250, 250) 21 293.25 2920 2000 <0.01 *294 <0.01 *294.0 0.01 *294 0.03gcut2d 20 (250, 250) 35 344.25 3430 2000 <0.01 *345 <0.01 *345.0 0.01 *345 0.28gcut3d 30 (250, 250) 75 331.50 3200 12000 <0.01 *332 <0.03 *332.8 0.04 *333 0.77gcut4d 50 (250, 250) 93 835.83 8230 13000 <0.02 *836 <0.08 *836.9 0.07 *837 5.09gcut5d 10 (500, 500) 22 196.83 1940 3000 <0.01 *197 <0.01 *197.6 0.01 *198 0.03gcut6d 20 (500, 500) 43 342.67 3380 5000 <0.01 *343 <0.01 *343.5 0.01 *344 0.21gcut7d 30 (500, 500) 53 591.00 5850 6000 <0.01 *591 <0.01 *591.9 0.01 *592 0.33gcut8d 50 (500, 500) 133 690.00 6750 16000 <0.02 *691 <0.08 *691.5 0.10 *692 3.60gcut9d 10 (1000, 1000) 24 130.67 1260 5000 <0.01 *131 <0.01 *131.2 0.01 *132 0.06

gcut10d 20 (1000, 1000) 33 293.00 2900 3000 <0.01 *293 <0.01 *293.0 0.01 *293 0.09gcut11d 30 (1000, 1000) 74 329.38 3180 12000 <0.01 *330 <0.04 *330.7 0.04 *331 1.07gcut12d 50 (1000, 1000) 114 671.50 6620 10000 <0.01 *672 <0.06 *672.2 0.07 *672 3.35

Instância m.Dimensões

ObjetoColunas Geradas

Limite Inferior

Solução Aprox.

Solução RG2D

TgSolução

GCH2DT

Solução GCH2Dm

TmSolução

CGRTc

Solução CGRp

Tp

gcut1dr 10 (250, 250) 14 290.25 2860 5000 <0.01 *291 <0.01 *291.0 0.01 *291 0.04 *291 0.06gcut2dr 20 (250, 250) 42 281.88 2760 6000 <0.01 *282 <0.03 *282.4 0.04 *283 1.41 *283 1.57gcut3dr 30 (250, 250) 125 312.57 3000 13000 <0.01 *313 <0.09 *313.9 0.09 *315 1.89 *314 3.38gcut4dr 50 (250, 250) 91 835.50 8230 13000 <0.01 *836 <0.05 *836.1 0.07 *836 4.40 *836 6.82gcut5dr 10 (500, 500) 25 173.96 1690 5000 <0.01 *174 <0.01 *174.9 0.01 *175 0.06 *175 0.10gcut6dr 20 (500, 500) 51 300.50 2940 7000 <0.01 *301 <0.02 *301.2 0.02 *302 0.25 *302 0.28gcut7dr 30 (500, 500) 61 542.00 5390 3000 <0.01 *542 <0.02 *542.8 0.02 *544 0.99 *543 1.18gcut8dr 50 (500, 500) 152 649.23 6360 14000 <0.01 *650 <0.23 *650.8 0.25 *651 6.47 *651 7.10gcut9dr 10 (1000, 1000) 26 121.92 1190 3000 <0.01 *122 <0.02 *122.9 0.01 *123 0.07 *123 0.10

gcut10dr 20 (1000, 1000) 44 269.50 2680 2000 <0.01 *270 <0.01 *270.0 0.02 *270 0.21 *270 0.26gcut11dr 30 (1000, 1000) 97 297.39 2870 11000 <0.01 *298 <0.30 *298.7 0.29 *299 6.00 *299 6.47gcut12dr 50 (1000, 1000) 143 601.00 5910 10000 <0.01 *601 <0.28 *602.1 0.34 *602 19.24 *601 19.57

Page 126: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

125

7 CONCLUSÕES E TRABALHOS FUTUROS

Neste trabalho foram realizados estudos sobre dois problemas clássicos, que são o

PCBGR e o PCEBG, com o intuito de apresentar métodos eficientes para resolução desses

problemas. São propostos os algoritmos RG2D e X2D para tratar o PCBGR, nas variantes que

combinam a forma como se define o valor de utilidade dos itens e a questão de permitir ou

não a rotação desses itens. Para as variantes sem e com rotação do PCEBG, propõe-se

resolvê-las com as respectivas versões dos algoritmos GCH2D.

Primeiramente no Capítulo 4, foram expostos os fundamentos necessários para

construção dos algoritmos RG2Da/v/ar/vr, concebidos a partir de ampliações no algoritmo G2D

original, para resolução do PCBGR nas variantes que consideram a forma como se define o

valor de utilidade dos itens e a questão de permitir ou não a rotação desses itens. As seguintes

contribuições foram apresentadas neste Capítulo, sobre o PCBGR:

■ O algoritmo G2D, baseado na metodologia de GRASP para determinação de faixas

guilhotinas e inicialmente criado em Velasco (2005) foi modernizado para o PCBGR, com

os princípios do GRASP Reativo e a criação de novos parâmetros que consideram: a

repetição de faixas guilhotinas homogêneas; o quantitativo de itens utilizados na geração

do padrão de corte; novos movimentos de melhoria que possibilitam, inclusive, a

recuperação de perdas internas em uma faixa, denominadas dentes; na composição do

padrão de corte que as faixas apresentam um percentual aceitável de perda interna. Nos

algoritmos propostos RG2D, os parâmetros principais α e ψ responsáveis pela cardinalidade

dos conjuntos LRC e LRF, são calibráveis ainda na fase de diversificação a partir de

valores pré-estabelecidos para determinação dos parâmetros reativos αR e ψR a serem

utilizados na fase reativa seguinte.

Com estratégias que diferem de acordo com o valor de utilidade dos itens, os

algoritmos RG2Da/v/ar/vr foram analisados separadamente em dois grupos de instâncias e os seus

resultados foram comparados aos valores das soluções de algoritmos competitivos e bastante

conhecidos na literatura. Os resultados para o caso sem rotação foram promissores quando

comparados aos algoritmos GRASP, GR/PR e TS500 (ALVAREZ-VALDÉS et al., 2002a),

conseguindo uma quantidade significativa soluções ótimas, nas 50 instâncias analisadas, e as

demais apresentando um gap pequeno com tempos computacionais de execução procedentes

em média inferiores a 60 segundos. Nas instâncias gcut1-gcut13, esta comparação se fez com

o algoritmo exato A1 e vale ressaltar que a versão reativa RG2Da encontrou a melhor solução

conhecida para a instância em aberto gcut13. Como não se conhece trabalhos na literatura que

Page 127: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

126

abordem esses conjuntos de instâncias para variante com rotação, os resultados gerados com

as versões do RG2D são apenas apresentados com seus gaps calculados a partir dos limites

superiores do algoritmo X2D proposto no Capítulo 5.

O Capítulo 5 iniciou destacando as dificuldades encontradas na resolução do PCBGR

via PD, com a inclusão de m dimensões às fórmulas de recorrência, que justificaram a

proposta feita por Christofides e Hadjiconstantinou (1995) de relaxação de espaço de estados

adicionando apenas uma dimensão. Em sequência, são apresentados os algoritmos duais X e

X2, que utilizam PI na determinação do vetor de pesos q da PD relaxada, para obter limites

superiores fortes para o PCBGR. Em relação aos limites inferiores, estes podem ser obtidos

com os algoritmos primais RG2D e X2H, nos múltiplos padrões subótimos da PD ou através

de uma heurística de viabilização aplicada nos padrões inviáveis gerados por X, X2 e X2H.

As contribuições apresentadas no Capítulo 5 da tese, ainda sobre o PCBGR, são:

■ É proposto o algoritmo X, baseado em PI, para a obtenção dos pesos ótimos para a

relaxação de espaço de estados proposta por Christofides e Hadjiconstantinou (1995) para

o PCBGR. Esses pesos são ótimos no sentido de levar ao menor limite superior para o

PCBGR possível de ser obtido com essa relaxação e ainda obter esse limite com o menor

fator de aumento da complexidade da PD possível. Também foi provado que, caso o

algoritmo X seja truncado pelo máximo valor de Q aceitável, o algoritmo determina os

melhores pesos possíveis com essa limitação.

■ Apresenta-se o algoritmo X2 que aplica técnicas similares sobre uma generalização da

relaxação de espaço de estados que usa pesos bidimensionais. O algoritmo X2 utiliza

programação inteira com função objetivo quadrática e possui propriedades teóricas

similares ao algoritmo X, obtendo pesos bidimensionais ótimos. A versão que usa função

objetivo aproximada por uma linearização também acha o melhor limite superior possível.

Entretanto, isso pode não ocorrer com o menor fator de aumento da complexidade da PD.

■ O algoritmo X2H é uma adaptação do algoritmo X2 para transformá-lo em uma heurística

primal e, assim, buscar soluções viáveis que melhore o limite ZLB.

■ É produzido o algoritmo X2D, combinando os algoritmos X, X2, X2H com a heurística

RG2D. O algoritmo X2D também busca por soluções primais utilizando tanto as soluções

ótimas quanto as soluções subótimas encontradas nas matrizes dos algoritmos baseados em

PD. Caso essas soluções sejam quase viáveis, no sentido de apresentarem um número

muito pequeno de itens produzidos em excesso, é utilizado um procedimento de

viabilização.

Page 128: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

127

Para o caso não rotacionado, é possível fazer comparações diretas com o algoritmo

DP_AOG, que consiste no híbrido de programação dinâmica com relaxação de espaço de

estados e uma heurística primal baseada na abordagem grafo E/OU, e apresenta os melhores

resultados para um algoritmo primal-dual na literatura. O algoritmo X2D representa

claramente uma evolução sobre o algoritmo DP_AOG. Na grande maioria das instâncias ou

os gaps de dualidade obtidos são menores ou os tempos de execução são reduzidos.

Comparações com o algoritmo A1, o melhor algoritmo exato da literatura, são possíveis em

um número mais restrito de 33 instâncias. O algoritmo A1, que usa limites inferiores e

superiores externos como dados de entrada, é capaz de resolver 30 dessas instâncias de forma

ótima. Entretanto, pela sua natureza enumerativa exponencial, o algoritmo A1 falha

completamente nessas 3 instâncias, estourando o seu tempo limite de execução sem melhorar

em nada os limites externos recebidos. Algoritmos como o X2D ou DP_AOG, por serem

baseados em componentes com complexidade no máximo pseudo-polinomial, são mais

robustos. De fato, X2D encontrou as melhores soluções conhecidas para duas dessas instâncias

em aberto, APT42 e APT43. Com a parametrização adotada, o algoritmo X2D obteve 16

certificados de otimalidade e gaps pequenos nas 30 instâncias que puderam ser resolvidas por

A1, gastando em geral um tempo significativamente menor.

No caso rotacionado, ainda não havia resultados disponíveis na literatura para

comparação com o algoritmo X2D. Acreditamos que os resultados publicados nesta tese

certamente serão utilizados por outros pesquisadores no futuro que desejem explorar essa

variante do PCBGR. De qualquer forma, os resultados mostraram que o algoritmo X2D

apresenta desempenho ainda melhor quando as rotações são permitidas, encontrando mais

soluções certificadas de serem ótimas e obtendo menores gaps de dualidade médios.

O Capítulo 6 tem como objeto de estudo o PCEBG e foram apresentados os

algoritmos híbridos GCH2D e GCH2Dr, que originalmente combinam a técnica de GC com o

algoritmo DP e a metaheurística GRASP, utilizando os algoritmos RG2D e para resolver os

respectivos Problemas Residuais dos casos sem e com rotação. As contribuições originais do

Capítulo 6 são:

■ Com as ampliações que resultaram nos algoritmos RG2D, estes se tornaram mais rápidos e

flexíveis, permitindo seu uso em várias etapas dos novos algoritmos híbridos da GC

proposta para o PCEBG. Os algoritmos GCH2D seguem a ideia geral de arredondar a

solução fracionária da GC para uma solução inteira e resolver o Problema Residual,

definido pelos itens com demanda ainda não totalmente atendida, utilizando

Page 129: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

128

sistematicamente os algoritmos RG2D na produção de padrões constituídos desses itens

remanescentes.

Em instâncias propostas por Beasley (1985) e adaptadas por Cintra et al. (2008), os

resultados foram bastante satisfatórios, apresentando soluções melhores do que as obtidas por

Cintra et al. (2008) em 16 das 24 instâncias e empatando nas demais. É importante ressaltar

que foram obtidas 23 soluções provadamente ótimas em tempos computacionais muito

reduzidos. Além disso, a solução apresentada na instância gcut8d possui 1 unidade a mais do

limite inferior dado pela GC. Esse resultado indica que o limite da GC para o PCEBG, mesmo

quando os subproblemas são definidos como PCBGI, é bastante forte na prática. Isto é, esses

resultados suportariam uma Conjectura MIRUP para o PCEBG.

Como perspectivas para trabalhos futuros são indicadas nas seguintes propostas:

■ Identificar uma melhor calibragem dos parâmetros envolvidos nos algoritmos propostos

para o PCBGR e o PCEBG;

■ Combinar a utilização de técnicas exatas ou outras heurísticas nas novas ampliações do

algoritmo G2D;

■ Implementar um algoritmo de busca em árvore que realize uma enumeração completa no

espaço de estados relaxado da PD, baseado no algoritmo proposto por Christofides e

Hadjiconstantinou (1995) para resolver de forma exata o PCBGR;

■ Considerar estratégias diferentes para tratar o subproblema e o problema residual

provenientes da GC híbrida proposta para o PCEBG;

■ Ampliar os algoritmos propostos para que possam ser aplicados a outras variantes dos

Problemas de Corte e Empacotamento, como por exemplo, o Problema de Empacotamento

Bidimensional em Faixas, o Problema de Corte de Estoque com aproveitamento de sobras

do objeto e o qual utiliza objetos retangulares de diferentes tamanhos.

Page 130: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

129

REFERÊNCIAS BIBLIOGRÁFICAS

ALVARENGA, A.G.; DAZA, V.P. Um método de busca informada para o problema do corte de peças. Anais do IX Congresso Brasileiro de Automática, Vitória, 1992.

ALVARENGA, A.G.; GOMES, F.N.; PARADA, V. O problema de corte de peças na indústria de calçados. Anais do VII Congresso Latino-Ibero-Americano de Investigação

Operativa. Santiago, 1994.

AMARAL, A. R. S. Abordagens via Tabu Search e Simulated Annealing para o Problema de

Corte Bi-dimensional Restrito. 1994. Dissertação (Mestrado em Engenharia Elétrica – Automação) – Programa de Pós-Graduação em Engenharia Elétrica, UFES, Vitória.

AMARAL, A.R.S.; WRIGHT, M, Efficient algorithm for the constrained two-dimensional cutting stock problem, International Transactions in Operational Research, v.8, p.3-13, 2001.

BEASLEY, J. E. Algorithms for unconstrained two-dimensional guillotine cutting. Journal of

the Operational Research Society, p. 297-306, 1985.

CAPRARA, A. Packing 2-dimensional bins in harmony. In: Foundations of Computer

Science, 2002. Proceedings. The 43rd Annual IEEE Symposium on. IEEE, p. 490-499, 2002.

CHEN, Y. A recursive algorithm for constrained two-dimensional cutting problems. Computational Optimization and Applications, v. 41, n. 3, p. 337, 2008.

CHRISTOFIDES, N.; WHITLOCK, C. An algorithm for two-dimensional cutting problems. Operations Research, n. 25, p. 30-44, 1977.

CHRISTOFIDES, N.; HADJICONSTANTINOU, E. An exact algorithm for orthogonal 2-D cutting problems using guillotine cuts. European Journal of Operational Research, n. 83, p. 21-38, 1995.

CINTRA, G. F.; MIYAZAWA, F. K.; WAKABAYASHI, Y.; XAVIER, E. C. Algorithms for two-dimensional cutting stock and strip packing problems using dynamic programming and column generation. European Journal of Operational Research, 191(1), 61-85, 2008.

CUI, Y. Simple block patterns for the two-dimensional cutting problem. Mathematical and

computer modelling, v. 45, n. 7, p. 943-953, 2007.

CUNG, V.D.; HIFI, M.; LE CUN, B. Constrained two-dimensional cutting stock problems. A best-first branch-and-bound algorithm. International Transactions in Operational Research, n. 7, p. 185-210, 2000.

DANTZIG, G.B.; WOLFE, P. Decomposition principle for linear programs. Operations

Research, v. 8, n. 1, p. 101-111, 1960.

DAZA, V.P.; ALVARENGA, A.G.; DIEGO, J. Exact solutions for constrained two-dimensional cutting problems. European Journal of Operational Research, n. 84, p. 633-644, 1995.

DOLATABADI, M.; LODI, A.; MONACI, M. Exact algorithms for the two-dimensional guillotine knapsack. Computers & Operations Research, v. 39, n. 1, p. 48-53, 2012.

Page 131: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

130

DYCKHOFF, H. A new linear programming approach to the cutting stock problem. Operations Research, v. 29, n. 6, p. 1092-1104, 1981.

DYCKHOFF, H. A typology of cutting and packing problems. European Journal of Operational Research, n. 44, p. 145-149, 1990.

DYCKHOFF, H.; FINKE, U. Cutting and Packing in Production and Distribution: Typology

and Bibliography. Heidelberg: Springer-Verlag Co., 1992.

ESICUP. Euro Special Interest Group on Cutting and Packing. Disponível em: <http://paginas.fe.up.pt/~esicup/> (último acesso 21/02/2015).

FAYARD, D.; HIFI, M.; ZISSIMOPOULOS, V. An efficient approach for large-scale two-dimensional guillotine cutting stock problems. Journal of the Operational Research Society, v.49, p.1270-1277, 1998.

FEO, T.A.; RESENDE, M.G.C. A probabilistic heuristic for a computationally difficult set covering problem. Operation Research Letters, n. 8, p. 67-71, 1989.

FEO, T.A.; RESENDE, M.G.C. Greedy Randomized Adaptive Search Procedures. Journal of

Global Optimization, n. 6, p. 109-133, 1995.

FURINI, F.; MALAGUTI, E.; DURÁN, R. M.; PERSIANI, A.; TOTH, P. A column generation heuristic for the two-dimensional two-staged guillotine cutting stock problem with multiple stock size. European Journal of Operational Research, 218(1), 251-260, 2012.

FURINI, F.; MALAGUTI, E.; THOMOPULOS, D. Modeling two-dimensional guillotine cutting problems via integer programming. INFORMS Journal on Computing, v. 28, n. 4, p. 736-751, 2016.

GAREY M. R.; JOHSON D. S. Computers and Intractability: a guide to the theory of NP-

Completeness. New York: W. H. Freeman and Company, 1979.

GILMORE, P.C.; GOMORY, R.E. A linear programming approach to the cutting stock problem. Operations Research, n. 9, p. 849-859, 1961.

GILMORE, P.C.; GOMORY, R.E. A linear programming approach to the cutting stock problem - Part II. Operations Research, n. 11, p. 863-888, 1963.

GILMORE, P.C.; GOMORY, R.E. Multistage cutting stock problems of two and more dimensions. Operations Research, n. 13, p. 94-120, 1965.

GILMORE, P.C.; GOMORY, R.E. The theory and computation of knapsack functions. Operations Research, n. 14, p. 1045-1074, 1966.

HERZ, J.C. Recursive computational procedures for two-dimensional stock cutting. IBM

Journal of Research and Development, n.16, p. 462-469, 1972.

HIFI, M. An improvement of Viswanathan and Bagchi's exact algorithm for cutting stock problems. Computers & Operations Research, n.24, p. 727-736, 1997.

HIFI, M. Dynamic programming and hill-climbing techniques for constrained two-dimensional cutting stock problems. Journal of Combinatorial Optimization 8, 65-84, 2004.

Page 132: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

131

LODI, A.; MONACI, M. Integer linear programming models for 2-staged two-dimensional knapsack problems. Mathematical Programming, v. 94, n. 2-3, p. 257-278, 2003.

MARCOTTE, O. An instance of the cutting stock problem for which the rounding property does not hold. Operations Research Letters, v. 4, n. 5, p. 239-243, 1986.

MORABITO, R.; ARENALES, M. N.; ARCARO, V. F. An and–or-graph representation to generate cutting patterns for the two-dimensional cutting problem. Workshop on

Combinatorial Optimization. Rio de Janeiro, 1989.

MORABITO, R.; ARENALES, M. N.; ARCARO, V. F. An and–or-graph approach for two-dimensional cutting problems. European Journal of Operational Research, n. 58, p. 263-271, 1992.

MORABITO, R.; ARENALES, M. N. Staged and constrained two-dimensional guillotine cutting problems: an AND/OR-graph approach. European Journal of Operational Research, n. 94, p. 548-560, 1996.

MORABITO, R.; PUREZA, V. A heuristic approach based on dynamic programming and and/or-graph search for the constrained two-dimensional guillotine cutting problem. Annals of

Operation Research, v.179, p. 297-315, 2010.

OLIVEIRA, J.F.; FERREIRA, J.S. An improved version of Wang’s Algorithm for two-dimensional cutting problems. European Journal of Operational Research, n. 44, p. 256-266, 1990.

OLIVEIRA, J.F.; FERREIRA, J.S. A geração rápida de colunas: uma alternativa na técnica de Gilmore e Gomory para problemas de corte. Investigação Operacional, Lisboa, v. 13, p. 101-117, 1993.

PARADA, V.; PRADENAS, L.; SOLAR, M. Heurísticas Híbridas em Problemas de Corte de Peças. Anais do X Congresso Latino-Ibero-Americano de Investigação Operativa. Cidade do México, 2000.

PRAIS, M.; RIBEIRO, C.C. Reactive GRASP: An application to a matrix decomposition problem in TDMA traffic assignment. INFORMS Journal on Computing, v. 12, n. 3, p. 164-176, 2000.

PUCHINGER, J.; RAIDL, G.R. Models and algorithms for three-stage two-dimensional bin packing. European Journal of Operational Research, v. 183, n. 3, p. 1304-1327, 2007.

RIETZ, J.; SCHEITHAUER, G.; TERNO, J. Tighter bounds for the gap and non-IRUP constructions in the one-dimensional cutting stock problem. Optimization, v. 51, n. 6, p. 927-963, 2002.

SCHEITHAUER, G.; TERNO, J. A branch & bound algorithm for solving one-dimensional cutting stock problems exactly. Applicationes Mathematicae, v. 23, n. 2, p. 151-167, 1995.

SLACK, N.; CHAMBERS, S.; HARLAND, C.; HARRISON, A.; JOHNSTON, R. Administração da produção. 1ª ed. São Paulo: Atlas, 1996.

SILVA, E.; ALVELOS, F.; DE CARVALHO, J.M.V. An integer programming model for two-and three-stage two-dimensional cutting stock problems. European Journal of

Operational Research, v. 205, n. 3, p. 699-708, 2010.

Page 133: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

132

SILVEIRA, R. J.; MORABITO, R. A heuristic method based on dynamic programming for the constrained two-dimensional guillotine cutting problem. Gestão & Produção, v. 9, n. 1, p. 78-92, 2002.

VALDÉS, R.A.; PARAJÓN, A.; TAMARIT, J.M. A tabu search algorithm for large-scale guillotine (un)constrained two-dimensional cutting problems. Computers & Operations

Research, n.29, p. 925-947, 2002a.

VALDÉS, R.A.; PARAJON, A.; TAMARIT, J.M. A computational study of LP-based heuristic algorithms for two-dimensional guillotine cutting stock problems. OR Spectrum, v. 24, n. 2, p. 179-192, 2002b.

VALÉRIO DE CARVALHO, J.M. Using extra dual cuts to accelerate column generation. INFORMS Journal on Computing, v. 17, n. 2, p. 175-182, 2005.

VELASCO, A.S. GRASP para o Problema de Corte Bidimensional Guilhotinado e Restrito. Dissertação (Mestrado em Engenharia de Produção) – Centro de Ciências e Tecnologia, Laboratório de Engenharia de Produção – Leprod, UENF, Campos dos Goytacazes, 2005.

VELASCO, A.S.; PAULA JUNIOR, G.G.; VIEIRA NETO, E. Um Algoritmo Heurístico Baseado na GRASP para o Problema de Corte Bidimensional Guilhotinado e Restrito. Revista Gepros - Gestão da Produção, Operações e Sistemas, ed.1, p.129-141, 2008.

VELASCO, A.S.; UCHOA, E. Algoritmos Híbridos para Geração de Padrões de Corte 2D. In: XVIII Escuela Latino-Iberoamericana de Verano en Investigación Operativa, 2014, Areia - PB. Anais do XVIII ELAVIO, 2014a.

VELASCO, A.S.; UCHOA, E. Geração de Padrões de Corte Bidimensionais Guilhotinados via Grasp. In: Simpósio Brasileiro de Pesquisa Operacional, 2014, Salvador - BA. Anais do XLVI SBPO, 2014b.

VELASCO, A.S.; UCHOA, E. Geração de Colunas e GRASP para o Problema de Corte de Estoque Bidimensional. In: Simpósio Brasileiro de Pesquisa Operacional, 2015, Recife - PE. Anais do XLVII SBPO, 2015.

VIEIRA NETO, E. Uma heurística GRASP para o problema do corte unidimensional.

Dissertação (Mestrado em Ciências das Engenharia) – Centro de Ciências e Tecnologia, Laboratório de Engenharia de Produção – LEPROD, UENF, Campos dos Goytacazes, 1999.

VIEIRA NETO, E. GRASP: efeito da independência das soluções iniciais na otimização do

corte unidimensional. Tese (Doutorado em Ciências das Engenharia) – Centro de Ciências e Tecnologia, Laboratório de Engenharia de Produção – LEPROD, UENF, Campos dos Goytacazes, 2004.

VIEIRA NETO, E.; VELASCO, A.S.; PAULA JUNIOR, G.G. Algoritmos Grasp Híbridos para o Problema de Corte Unidimensional. In: Simpósio Brasileiro de Pesquisa Operacional, 2013, Natal/RN. Anais do SBPO, 2013.

WANG, P. Y. Two algorithms for constrained two-dimensional cutting stock problems. Operations Research, n. 31, p. 573-586, 1983.

WÄSCHER, G.; HAUßNER, H.; SCHUMANN, H. An improved typology of cutting and packing problems. European Journal of Operational Research, v. 183, n. 3, p. 1109-1130, 2007.

Page 134: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

133

ANEXO – INSTÂNCIAS DOS PADRÕES DE CORTE ILUSTRADOS

Em sequência, as tabelas apresentam informações referentes aos dados das instâncias

utilizadas para produzir os padrões de corte ilustrados nos respectivos Capítulos 4 e 5.

Instância ChW1:

C = 15, L = 10, m = 7

i di (ci, li) vi

1 1 (2, 1) 2 2 2 (3, 2) 8 3 2 (3, 3) 11 4 5 (3, 4) 17 5 3 (8, 2) 24 6 1 (3, 7) 35 7 2 (8, 4) 66

Instância CU2:

C = 150, L = 175, m = 35

i di (ci, li) vi

1 2 (78, 44) 3432 2 2 (64, 70) 4480 3 3 (52, 70) 3640 4 1 (79, 100) 7900 5 1 (66, 60) 3960 6 2 (81, 39) 3159 7 1 (91, 94) 8554 8 4 (66, 56) 3696 9 2 (91, 50) 4550 10 1 (96, 68) 6528 11 3 (40, 112) 4480 12 1 (76, 106) 8056 13 8 (63, 35) 2205 14 2 (86, 60) 5160 15 1 (93, 84) 7812 16 1 (95, 92) 8740 17 1 (70, 57) 3990 18 1 (66, 71) 4686 19 1 (84, 78) 6552 20 4 (51, 67) 3417 21 2 (34, 89) 3026 22 2 (77, 87) 6699 23 4 (44, 66) 2904 24 2 (76, 76) 5776 25 1 (50, 45) 2250 26 4 (36, 66) 2376 27 4 (38, 66) 2508 28 6 (75, 39) 2925 29 1 (77, 103) 7931 30 8 (50, 45) 2250 31 1 (80, 107) 8560 32 5 (61, 54) 3294 33 2 (31, 95) 2945 34 5 (39, 67) 2613 35 1 (63, 102) 6426

Instância OF1:

C = 70, L = 40, m = 10

i di (ci, li) vi

1 1 (29, 5) 145 2 4 (9, 39) 351 3 1 (55, 9) 495 4 1 (31, 15) 465 5 2 (11, 16) 176 6 3 (23, 21) 483 7 4 (29, 14) 406 8 3 (16, 19) 304 9 2 (9, 36) 324 10 2 (22, 4) 88

Instância gcut13:

C = 3000, L = 3000, m = 32

i di (ci, li) vi

1 1 (365, 185) 67525 2 1 (378, 200) 75600 3 1 (410, 165) 67650 4 1 (425, 148) 62900 5 1 (425, 296) 125800 6 1 (439, 116) 50924 7 1 (464, 1006) 466784 8 1 (520, 205) 106600 9 1 (520, 350) 182000 10 1 (540, 530) 286200 11 1 (549, 1413) 775737 12 1 (549, 1882) 1033218 13 1 (553, 496) 274288 14 1 (555, 755) 419025 15 1 (555, 496) 275280 16 1 (555, 659) 365745 17 1 (567, 473) 268191 18 1 (572, 592) 338624 19 1 (572, 975) 557700 20 1 (572, 1175) 672100 21 1 (572, 1575) 900900 22 1 (572, 1390) 795080 23 1 (572, 1490) 852280 24 1 (572, 1590) 909480 25 1 (572, 1690) 966680 26 1 (572, 1890) 1081080 27 1 (610, 625) 381250 28 1 (660, 490) 323400 29 1 (690, 447) 308430 30 1 (949, 445) 422305 31 1 (949, 478) 453622 32 1 (970, 463) 449110

Page 135: UNIVERSIDADE FEDERAL FLUMINENSE ESCOLA DE ENGENHARIA ...© Soares Velasco .pdf · O presente trabalho tem como objetos de estudo dois tipos de Problemas de Corte e Empacotamento,

134

Instância APT33:

C = 241, L = 983, m = 44

i di (ci, li) vi

1 3 (46, 129) 5934 2 9 (71, 204) 14484 3 5 (26, 330) 8580 4 6 (15, 72) 1080 5 7 (81, 180) 14580 6 3 (63, 239) 15057 7 6 (54, 302) 16308 8 3 (15, 214) 3210 9 2 (72, 93) 6696 10 9 (59, 154) 9086 11 6 (90, 266) 23940 12 3 (41, 151) 6191 13 1 (70, 281) 19670 14 8 (50, 268) 13400 15 7 (46, 285) 13110 16 2 (49, 263) 12887 17 4 (80, 341) 27280 18 5 (65, 390) 25350 19 5 (89, 52) 4628 20 1 (85, 185) 15725 21 2 (74, 289) 21386 22 8 (18, 379) 6822 23 8 (59, 139) 8201 24 8 (39, 52) 2028 25 3 (83, 98) 8134 26 5 (56, 355) 19880 27 7 (76, 142) 10792 28 4 (81, 371) 30051 29 8 (41, 249) 10209 30 8 (59, 233) 13747 31 3 (38, 279) 10602 32 9 (82, 170) 13940 33 1 (47, 233) 10951 34 4 (77, 274) 21098 35 7 (57, 224) 12768 36 6 (42, 313) 13146 37 7 (37, 135) 4995 38 2 (86, 275) 23650 39 5 (46, 357) 16422 40 1 (19, 270) 5130 41 9 (52, 165) 8580 42 9 (82, 124) 10168 43 2 (68, 257) 17476 44 3 (54, 46) 3024

Instância CW4:

C = 465, L = 387, m = 39

i di (ci, li) vi

1 1 (288, 191) 168 2 8 (112, 177) 328 3 1 (156, 235) 458 4 2 (147, 141) 334 5 2 (236, 181) 696 6 2 (119, 226) 613 7 2 (216, 243) 576 8 4 (152, 132) 435 9 1 (259, 132) 601 10 2 (140, 231) 499 11 2 (155, 228) 557 12 6 (122, 111) 682 13 3 (256, 115) 656 14 1 (289, 222) 292 15 1 (265, 231) 442 16 1 (275, 215) 633 17 1 (297, 205) 152 18 2 (168, 100) 626 19 1 (235, 199) 405 20 3 (236, 111) 547 21 1 (171, 230) 551 22 1 (222, 172) 250 23 1 (265, 209) 169 24 1 (234, 236) 505 25 3 (285, 86) 749 26 7 (144, 79) 191 27 1 (186, 227) 497 28 4 (133, 112) 687 29 1 (253, 163) 236 30 2 (215, 243) 203 31 2 (190, 225) 321 32 1 (212, 183) 519 33 2 (145, 204) 309 34 4 (108, 147) 291 35 5 (151, 96) 155 36 1 (215, 145) 171 37 1 (263, 156) 317 38 1 (208, 153) 180 39 1 (240, 227) 366