• Nenhum resultado encontrado

Heuristicas para programação inteira com trajetorias de busca factiveis e infactiveis

N/A
N/A
Protected

Academic year: 2021

Share "Heuristicas para programação inteira com trajetorias de busca factiveis e infactiveis"

Copied!
164
0
0

Texto

(1)

Universidade Estadual de Campinas

Faculdade de Engenharia Elétrica e de Computação

Departamento de Engenharia de Sistemas

Heurísticas para Programação Inteira com Trajetórias

de Busca Factíveis e Infactíveis

Autor: André Kazuo Takahata

Orientador: Vinícius Amaral Armentano

Tese de Mestrado apresentada à Faculdade de Engenharia Elétrica e de Computação da Universidade Estadual de Campinas - UNICAMP - como parte dos requisitos exigidos para obtenção do título de Mestre em Engenharia Elétrica.

Comissão Examinadora

Prof. Dr. Vinícius Amaral Armentano – DENSIS/FEEC/UNICAMP (orientador) Prof. Dr. Edson Luiz França Senne – FEG/UNESP

Prof. Dr. Cid Carvalho de Souza – DTC/IC/UNICAMP

(2)

FICHA CATALOGRÁFICA ELABORADA PELA

BIBLIOTECA DA ÁREA DE ENGENHARIA E ARQUITETURA - BAE - UNICAMP

T139h

Takahata, André Kazuo

Heurísticas para programação inteira com trajetórias de busca factíveis e infactíveis / André Kazuo Takahata. --Campinas, SP: [s.n.], 2009.

Orientador: Vinícius Amaral Armentano.

Dissertação de Mestrado - Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica e de Computação.

1. Programação inteira. 2. Heuristica. 3. Otimização combinatoria. I. Armentano, Vinícius Amaral. II. Universidade Estadual de Campinas. Faculdade de Engenharia Elétrica e de Computação. III. Título.

Título em Inglês: Heuristics for integer programming with feasible and infeasible search trajectories

Palavras-chave em Inglês: Integer programming, Heuristic, Combinatorial optimization

Área de concentração: Automação

Titulação: Mestre em Engenharia Elétrica

Banca examinadora: Edson Luiz França Senne, Cid Carvalho de Souza Data da defesa: 08/05/2009

(3)
(4)

Resumo

Este trabalho trata do desenvolvimento de heurísticas de busca genéricas para obtenção de soluções de problemas de otimização combinatória formulados como modelos de programação linear inteira, com o uso do pacote de otimização XPRESS. Este é um tema recente, em que são conjugados a flexibilidade de heurísticas e os avanços dos solvers de otimização para a obtenção de soluções de alta qualidade em tempo reduzido.

As heurísticas propostas são baseadas em arredondamentos gerados a partir de raios de um cone, cujo vértice é associado à solução ótima da relaxação de programação linear, e em trajetórias factíveis e infactíveis em relação à fronteira desta relaxação. A motivação para este enfoque é dada pelo apelo geométrico e no sucesso de estratégias similares em heurísticas para problemas combinatórios. O trabalho descreve a concepção e a implementação dessas heurísticas e apresenta resultados de testes em instâncias da literatura.

Palavras-chave. Programação inteira. Heurísticas. Otimização combinatória.

Abstract

In this work we develop a set of generic search heuristics for solving combinatorial optimization problems formulated as linear integer programming models, using the XPRESS optimization package. This is a recent theme, in which efforts have been made in order to combine the flexibility offered by heuristics and the expressive advances achieved in the development of optimization solvers so as to obtain high quality solutions in a short time.

The proposed heuristics are based on rounding solutions located on the rays of a cone whose vertex is associated with the optimal solution of the linear programming relaxation, and in feasible and infeasible trajectories relative to the frontier of such relaxation. This approach is motivated by its geometric appeal and by the success of similar approaches in heuristics for solving combinatorial problems. This work describes the development and implementation of the heuristics and presents computational tests on instances from literature.

(5)

Dedico este trabalho à minha mãe, Olga, ao meu pai, Yuji e à minha irmã Eliza.

(6)

Agradecimentos

Agradeço ao meu orientador, Professor Vinícius Amaral Armentano, pelos ensinamentos pessoais e profissionais, e pela paciência em me orientar. Também não poderia de deixar de agradecer aos esforços por ele realizados para prover as condições de pesquisas privilegiadas das quais desfrutei.

Agradeço aos meus pais Olga e Yuji e à minha irmã Eliza pelo permanente suporte emocional, apoio e incentivo.

Agradeço aos meus amigos e colegas de pós-graduação da FEEC, Andrea, Rubens, Anzai, Leonardo, Everton, Diogo, Felipe, Iara, Sacchi, Sara, André, Floriano, Luana, Fábio, entre muitos outros, pelo conhecimento compartilhado e pela companhia.

Agradeço aos meus amigos Jorge, Alessandro, Renato, Antônio, Renata, Guilherme, Rafael, Marcelo, Roger, Ricardo, Marcos, Elias, Mitsumoto, Estevon, Beatriz, Marcela, Rocha, Otávio, Peterson e Renato por estarem sempre ao meu lado.

Agradeço aos professores do ensino básico e médio, bem como aos professores dos cursos de graduação e pós-graduação da FEEC pelos ensinamentos que foram indispensáveis para a realização dessa dissertação.

(7)

Sumário

Lista de Figuras ... xiii

Lista de Tabelas ... xv

Capítulo 1 Introdução... 1

1.1 Introdução, 1

1.2 Apresentação do problema, 5

Capítulo 2 Revisão Bibliográfica ... 6

2.1 Procedimentos heurísticos eficientes para programação inteira linear contendo pontos interiores, 6

2.2 Algoritmo heurístico para PIMs de Ibaraki et al., 10

2.3 Métodos de caminhos interiores para procedimentos heurísticos para programação inteira, 13

2.4 Heurística de ponto de teto para problemas de programação inteira, 15

2.5 Heurística de pivoteamento e complemento para problemas de programação binária, 18 2.6 Heurística de pivoteamento e deslocamento para problemas de programação inteira mista, 20 2.7 Cut Search, 22 2.8 Scatter Search, 26 2.9 Busca tabu em PB, 29 2.10 Heurística OCTANE, 33 2.11 Local Branching, 37 2.12 RINS, 40 2.13 DINS, 42

(8)

Capítulo 3 Heurísticas para programação inteira com trajetórias de busca

factíveis e infactíveis ... 49

3.1 Geometria do PI, 49

3.2 Simplex para variáveis canalizadas e raios do cone poliedral, 53 3.3 Abordagem 1:Arredondamento direcionado com Scatter Search, 58 3.4 Abordagem 2: Arredondamento Direcionado Condicional, 67

Capítulo 4 Refinamentos ... 80

4.1 Identificação de colunas não básicas para formação do vetor D, 80 4.2 Escolha da variável de ramificação, 81

4.3 Tratamento de degenerescência primal, 85

4.4 Composição e refinamento de membros do conjunto X′′, 91 4.5 Arredondamento direcionado misto, 95

Capítulo 5 Testes computacionais: implementação e resultados ... 100

5.1 Utilização do Xpress-MP e do Visual C++, 100 5.2 Instâncias, 103

5.3 Resultados, 108

Capítulo 6 Conclusões ...139

Referências bibliográfias ... 143

(9)

Lista de Figuras

2.1 Exemplo de cone poliedral bidimensional. Glover e Laguna (1997a), 23 2.2 Exemplo de corte de convexidade. Glover e Laguna (1997a), 23

2.3 Exemplo de corte condicional. Glover e Laguna (1997a), 25

2.4 Exemplos de arredondamento direcional. Glover e Laguna (1997b), 27 2.5 Exemplo de Star Path. Glover e Laguna (1997b), 29

2.6 Ilustração das categorias de movimento, 31

2.7 Ilustração do hipercubo K , linhas contínuas, e do octaedro K , linhas tracejadas, no caso

bidimensional. São explicitados os vértices de K , 34

2.8 Ilustração do hipercubo K , linhas tracejadas, e do octaedro K , linhas contínuas, no caso

bidimensional. São explicitadas as facetas deK , 34

2.9 Ilustração da heurística OCTANE, 35

2.10 Ilustração da heurística local branching. Fischetti e Lodi (2003), 39

3.1 Ilustração do Teorema 1, 51 3.2 Ilustração do Teorema 2, 52 3.3 Ilustração do Teorema 3, 52

3.4 Ilustração de d2, d3, D , x e B x , 58 0

3.5 Ilustração de centros e arestas. Glover (2007), 61 3.6 Ilustração de centros e arestas no PB, 62

3.7 Ilustração do Scatter Search, 64

3.8 Exemplo da aplicação da Abordagem 1, 66

3.9 Segunda iteração da Abordagem 2 original. Uma vez que x′′1, x′′S1, x′′G, x′′S2e x′′2 são no caso o mesmo ponto, os mesmos são representados por x′′, 72

3.10 Terceira e quarta iterações da Abordagem 2 original, 72 3.11 Possibilidade de ciclagem entre subproblemas, 73

(10)

3.15 Quinta iteração da Abordagem 2 modificada, 78

3.16 Desigualdades de ramificação durante a Abordagem 2 sob a perspectiva da estrutura em árvore, 79

4.1 Aplicação da Abordagem 1 no exemplo, 84

4.2 Interpretação geométrica do tratamento de degenerescência, 90

4.3 Ilustração da composição e refinamento de X′′. Abreviamos x′( , )p G e x′′( , )p G para x′( )p

e x′′( )p

, respectivamente, 93 4.4 Arredondamento direcionado, 97

4.5 Arredondamento para o inteiro mais próximo, 98

(11)

Lista de Tabelas

3.1 Exemplo da aplicação da Abordagem 1, 67 3.2 Segunda iteração da Abordagem 2, 71 3.3 Segunda iteração da Abordagem 2, 76

3.4 Desigualdades de ramificação durante a Abordagem 2, 79

4.1 Pontos da aplicação da Abordagem 1 no exemplo, 84 4.2 Valores de w , 85 ij1

4.3 Valores de w , 85 ij2

4.4 Pontos da aplicação da Abordagem 1 em (4.15), 94 4.5 Pontos obtidos pela composição e refinamento de X′′, 95 4.6 Arredondamento direcionado, 96

4.7 Arredondamento para o inteiro mais próximo, 97 4.8 Arredondamento misto, 98

5.1 Efeito da atuação do pré-processamento nas instâncias do MIPLIB 2003, 101 5.2 Teste de variação de nDecision, 109

5.3 Teste de variação de nSlack, 109

5.4 Teste de variação de K, 110

5.5 Teste de variação da proporção entre nDecision e nSlack, 110

5.6 Instâncias utilizadas e o respectivo número de variáveis não básicas após o pré- processamento, 110

5.7 Teste com parâmetros em função de nNB, 111

5.8 Teste com parâmetros em função de nNB1/2, 111 5.9 Teste com valores extremos para os parâmetros, 111

(12)

5.11 Resultados de A2(A1(0, 700, 2)) e comparação com Feasibility Pump Objetivo para

problemas do MIPLIB 2003, 113

5.12 Média do gap para cada heurística desprezando p2756, 114

5.13 Resultados obtidos com 10 e 60 minutos de execução de A2(A1(50,0,3)) , 115 5.14 Resultados obtidos com 10 e 60 minutos de execução de A2(A1(0,700,2)), 115

5.15 Resultados de A2(A1 (50,0,3)) e comparação com Feasibility Pump e feasibility pump objetivo para problemas de projetos de rede de telecomunicações de Chabrier et al.

(2004), 117

5.16 Resultados de A2(A1(50,0,3)) para MKP, 118

5.17 Comparação entre os resultados obtidos com 10 e 60 minutos de execução de A2(A1(50,0,3)) em instâncias de MKP, 119

5.18 Resultados de A2(A1(50,0,3)) e A2(A1 (0,700,2)) para MDMKP e comparação com resultados obtidos com uso do Xpress, 121

5.19 Comparação entre os resultados obtidos com 10 e 60 minutos de execução de A2(A1(50,0,3)) em instâncias de MDMKP, 122

5.20 Comparação entre os resultados obtidos com 10 e 60 minutos de execução de A2(A1(0,700,2)) em instâncias de MDMKP, 123

5.21 Resultados de A2(A1(50,0,3)) e A2(A1 (0,700,2)) para o GAP por instância, 125 5.22 Médias de gap para o GAP por classe de instância, 126

5.23 Taxas de falha e comparativo entre A2(A1(50,0,3)) e A2(A1 (0,700,2)) para o GAP por classe de instância, 126

5.24 Comparação entre os resultados parciais e finais para GAP, 127

5.25 Resumo da comparação entre os resultados parciais e finais para GAP por classe de problema, 128

5.26 Médias de gap dos resultados parciais e finais para A2(A1(50,0,3)) por classe de

instância, 128

5.27 Médias de gap dos resultados parciais e finais para A2(A1 (0,700,2)) por classe de

instância, 128

5.28 Resultados para aplicação do refinamento com uso de memória de freqüência com nPrep=2000 e critério da maior freqüência, 130

(13)

5.29 Resultados para aplicação do refinamento com uso de memória de freqüência com nPrep=2000 e critério da menor freqüência, 130

5.30 Resultados para aplicação do refinamento com uso de memória de freqüência com nPrep=200 e critério da maior freqüência, 131

5.31 Resultados para aplicação do refinamento com uso de memória de freqüência com nPrep=200 e critério da menor freqüência, 131

5.32 Resumo dos resultados das execuções do refinamento com uso de memória, 132 5.33 Resultados do uso do refinamento referente à seção 4.2, 133

5.34 Resultados do uso do refinamento referente à seção 4.3, 133 5.35 Resultados do uso do refinamento referente à seção 4.4, 134 5.36 Resultados do uso do refinamento referente à seção 4.5, 134 5.37 Resumo dos resultados das execuções de refinamentos, 135

5.38 Resumo da comparação entre os resultados parciais e finais para os refinamentos, 136

5.39 Resumo dos resultados das execuções do refinamento com uso de memória combinado com o arredondamento misto, 136

5.40 Resultados para aplicação do refinamento com uso de memória de freqüência com

nPrep=2000 e critério da maior freqüência combinado com o arredondamento misto, 137

5.41 Resultados para aplicação do refinamento com uso de memória de freqüência com nPrep=2000 e critério da menor freqüência combinado com o arredondamento misto, 138

(14)

Capítulo 1

1.1 Introdução

Diversos problemas em otimização combinatória são modelados por meio de programação linear inteira mista (PIM), que requer métodos exatos ou heurísticos efetivos para sua resolução. No entanto, existem muitos problemas práticos para os quais a obtenção de uma solução ótima por meio do uso exclusivo de métodos exatos ainda é inviável. Esse fato tem motivado o uso de métodos heurísticos, puros ou combinados com métodos exatos como o

branch-and-cut, para a obtenção de soluções inteiras factíveis de qualidade. Em particular, a

abordagem em que métodos heurísticos são combinados com o branch-and-cut tem sido utilizada

pelos pacotes comerciais que representam o estado da arte em resolução de PIMs como o CPLEX e o XPRESS. Glover (1977), em um dos trabalhos pioneiros na área, introduz uma de suas heurísticas com as palavras a seguir.

“Métodos de solução heurística para programação inteira têm mantido uma notável existência separada em relação aos algoritmos [exatos]. Historicamente, os algoritmos têm constituído o lado mais respeitável da família, assegurando uma solução ótima em um número finito de passos. Métodos que meramente sustentam ser inteligentes e não ostentam um conjunto de teoremas e provas, são relegados a um status inferior.(...)

Recentemente, contudo, tem havido um reconhecimento crescente de que algoritmos não são sempre bem sucedidos e que seus primos heurísticos merecem uma chance de provar o seu vigor. (...)

A abordagem heurística, robusta e impetuosa, pode possuir vantagens em terrenos que são acidentados ou variados em excesso para os algoritmos. Na realidade, os que valorizam distinções não tão radicais sugerem que um algoritmo efetivo de fato é aquele que possui o “poder heurístico”.

Se há um mérito nesse ponto de vista, está no fato do mesmo ser útil para apontar princípios heurísticos específicos que possuem potencial. A destilação de tais princípios pode levar à descoberta de novas possibilidades e de mais soluções efetivas.”

(15)

Desde então, foi observado o surgimento de uma grande profusão de métodos heurísticos bem sucedidos. Entretanto, a maioria foi concebida de forma a atender a uma categoria de problema em particular, como por exemplo, nos casos de problemas de roteamento de veículos, logística e planejamento de produção, uma vez que nestes casos é buscada a obtenção de vantagens por meio da utilização de estruturas conhecidas. Por outro lado, a possibilidade de obter soluções para diversos tipos de problemas sem a necessidade de modificar a implementação têm sido uma grande motivação para o estudo das heurísticas genéricas.

As primeiras heurísticas genéricas foram propostas nas décadas de 60 e 70, como as apresentadas por Glover (1977), Hillier (1969) e por Ibaraki et al. (1974). Nas primeiras etapas do desenvolvimento das heurísticas genéricas, computadores de grande porte como o Burroughs B 5500 e o IBM 360/67 eram exigidos para a resolução de problemas com algumas centenas de variáveis. Como exposto por Atamtürk e Savelsbergh (2005), em que é realizado uma extensa pesquisa sobre pacotes de resolução de PIMs, a mesma restrição também era aplicada aos métodos exatos. Assim, a abordagem genérica permaneceu em segundo plano até que o desenvolvimento dos sistemas de computação possibilitou o tratamento de problemas com milhares de variáveis em computadores pessoais e popularizou o uso de pacotes como o CPLEX e o XPRESS-MP.

Atualmente, os avanços implementados nos pacotes de otimização têm permitido o surgimento de um grande número de novas heurísticas genéricas. A disponibilidade de técnicas eficientes de programação linear (PL) tem viabilizado a implementação de heurísticas que utilizam sucessivas iterações em que PLs são reotimizados como no caso do Pivot and Shift de

Balas et al. (2004), da busca tabu em problemas binários de Løkketangen e Glover (1998) e das variações de Feasibility Pump de Fischetti et al. (2005), Bertacco et al. (2007) e Achterberg e

Berthold (2007). Atualmente, pacotes do estado da arte para resolução de PIM têm como base o algoritmo branch-and-cut, que utiliza uma árvore de enumeração implícita em conjunto com uso

de desigualdades válidas (cortes) em que são resolvidos sucessivos subproblemas da relaxação linear do PIM. O desenvolvimento do branch-and-cut possibilitou o surgimento de métodos que

utilizam a árvore de enumeração com fins heurísticos como no caso do RINS de Danna et al. (2004) e do Local Branching de Fischetti e Lodi (2003) e suas variantes de Hansen et al. (2006) e

(16)

surgimento de novas heurísticas como no caso do Cut Search de Glover e Laguna (1997a) e da

heurística OCTANE de Balas et al. (2001).

Por sua vez, as heurísticas genéricas também têm desempenhado papel importante para o aumento do desempenho dos pacotes de resolução de PIM, de tal modo que as mesmas têm sido incorporadas aos mesmos como no caso do RINS de Danna et al (2004) e do Feasibility Pump de

Fischetti et al. (2005). A razão para isso é que as heurísticas possibilitam a obtenção de soluções factíveis nos estágios iniciais da árvore de enumeração, o que possibilita a eliminação precoce de ramos e conseqüentemente possibilitam a diminuição do tempo de convergência do algoritmo exato. Além disso, as soluções heurísticas obtidas nas etapas iniciais do branch-and-cut, mesmo

que sub-ótimas, podem ser eventualmente de boa qualidade e com possibilidade de uso em aplicações práticas. Deste modo, conforme preconizado por Glover (1977), a crescente integração entre pacotes de otimização e métodos heurísticos tem promovido a expansão das possibilidades para a resolução de PIMs em um processo em que as heurísticas genéricas têm adquirido um papel cada vez mais importante.

Dentro deste contexto, foi tomado como objeto de estudo da presente dissertação de mestrado o desenvolvimento de métodos heurísticos genéricos para problemas de programação inteira (PI), que geram seqüências de soluções, ou seja, trajetórias, que podem ser factíveis ou infactíveis com relação à relaxação de programação linear associado ao PI original. Diversas heurísticas e meta-heurísticas com busca local têm utilizado com sucesso trajetórias com soluções factíveis e infactíveis, como por exemplo, Gendreau et al. (1994) e Toledo e Armentano (2006). Esta estratégia é conhecida como oscilação estratégica em torno de uma fronteira, no caso a fronteira da região factível (Glover, 1977, Glover e Laguna, 1997c), e permite superar a limitação de regiões factíveis desconexas induzidas por um operador de busca local, o que torna a busca mais eficaz. A geometria natural de problemas genéricos de programação inteira é a motivação para empregar oscilação estratégica em torno da fronteira da factibilidade definida pela fronteira do PL associado ao PI. A literatura sobre heurísticas genéricas que usam este enfoque em programação inteira é restrita ao trabalho de Glover (2007), que propõe uma grande variedade de estratégias que podem gerar diversas heurísticas distintas com diversos graus de sofisticação. Tais métodos utilizam estratégias de arredondamento direcionado acopladas a uma estrutura de ramificações, com a finalidade de se obter ganhos de desempenho por meio das informações obtidas a partir das geometrias das regiões factíveis e infactíveis.

(17)

Assim, o interesse principal deste trabalho consiste em desenvolver algumas heurísticas básicas a partir das propostas de Glover (2007) e testá-las em classes de problemas de otimização combinatória abordados vastamente em literatura como o problema da mochila multidimensional (MKP), o problema da mochila multidimensional com restrições de demanda (MDMKP) e o problema de designação generalizada (GAP). Também foram levadas em consideração instâncias de problemas do MIPLIB 2003 e de problemas de projetos de rede de telecomunicações de Chabrier et al. (2004), que têm feito parte do conjunto padrão de instâncias utilizadas na literatura para comparação entre heurísticas.

A dissertação está estruturada em 5 capítulos. O Capítulo 1 contém a formulação geral do PIM e informações sobre a notação utilizada. No Capítulo 2 é realizada uma pesquisa bibliográfica a respeito da literatura de heurísticas genéricas, em que são tratados trabalhos realizados desde os primórdios dos estudos na área como os de Hillier (1969), Ibaraki et al. (1974) e Faaland e Hillier (1979) até trabalhos contemporâneos como os elaborados por Fischetti e Lodi (2003), Danna et al. (2004), Achterberg e Berthold (2007), Ghosh(2007) e Fischetti e Lodi (2008). No Capítulo 3, inicialmente é realizada uma análise a respeito da geometria do PI e são expostas as teorias propostas por Glover (2007) que caracterizam as trajetórias por pontos factíveis e infactíveis. Em seguida, é descrita a heurística por nós implementada, que faz o uso de tais trajetórias. O Capítulo 4 contém os refinamentos que foram aplicadas à heurística. No Capítulo 5, a implementação computacional e as instâncias utilizadas para os testes são descritas inicialmente e em seguida são reportados os resultados obtidos.

(18)

1.2 Apresentação do problema

Os problemas em otimização combinatória são formulados por meio de programação linear inteira pura (PI), em que todas as variáveis são inteiras, ou por meio de programação inteira mista (PIM), que permite o uso de variáveis contínuas. O uso do PI e do PIM é bastante difundido, pois torna possível a utilização de solvers de uso genérico, independentemente das

especificidades de cada problema. O PIM é dado por

max z=cx sujeito a

Axb

x inteiro para todo j jIN

LjxjUj

em que I é o conjunto das variáveis inteiras, N={1,2,...,n}, o conjunto de todas as variáveis,

e C = N – I o conjunto das variáveis contínuas.

O PI é um caso particular de PIM, em que I = N. Dentre os PIs existe uma categoria

particular em que todas as variáveis são binárias, isto é xj ={0,1}, configurando um problema de programação inteira binária (PB). A dissertação se limita ao estudo de PI e PB, embora a metodologia proposta se aplique também a PIM. O problema de programação linear resultante da relaxação das condições de integralidade é denotada como (PL). No texto as variáveis escalares são representadas por fonte em itálico e os vetores e matrizes em negrito.

(19)

Capítulo 2

Revisão Bibliográfica

Historicamente, as primeiras heurísticas genéricas foram propostas nas décadas de 60 e 70, como as apresentadas por Glover (1977), Hillier (1969) e por Ibaraki et al. (1974). Entretanto, esse tipo de abordagem permaneceu em segundo plano até a década de 80 quando houve um grande aumento do poder computacional disponível, o que permitiu a elaboração de heurísticas que poderiam ser aplicadas a problemas com grande número de variáveis. No presente, as heurísticas, utilizadas de forma isolada ou em conjunto com métodos exatos, se tornaram parte importante no arsenal de abordagens que podem ser utilizadas para obtenção de soluções de qualidade para PIMs, tais como aquelas que têm sido implementadas nos pacotes de resolução de PIMs que são o estado da arte como o XPRESS e o CPLEX. Esta revisão bibliográfica tem como intuito traçar um panorama geral dos estudos na área por meio da apresentação das principais heurísticas genéricas elaboradas desde o final da década de 60.

2.1 Procedimentos heurísticos eficientes para programação inteira linear

contendo pontos interiores

Hillier (1969) propõe um conjunto de procedimentos heurísticos com o intuito de obter soluções factíveis de qualidade para PIs que possuam pontos interiores. Tais PIs são formulados da seguinte maneira.

= = n j j jx c z 1 max (2.1) sujeito a

= ≤ n j i j ijx b a 1 (i = 1, 2,..., m) (2.2) x ≥0 (i = 1, 2,..., n) (2.3)

(20)

Essas heurísticas são compostas por três fases, em que a primeira consiste em determinar uma região inicial de busca, a segunda em realizar uma busca por uma ou mais soluções factíveis no PI e a terceira em um procedimento de melhoria a partir de uma das soluções factíveis obtidas na segunda fase.

A primeira fase é iniciada com a resolução do PL pelo uso do método simplex, cuja solução fracionária é denotada por (1)

x . Em seguida, um PL modificado é resolvido de maneira que o novo ponto ótimo x(2) seja interior com relação à região factível do PL original e que nem x(2) nem a solução inteira obtida pelo arredondamento de x(2)

para o inteiro mais próximo violem as restrições ativas em x(1). Para isso, o PL modificado é obtido pelo aperto das restrições ativas em

) 1 (

x por meio de 2 métodos. Dado B, conjunto dos índices das variáveis básicas, o método 1

consiste em substituir bi por

∈ − = B j ij i i b a b ) | | 2 1 ( ) 2 ( (2.5) para todo elemento i de b associado a uma restrição ativa. A aplicação do método 2 requer que as

restrições estejam na forma normalizada, ou seja, na forma

= ′ ≤ ′ n j i j ijx b a 1 (i=1,2,...,m)

tal que aij′ e bi′ são, respectivamente, os valores aije b normalizados por i

= n j ij a 1 2 . Este método atua de forma similar ao método 1, mas neste caso todo elementobi′associado a uma restrição ativa é substituído por

2 ) 2 ( N b bi′ = i′− (2.6)

em que N é o número de variáveis básicas. Obtidos os pontos x(1) e x(2), é definido um segmento de reta, tal que qualquer ponto do segmento, x, é dado pela combinação convexa de x(1)

e x(2) ) 2 ( ) 1 ( ) 1 ( x x x= −α +α em que 0≤α ≤1

O segmento de reta é utilizado para guiar a busca por soluções inteiras factíveis na fase 2, para o qual são definidos três métodos.

O método 1, conceitualmente, consiste em realizar um movimento contínuo a partir de

) 1 (

(21)

arredondamento para o inteiro mais próximo aos pontos visitados até que uma solução inteira factível seja encontrada. O movimento é iniciado com α =0 e a cada iteração α é aumentado de modo que a mudança seja apenas a necessária para que seja obtida uma nova solução inteira pelo uso do arredondamento. O método termina quando α adquire valor grande o suficiente para que seja produzida uma solução inteira factível ou tal que α exceda o valor 1. O autor observa que pelo menos um ponto inteiro obtido durante a busca atende todas as restrições ativas no ponto ótimo do PL original em razão do uso de (2.5) ou (2.6). Entretanto, o mesmo não é assegurado para as demais restrições do PI e dessa maneira, a utilização do método 1 não garante a descoberta de uma solução inteira factível.

No método 2, a trajetória é percorrida pelo uso de incrementos de tamanhos fixos em α , como por exemplo o valor de 0,05. A cada iteração é realizado o arredondamento para o inteiro mais próximo sobre o respectivo ponto x com o intuito de localizar uma solução factível inteira. Caso o ponto inteiro encontrado x seja infactível é realizada uma busca factibilizadora. O ponto x é analisado com o intuito de localizar variáveis xj que, ao serem individualmente

incrementadas ou decrementadas em uma unidade, diminuam a medida de infactibilidade q , que pode ser calculada por meio de uma das duas definições a seguir.

= = ′ − ′ = m i i n j j ijx b a q 1 1 } , 0 max{ ou } { max 1 ) ... 1 (

= ∈ ′ − ′ = n j i j ij m i a x b q

Caso seja encontrada apenas uma variável que atenda esse requisito, a mesma é escolhida e a alteração correspondente é realizada na solução corrente. Caso haja duas ou mais variáveis favoráveis, é escolhida aquela que possuir o maior ganho p , calculado por meio de uma das seguintes expressões q p= −∆ ou x c p=− jj

(22)

em que ∆xj denota a variação da variável xj analisada e ∆qa variação de q em função da

variação de xj. As duas definições de infactibilidade e as duas definições de ganho podem ser

combinadas entre si, possibilitando assim quatro abordagens distintas. O procedimento de diminuição de q é repetido sucessivamente até que se encontre uma solução inteira factível ou até

que não haja mais variáveis que permitam um novo movimento. No caso de sucesso, a fase 2 é dada por encerrada e a fase 3 é iniciada. Já no caso de falha, α é incrementado com o valor pré-fixado e o processo é reiniciado. Caso α ultrapasse o valor 1 e não haja soluções inteiras factíveis conhecidas, a heurística é encerrada.

O método 3 é um híbrido dos métodos 1 e 2. Neste método, a cada iteração, o valor deα é incrementado de forma que a mudança seja apenas o necessário para que seja obtida uma nova solução inteira pelo uso do arredondamento, como feito no caso do método 1. Em seguida, a esse novo ponto é aplicada a busca factibilizadora do método 2.

Dada uma solução factível x(F) obtida durante a fase 2, é iniciada a fase 3, em que são alternados dois modos de busca iterativos com o intuito de se encontrar soluções com valores de z

maiores.

No primeiro modo, uma estimativa de ganho rj =| c j | dj é obtida para cada variável a

partir de cj, coeficiente da função objetivo, e dj, a máxima variação possível da variável xj na direção do crescimento da função objetivo, para o qual são propostos dois métodos de cálculo. No método 1 é imposto que essa variação seja uma quantidade inteira, enquanto no método 2 são permitidos valores contínuos para dj superiores à uma unidade. Após o cálculo das estimativas de

ganho, a variável com maior rj é incrementada ou decrementada em uma unidade, de acordo com a direção de crescimento da função objetivo, com o intuito de obter uma nova solução factível inteira. Esse processo é repetido sucessivamente até que o operador de busca não proporcione mais melhoria.

No segundo modo, as variáveis são analisadas duas a duas de forma que seja obtido um par em que uma mudança simultânea nos respectivos valores leve a uma nova solução com z

maior. Neste modo são analisados sucessivos movimentos em que se incrementa ou se decrementa em uma unidade a variável com maior | c j |, enquanto a segunda variável é alterada

em uma ou mais unidades na tentativa de se obter uma nova solução em que a factibilidade inteira é mantida e ao mesmo tempo haja um ganho no valor da função objetivo.

(23)

As heurísticas foram primeiramente implementadas na linguagem ALGOL e executadas em um computador Burroughs B-5500 com o objetivo de realizar uma calibragem inicial. Em seguida, as mesmas foram implementadas em linguagem FORTRAN e executadas em um computador IBM360/67. Para a realização dos testes foram utilizadas tanto instâncias retiradas da literatura quanto instâncias geradas aleatoriamente, com número de variáveis variando de 15 a 300. Dado que i-j-k denota a heurística composta pelo uso dos métodos i, j e k, respectivamente

nas fases 1, 2 e 3, o autor concluiu que as melhores heurísticas foram 1-2-1, 2-2-1, 1-3-1 e 2-3-1. Dentre essas, as estratégias observadas como sendo as mais recomendáveis foram 1-2A-1 e 2-2A-1, em que “A” denota a utilização das primeiras definições de p e q para a fase 2.

À época da elaboração da heurística, ainda não havia padrões confiáveis para a realização de análise de desempenho, o que motivou a criação de mais dois métodos, deliberadamente ineficientes, para a fase 2. O método 4 consiste em obter uma solução inteira x ao realizar um

arredondamento nos valores de (1)

x tal que xj =

 

x(j1) enquanto o método 5 consiste em analisar

exaustivamente todas as soluções tal que xj =

 

x(j1) ou

 

) 1 (

j j x

x = e escolher a melhor solução.

A heurística 1-2A-1 foi confrontada em problemas com variáveis inteiras e coeficientes positivos com as estratégias 0-4-0 e 0-5-0, em que 0 significa a ausência de execução da respectiva fase, e foi observado que 1-2A-1 foi mais efetiva em termos da qualidade das soluções obtidas.

2.2 Algoritmo heurístico para PIMs de Ibaraki et al.

Motivado pelos resultados de Hillier (1969), abordada na seção 2.1, Ibaraki et al. (1974) apresentam uma variação para a heurística de três fases, com a introdução da possibilidade de tratar problemas que apresentam variáveis contínuas (PIMs). O problema a ser tratado é dado por

= = + = 1 2 1 1 max n j j j n j j jx e y c z (2.7) sujeito a j n ij j n ij i i n b a x d y x

= = + = − − 2 1 1 (i=1,2,...,m) (2.8)

(24)

j

y é inteiro (j=1,2,...,n2) (2.11) em que xn+i

1 , i=1,2,...,m são as variáveis de folga. Também é assumido, sem perda de

generalidade, que os coeficientes das restrições de igualdade são normalizados tal que 1 2 1 1 2 1 2 +

=

= = n j ij n j ij d a (i=1,2,...,m) A fase 1 é proposta a partir de uma formulação do PL modificada Q(u) descrita a seguir.

max λ (2.12) sujeito a λ − − − =

= = + j n j ij j n j ij i i n b a x d y x 2 1 1 1 1 (i=1,2,...,m) (2.13) c x e y u n j j j n j j j +

=

= = 2 1 1 1 (2.14) 0 ≥ j x (j=1,2,...,n1 +m) (2.15) 0 ≥ j y (j=1,2,...,n2) (2.16) λ≥0 (2.17) em que λ é uma nova variável e u é um valor constante. Q(u) é factível para valores de u no intervalo min max

z u

z ≤ ≤ , em que zmaxé o resultado do PL e zmin consiste no valor ótimo do PL tratado como um problema de minimização, com a possibilidade dezmin =−∞. O ótimo de Q(u) pertence à intersecção da região factível descrita por (2.8)-(2.10) e do hiperplano (2.14) e é o ponto que maximiza o mínimo das distâncias com os hiperplanos dados por (2.8). Sejam λ(u) e

(

x(u y), (u)

)

, o máximo valor de λ e o ponto ótimo de Q(u) respectivamente e <y(u)> o vetor inteiro obtido pela execução do arredondamento para o inteiro mais próximo em y(u). Nesse caso, se λ(u)≥12 n2 , todas as soluções pertencentes a uma hiper-esfera de raio 12 n e 2

centro em y(u) no espaço n -dimensional obtido após fixar as variáveis contínuas em 2 x(u) são factíveis. Então

(

x(u),< y(u)>

)

é uma solução factível inteira do PIM original, pois a máxima distância possível entre

(

x(u y), (u)

)

e

(

x(u),< y(u)>

)

é 12 n . Uma vez que 2 λ(u) não resulta sempre em λ(u)≥12 n2 , os autores propõem uma heurística de 3 fases em que são realizadas

(25)

A fase 1 consiste em resolver Q(u) iterativamente para valores decrescentes de u, a partir

de max

z

u= , com o objetivo de obter uma trajetória T composta por uma sucessão de segmentos de retas conectados.

A fase 2 é iniciada com um movimento sobre a trajetória T a partir do ponto ótimo do PL em direção à região interior. Para cada ponto analisado, é realizado o arredondamento para o inteiro próximo para as componentes inteiras e em caso de designação factível o PL residual é resolvido. Caso o resultado do PL residual seja factível, o resultado obtido é uma solução válida para o PIM. Caso contrário, é iniciada uma busca de factibilização em que a cada passo uma única variável inteira é decrementada ou incrementada em uma unidade. Uma vez que uma variável é modificada, a mesma é impedida de retornar ao valor anterior. O procedimento é realizado iterativamente até que seja encontrada uma solução factível para o PIM ou que seja atingido o número máximo de iterações determinado por um parâmetro. A escolha da variável é dada por medidas de infactibilidade calculadas a partir de dados do tableau ótimo do simplex original. A fase 2 é realizada até que um número pré-definido de soluções inteiras seja encontrado ou até que o número máximo de iterações, dado por um segundo parâmetro, seja atingido. Caso a fase termine sem encontrar nenhuma solução inteira, a heurística encerra com falha. Caso contrário, a fase 3 é iniciada.

Durante a fase 3, uma busca de melhoria é aplicada às soluções inteiras com maiores valores de função objetivo obtidas durante a fase 2. De modo semelhante ao modo 1 da fase 3 da heurística de Hillier (1969) é calculado para cada variável inteira, yj, o ganho rj = cˆj dj, em que

j

cˆ é o custo reduzido obtido a partir do tableau ótimo do respectivo PL residual da fase 2 e d é a j

máxima variação possível de yj na direção do crescimento da função objetivo. É imposto que d j

deve ser inteiro para valores superiores a uma unidade. São realizados decrementos ou incrementos unitários em variáveis com maior valor de r com o intuito de obter uma melhoria j

da solução obtida na fase 2. Em caso de infactibilidade, a busca factibilizadora da fase 2 é executada.

(26)

considerados satisfatórios para instâncias com ótimos desconhecidos da época e ao realizar a comparação com Hillier (1969) foi verificado que, em geral, o algoritmo proposto produz resultados de melhor qualidade, mas com a exigência de um tempo de processamento maior.

2.3 Métodos de caminhos interiores para procedimentos heurísticos para

programação inteira

Em Faaland e Hillier (1979) são propostas novas extensões para a fase 1 das heurísticas de Hillier (1969) e Ibaraki et al. (1974). Tais idéias são elaboradas para PIMs formulados da maneira descrita a seguir.

= = n j j jx c Z 1 max (2.18) sujeito a

= ≤ n j i j ijx b a 1 (i = 1, 2,..., m ) (2.19) xj ≥0 (i = 1, 2,..., n ) (2.20) j x inteiro (i = 1, 2,..., n′) (2.21) em que as variáveis xn′+1,...,xn são contínuas.

A fase 1 proposta por Hillier (1969) consiste na resolução do PL para a obtenção do ponto extremo ótimo x(1) e na resolução de um PL modificado para a obtenção de um ponto x(2)

interior tal que nem x(2) nem a solução inteira obtida pelo arredondamento de x(2) para o inteiro mais próximo violem as restrições ativas em x(1). O PL é modificado por meio do aperto das restrições ativas em x(1), o que é feito pela substituição de b por i

i i i b

b(2) = −∆

nas restrições ativas em x(1). Hillier (1969) propõe 2 métodos para o cálculo de ∆i, conforme

(2.5) e (2.6), mas após um estudo estatístico, Faaland e Hillier (1979) concluem que tais métodos são conservadores em excesso e propõem um terceiro método tal que

= = ∆ N j ij i a 1 2

(27)

em que N é o número de variáveis básicas no tableau do PL. Também é proposta uma extensão para a fase 1 similar a de Ibaraki et al. (1974). O procedimento consiste em obter uma trajetória linear por partes através da resolução do seguinte PL paramétrico para valores decrescentes de Z a partir do valor da função objetivo de (1)

x . r max (2.22) sujeito a i i j n j ijx r b a +∆ ≤

=1 (i=1,2,...,m) (2.23) c x Z n j j j =

=1 (2.24) xj ≥0 (j=1,2,...,n) (2.25) 0 > r (2.26)

A utilização de ∆i de acordo com os métodos 1, 2 e 3 define 3 novos métodos, denominados respectivamente métodos 1P, 2P e 3P. A resolução do PL paramétrico nos 3 métodos resulta em uma trajetória por pontos que sejam “os mais interiores possíveis”, ou seja, a cada valor de Z, ao resolver o PL paramétrico, é obtido o ponto da trajetória pertencente ao hiperplano (2.24) tal que o mesmo maximiza a menor distância para os hiperplanos correspondentes às desigualdades funcionais (2.19) em que cada método define uma maneira diferente de realizar a medida da distância.

Para o caso da existência de dificuldades na resolução do PL paramétrico, é proposta uma alternativa em que a restrição (2.24) é relaxada.

max r sujeito a i i j n j ijx r b a +∆ ≤

=1 (i=1,2,...,m) 0 ≥ j x (j=1,2,...,n)

(28)

reta uma trajetória linear por partes alternativa pode ser obtida. De forma análoga à extensão anterior, os métodos resultantes são denominados 1S, 2S e 3S.

Os testes para as extensões foram realizadas a partir de códigos em FORTRAN e executados em um sistema CDC-6400. As fases 2 e 3 foram mantidas fixas, e foram realizadas comparações entre o método 2 e os métodos 3, 2P e 2S propostos para a fase 1 em um grupo de 17 instâncias. Na comparação entre os métodos 2 e 3, foi observado que em 3 instâncias houve melhora no valor da função objetivo enquanto que em 1 instância ocorreu uma leve piora. Na comparação entre os métodos 2 e 2P foi observado que em 2 instâncias o método 2P obteve melhora, enquanto em outras 2 houve uma leve piora. Apesar do ganho modesto, é colocado que a extensão possui potencial de aplicação em problemas em que é difícil encontrar soluções factíveis. Nos testes com a extensão S, foi observado que a mesma freqüentemente fornece soluções de diferentes valores aos obtidos pelos métodos 2 ou 2P, mas com qualidade inferior na maioria dos casos. Assim, os autores propõem o uso de S como uma ferramenta de obtenção de diversificação de soluções. Os procedimentos testados foram também comparados com o de Ibaraki et al. (1974) e foi constatado que os resultados são competitivos.

2.4 Heurística de ponto de teto para problemas de programação inteira

Saltzman e Hillier (1992) propõem uma heurística para problemas de programação inteira pura (PI) que possuam pontos interiores cuja formulação é dada por (2.1)-(2.4). A heurística tem como base o conceito de “ponto de teto” (ceiling point). Um ponto x é considerado como ponto de teto em relação à região factível se o mesmo é uma solução inteira factível e se o decremento ou o incremento unitário em cada uma de suas variáveis resulta em uma solução infactível. Todos os pontos extremos da casca convexa formada pelos pontos inteiros factíveis do PI são pontos de teto. Uma classe mais ampla de soluções é dos pontos “1-ponto de teto” (1-ceiling point). Um ponto inteiro é 1-ponto de teto em relação à i-ésima restrição do problema se o mesmo atender a restrição i e se possuir uma variável x , que ao sofrer uma variação de uma unidade, leva a uma j

solução que viole a restrição i. Analogamente, um ponto inteiro é 1-ponto de teto em relação à região factível se o mesmo é factível no PI e se existir uma variável x que, ao ser decrementada j

(29)

Conforme mostrado por Saltzman e Hillier (1992), um PI limitado, factível e não trivial (ou seja x=0 não é o ótimo do PI), possui uma solução ótima que é 1-ponto de teto em relação à alguma restrição funcional. Amparado por esse fato e dado que o uso de pontos de teto acarreta em maior custo computacional do que o uso de 1-pontos de teto, a heurística foi elaborada com foco na busca de pontos que são 1-pontos de teto. Como descrito a seguir, a heurística proposta consiste em 3 fases, como na heurística de Hillier (1969), abordada na seção 2.1, e tem como parâmetros de entrada os inteiros K1,K2,K3,K4 e K . 5

Na fase 1 da heurística, o método simplex é aplicado com o intuito de obter o ponto ótimo do PL, x(1), e a partir do tableau ótimo é determinado um conjunto { 1, 2,..., n}

d d

d de raios

extremos do cone poliedral cujo vértice é x . Os raios são normalizados tal que (1) ||dk ||=1 para } ,..., 2 , 1 { n k∈ .

A fase 2 tem como o primeiro passo a escolha de um hiperplano correspondente a uma restrição ativa em x(1) de modo a determinar uma região de busca. Dado que a taxa de degradação da função objetivo ao adotar uma trajetória na direção dk

a partir de x(1) é computada por k k

cd =

ρ para k∈{1,2,...,n}, é escolhido o hiperplano que contém os raios cuja soma das taxas de degradação oferece o menor valor.

No segundo passo desta fase, é escolhida uma direção de busca no hiperplano, que é dada por

∈ = h E k k d d

em que E é o conjunto de índices dos raios contidos no hiperplano escolhido. h

No terceiro passo, é realizado um movimento sobre o raio x(1) +θd a partir de (1)

x , de modo que θ é aumentado gradualmente de forma a buscar pontos xt =x(1) +θtd tal que xt apresenta uma variável inteira, ou seja, são buscadas as intersecções entre o raio e os hiperplanos coordenados do tipo xj =v, em que v é inteiro. A partir de cada ponto t

x é realizado um arredondamento de modo a obter um ponto inteiro yt. Para o arredondamento, todas as desigualdades são colocadas na forma ≤ e a seguinte regra é seguida:

(30)

 

 

     < = + > = 0 se 0 se 2 1 0 se hj t j hj t j hj t j t j a x a x a x y

em que h é o índice da restrição correspondente ao hiperplano escolhido.

Essa regra leva a pontos que satisfazem a restrição h, pois com sua aplicação, é obtido um

ponto tal que t h

h t

hya x =b

a , mas não garante que t

y satisfaça outras restrições. Além disso, o arredondamento proposto não garante que t

y seja 1-ponto de teto em relação a h em problemas de dimensão maior que 2, mas caso sejam encontradas soluções inteiras factíveis, os procedimentos da fase 3 garantem a obtenção de uma solução 1-ponto de teto em relação à região factível. A busca sobre um raio é realizada por K iterações ou até que seja verificada que a 3

soma das infactibilidades de t

y não diminuiu por K iterações. A busca sobre um raio também é 2

interrompida se é encontrada uma solução y que apresenta uma degradação em relação à uma t solução s

y encontrada anteriormente a partir de um mesmo raio, tal que t s

cy

cy < . Esgotadas as possibilidades de encontrar pontos em um hiperplano de busca, outro hiperplano de busca é escolhido. Após a análise de K hiperplanos ou a obtenção de 4 K pontos 1

t

y inteiros factíveis a fase 2 é encerrada. Outro critério de parada para a fase 2 é a obtenção de um ponto y que seja t ponto de teto em relação à região factível, ou seja um ponto t

y que possivelmente é um ponto extremo da casca convexa dos pontos inteiros factíveis do PI. Caso seja obtido um ponto

PL

t

z

=

y , em que zPL é o valor da função objetivo no ótimo do PL a fase 2 é também encerrada.

Caso sejam encontradas soluções inteiras factíveis na fase 2, os K5 melhores pontos

t

y são selecionados para a aplicação da fase 3, que constitui em uma busca de melhoria realizada com o uso de dois operadores. No primeiro, apenas uma variável de yt é alterada por vez. Inicialmente são calculadas as máximas variações inteiras possíveis para cada variável, ∆j, de modo a manter a factibilidade e obter o aumento no valor da função objetivo. A seguir, a variável

l, é escolhida conforme } { max arg } ..., 2 , 1 { j j n j c l∈ ∆ ∈

(31)

O segundo operador envolve modificações em duas variáveis. Inicialmente uma variável j sofre decremento ou incremento unitário respectivamente se 0

1 >

= m i ij a ou 0 1 <

= m i ij a , com o intuito de aumentar a factibilidade da solução. Caso seja obtido um ponto inteiro factível, o primeiro operador é utilizado em variáveis diferentes de j numa tentativa de melhorar a qualidade da solução. Caso contrário, um procedimento de factibilização é executado. Esse procedimento é semelhante ao primeiro operador, mas no caso é verificada a possibilidade de obter valores ∆k,

tal que uma variação em uma variável k leve a uma solução factível de melhor qualidade. Após o teste em todas as variáveis y , o processo é terminado com a escolha do movimento que produz tj

uma solução inteira factível com maior valor de função objetivo.

O algoritmo foi implementado em um computador DEC VaxStation II com 10MB de memória principal com o uso da linguagem FORTRAN e foi executado para alguns conjuntos de instâncias encontradas em literatura. Ao realizar a comparação do desempenho com outras heurísticas, foi observado que houve um ganho de desempenho em relação à heurística de Balas e Martin (1980), tratada na seção a seguir, mas que o desempenho ficou aquém do observado na heurística de Hillier (1969), tratada na seção 2.1.

2.5 Heurística de pivoteamento e complemento para problemas de

programação binária

Balas e Martin (1980) elaboraram uma heurística para PB, formulado como } } 1 , 0 { , | max{cx Axb xn

A heurística tem como base o uso do PL obtido por meio da relaxação das condições de integralidade do PB. A motivação para isso surge do fato de que variáveis não básicas recebem automaticamente valores inteiros, o que permite dizer, que é possível obter soluções inteiras factíveis do PB a partir de soluções básicas factíveis do problema de relaxação linear em que todas as variáveis de decisão são não básicas.

(32)

∈ − + = NB j j ij i i a a x x 0 ( ) para todo i∈{0}∪B

em que NB e B representam respectivamente o conjunto dos índices das variáveis básicas e não básicas. Em seguida são realizados sucessivamente 2 tipos de pivoteamento até que uma solução inteira factível seja encontrada ou as possibilidade de movimento sejam esgotadas. O pivoteamento tipo 1 consiste em retirar da base uma variável binária e inserir uma variável de folga não básica no seu lugar. Caso exista mais de uma possibilidade, a opção que resulta em maior valor de função objetivo é escolhida. O tipo 2 consiste em pivoteamento entre 2 variáveis de folga ou entre 2 variáveis binárias, tal que o movimento deve levar à diminuição da infactibilidade inteira dada por

∩ ∈ − I B i i i a a ,1 } min{ 0 0

em que I é o conjunto das variáveis binárias. Caso nenhuma solução inteira factível seja encontrada, a heurística prossegue com a aplicação do arredondamento mais próximo e do truncamento, operação em que todas as variáveis fracionárias são substituídas por 0.

Na ausência de sucesso, é realizado um pivoteamento de tipo 3, que é semelhante ao pivoteamento de tipo 1, mas com a diferença de que nesse caso a factibilidade primal é sacrificada e o par de variáveis a ser escolhido deve ser tal que a infactibilidade resultante calculada por

∈ − B i i a } , 0 max{ 0

deve ser minimizada. Após o pivoteamento, são realizadas sucessivas operações em que uma ou duas variáveis são complementadas para diminuir a infactibilidade. Caso nenhuma solução factível no PL seja encontrada, o procedimento é encerrado com fracasso. Caso contrário, a solução obtida é submetida ao arredondamento e ao truncamento. Caso não seja obtida uma solução inteira factível, o procedimento retorna à aplicação do pivoteamento do tipo 1.

Caso a fase de busca acabe com sucesso, é iniciada a fase de melhoria, que é uma busca local que utiliza 3 movimentos. O primeiro consiste em realizar o complemento em uma única variável, tal que o valor da função objetivo resultante seja o maior possível. O segundo é realizado a partir do complemento de 2 variáveis. No caso a operação é realizada no primeiro par em que é detectada a possibilidade de melhoria. O terceiro movimento é análogo ao segundo, mas são utilizadas 3 variáveis ao invés de 2.

(33)

O algoritmo foi codificado em FORTRAN IV e foi executado em computadores UNIVAC 1108 e Amdahl 470. Do total de 92 instâncias testadas, foram obtidas soluções inteiras factíveis em 91 delas, sendo que em pelo menos 45 dos casos, o resultado era ótimo. Ao se realizar uma comparação com Toyoda (1975), foram observados melhores valores sob o ponto de vista da função objetivo, mas o tempo de processamento foi mais elevado. Ao realizar a comparação em instâncias de cobertura de conjuntos com os métodos exatos de Salkin e Koncal (1973) e Lemke et al. (1971) foi observado que a heurística proposta necessitou de um esforço computacional menor que os algoritmos exatos e que em 17 das 20 instâncias testadas, o ótimo foi atingido.

2.6 Heurística de pivoteamento e deslocamento para problemas de

programação inteira mista

A heurística de pivoteamento e complemento para PB apresentada na seção 2.5 foi estendida para PIM por Balas e Martin (1980) e foi aprimorada por Balas et al. (2004), em que novas estratégias de busca foram desenvolvidas e a plataforma de implementação foi modernizada com a utilização do pacote XPRESS. A formulação do PIM não é explicitada no trabalho, mas uma vez que as instâncias utilizadas para a execução de testes são de minimização, a formulação a seguir foi utilizada para ilustrar a heurística analisada.

minz=cx sujeito a

Axb

x inteiro para todo j jIN

xj ≥0 para todo jN

em que I é o conjunto das variáveis inteiras e N={1,2,...,n}.

Como na heurística para PB, a heurística inicia com uma fase de busca por uma solução inteira factível e em caso de sucesso é seguida por uma fase de melhoria. Na primeira fase também são utilizados 3 tipos de pivoteamento, mas diferentemente da heurística anterior, a factibilidade primal é sempre mantida. O pivoteamento de tipo 1 consiste em substituir na base

(34)

consiste em substituição envolvendo um par de variáveis contínuas ou um par de variáveis inteiras, mas nesse caso com o intuito de diminuir a infactibilidade inteira dada por

   

∩ ∈ − − I B i i i i i x x x x , } min{

em que B é o conjunto das variáveis básicas. A fase de busca é iniciada com a resolução do PL seguida pela aplicação exaustiva do pivoteamento de tipo 1. Em seguida, o resultado passa pelo arredondamento para o inteiro mais próximo, e caso seja encontrada uma solução inteira factível a fase de busca é encerrada com sucesso. Caso contrário, pivoteamentos de tipo 3 e 2 são realizados intercalados pelo processo de arredondamento para o mais próximo. Ao esgotar a possibilidade de diminuição da infactibilidade inteira no pivoteamento de tipo 3, a heurística segue para a busca em vizinhança pequena (small neighborhood search). Primeiramente, é definido um conjunto

   

{

∈ ∩ − − ≤α

}

= i B I:min{xi xi , xi xi}

S

em que α é um número pequeno. Em seguida, dado x , obtido ao realizar o arredondamento i

para o inteiro mais próximo em xi, é imposto o seguinte par de restrições

1 1≤ ≤ + −

∈ ∗ ∈ ∈ ∗ S j j S j j S j j x x x

e um pacote de resolução de PIM é executado. Caso seja obtido uma solução inteira factível, a fase de busca é encerrada com sucesso. Caso contrário, a heurística é encerrada com fracasso.

A fase de melhoria, uma busca por soluções com valores de função objetivo menores, é iniciada com a realização de operações de deslocamento, que consiste em incrementar ou decrementar em uma unidade até 3 variáveis simultaneamente, sempre com a manutenção da factibilidade. Essa etapa é realizada até que um limite de tempo é atingido e em seguida é realizada uma busca em vizinhança grande (large neighborhood search) em que, dados os valores inteiros x da solução incumbente, o seguinte par de restrições i

k x x k x I j j I j j I j j − ≤

+

∈ ∗ ∈ ∈ ∗ ,

em que k >1, é imposto e um pacote de resolução de PIM é executado.

A heurística foi implementada utilizando os recursos do pacote XPRESS 14.20 e foi executado em um computador Pentium 4 1.7GHz com 1300MB de RAM. Para os testes foram utilizados 68 instâncias retiradas da literatura e os resultados foram comparados com os valores

(35)

obtidos a partir da utilização do módulo de resolução de PIM nativo do XPRESS. Ambas as execuções foram realizadas com um limite de tempo de 20 minutos. Foi observado um desempenho superior do XPRESS em 15 instâncias enquanto o desempenho do método heurístico proposto foi superior em 53 instâncias.

2.7 Cut Search

Glover e Laguna (1997a) expõem uma proposta para o aproveitamento da geometria do problema para a criação de heurísticas para o PI com possibilidade de extensão para o PIM. A primeira proposta consiste no Cut Search ou método de busca de cortes. A formulação do PI não é explicitada pelos autores, mas pode ser caracterizado pelas seguintes expressões.

cx = z min (2.27) sujeito a b Ax≥ (2.28) j

x inteiro para todo jI =N ={1,2,...,n} (2.29)

j j j x U

L ≤ ≤ (2.30) Como o nome sugere, este método é baseado no procedimento para a obtenção de um corte, ou seja, de uma desigualdade que torna infactível a solução do PL, mas não exclui nenhum ponto factível pertencente ao PI, sugerindo desta forma a integração com estratégias de resolução exatas de PI como o branch-and-bound e o branch-and-cut. Em particular, neste caso é utilizada a categoria dos cortes de convexidade (convexity cut ou ainda intersection cut), com uso de uma perspectiva geométrica, em que são utilizadas informações resultantes da resolução do PL por meio do método simplex. A Figura 2.1 ilustra tal geometria. A região factível corresponde a um cone poliedral, cujo vértice é dado por x(0)1. As linhas cheias correspondem aos raios extremos do cone poliedral.

O corte de convexidade é construído a partir de uma região convexa que contém x(0) mas não possui nenhuma solução inteira em seu interior. Um exemplo é dado pela região cujas soluções satisfazem as desigualdades

≤ ≤

para uma dada variável x , jI, cujo

(36)

partir do vértice até atingirem a fronteira da região convexa. O hiperplano formado pelos pontos obtidos por meio da intersecção dos raios e da fronteira forma um plano de corte segundo o teorema de corte de convexidade (convexity cut theorem) exposto no próprio artigo. Um exemplo deste corte é dado na Figura 2.2 em que as linhas cheias representam o cone e as linhas tracejadas os planos de corte.

Figura 2.1: Exemplo de cone poliedral bidimensional. Glover e Laguna (1997a)

(37)

Para a integração dos métodos de planos de corte e dos métodos de busca são utilizadas as noções de valores admissíveis e de hiperplanos (coordenados) admissíveis. Os primeiros são definidos para uma variável x ,j jI, em que I é o conjunto das variáveis inteiras, como valores

inteiros que respeitam os limitantes LjxjUj. Os segundos são definidos como hiperplanos na forma xj =v, para jI, tal que v seja um valor admissível para x . Seja C uma coleção de j

hiperplanos admissíveis e para cada variável x ,j jI, o conjunto V é tal que j

j

V = {v : o hiperplano xj =v pertence a C } Desta forma, podemos determinar um conjunto de soluções X(C) tal que:

) (C

X ={ x : xjVj para todo jI}.

A integração das duas estratégias é conseguida na medida em que é introduzido o conceito de cortes condicionais a X(C), ou seja, desigualdades que excluem x(0), mas não excluem as soluções do PI à exceção de alguns pontos pertencentes a X(C). Assim, é observado que os cortes condicionais tendem a dominar os cortes convencionais, na medida em que os últimos não excluem nenhuma solução do PI, permitindo apenas a diminuição do tamanho da região factível do PL, ao passo que os cortes condicionais possibilitam a exclusão de soluções de ambos PI e PL. Além disso, a proximidade dos pontos obtidos em X(C) com o ponto ótimo do PL sugere a possibilidade de que soluções de qualidade sejam encontradas por meio de uma busca entre os membros desse conjunto. A partir desta motivação, Glover e Laguna (1997a) propõem um método em que o conjunto C é construído a partir dos hiperplanos admissíveis adjacentes a x(0) e de alguns hiperplanos admissíveis interceptados ao se estender os raios extremos do cone poliedral a partir de x(0). A região convexa delimitada pelos hiperplanos adjacentes a C e os raios extremos são utilizados de forma análoga ao corte de convexidade para a geração de um corte condicional a X(C), conforme dado pelo teorema da busca de corte (Cut Search theorem).

Referências

Documentos relacionados

O objetivo deste trabalho foi realizar o inventário florestal em floresta em restauração no município de São Sebastião da Vargem Alegre, para posterior

O candidato poderá optar pela entrega do comprovante legal das notas do ENEM - Exame Nacional de Ensino Mé- dio em substituição à Prova Objetiva e/ou a Prova Discursiva, valendo,

Estudo de caso (ações do coletivo Lupa) Questionários Quanto aos procedimentos Pesquisa Básica Quanto a Natureza Registros fotográficos Quanto ao método

Considerando que a maioria dos dirigentes destas entidades constituem-se de mão de obra voluntária e na maioria das vezes sem formação adequada para o processo de gestão e tendo

Higher frequencies of verbal violence reports are found among younger workers with less professional experience in nursing, which may be explained by the fact that they do

Quanto ao encaminhamento do usuário com suspeita de neoplasia de cabeça e pescoço este, é realizado por meio do uso da ferramenta de referência e contrarreferência, porém é

Resultados — O exame ao microscópio das seções ultrafinas de tecido foliar de feijoeiro infetado pelo VMAF-P revelou a presença abundante de inclusões lamelares de variado

r ealizar um diagnóstico organizacional concernente à oferta de atividade física na instituição; Verificou-se que há muitas divergências de opiniões na qualidade dos