Definição III.2 Invólucro convexo
III.1.3 Outros desenvolvimentos
Os planos de corte pareceram inicialmente muito promissores, mas rapidamente se revelaram ineficazes computacionalmente. Como vários autores afirmaram, são matematicamente elegantes mas apresentam propriedades pobres de convergência e a maior dificuldade advém, não do número de iterações, mas sim dos erros da aritmética em computador (BALAS ET AL., 1996B). A
construção de planos de corte de Gomory tem um baixo custo computacional mas estes são, em geral, pouco profundos. As dificuldades agravam-se quando se começam a tornar muito próximos uns dos outros, de iteração para iteração.
Em 1971, Balas propõe uma nova classe de planos de corte para programação inteira (BALAS,
1971). Estes cortes, designados por cortes de intersecção, são definidos da seguinte forma: dada uma solução x não inteira e óptima da relaxação linear do problema, define-se o hipercubo unitário que contém x e vértices inteiros e define-se a hiperesfera que circunscreve o hipercubo; esta hiperesfera intersecta em n pontos independentes as n semi-rectas com origem em x que contêm as n arestas do conjunto admissível relaxado (considerando-se x não degenerado); o hiperplano que passa por esses n pontos de intersecção define um corte válido para o problema inteiro. Neste trabalho mostra-se que os cortes fraccionários de Gomory são casos particulares dos cortes de intersecção em virtude da hiperesfera poder ser substituída por outra hipersuperfície convexa com determinadas propriedades. Estes planos de corte, bem como as
desigualdades disjuntivas que se baseiam na investigação levada a cabo por Balas sobre a disjunção
de poliedros, também na década de 70, serviram de base a desenvolvimentos mais recentes que revelaram sucesso na prática. As desigualdades disjuntivas são desigualdades válidas para um conjunto que é a união de dois conjuntos disjuntos.
A área dos planos de corte continuou a despertar o interesse de muitos investigadores e trabalhos posteriores demonstraram a sua capacidade na resolução de problemas mais específicos, ou quando inseridos num algoritmo de enumeração. Destacamos o trabalho de Crowder-Johnson-Padberg (CROWDER ET AL., 1983) pelos notáveis resultados computacionais
numa colecção de problemas inteiros 0-1 com uma única característica comum, o facto de serem esparsos. O algoritmo de resolução usa sequencialmente três técnicas: pré-processamento de problemas, geração de planos de corte e branch-and-bound. Os principais planos de corte usados são designados por desigualdades de cobertura mínima estendidas. Estas consistem em aproximações do invólucro convexo para o problema de mochila (knapsack) 0-1. As desigualdades de cobertura para politopos 0-1 knapsack foram desenvolvidas em simultâneo por vários autores e publicadas em 1975 (c.f. WOLSEY, 1998). Mas, o maior passo surgiu posteriormente com o uso destas
desigualdades por CROWDER ET AL. (1983) em problemas de programação 0-1. A identificação
de cortes neste algoritmo consiste no seguinte: dada a solução óptima do problema da relaxação linear, x , tenta-se encontrar desigualdades de cobertura mínima (para definição, ver o anexo III.A) que cortem x ; caso não existam, tenta-se encontrar um outro tipo de desigualdades, designadas por desigualdades de configuração (1,k). Este processo procura identificar uma desigualdade por cada linha da matriz original das restrições, que será depois sujeita a um processo de extensão (também chamado de elevação) e adicionada ao problema de relaxação linear. O problema aumentado é
então re-optimizado. O procedimento repete-se até que seja obtida uma solução 0-1 ou não se consiga encontrar mais nenhum corte, ou ainda, se o ganho na função objectivo for demasiado pequeno. Nos dois últimos casos, inicia-se um processo de branch-and-bound. A vantagem das desigualdades usadas é que preservam a esparsidade das matrizes, ao contrário do que acontece com os tradicionais planos de corte que são tipicamente densos. Além disso, têm sempre coeficientes inteiros pequenos.
Também JOHNSON ET AL. (1985) abordam a resolução de problemas de programação inteira
0-1 através de pré-processamento, geração de desigualdades de cobertura e branch-and-bound. Neste trabalho, os problemas tratados são particulares seguindo modelos de planeamento hierárquico de grande escala.
Desenvolvimentos mais recentes incluem a generalização de desigualdades de cobertura para
knapsacks 0-1 com restrições de limite superior generalizadas (GU ET AL, 1998) e para knapsacks inteiros (CERIA ET AL., 1998). Neste último trabalho investiga-se o uso de planos de corte em
problemas com variáveis inteiras genéricas. Mostra-se como se podem gerar planos de corte a partir de restrições do tipo knapsack, estendendo depois essas desigualdades (à semelhança das desigualdades de cobertura mínima estendidas para variáveis 0-1). Cada um destes planos de corte resulta da solução de um problema de knapsack inteiro (que é resolvido heuristicamente) e alguns cálculos auxiliares para os quais se usa programação dinâmica. Os autores exploram ainda o uso de planos de corte inteiros-mistos de Gomory e a consideração destes e dos anteriores para “fortalecer” a formulação de um problema antes de uma pesquisa de branch-and-bound. Dos resultados computacionais apresentados, onde se inclui a comparação com um branch-and-bound simples, verifica-se que o uso dos dois tipos de cortes com branch-and-bound é a melhor estratégia para a maior parte dos casos.
Um outro tipo de desigualdade válida usado em programação 0-1 mista chama-se desigualdade
de cobertura de fluxo. VAN ROY E WOLSEY (1987) desenvolveram um sistema experimental que
implementa este tipo de desigualdade. Neste trabalho, os autores descrevem uma abordagem que consiste no uso de planos de corte para reformular e resolver problemas 0-1 mistos. Após a reformulação, o problema é resolvido por branch-and-bound. Esta abordagem foi motivada em parte pelo sucesso do trabalho de outros autores, como por exemplo, o de CROWDER ET AL. (1983). Os autores abordam não só a geração de cortes para restrições 0-1 puras (desigualdades de
cobertura mínima estendidas), como também a geração de cortes para restrições 0-1 mistas. Assim, é
alargada a noção de cobertura (cobertura generalizada) para linhas 0-1 mistas. Tanto nas desigualdades de cobertura mínima (estendidas) como nas de cobertura de fluxo (estendidas), o esforço computacional envolvido na geração de cortes não é muito elevado porque o problema de separação de knapsack é resolvido heuristicamente (problema auxiliar para gerar uma desigualdade que corte a solução da relaxação linear).
GOEMANS (1989) estuda um modelo inteiro-misto que consiste numa restrição 0-1 mista, à qual se juntam restrições de limite superior variável para as variáveis contínuas. Neste trabalho, é derivada uma classe de inequações válidas a partir das desigualdades de cobertura de fluxo usadas por VAN ROY E WOLSEY (1987).
BOYD (1994) apresenta uma técnica para gerar planos de corte (designados por cortes de
Fenchel) para programas inteiros que se baseia na habilidade em optimizar uma função linear num poliedro. O algoritmo proposto é um algoritmo puro de planos de corte. Os planos de corte usados são desigualdades fortes mas, em contrapartida, requerem algum esforço computacional na sua geração. Para determinar um corte é necessário resolver um problema auxiliar para o qual se usa programação generalizada que aproxima sucessivamente uma função côncava por um conjunto de segmentos lineares por troços. Segundo o autor, a programação generalizada pode, contudo, revelar-se inadequada para dimensões elevadas do problema auxiliar, o que está relacionado essencialmente com a densidade da matriz original.
Recentemente têm sido propostos métodos para obter formulações mais “robustas” de problemas 0-1 mistos, que se relacionam com o trabalho de Balas na programação disjuntiva e nos cortes de intersecção (BALAS, 1971). Um exemplo destes métodos deve-se a BALAS ET AL.
(1993). Os autores propõem um algoritmo de planos de corte, em que cada corte é obtido a partir da solução de um programa linear com cerca de duas vezes o tamanho da relaxação linear do problema original. O objectivo desse programa é escolher o corte mais ‘fundo’ de entre uma dada família de desigualdades violadas pela solução não inteira actual. Trata-se de um processo que eleva o problema a um espaço de maior dimensão, onde uma formulação mais conveniente pode proporcionar uma relaxação mais “estreita”. Esta é depois projectada no espaço original. Na prática, sob o nome de lift-and-project (elevar e projectar), foi desenvolvido um algoritmo de planos de corte disjuntivos.
Como já referimos atrás, muitas das técnicas de planos de corte têm o seu papel mais importante numa fase de reformulação do problema. Se, durante essa fase, não se atingir a solução óptima, então avança-se para um algoritmo de enumeração (do tipo branch-and-bound) com uma formulação “fortalecida”. É, pois, uma espécie de pré-processamento iterativo que pode ou não terminar na solução óptima. Este processo difere do tradicional pré-processamento (BREARLY ET AL., 1975) que consiste, basicamente, em percorrer as linhas e as colunas do problema para identificar linhas redundantes, detectar variáveis que se podem tornar fixas, incrementar (decrementar) limites inferiores (superiores) de variáveis e modificar coeficientes de matrizes. O tradicional pré-processamento não deve, aliás, ser negligenciado na resolução de um problema de programação inteira (seja qual for o método usado a seguir) porque pode
simplificar o problema. Notemos que alguns dos trabalhos citados que obtiveram êxito na prática incluem, antes da geração de cortes, o pré-processamento de problemas (por exemplo, CROWDER ET AL., 1983 e JOHNSON ET AL., 1985).
Para além dos algoritmos que geram planos de corte antes de se iniciar a resolução através de
branch-and-bound, existem também aqueles em que os planos de corte são gerados ao longo da
árvore de branch-and-bound. Estes algoritmos são habitualmente designados por branch-and-cut. Na prática, deve ser estabelecido um compromisso entre a geração de cortes, que implica um maior esforço computacional em cada nodo, e a ramificação.
BALAS ET AL. (1996A) investigam o desempenho computacional da incorporação de planos de
corte do tipo lift-and-project (BALAS ET AL., 1993) num enquadramento branch-and-cut para problemas 0-1 mistos. Os autores defendem que os cortes gerados num nodo devem ser globalmente válidos para que o algoritmo branch-and-cut seja eficaz. Caso contrário, seria necessário tratar e guardar separadamente os cortes relativos a cada nodo da árvore de pesquisa, o que requereria um grande esforço computacional (tanto em tempo como em memória). Nessa perspectiva, foi desenvolvido um processo que começa por gerar um corte válido para um nodo da árvore, ‘elevando-o’ em seguida de modo a tornar-se válido para todo o problema. Os testes computacionais, em problemas 0-1 puros e mistos, revelaram que o código é eficaz. O seu desempenho em várias instâncias foi tão bom ou superior ao de alguns dos melhores códigos inteiros-mistos disponíveis até ao momento. Em alguns casos foi mesmo mais eficaz que algoritmos actuais específicos para determinados problemas.
Os cortes inteiros-mistos de Gomory foram também reavivados como um meio computacional num contexto de branch-and-cut para problemas 0-1 mistos (BALAS ET AL, 1996B).
Neste trabalho, os autores mostram que é possível estender estes cortes por forma a que, sendo gerados num nodo, sejam globalmente válidos. Este resultado é válido apenas para programas 0-1 mistos e, segundo os autores, não é extensível ao caso geral com variáveis inteiras (puro ou misto). Os autores salientam ainda que não é conhecido nenhum resultado semelhante para o caso geral. Para os testes computacionais foram usados os problemas testados por BALAS ET AL.
(1996A). O branch-and-cut de BALAS ET AL. (1996B) conseguiu resolver mais instâncias do que
vários algoritmos de branch-and-bound puro, mas menos (4 em 29) do que o algoritmo de BALAS ET AL.(1996A). Porém, o algoritmo de BALAS ET AL. (1996B) conseguiu superar em tempo
computacional o algoritmo de BALAS ET AL. (1996A) em quase metade das instâncias. Os autores
questionam-se então: “porque é que os cortes de Gomory funcionam bem nas nossas experiências se isso ainda não tinha acontecido no passado?” As razões que apontam como as mais prováveis para explicar este facto são as seguintes: (i) são gerados vários cortes de cada vez e não um em cada re-optimização; (ii) os cortes são gerados em diferentes nodos da árvore o que ajuda a afastarem-se de um efeito de paralelização; (iii) os cortes são globalmente válidos (numa
experiência computacional com cortes locais, o código falhou em cerca de metade dos problemas); (iv) os cortes são usados selectivamente, ou seja aqueles que são localmente redundantes não são incluídos, o que permite evitar algumas dificuldades numéricas; (v) os códigos de resolução de programas lineares são mais robustos agora do que há 30 anos atrás.
Estes trabalhos mais recentes abrem novas perspectivas na utilização dos planos de corte, mesmo para os mais clássicos, deixando bem visível que a área dos planos de corte continua a ser alvo do interesse de muitos investigadores.
Esta breve introdução e revisão que fizemos a trabalhos desenvolvidos na área dos planos de corte não é de forma alguma exaustiva. Pretendemos apenas apontar os principais tipos de planos de corte usados, os problemas a que se adequam e o seu desempenho. É de salientar que existem vários outros trabalhos nesta área que são específicos a problemas particulares, como por exemplo, o problema da árvore de Steiner, caixeiro viajante, etc.
O método interactivo para problemas de PLIMO que apresentaremos neste capítulo usa planos de corte na resolução dos programas inteiros escalarizantes. Por questões de simplicidade na geração dos cortes, os planos de corte adoptados são os cortes fraccionários de Gomory e as desigualdades de cobertura mínima estendidas de Crowder-Johnson-Padberg (CROWDER ET AL.,
1983). Estas últimas apenas se adequam aos programas escalarizantes de problemas multiobjectivo com variáveis 0-1. Como veremos, o método não tira partido da especificidade dos planos de corte usados e, por isso, não há qualquer limitação que o obrigue a confinar-se a estes tipos de planos de corte. Pela mesma razão, remetemos para o anexo III.A a descrição das desigualdades de cobertura mínima estendidas.