• Nenhum resultado encontrado

Variações do método de Gilmore e Gomory aplicado ao problema de corte e empacotamento

N/A
N/A
Protected

Academic year: 2021

Share "Variações do método de Gilmore e Gomory aplicado ao problema de corte e empacotamento"

Copied!
53
0
0

Texto

(1)

UNIVERSIDADE ESTADUAL DE

CAMPINAS

Faculdade de Ciências Aplicadas

JOÃO GABRIEL OLIVEIRA MARQUES

Variações do método de Gilmore e Gomory

aplicado ao problema de corte e

empacotamento

Limeira

2018

(2)

Variações do método de Gilmore e Gomory aplicado ao

problema de corte e empacotamento

Dissertação apresentada à Faculdade de Ci-ências Aplicadas da Universidade Estadual de Campinas como parte dos requisitos exigi-dos para a obtenção do título de Mestre em Engenharia de Produção e Manufatura, na área de concentração Pesquisa Operacional e Gestão de Processos.

Orientador: Antonio Carlos Moretti

Coorientador: Washington Alves de Oliveira

Este exemplar corresponde à versão

final da Dissertação defendida pelo

aluno João Gabriel Oliveira Marques e

orientada pelo Prof. Dr. Antonio

Car-los Moretti.

Limeira

2018

(3)

Agência(s) de fomento e nº(s) de processo(s): Não se aplica.

Ficha catalográfica

Universidade Estadual de Campinas Biblioteca da Faculdade de Ciências Aplicadas

Renata Eleuterio da Silva - CRB 8/9281

Marques, João Gabriel Oliveira,

M348v MarVariações do método de Gilmore e Gomory aplicado ao problema de corte e empacotamento / João Gabriel Oliveira Marques. – Limeira, SP : [s.n.], 2018.

MarOrientador: Antonio Carlos Moretti.

MarDissertação (mestrado) – Universidade Estadual de Campinas, Faculdade de Ciências Aplicadas.

Mar1. Problema de corte de estoque. 2. Programação linear. 3. Simplex (Matemática). I. Moretti, Antonio Carlos, 1958-. II. Universidade Estadual de Campinas. Faculdade de Ciências Aplicadas. III. Título.

Informações para Biblioteca Digital

Título em outro idioma: Variations in Gilmore and Gomory's algorithm applied to the one-dimensional cutting stock problem

Palavras-chave em inglês: Cutting stock problem Linear programming Simplexes (Mathematics)

Área de concentração: Pesquisa Operacional e Gestão de Processos Titulação: Mestre em Engenharia de Produção e de Manufatura Banca examinadora:

Antonio Carlos Moretti [Orientador] Carla Taviane Lucke da Silva Ghidini Kelly Cristina Poldi

Data de defesa: 07-03-2018

Programa de Pós-Graduação: Engenharia de Produção e de Manufatura

(4)

Autor: João Gabriel Oliveira Marques

Título: Variações do método de Gilmore e Gomory aplicado ao problema de corte e

empacotamento

Natureza: Dissertação

Instituição: Universidade Estadual de Campinas

Data da Defesa: Limeira, 07 de março de 2018

BANCA EXAMINADORA

Prof. Dr. Antonio Carlos Moretti (Orientador)

Profa. Dra. Kelly Cristina Poldi

Profa. Dra. Carla Taviane Lucke da Silva Ghidini

A Ata da Defesa, com as respectivas assinaturas dos membros, encontra-se no processo

de vida acadêmica do aluno.

(5)

Agradecimentos

Agradeço à CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nível Superior), FAPESP (Fundação de Amparo à Pesquisa do Estado de São Paulo), CNPq (Centro Nacional de Desenvolvimento Científico e Tecnológico), FCA (Faculdade de Ciências Aplicadas da UNICAMP) e UNICAMP (Universidade Estadual de Campinas) por diversas contribuições ao longo da minha vida acadêmica, especialmente pelas bolsas concedidas neste meio tempo. Esta dissertação contou sobretudo com o apoio da CAPES com uma bolsa emergencial de 6 meses.

Agradeço ao meu orientador, Antonio Carlos Moretti, que entre idas e vindas tem me aguentado por mais de 4 anos, me auxiliando e ensinando muito, tanto dentro quanto fora dos projetos acadêmicos; e ao meu coorientador Washington Alves de Oliveira.

Agradeço à minha família, Maria Goretti Oliveira Alves Marques da Silva e Pedro Leo Oliveira Marques, pelo apoio constante nas minhas ideias malucas e, por vezes, arriscadas. Sempre presentes para celebrarem ou consolarem a cada etapa nova de minha vida. Em especial ao meu falecido pai, Rubens Marques da Silva Júnior, que partiu sem ter a chance de ver este trabalho.

Agradeço àqueles que participaram ativamente na constituição desta dissertação, seja na banca de qualificação ou externamente, me auxiliando com correções e críticas: Carla Taviane Lucke da Silva Ghidini, Priscila Cristina Berbert Rampazzo, Luciana Casacio, Giovanni Vitale Mazzanati, José Leonardo Takahashi.

Agradeço também a todo corpo docente e de funcionários da Faculdade de Ciências Aplicadas da UNICAMP que diariamente se dedicam no aperfeiçoamento dos programas, tanto de mestrado e doutorado quanto de graduação. Muitos dos docentes de diferentes áreas de pesquisa, contribuíram imensamente para minha formação acadêmica e pessoal, fosse na sala de aula, no bar ou mesmo nos corredores da faculdade, encaixando em suas agendas apertadas respostas para minhas dúvidas por vezes chatas, complexas ou até ingênuas. Deixo aqui meu respeito e carinho a cada um deles: Eduardo Paiva Okabe, Cristiano Torezzan, João Eloir Strapasson, Anibal Tavares de Azevedo, Leonardo Tomazeli Duarte, Ausdinir Danilo Bortolozo, Giovana da Silva Padilha, Mariana Conceição da Costa, Marcelo Zoéga Maialle, Marcos Henrique Degani, Kelly Hofsetz, Jaime Hideo Izuka e Augusto Ducati Luchesi.

Agradeço por fim aos amigos, que sempre me aguentam reclamando de tudo: Giovanni Vitale Mazzanati, José Leonardo Takahashi, Lucas Constantino Delago, Iago Cambre Añon, Fábio Trigo Raya, Iara Donadão Preto, Gustavo Lasinskas, Mateus Modesto, Mateus Pereira Martin, Kim Robert Yau, Gustavo Rodrigues, Leonardo Sacramento

(6)

Agredeço à minha sócia e aos meus comparsas pelas novas empreitadas na vida: Calistênia Santana Mascarenhas, Michael Eduardo Fernando Hamilton Dos Santos Machado, Antônio Carlos Martos e Renato Milnitzky.

(7)

“Science advances one funeral at a time.” (Max Planck)

(8)

O problema de corte e empacotamento unidimensional tem sido estudado por diversos pesquisadores desde a década de 1960. Em diversas modificações propostas ao longo de anos de pesquisa, grande parte dos trabalhos modifica o modelo matemático do problema de corte e continua, em algum estágio, utilizando o método de Gilmore e Gomory de geração de colunas para obtenção de uma solução ótima do problema relaxado. Os autores citam em seus trabalhos que o desempenho do método pode ser melhorado no que tange o subproblema da mochila, por meio de propriedades algébricas da programação linear e do método simplex, principalmente relacionadas às condições de otimalidade. Baseado nas sugestões dos autores, foram propostas cinco variações no modelo do subproblema da mochila originalmente proposto por Gilmore e Gomory. As variações sugeridas foram testadas para diversas classes de exemplares do problema de corte presentes na literatura e foram comparadas com o método original. Em algumas das variações houve redução no número de colunas geradas e, portanto, no número de iterações do método, mas, como subproblema da mochila pode ser resolvido em tempo pseudo-polinomial, ocorreu que nestas variações o tempo computacional aumentou consideravelmente. Em uma das variações o tempo computacional foi reduzido significativamente, mas, em contrapartida, o número de colunas geradas foi extremamente alto. Assim, de maneira geral, as modificações propostas no subproblema da mochila do método de geração de colunas acarretam em benefícios, seja no número total de colunas geradas, seja no tempo computacional exigido.

(9)

Abstract

The one-dimensional cutting stock problem has been broadly researched since the 1960. Throughout years of research many modifications focused mainly on the mathematichal model itself, which often uses Gilmore and Gomory’s column generation algorithm to find an optimum solution to the relaxed cutting problem. These authors explain that the algorithm’s performance can be enhanced on the knapsack subproblem through a number of algebraic properties from linear programming and simplex method, mainly related with optimality conditions. Following their suggestions, we developed five variations of the knapsack subproblem formerly proposed by Gilmore and Gomory. The variations were tested for classes of one-dimensional cutting stock problems widely used in related papers and were compared with the original algorithm. Some variations effectively reduced columns generation, and so the number of iterations, but increased total running time once the knapsack subproblem can be solved in pseudo-polynomial time. One variation reduced total running time, but significantly increased the number of generated columns. Therefore we generalize that variations on the knapsack subproblem from the column generation algorithm can result in benefits either in computational time or in amount of generated columns.

(10)

Agradecimentos . . . . 5

Introdução . . . 11

1 PROBLEMA DE CORTE . . . 13

1.1 Classificação dos Problemas de Corte . . . 13

1.1.1 Problema de Corte Unidimensional . . . 15

1.2 Padrões de Corte . . . 15

1.2.1 Padrões de Corte Homogêneos . . . 16

1.2.2 Padrões de Corte Completos . . . 16

1.3 Um Modelo Matemático para o Problema de Corte Unidimensional 17 1.4 Problema da Mochila . . . 18

1.5 Álgebra da Programação Linear . . . 18

1.5.1 Como Gerar Pontos Extremos . . . 19

1.5.2 Problema Dual . . . 21

1.6 Método de Gilmore e Gomory . . . 23

1.6.1 Aplicação . . . 24

2 VARIAÇÕES NO SUBPROBLEMA DA MOCHILA . . . 27

2.1 Motivação . . . 27 2.2 Metodologia . . . 28 2.3 Variações . . . 30 2.3.1 Variação 1 . . . 31 2.3.2 Variação 2 . . . 38 2.3.3 Variação 3 . . . 41 2.3.4 Variação 4 . . . 43 2.3.5 Variação 5 . . . 44

2.4 Comparação das Variações . . . 46

3 CONCLUSÕES . . . 50

(11)

11

Introdução

Na área de programação linear uma das classes de problemas mais estudados são os de corte e empacotamento (PCE), aqui chamados apenas de problemas de corte (PC). Estes se referem a qualquer problema que consista em cortar ou empacotar objetos maiores em itens menores. Normalmente eles são classificados em 3 tipos diferentes, de acordo com a quantidade de dimensões relevantes no problema de corte(1, 2).

O problema de corte unidimensional (PC1D) foi primeiramente modelado na década de 1960 por Kantorovich(3), mas foi apenas com os trabalhos de Gilmore e Gomory(4, 5, 6) que o PC1D passou de fato a ser resolvido através da proposta dos autores de gerar colunas para a versão relaxada do problema baseado na decomposição Dantzig-Wolfe (7).

É importante destacar que Ford et al.(8) e Dantzig e Wolfe (7) propuseram essa técnica no contexto de outros problemas. No entanto, o método de decomposição ficou amplamente conhecido na comunidade científica pela abordagem proposta por Gilmore e Gomory, e ainda hoje é adotado em diversos estudos do problema de corte unidimensional.

Com sua grande utilização ao longo dos anos, muitas pesquisas foram desenvol-vidas procurando aperfeiçoar o modelo do PC, seja para aumentar sua proximidade com a realidade da indústria ou para melhorar o resultado final. Dentre diversos aperfeiçoa-mentos vale ressaltar a integração do processo de corte com outros processos produtivos (9, 10), a incorporação de características mais complexas nos modelo (11,12), e.g. sobras reutilizáveis, a utilização de heurísticas para aperfeiçoamento da solução final do problema (13,14,15,16), entre outros (17). Entretanto, muito pouco se explorou sobre o método de

geração de colunas em si. Os próprios autores do método sugerem em seu trabalho(5):

The whole purpose of the knapsack calculation is to find a column represen-ting a cutrepresen-ting pattern that will yield an improvement; in fact, by maximizing the knapsack calculation we find the column that will yield the most improvement per unit increase in the associated variable xj (call this amount sj). However, this criterion pays no attention at all to the question of how big xj will be when the pivot step is completed, and the improvement in the objective function depends on this as the improvement is the product xj sj. We have found that much too often in our calculations a large sj led only to a small improvement, while a much smaller sj, but associated with a large change in xj, led to a larger improvement. [Gilmore, P.C., Gomory R.E.; A linear programming approach

to the cutting stock problem - part II, Operations Research, 1963, vol. 11, No. 6. pp. 863-888].

(12)

O método proposto utiliza o problema da mochila como um subproblema para gerar padrões de corte para o problema mestre, isto é, o PC1D. O problema da mochila, consistindo de apenas uma restrição, tem a vantagem de poder ser resolvido em tempo computacional pseudo-polinomial1 apesar de ser um problema de programação inteira. Entretanto, baseado na sugestão dos autores do método, acredita-se que é possível obter melhorias no método de geração de colunas de Gilmore e Gomory, modificando o subproblema da mochila de forma que outros fatores sejam considerados, como propõem os autores. Tais modificações têm seus principais impactos nas características mais relevantes do algoritmo: o tempo computacional total e o número de colunas geradas.

Em vista disso, este trabalho propõe e analisa cinco variações para o subpro-blema da mochila. Essas são organizadas e apresentadas na mesma ordem em que foram desenvolvidas, de forma a manter a inteligibilidade do texto. Cada variação, bem como a formulação original, passou por testes de classes de exemplares diferentes para o problema a fim de serem comparadas e analisadas.

O trabalho se organiza da seguinte forma: No Capítulo 1 é apresentada a base conceitual necessária para o entendimento dos tópicos que compõem o estudo, sobretudo em relação aos problemas tratados e suas origens. Além disso, destaca-se brevemente a base algébrica necessária para entendimento dos algoritmos e desenvolvimentos propostos. Por fim traz o método de geração de colunas proposto por Gilmore e Gomory, mostrando sua teoria e algoritmo; no Capítulo 2 são apresentadas as propostas de variações, separadas por seção, com seus respectivos resultados e ao final os resultados consolidados são analisados; finalmente, o Capítulo 3 traz as conclusões acerca das variações propostas.

1Um algoritmo pseudo-polinomial é executado em tempo que pode ser representado por uma função

polinomial em relação ao valor numérico do input do problema, mas não necessariamente em relação ao comprimento do input, isto é, o número de bits necessários para representar o input

(13)

13

1 Problema de Corte

Neste capítulo são introduzidos os seguintes problemas e conceitos matemáticos relevantes para a compreensão do trabalho: problema de corte (PC), problema de corte unidimensional (PC1D), padrões de corte, padrões de corte homogêneos, problema da mochila, álgebra da programação linear, geração de pontos extremos e o método de Gilmore e Gomory de geração de colunas.

1.1

Classificação dos Problemas de Corte

O problema de corte pode ser representado por uma formulação matemática que retrate a ideia de cortar objetos-mestre em itens menores ou, equivalentemente, empacotar itens menores num objeto-mestre. A alocação destes itens menores pode ser interpretada como a aplicação de “padrões de corte”, isto é, uma configuração específica de itens dentro do objeto-mestre.

Então, tendo n padrões de corte distintos e m tipos de itens diferentes, a utilização de um padrão j custa cj “ 1 e produz uma quantidade ai,j de itens do tipo i.

Assim, para se atender uma demanda de corte bi para cada item i com o menor custo

possível, formula-se o PC da seguinte forma:

pP Cq $ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ % Min z “ n ÿ j“1 xj sujeito a n ÿ j“1 aijxj ě bi, i “ t1, . . . , mu, xj ě 0 P Z, j “ t1, . . . , nu. (1.1)

É possível desenvolver mais o modelo matemático em relação a aspectos especí-ficos de problemas de corte como processo produtivo, número de dimensões relevantes, reaproveitamento de sobras, integração com outras etapas de processamento, etc. Entre-tanto a principal classificação dos problemas de corte é quanto a sua dimensão, isto é, o número de dimensões relevantes (2).

Os problemas unidimensionais, como mostrado na Figura 1, são utilizados para representar cortes de canos, tubos, rolos e afins em itens menores, de forma que apenas uma dimensão é considerada relevante para o problema.

Problemas bidimensionais, como mostrado na Figura 2, são comuns em indús-trias de manufatura, objetivando minimizar a perda de material durante o corte de chapas

(14)

Figura 1 – Exemplo de problema de corte unidimensional, Fonte: autoria própria.

Figura 2 – Exemplo de problema de corte bidimensional, Fonte: autoria própria

de aço ou placas de madeira para confecção de móveis e estruturas.

É possível compreender o problema bidimensional como um problema de encaixe, por exemplo, se é almejada a alocação do maior número possível de itens de mesma altura em cada camada de um pallet.

Figura 3 – Exemplo de problema de corte tridimensional, Fonte: autoria própria.

(15)

com-Capítulo 1. Problema de Corte 15

plexo encaixe de itens num recipiente que os comporte. Indústrias de colchões, carregadoras de containers em navios e transportadoras logísticas recorrentemente enfrentam este pro-blema. Assim, estes modelos podem envolver não apenas as restrições de encaixe, mas também restrições de peso ou movimentação. Da mesma forma que no caso bidimensional, a possibilidade de rotação dos itens em três eixos pode dificultar mais ainda a resolução desses problemas em relação aos bidimensionais.

1.1.1

Problema de Corte Unidimensional

O foco deste trabalho está nos problemas de corte unidimensionais (PC1D), que são caracterizados pela existência de apenas uma dimensão variável relevante no processo de corte. Para entender melhor este problema, considere o seguinte exemplo que será usado ao longo deste capítulo: uma indústria possui objetos-mestre de comprimento L “ 100 cm em quantidade ilimitada que devem ser cortados em itens menores de comprimentos

l1 “ 30 cm, l2 “ 40 cm e l3 “ 50 cm, de forma a atender a demanda di de 20 unidades de

cada tipo de item i. A Figura 4 ilustra o exemplo delineado. Para resolver este problema, primeiro deve ser definido como os objetos-mestre podem ser cortados, isto é, quais são os possíveis padrões de corte do problema.

Figura 4 – Exemplo numérico de um problema unidimensional, Fonte: autoria própria.

1.2

Padrões de Corte

O termo “padrão de corte” representa uma configuração específica de itens dentro do objeto-mestre, de forma que a soma dos comprimentos dos itens e da sobra (se houver) presentes na configuração deve totalizar o comprimento do objeto-mestre. Veja no exemplo da Figura 5, ao cortar um objeto de tamanho 100 cm para gerar itens de tamanho 30 cm, 40 cm e 50 cm, é possível tanto gerar um item de tamanho 50 cm e um de 40 cm (com sobra de 10 cm), quanto dois itens de tamanho 30 cm e um de 40 cm (sem sobras). Assim esses são dois dos possíveis padrões de cortes existentes.

Neste exemplo, o primeiro padrão possui uma “sobra” de 10 cm. As sobras geradas nos padrões não são consideradas no método de Gilmore e Gomory, portanto

(16)

não são representadas no modelo matemático. Assim, neste trabalho as “sobras” são consideradas como perdas de material. Vale apontar que alguns pesquisadores abordaram essa questão em seus trabalhos, sobretudo no que se refere a sobras aproveitáveis, ou seja, que podem ser posteriormente cortadas para gerar mais itens(11, 12).

Figura 5 – Exemplo de padrões de corte, Fonte: autoria própria

Os padrões de corte são representados matematicamente no modelo do PC1D para Gilmore e Gomory como vetores colunas, em que cada componente indica a quantidade de um certo item que é produzido por este padrão. Para outras formulações do problema de corte, a representação de padrões de corte pode ser diferente (17). No exemplo da Figura 5, se os itens 1, 2 e 3 possuem 30 cm, 40 cm e 5 0cm, respectivamente, seus padrões são representados como:

a1 “ ¨ ˚ ˝ 0 1 1 ˛ ‹ ‚, a2 “ ¨ ˚ ˝ 2 1 0 ˛ ‹ ‚. (1.2)

1.2.1

Padrões de Corte Homogêneos

Os padrões que contém apenas um tipo de item são chamados de “padrões homogêneos”. Estes, normalmente, são adotados como base inicial no problema de corte ao se utilizar o método de Gilmore e Gomory, como será explicado mais a frente. Além disso, sua determinação é feita dividindo-se o comprimento total do objeto-mestre pelo comprimento do item e arredondando para baixo. AFigura 6ilustra os padrões homogêneos do exemplo citado anteriormente.

1.2.2

Padrões de Corte Completos

No modelo matemático que representa o problema de corte unidimensional, são utilizados apenas padrões de corte completos, isto é, padrões cujas sobras não ultrapassem o tamanho do menor item. AFigura 7ilustra padrões considerados completos e incompletos. Em alguns trabalhos, por exemplo os que consideram reaproveitamento de sobras, pode

(17)

Capítulo 1. Problema de Corte 17

Figura 6 – Exemplo de padrões de corte homogêneos, Fonte: autoria própria.

ser interessante o uso de padrões incompletos para serem futuramente consumidos com maior aproveitamento.

Figura 7 – Exemplo de padrões de corte completos e incompletos, Fonte: autoria própria.

1.3

Um Modelo Matemático para o Problema de Corte

Unidimen-sional

A formulação matemática deste problema pode ser compreendida através da seguinte elucidação genérica do problema: tem-se um número ilimitado de objetos-mestre de tamanho L, que devem ser utilizados para a produção de I itens menores de tamanhos

li pi P Iq. Cada item pi P Iq possui uma demanda bi. Os cortes podem ser realizados com o

uso de J padrões de corte aj pj P J q e cada padrão de corte produz um total de aij itens

do tipo i P I. Utilizando-se xj vezes cada padrão aj, j P J, o atendimento da demanda

deve ser feito de forma a minimizar o número total de objetos cortados z “ÿ

jPJ

(18)

o problema enunciado é escrito matematicamente da seguinte forma (3, 5): pPoq $ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ % Min z “ n ÿ j“1 xj sujeito a n ÿ j“1 aijxj ě bi, i “ t1, . . . , mu, xj ě 0 P Z, j “ t1, . . . , nu. (1.3)

1.4

Problema da Mochila

Este problema pode ser representado por um modelo matemático que busca a alocação de itens sujeita a uma restrição de capacidade. Ele pode ser visto como uma maneira de criar um padrão de corte cuja soma dos comprimentos dos itens que o compõe não ultrapassem o comprimento do objeto-mestre. Assim, seu modelo matemático consiste em: Max zMm ÿ i“1 ciyi sujeito a m ÿ i“1 liyi ď L yi ě 0 P Z, i “ t1, . . . , mu. (1.4)

Onde cipi P Iq é o valor de utilidade associado a cada item i, y é a variável que representa

a quantidade do item i a ser alocada, li representa o tamanho do item i, L é a capacidade

da mochila. Assim, o problema busca alocar os itens mais valiosos de forma a respeitar a capacidade de alocação. Uma característica importante deste problema é que apesar de ele ser inteiro e NP-completo, é possível resolvê-lo em tempo pseudo-polinomial1, o que viabiliza sua utilização no algoritmo de geração de colunas proposto por Gilmore e Gomory(4, 5).

1.5

Álgebra da Programação Linear

O conteúdo desta Seção é fundamentado nas notas de aula do professor Antonio Carlos Moretti(18). Considere o seguinte problema de programação linear

1Um algoritmo pseudo-polinomial é executado em tempo que pode ser representado por uma função

polinomial em relação ao valor numérico do input do problema, mas não necessariamente em relação ao comprimento do input, isto é, o número de bits necessários para representar o input.

(19)

Capítulo 1. Problema de Corte 19 pP q $ ’ ’ ’ ’ & ’ ’ ’ ’ % Min z “ ctx sujeito a Ax “ b x ě 0, (1.5)

onde c, x P Rn, representam respectivamente os custos e as variáveis do modelo, b P Rm representa o vetor com os valores do lado direito das restrições de igualdade e A P Rmˆn representa os parâmetros que multiplicam as variáveis nas restrições.

Uma solução factível do problema pP q, é qualquer solução x ě 0 que resolva o sistema linear proposto. Se pP q tiver uma solução ótima então existe um ponto extremo que a representa. Um ponto extremo no Rn é caracterizado pela intersecção de n hiperplanos. O problema pP q tem m hiperplanos associados às restrições tecnológicas Ax “ b e no máximo n hiperplanos associados às restrições x ě 0. Logo, dado o Problema pP q com

A P Rmˆn pode-se ter no máximo ˜

m n

¸

pontos extremos. Nestas combinações algumas poderão gerar pontos extremos infactíveis e outras sequer geram pontos extremos. Uma solução básica de pP q é qualquer solução factível que também seja um ponto extremo.

1.5.1

Como Gerar Pontos Extremos

O conteúdo desta Subseção é fundamentado nas notas de aula do professor Antonio Carlos Moretti (18). Considerando o problema pP q, para gerar um ponto extremo, tomam-se os m hiperplanos de Ax “ b e pn ´ mq hiperplanos associados às inequações

x ě 0. Para ver isto mais claramente, pode-se particionar a matriz A em duas submatrizes

que serão chamadas de B e N , ou seja,

A “ rB|N s, onde A P Rmˆn

B P Rmˆm N P Rmˆpn´mq.

(1.6)

As colunas referentes à submatriz N são as colunas relacionadas aos pn ´ mq hiperplanos associados às inequações x ě 0, ou seja, xj “ 0 para todo j P N .

Ao fazer a partição na matriz A, deve-se associar esta mesma partição aos vetores c e x, isto é,

c “ rcB|cNs, x “ rxB|xNs.

(20)

Assim sendo, o problema pP q pode ser reescrito como: Min z “ ctBxtB` ctNxN sujeito a BxB` N xN “ b xB ě 0 xN ě 0. (1.8)

Isolando xB nas restrições tem-se

xB “ B´1b ´ B´1N xN (1.9)

e substituindo xB na função-objetivo, tem-se:

Min z “ ctBpB ´1 b ´ B´1N xNq ` ctNxN sujeito a IxB “ B´1b ´ B´1N xN xB ě 0 xN ě 0 (1.10) ou ainda, Min z “ ctBB´1b ´ pctBB´1N ´ ctNqxN sujeito a IxB “ B´1b ´ B´1N xN xB ě 0 xN ě 0 (1.11) ou ainda, Min z “ z ´ ÿ jPIpN q pzj´ cjqxj sujeito a xB “ b ´ ÿ jPIpN q yjxj xj ě 0 para j P IpBq xj ě 0 para j P IpN q. (1.12) Onde:

(21)

Capítulo 1. Problema de Corte 21

• z “ ct BB

´1b é o valor da função-objetivo na base B,

• b “ B´1b é o valor de x

B na base B,

• zj ´ cj “ ctBB´1a j

´ cj chamado de custo reduzido da variável xj,

• yj “ B´1aj são as colunas originais aj atualizadas de acordo com a base B,

• IpBq é o conjunto de índices das variáveis básicas (isto é , os índices daquelas colunas que definem B),

• IpN q é o conjunto de índices das variáveis não-básicas. E note que:

• Se j P IpBq então zj´ cj “ 0;

• Se para todo j P IpN q temos zj´ cj ď 0 então estamos em uma solução ótima de um

problema de programação linear de minimização, uma vez que não existe variável não básica xj tal que, se for adicionada a base com valor não-negativo consiga diminuir

mais ainda o valor da função-objetivo.

• Uma solução é básica e, portanto, um ponto extremo, ao se tomar xB “ B´1b e xN “ 0.

1.5.2

Problema Dual

O conteúdo desta Seção é fundamentado nas notas de aula do professor Richard Anstee (19). Um problema de programação linear possui uma modelagem relacionada que representa um problema diferente, chamado de problema “dual” (em contraposição ao problema original que denomina-se “primal”). A teoria da dualidade determina as relações entre os elementos do problema e os elementos da análise de sensibilidade (custo reduzido e preço sombra) através do teorema das folgas complementares.

Assim, sejam os problemas primal e dual como segue:

Primal $ ’ ’ ’ ’ & ’ ’ ’ ’ % Min z “ ctx sujeito a Ax ě b x ě 0 Max z “ btw sujeito a Atw ď c w ě 0 , / / / / . / / / / -Dual (1.13)

e x0 e w0 soluções factíveis do primal e do dual, respectivamente. Sabe-se que:

(22)

Atw0 ď c. (1.15)

Multiplicando-se (1.14) por w0 e (1.15) por x0, tem-se:

w0tAx0 ě w0b,

xt0Atw0 ď xt0c

(1.16)

e, portanto:

btw0 ď w0Ax0 ď ctx0. (1.17)

Então, dados x0 e w0 duas soluções factíveis do primal e do dual,

respectiva-mente, sempre:

btw0 ď ctx0. (1.18)

Assim, seja x˚ uma solução ótima do primal, então para qualquer solução dual

factível w0 tem-se que: btw0 ď ctx˚. Portanto, tratando-se o dual de uma maximização, é

impossível sua função-objetivo obter um valor maior que ctx˚.

Mais profundamente, sabendo que A é uma matriz m ˆ n e utilizando as variáveis de folga, tem-se que:

xB “ B´1b ´ B´1N xN z “ ctBB´1b ´ pct BB ´1N ´ ct NqxN (1.19)

Dada uma solução ótima x˚

“ rx˚B, x

˚

Ns onde B é a base ótima associada,

tem-se que xB “ B´1b e xN “ 0 definem o ponto extremo ótimo encontrado pelo método

simplex. Assim, o valor ótimo da função-objetivo é ctBB´1b “ ctx˚ e os custos reduzidos

das variáveis não básicas são todos ď 0. Então:

ctBB´1N ´ ct

N ď 0. (1.20)

Uma vez que ctBB´1B ´ ctB “ 0, é possível afirmar que: ctBB´1B ´ ct

B ď 0, (1.21)

o que permite generalizar a afirmação anterior para qualquer variável xj: ctBB´1A

(23)

Capítulo 1. Problema de Corte 23

onde Aj representa uma coluna de rA, ´Is referente à variável xj. Separando as variáveis

de folga das originais, têm-se:

ctBB´1A ´ ct ď 0, ´ctBB ´1 I ´ 0tď 0. (1.23)

Como mostrado anteriormente, duas soluções factíveis devem respeitar a Ine-quação 1.18. Como x˚ é uma solução ótima do problema primal, tomando w

0 “ ctBB´1, obtêm-se: ctBB´1A ´ ct ď 0 “ą ctě w0tA “ą Atw0 ď c ´ctBB´1I ´ 0tď 0 “ą 0t ď wt0 “ą w0 ě 0. (1.24)

Ou seja, w0 é uma solução factível do problema dual. Além disso:

btw0 “ w0tb “ cBt B´1b “ ctx˚. (1.25)

Como btw0 “ ctx˚ e, como mostrado anteriormente, não é possível que o

valor da função-objetivo seja maior que ctx˚, então w

0 é solução ótima do problema dual

(w0 “ w˚).

Dito isto, os custos reduzidos do problema primal podem ser reescritos como

zj´ cj “ ctBB

´1aj

´ cj “ wtaj ´ cj, onde o vetor coluna w P Rmˆ1 contém as variáveis

duais associadas às variáveis primais xj.

1.6

Método de Gilmore e Gomory

O problema pPoq definido em1.3possui uma dificuldade quanto a sua resolução:

devido à característica combinatorial do problema, pode haver uma grande quantidade de padrões possíveis numa determinada instância do problema, fazendo com que a resolução do modelo de programação inteira seja extremamente demorada e, por vezes, computaci-onalmente intratável. Algum tempo depois de sua formulação ser publicada, Gilmore e Gomory desenvolveram o chamado “método de geração de colunas” (4,5) que possibilitou a resolução do problema. É este método que o presente trabalho se propõe a modificar.

O método de Gilmore e Gomory, inicialmente proposto para o PC1D, se baseia na decomposição Dantzig-Wolfe (7) para encontrar as soluções de problemas de programação linear inteira relaxados. Aplicado ao PC1D, as colunas, que representam padrões de corte, são geradas a cada iteração. O método ainda é amplamente utilizado, sobretudo por geralmente se manter bastante funcional, mesmo quando o problema de corte unidimensional é modificado, por exemplo, para contemplar reutilização de sobras, objetos-mestre de tamanhos diferentes, etc.

(24)

1.6.1

Aplicação

Para aplicar o método de Gilmore e Gomory (G&G), trabalha-se com o pro-blema pPoq relaxado, isto é, as restrições de integralidade sobre as variáveis xj são retiradas,

daí temos o problema-mestre:

pPRq $ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ % Minimizar z “ n ÿ j“1 xj sujeito a n ÿ j“1 aijxj ě bi, i “ t1, . . . , mu, xj ě 0, P R, j “ t1, . . . , nu. (1.26)

O processo de solução do problema-mestre começa com a criação de padrões de corte iniciais aj. Havendo a necessidade de que o PRencontre uma solução factível,

calculam-se todos os m padrões homogêneos possíveis (que podem não calculam-ser padrões completos). Assim, a matriz A nesta etapa tem tamanho m ˆ m.

A seguir resolve-se o problema-mestre pPRq usando apenas os padrões

homogê-neos gerados. A solução encontrada é ótima para os padrões utilizados, o que levanta a questão: “Será que existe um padrão diferente dos usados no problema-mestre (ou seja, uma nova coluna) que, se fosse considerado, melhoraria o valor da função-objetivo de pPRq?”

Como mostrado no anteriormente, no ótimo do problema relaxado tem-se que

zj ´ cj “ ctBB ´1aj ´ cj ď 0, j “ 1, 2, . . . , n ou ainda “ wtaj´ cj ď 0, (1.27) onde o vetor w “ ctBB´1

, w P Rmˆ1, contém as variáveis duais associadas com a solução ótima primal.

Portanto, encontrando uma nova coluna a P Rmˆ1 tal que seu custo reduzido seja maior do que zero (wtaj´ cj ą 0), esta será uma coluna (padrão de corte) “lucrativa”

caso ela seja adicionada ao problema-mestre pPRq.

Esta coluna ainda não existe no problema-mestre, porém é possível calculá-la com as variáveis duais do problema. Note nos problemas pPRq e pPOq, que todos os custos na

função-objetivo são iguais a 1, ou seja, cj “ 1 para todas as variáveis do problema-mestre,

(25)

Capítulo 1. Problema de Corte 25

Gilmore e Gomory propuseram o seguinte subproblema para gerar uma coluna nova:

pPMq $ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ % Max zMwta ´ 1 “ m ÿ i“1 wiai´ 1 sujeito a m ÿ i“1 liai ď L, ai ě 0 P Z, @i “ t1, ..., mu. (1.28)

Observe que a função-objetivo deste subproblema nada mais é que o custo reduzido de uma coluna a P Zmˆ1, e os coeficientes de ai nada mais são que as variáveis

duais wi, provenientes do ótimo do problema mostrado em 1.26. Se a solução (z˚M) do

subproblema (PM) for maior do que zero então este novo padrão de corte determinado

pelo pPMq será lucrativo para o problema-mestrepPRq.

Caso z˚

M ă 0 então não existe uma coluna a P Z mˆ1

que melhore o valor da função-objetivo de pPRq, ou seja, dado w P Rmˆ1 (que são as variáveis duais no ótimo do

problema-mestre pPRq) não existe no espaço Rm nenhuma coluna que seja lucrativa para o

problema pPRq e, neste caso, o método de Gilmore e Gomory termina.

Caso o subproblema pPMq encontre um padrão de corte lucrativo para pPRq,

este padrão é adicionado ao pPRq e o processo continua até que não hajam mais padrões

lucrativos para o problema-mestre pPRq. Quando isto acontece o método de G&G termina.

A seguir apresentam-se os passos do método de G&G de forma mais concisa nos procedimentos do algoritmo.

Duas observações importantes:

1. O problema de corte é um problema de programação linear inteira (PLI) e o método de G&G gera as colunas para problema relaxado. Logo, a solução final representa uma aproximação contínua para o problema inteiro. Isto é, usando as colunas geradas ao final do processo de G&G, não há garantia de que a solução obtida será um ótimo do problema, apesar do método gerar boas colunas para ele.

2. O método de G&G nada mais é do que um método simplex revisado “virtual”, pois não se tem as colunas na memória, mas trabalha-se implicitamente com todas as colunas existentes no espaço Zm.

No próximo Capítulo serão apresentadas as propostas para variações no pro-blema da mochila pPMq do Passo 3 do algoritmo, que é utilizado para gerar os padrões de

(26)

Algoritmo 1 – Método de Gilmore e Gomory (Simplex com geração de colunas). Dados: li e bi, i “ t1, . . . , mu, L Resultado: A início A ÐÝ 0mˆm; aij ÐÝ t L li u, @i “ t1, . . . , mu; pz˚, x˚, w˚q ÐÝ Resolver PRpA, bq; pz˚M, a ˚ j`1q ÐÝ Resolver PMpw˚, l, Lq; enquanto z˚ M ą 1 ` ε faça A ÐÝ“A a˚j`1‰; pz˚, x˚, w˚q ÐÝ Resolver PRpA, bq; pz˚M, a˚ j`1q ÐÝ Resolver PMpw˚, l, Lq; fim fim

(27)

27

2 Variações no Subproblema da Mochila

Neste capítulo serão apresentadas as variações propostas para o subproblema da mochila. Inicialmente, apresenta-se a ideia que fundamentou a busca pelas variações, seguida pela metodologia utilizada para os testes e análises dos resultados. Para manter a linha de raciocínio, cada variação é introduzida com uma explicação de sua origem e, depois de seu desenvolvimento, são mostrados os resultados obtidos em comparação ao método de Gilmore e Gomory e uma breve análise dos mesmos.

Esta maneira de apresentação se mostrou mais inteligível, sobretudo devido aos extensos desenvolvimentos matemáticos e ao grande número de comparações realizadas. Desta forma, no final deste Capítulo encontram-se os resultados consolidados comparando as variações entre si em questão de desempenho.

2.1

Motivação

No método de Gilmore e Gomory são gerados padrões de corte iterativamente resolvendo-se um problema de maximização, que garante que todos os possíveis padrões úteis para o problema relaxado foram gerados. Entretanto, há dois pontos importantes que não podem ser deixados de lado.

Primeiramente, o valor de incremento na função-objetivo da nova coluna gerada não é constituída apenas pelo valor do custo reduzido, mas sim pela sua multiplicação pelo teste da razão do algoritmo simplex(5). Isto significa que, em teoria, é possível gerar os padrões mais eficientes em menos iterações que o método de Gilmore e Gomory. Em segundo lugar, como os padrões gerados pelo método garantem um ótimo do problema relaxado, é possível que o conjunto de padrões gerados não corresponda a uma solução ótima do problema inteiro.

Esses dois pontos justificam as propostas desenvolvidas neste trabalho. A fim de encontrar uma maneira “eficaz” de gerar os padrões de corte, diversas propostas de reestruturação do subproblema da mochila no método de Gilmore e Gomory foram modeladas. É importante notar que os pontos ressaltados anteriormente são opostos, isto é, gerar colunas de maneira mais eficiente significa gerar menos padrões de corte, mas um conjunto menor de padrões de corte tem menor probabilidade de conter uma base ótima do problema inteiro.

(28)

2.2

Metodologia

As variações no subproblema do método de Gilmore e Gomory, que é um problema da mochila, serão apresentadas na mesma ordem em que foram desenvolvidas a fim de que seja mais fácil entendê-las.

Os experimentos computacionais para avaliar e comparar a robustez das varia-ções propostas utilizam as 18 classes de instâncias, com 100 amostras cada, de Foerster e Wäscher(20), as quais foram também utilizados por Yanasse e Limeira(14), Moretti e Salles Neto(21), Valério de Carvalho (17), entre outros. O gerador de instâncias desenvol-vido por Gau e Wäscher (22) disponível em<https://paginas.fe.up.pt/~esicup/problem_ generators?category_id=1> foi utilizado. Os parâmetros do gerador são:

• m: tamanho do problema; • L: tamanho do objeto cortado;

• ν1: limitante inferior do comprimento dos itens, isto é, li ě Lν1

• ν2: limitante superior do comprimento dos itens, isto é, li ď Lν2;

• b: demanda média dos itens.

Os valores dos parâmetros utilizados para gerar as classes são os mesmos utilizados por (21) e são apresentados na Tabela 1, a semente utilizada foi “1994” e

L “ 1000. Em resumo, as classes de 1 a 6 possuem itens pequenos em relação ao

objeto-mestre, as classes de 7 a 12 possuem itens de tamanhos mais heterogêneos e as classes 13 a 18 possuem itens grandes em relação ao objeto-mestre.

Todas as variações propostas foram testadas nas mesmas 18 classes com 100 amostras de problemas por classe, iguais para todas as variações e para o problema da mochila de Gilmore e Gomory. A implementação foi feita em MATLAB com utilização da biblioteca do IBM ILOG CPLEX como resolvedor, sendo executadas numa máquina de processador AMD FX6300 (3.50 GHz), com 16 GB de memória RAM.

Para a análise de cada variação foram observadas as médias das 100 amostras de cada classe do: valor da função-objetivo, do número de iterações para completar a busca por novas colunas e do tempo até completar a busca por novas colunas. Como alguns métodos podem não convergir, ou pelo menos não no que seria considerado um tempo razoável, foi utilizado um critério de parada forçada caso o número de iterações ficasse demasiadamente grande (maior que 10m). O efeito de tal critério tem impacto majoritário no valor encontrado da função-objetivo, uma vez que uma solução ótima do problema de corte relaxado não pôde ser obtida, por isso este valor foi utilizado como uma das métricas de comparação.

(29)

Capítulo 2. Variações no Subproblema da Mochila 29

Tabela 1 – Parâmetros utilizados no gerador de Gau e Wäscher (22).

ν1 ν2 m b Classe 01 10,94 17,96 0,50 Classe 02 109,51 17,94 0,48 Classe 03 21,73 29,54 0,93 Classe 04 217,23 29,70 0,92 Classe 05 42,42 51,12 1,92 Classe 06 423,72 50,54 1,89 Classe 07 49,23 8,68 0,15 Classe 08 492,55 8,78 0,15 Classe 09 93,95 17,78 0,38 Classe 10 944,26 20,84 0,49 Classe 11 176,50 53,06 1,77 Classe 12 1763,24 51,88 1,74 Classe 13 62,49 7,22 0,10 Classe 14 625,23 7,24 0,10 Classe 15 120,55 19,30 0,31 Classe 16 1205,18 19,36 0,30 Classe 17 224,44 56,38 1,09 Classe 18 2241,45 56,14 1,11

As outras duas métricas, tempo computacional e número de iterações, foram utilizadas por se observar que, apesar de alguns algoritmos se destacarem em relação ao número de colunas geradas, eles perdiam em relação ao tempo computacional (o contrário também foi observado). Assim julgou-se mais completa a utilização destes três critérios de análise dos resultados de cada método. Note que em todas as variações do método de Gilmore e Gomory propostas, a cada iteração se gera apenas uma coluna, portanto, o número de iterações e número de colunas geradas são equivalentes neste trabalho.

Os resultados de cada variação são apresentados em tabelas contendo também os resultados obtidos pelo subproblema da mochila PM, que serve como benchmark para as

variações desenvolvidas. Os resultados do subproblema PM que serão comparados com as

variações são mostrados naTabela 2como a média das 100 amostras de exemplares de cada classe, onde a primeira coluna se refere aos valores encontrados para a função-objetivo do problema mestre, a segunda coluna traz o número de iterações realizadas (numericamente igual ao número de colunas geradas) e a terceira coluna contém o tempo computacional despendido.

Assim, será possível fazer análises comparativas entre as eficiências de cada variação proposta, uma vez que o valor da função-objetivo do problema mestre indica a eficácia de cada variação, o número de iterações se relaciona diretamente com a qualidade das colunas geradas e o tempo computacional está relacionado com a complexidade de resolução de cada variação proposta.

(30)

Tabela 2 – Resultados do método de Gilmore e Gomory. Função-Objetivo GG #Iter GG Tempo GG (s)

Classe 01 10.94 17.96 0.50 Classe 02 109.51 17.94 0.48 Classe 03 21.73 29.54 0.93 Classe 04 217.23 29.70 0.92 Classe 05 42.42 51.12 1.92 Classe 06 423.72 50.54 1.89 Classe 07 49.23 8.68 0.15 Classe 08 492.55 8.78 0.15 Classe 09 93.95 17.78 0.38 Classe 10 944.26 20.84 0.49 Classe 11 176.50 53.06 1.77 Classe 12 1763.24 51.88 1.74 Classe 13 62.49 7.22 0.10 Classe 14 625.23 7.24 0.10 Classe 15 120.55 19.30 0.31 Classe 16 1205.18 19.36 0.30 Classe 17 224.44 56.38 1.09 Classe 18 2241.45 56.14 1.11

2.3

Variações

Antes de começar a definir a ideia do novo subproblema é importante observar quais são os fatores relevantes na melhoria do valor da função-objetivo. Considere o seguinte problema de programação linear genérico já na forma padrão

Min z “ ctx sujeito a Ax “ b x ě 0, (2.1) onde c, x P Rn, b P Rm e A P Rmˆn.

Para particionar a matriz A em submatrizes básica (IpBq: índices das variáveis básicas) e não-básica (IpN q: índices das variáveis não básicas) é preciso particionar os vetores c e x, de onde se obtém o seguinte problema equivalente

(31)

Capítulo 2. Variações no Subproblema da Mochila 31 Min z “ ctBB´1b ´ ÿ jPIpN q pctBB´1a j ´ cjqxj “ z ´ ÿ jPIpN q pzj ´ cjqxj sujeito a IxBB´1b ´ B´1N xN “ b ´ ÿ jPIpN q yjxj xB, xN ě 0. (2.2) Onde b “ B´1

b e y “ B´1N . Seja pzk´ ckq>0 com k P IpN q, logo xk é uma

candidata a entrar na base. Portanto,

Min z “ z ´ pzk´ ckqxk´ ÿ pjPIpN qqj‰k pzj ´ cjqxj sujeito a xB “ b ´ ykxk´ ÿ pjPIpN qqj‰k yjxj xj ě 0. (2.3)

A variável não-básica xk entra na base com o valor

k “ min i t

bi yik

: yik ą 0u.

E a variação que xk provoca no valor da função-objetivo é pzk´ ckq∆k.

Portanto, se o custo reduzido de uma variável não-básica for maior do que zero, a melhora que esta variável provoca no valor da função-objetivo depende também do valor com o qual ela entra na base. E isto não é levado em conta no Método de G&G. Assim, primeira variação proposta visa considerar não apenas o custo reduzido, mas também o valor com que a variável xk entra na base.

2.3.1

Variação 1

Modificando o problema da mochila pPMq para que ele considere não apenas

o custo reduzido da nova coluna, como também por quanto este custo reduzido seria multiplicado se a nova variável entrasse na base. Assim, têm-se o seguinte problema

(32)

pPM.1q $ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ % Max zM “ ˜m ÿ i“1 wiai´ 1 ¸ ˆ min p“1,2,...,m " bp ap : ap ą 0 *˙ sujeito a m ÿ i“1 liai ď L, ai ě 0 P Z, i “ t1, . . . , mu, (2.4) onde bp “ Bp´1b, ap “ Bp´1a e B ´1 p é a p´ésima linha de B ´1.

Note que ap é a p´ésima componente da nova coluna a atualizada de acordo

com a base ótima atual (B), obtida a partir do problema pPRq. A função-objetivo de

pPM.1q maximiza o produto do custo reduzido da nova coluna com o valor que esta nova

variável (coluna) entraria na base, caso este custo reduzido fosse lucrativo. Dessa forma, esta variação é a melhora real que seria provocada no valor da função-objetivo de pPRq.

Um dos problemas de se usar esta função-objetivo de pPM.1q é que a informação

de

m

ÿ

i“1

wiai é perdida, pois o valor da função-objetivo está multiplicado pelo valor do Teste

da Razão. E esta nova coluna só deve ser adicionada ao problema pPRq se m ÿ i“1 wiai´ 1 ą 0 ou ainda, m ÿ i“1

wiai ą 1. Outro problema de pPM.1q é que este modelo é não-linear, assim,

em busca de resolvê-lo mais facilmente, ele será linearizado para poder ser resolvido pelo mesmo software que as demais variações.

Trabalhando com o produto (

m ÿ i“1 pwiai´ 1qqp min p“1,2,...,mt bp

ap : ap ą 0u, a coluna que

maximiza a função-objetivo pode não satisfazer o critério

m

ÿ

i“1

wiai ą 1. Para sanar isto

adiciona-se ao problema pPM.1q a restrição m

ÿ

i“1

wiai ą 1. Assim sendo, tem-se o seguinte

problema pPM.1aq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zM “ ˜m ÿ i“1 wiai ¸ ˆ min p“1,2,...,m " bp ap : ap ą 0 *˙ sujeito a m ÿ i“1 liai ď L m ÿ i“1 wiai ě 1 ` ε ai ě 0 P Z, i “ t1, . . . , mu, (2.5)

(33)

Capítulo 2. Variações no Subproblema da Mochila 33

Definindo t “ min

p“1,2,...,mt bp ap

: ap ą 0u é possível reescrever o problema pPM.1aq

como pPM.1bq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zM “ p m ÿ i“1 wiaiqptq sujeito a m ÿ i“1 liai ď L m ÿ i“1 wiai ě 1 ` ε t ď bp ap tal que ap ą 0, p “ 1, 2, . . . , m ai ě 0 P Z, i “ t1, . . . , mu. (2.6) As restrições t ď bp ap

para p “ 1, 2, . . . , m tal que ap ą 0 podem ser vistas para

cada p como “Se ap ą 0 então t ď bp

ap” que é equivalente a “OU ap ď 0 OU t ď bp ap”. As

restrições do tipo “OU/OU” podem ser modeladas como

ap ď M δp ap ě ´M p1 ´ δpq `  t ď bp ap ` M p1 ´ δpq , / / / . / / / -para todo p “ 1, 2, . . . , m, (2.7)

onde M é um número suficientemente grande e δp

#

1, se ap ą 0

0, caso contrário.

Logo, se ap ą 0 então δp “ 1. Caso contrário, δp será maior ou igual a um

(34)

pPM.1cq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zM “ p m ÿ i“1 wiaiq ˚ t sujeito a m ÿ i“1 liai ď L m ÿ i“1 wiai ě 1 ` ε ap ď M δp, p “ t1, . . . , mu ap ě ´M p1 ´ δpq ` , p “ t1, . . . , mu t ď bp ap ` M p1 ´ δpq, p “ t1, . . . , mu ai ě 0 P Z, i “ t1, . . . , mu δp P t0, 1u, p “ t1, . . . , mu t ě 0. (2.8)

Agora, fazendo yi “ ai ˚ t e sabendo que ap “ B´1p a “ m

ÿ

j“1 B´1

pj aj pode-se

reescrever o problema pPM.1cq como

pPM.1dq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zMm ÿ i“1 wiyi sujeito a m ÿ i“1 liyi ď Lt m ÿ i“1 wiyi ě t ` εt m ÿ j“1 B´1 pj yj ď M δpt, p “ t1, . . . , mu m ÿ j“1 B´1 pj yj ě ´M p1 ´ δpqt ` , p “ t1, . . . , mu m ÿ j“1 B´1 pj yj ď bp` M p1 ´ δpq, p “ t1, . . . , mu yi ě 0 P Z, i “ t1, . . . , mu δp P t0, 1u, p “ t1, . . . , mu t ě 0. (2.9)

O modelo pPM.1dq tem um problema, pois como yi “ ai˚ t tem-se que aiyi

t

e, portanto, não é possível garantir que ai seja inteiro. Para contornar esta dificuldade

(35)

Capítulo 2. Variações no Subproblema da Mochila 35 yi “ 1t ` 2t ` 3t ` . . . ` t L li ut. O termo tL li

u provém do fato de ser o maior valor que ai pode assumir num

objeto-mestre de tamanho L. Multiplicando cada termo por uma variável binária que vai indicar quais termos darão origem ao valor final de yi, ou seja,

yi “ 1tαi,1` 2tαi,2` 3tαi,3` . . . ` t L li

utαi,tL

liu.

Mas, como t está multiplicando uma variável binária é possível linearizar esta multiplicação fazendo γij “ tαij e usando as restrições:

γij ď M αij, γij ď t, γij ě t ´ M p1 ´ αijq, γij ě 0, αij P t0, 1u, 0 ď t ď M. , / / / / / / / / / . / / / / / / / / / -i “ t1, . . . , mu, j “ t1, . . . , tL li uu.

Da mesma forma, a multiplicação δpt pode ser linearizada fazendo ρp “ δpt e

adicionando as seguintes restrições ao modelo

ρp ď M δp, ρp ď t, ρp ě t ´ M p1 ´ δpq, , / . / -p “ t1, . . . , mu

(36)

pPM.1eq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zMm ÿ i“1 wiyi sujeito a m ÿ i“1 liyi ď Lt m ÿ i“1 wiyi ě t ` εt m ÿ j“1 B´1 pj yj ď M ρp, p “ t1, . . . , mu m ÿ j“1 B´1 pj yj ě ´M pt ´ ρq ` , p “ t1, . . . , mu m ÿ j“1 B´1 pj yj ď bp` M p1 ´ δpq, p “ t1, . . . , mu yi ě 0 e inteiros δp P t0, 1u, p “ t1, . . . , mu ρp ď M δp, p “ t1, . . . , mu ρp ď t, p “ t1, . . . , mu ρp ě t ´ M p1 ´ δpq, p “ t1, . . . , mu ρp ě 0 P R, p “ t1, . . . , mu t ě 0 (2.10)

NaTabela 3apresenta-se uma comparação entre o método de Gilmore e Gomory original e esta variação. Esta primeira estratégia, em média, gerou mais colunas (+128%) e demorou mais tempo para ser completada (+47934%) do que o subproblema original de Gilmore e Gomory. Em teoria esta variação deveria ter gerado menos colunas que o subproblema original, entretanto este não foi o resultado observado. Observando a coluna da função-objetivo, nota-se que em muitos casos não houve convergência da solução, isto é, o critério de parada foi atingido em muitas das amostras testadas.

Ao que tudo indica, parece haver algum erro que desviou os resultados da expectativa teórica. A programação deste modelo é bastante complicada devido ao grande número de variáveis e restrições necessárias, assim, estima-se que pode haver ou algum erro conceitual na modelagem utilizada ou algum erro na programação do modelo matemático no software utilizado.

O grande inconveniente desta variação é que trocou-se um problema da mochila, que tem apenas uma restrição, por um problema de programação linear inteira com várias restrições. Várias destas restrições foram geradas para contornar o problema da multiplicação do custo reduzido pelo Teste da Razão, bem como, o próprio Teste da razão que somente é efetuado quando a componente do vetor ap é maior do que zero.

(37)

Capítulo 2. Variações no Subproblema da Mochila 37

Tabela 3 – Resultados Comparativos entre o GG e a Variação 1. FO GG FO Var1 #Iter GG #Iter Var1 Tempo GG (s) Tempo Var1 (s)

Classe 01 10,94 11,09 17,96 48,80 0,50 1,25 Classe 02 109,51 111,06 17,94 49,08 0,48 1,31 Classe 03 21,73 22,26 29,54 95,16 0,93 3,67 Classe 04 217,23 222,48 29,70 96,02 0,92 4,03 Classe 05 42,42 44,06 51,12 173,20 1,92 8,41 Classe 06 423,72 440,58 50,54 172,04 1,89 9,97 Classe 07 49,23 49,49 8,68 22,26 0,15 0,38 Classe 08 492,55 494,91 8,78 22,44 0,15 0,40 Classe 09 93,95 98,04 17,78 58,88 0,38 1,28 Classe 10 944,26 999,91 20,84 69,48 0,49 1,83 Classe 11 176,50 202,08 53,06 182,64 1,77 6,50 Classe 12 1763,24 2016,86 51,88 180,24 1,74 6,79 Classe 13 62,49 62,49 7,22 8,68 0,10 0,14 Classe 14 625,23 625,23 7,24 8,46 0,10 0,14 Classe 15 120,55 120,55 19,30 26,28 0,31 0,55 Classe 16 1205,18 1205,18 19,36 27,02 0,30 0,58 Classe 17 224,44 224,50 56,38 101,94 1,09 3,61 Classe 18 2241,45 2242,39 56,14 104,84 1,11 3,86

Além disso, como a linearização do problema PM 1 é complexa, as premissas

assumidas podem ter direcionado a conclusões erradas quanto a manutenção das caracte-rísticas originais do problema. Foi pensando em remover estas dificuldades que se propôs a Variação 2, descrita na subseção a seguir.

(38)

2.3.2

Variação 2

Nesta variação propõe-se, ao invés de trabalhar com a multiplicação do custo reduzido pelo valor do Teste da Razão, trabalhar com a soma dos dois termos. Assim, remove-se a não linearidade da função-objetivo de uma forma consideravelmente simples. Portanto, o subproblema é escrito como:

pPM.2q $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zM “ ˜ m ÿ i“1 wiai ¸ ` ˆ min p“1,2,...,m " bp ap : ap ą 0 *˙ sujeito a m ÿ i“1 liai ď L m ÿ i“1 wiai ě 1 ` ε ai ě 0 P Z, i “ t1, . . . , mu. (2.11)

Outra mudança proposta nesta variação é que ao invés de utilizar o Teste da Razão na função-objetivo da maneira como ele é usualmente definido, ou seja,

min p“1,2,...,m " bp ap : ap ą 0 * , (2.12)

ele passa a ser usado como

max p“1,2,...,m " ap bp * . (2.13)

Desta forma, a condição “tal que ap ą 0” pode ser ignorada. Assim, têm-se

pPM.2aq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zMm ÿ i“1 wiai´ max p“1,...,m " ap bp * sujeito a m ÿ i“1 liai ď L m ÿ i“1 wiai ě 1 ` ε ai ě 0 P Z, i “ t1, . . . , mu, (2.14)

onde o sinal de “-” antes do termo “max” se justifica porque inicialmente maximizava-se o mínimo da razão e agora será minimizado o máximo do inverso da razão.

(39)

Capítulo 2. Variações no Subproblema da Mochila 39

Tomando t “ max

p“1,2,...,mt ap bp

u, então têm-se o seguinte problema

pPM.2bq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zMm ÿ i“1 wiai´ t sujeito a m ÿ i“1 liai ď L, m ÿ i“1 wiai ě 1 ` ε, t ě ap bp , p “ t1, . . . , mu, t ě 0, ai ě 0 P Z, i “ t1, . . . , mu. (2.15)

O problema pPM.2bq gerou menos colunas do que o problema definido no método

original de Gilmore e Gomory, apesar de ter perdido otimalidade em algumas classes, conforme pode ser observado pelos experimentos computacionais apresentados na Tabela 4. Além disso, com esta formulação foi possível contornar os problemas acarretados no desenvolvimento da Variação 1.

Lembrando que ap “ Bp´1a “ m

ÿ

j“1

Bpj´1aj, têm-se finalmente o problema

pPM.2cq $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zM “ p m ÿ i“1 wiaiq ´ t sujeito a m ÿ i“1 liai ď L, m ÿ i“1 wiai ě 1 ` ε, t m ÿ j“1 B´1 pj bj ě m ÿ j“1 B´1 pj aj, p “ t1, . . . , mu, t ě 0, ai ě 0 P Z, i “ t1, . . . , mu. (2.16)

Note que ele é escrito só em função de t e da nova coluna a P Rmˆ1.

Esta variação proporcionou resultados interessantes, conforme pode ser visto na Tabela 4, onde nota-se que para 8 classes de problemas foram geradas em média 24% menos colunas, o que mostra que a ideia proposta é promissora. Comparando o tempo computacional nas últimas colunas, percebe-se que ele aumentou em média 178%, possivelmente devido a maior complexidade na resolução da variação proposta em relação ao subproblema da mochila original. O valor da função-objetivo não foi atingido completamente apenas em 4 classes de problemas (classes 3, 4, 5 e 6), o que indica que em alguns casos

(40)

Tabela 4 – Resultados da Variação 2

FO GG FO Var2 #Iter GG #Iter Var2 Tempo GG (s) Tempo Var2 (s)

Classe 01 10,94 10,94 17,96 33,32 0,50 1,18 Classe 02 109,51 109,51 17,94 30,76 0,48 1,17 Classe 03 21,73 21,75 29,54 85,82 0,93 4,38 Classe 04 217,23 217,39 29,70 83,94 0,92 4,82 Classe 05 42,42 42,71 51,12 173,20 1,92 12,44 Classe 06 423,72 425,69 50,54 172,04 1,89 24,68 Classe 07 49,23 49,23 8,68 8,78 0,15 0,20 Classe 08 492,55 492,55 8,78 7,46 0,15 0,16 Classe 09 93,95 93,95 17,78 19,08 0,38 0,55 Classe 10 944,26 944,26 20,84 18,44 0,49 0,57 Classe 11 176,50 176,50 53,06 56,46 1,77 3,49 Classe 12 1763,24 1763,24 51,88 46,00 1,74 2,54 Classe 13 62,49 62,49 7,22 5,84 0,10 0,11 Classe 14 625,23 625,23 7,24 5,68 0,10 0,11 Classe 15 120,55 120,55 19,30 14,08 0,31 0,37 Classe 16 1205,18 1205,18 19,36 13,70 0,30 0,35 Classe 17 224,44 224,44 56,38 37,44 1,09 1,65 Classe 18 2241,45 2241,45 56,14 35,18 1,11 1,39

específicos podem ocorrer dificuldades na obtenção de colunas significativamente eficientes para a amostra de problema de corte.

Durante os experimentos, notou-se que pode haver uma diferença muito grande de magnitude entre os termos p

m

ÿ

i“1

wiaiq e t, o que acarreta numa desproporcionalidade na

“importância” que o modelo dá para cada objetivo (o teste da razão e o custo reduzido). A fim de tentar corrigir esta questão, foi criada a Variação 3, explicada na próxima subseção.

(41)

Capítulo 2. Variações no Subproblema da Mochila 41

2.3.3

Variação 3

A Variação 2 pode ser analisada de outro ponto de vista: o resultado da função-objetivo de PM 1 pode ser escrito como uma combinação linear entre o valor do

teste da razão e o do custo reduzido, ou seja, a função-objetivo de PM 2 é escrita como λ1pw|aq ` λ2p´tq.

No caso da Variação 1, por exemplo, tomando-se λ1 “ ´t{2 e λ2 “ w|a{2, o

resultado desta nova função-objetivo será w´|a ˚ t, cujo valor é equivalente ao resultado

da função-objetivo de PM 1 sem a inversão do valor de t. Dessa forma, existem λ1, λ2 P R`

que resultam na mesma solução que os modelos apresentados nas Variações 1 e 2.

Do ponto de vista do espaço linear, a solução para qualquer combinação de

λ1, λ2 P R` pode ser obtida para algum λ1 “ α, λ2 “ p1 ´ αq onde α P r0; 1s.

pPM.3q $ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ & ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ % Max zMα m ÿ i“1 wiai´ p1 ´ αqt sujeito a m ÿ i“1 liai ď L, m ÿ i“1 wiai ě 1 ` ε, t m ÿ j“1 B´1 pj bj ě m ÿ j“1 B´1 pj aj, p “ t1, . . . , mu, t ě 0, ai ě 0 P Z, i “ t1, . . . , mu. (2.17)

Note que a Variação 3 é equivalente ao problema da mochila quando α “ 1, e é equivalente a Variação 2 quando α “ 0.5. Portanto, com a devida parametrização de α P r0; 1s a cada iteração, certamente será gerada uma quantidade menor ou igual de padrões que o método original.

A questão da correta parametrização de α não é trivial e merece um aprofundado estudo por si só, por isso este tópico não será tratado neste trabalho. Mas ressalta-se aqui que este fator tem significativo impacto nesta variação.

Para fins de simplificação, a parametrização α foi feita aumentando-se line-armente seu valor de 0 a 1 a cada iteração com um passo de 0, 05. Assim, o modelo inicialmente leva em conta apenas ´t como função-objetivo (α “ 0), em algum momento passa pela Variação 2 (α “ 0.5) e chega no equivalente ao problema da mochila (α “ 1). A Tabela 5mostra que o desempenho desta variação foi melhor em diversas classes de problemas no que diz respeito a quantidade de colunas geradas, com uma redução de cerca de 21% em média (para as classes 7, 8 e de 10 a 18). Ainda é possível notar que houve uma melhoria em relação a Variação 2, gerando um pouco menos de colunas (na

(42)

Tabela 5 – Resultados da Variação 3.

FO GG FO Var3 #Iter GG #Iter Var3 Tempo GG (s) Tempo Var3 (s)

Classe 01 10,94 10,94 17,96 25,48 0,50 0,81 Classe 02 109,51 109,51 17,94 20,12 0,48 0,69 Classe 03 21,73 21,73 29,54 44,94 0,93 1,99 Classe 04 217,23 217,23 29,70 38,00 0,92 2,08 Classe 05 42,42 42,42 51,12 79,34 1,92 6,42 Classe 06 423,72 423,72 50,54 70,50 1,89 30,73 Classe 07 49,23 49,23 8,68 8,62 0,15 0,20 Classe 08 492,55 492,55 8,78 7,56 0,15 0,19 Classe 09 93,95 93,95 17,78 18,08 0,38 0,51 Classe 10 944,26 944,26 20,84 17,66 0,49 0,52 Classe 11 176,50 176,50 53,06 48,52 1,77 2,54 Classe 12 1763,24 1763,24 51,88 43,50 1,74 2,04 Classe 13 62,49 62,49 7,22 5,88 0,10 0,13 Classe 14 625,23 625,23 7,24 5,66 0,10 0,12 Classe 15 120,55 120,55 19,30 13,96 0,31 0,39 Classe 16 1205,18 1205,18 19,36 13,64 0,30 0,36 Classe 17 224,44 224,44 56,38 34,68 1,09 1,42 Classe 18 2241,45 2241,45 56,14 34,56 1,11 1,24

média) para as respectivas classes de problemas. O tempo computacional foi cerca de 133% maior em comparação ao subproblema da mochila de Gilmore e Gomory, possivelmente pelo mesmo motivo que a Variação 2, isto é, a maior complexidade no subproblema da variação em relação ao subproblema da mochila.

Em vista dos resultados é importante ressaltar que um estudo aprofundado acerca da parametrização de α pode trazer resultados capazes de diminuir ainda mais o número de colunas geradas. Esta hipótese é bastante interessante, porém não será discutida no escopo deste trabalho.

Apesar do bom desempenho apresentado pela variação, é possível que para problemas de porte maior o tempo computacional aumente significativamente. Assim, as próximas variações desenvolvidas tentam se concentrar mais na aceleração do algoritmo do que na redução do número de iterações.

Referências

Documentos relacionados

28 RESUMO Objetivando avaliar o efeito da inclusão de probióticos associados a enzimas na ração de suínos dos 24 aos 129 dias de idade sobre o desempenho, morfometria intestinal

Por exemplo, ao trabalhar a analogia com objetos e relações familiares para os usuários, como essas informações já estão assimiladas por eles, e assim resguardadas na memória de

Ao analisar o cumprimento da legislação vigente sobre transparência pública pelos portais eletrônicos das sete capitais da região norte entre maio e setembro de 2015, Souza (2016,

O objetivo proposto no presente trabalho foi avaliar a precisão das estimativas dos parâmetros de equações de predição da energia metabolizável (EM) do milho

Esta outra obra produzida por David Libeskind, o Edifício Jardim Buenos Aires (ficha 24), apresenta elementos de arquitetura moderna, como o uso de pilotis, planta modular, linhas

São considerados custos e despesas ambientais, o valor dos insumos, mão- de-obra, amortização de equipamentos e instalações necessários ao processo de preservação, proteção

This study makes clear that the factors hindering the interview are related to the place, to clarification provided to family members concerning the diagnosis of encephalic

Consideraremos nesta parte os aspectos sociológicos da religião relatando suas funções para com os indivíduos da Sociedade, as formas como as atividades religiosas se