Este capítulo é parcialmente baseado em ALVES E CLÍMACO (1997) e ALVES E CLÍMACO
(1999A), e apresenta um método interactivo que desenvolvemos para problemas de programação
linear inteira pura multiobjectivo (PLIMO). Este método combina a utilização de programas escalarizantes de Tchebycheff, planos de corte e técnicas de análise de sensibilidade.
As abordagens multiobjectivo baseadas em pontos de referência podem ser particularmente interessantes para o tratamento de problemas com variáveis inteiras uma vez que permitem alcançar qualquer solução não dominada, suportada ou não suportada. Este tipo de abordagens usa habitualmente programas escalarizantes baseados na métrica de Tchebycheff ou, mais genericamente, programas escalarizantes de realização do tipo min-max que projectam pontos de referência no conjunto das soluções não dominadas. As abordagens interactivas, a nosso ver as mais adequadas para tratar os problemas de PLIMO, incorporam informação sobre as preferências do AD nos referidos programas escalarizantes para produzir novas soluções não dominadas. Essa informação consiste na especificação de um novo ponto de referência – como, por exemplo, no método de VASSILEV E NARULA (1993) – ou na indicação implícita ou explícita
de ‘pesos’ que alteram a direcção de projecção de um ponto de referência fixo – é o caso, por exemplo, do método de STEUER E CHOO (1983) que utiliza a métrica pesada de Tchebycheff com variação dos pesos. A alteração do ponto de referência ou do vector de pesos não garante, porém, que a solução não dominada seguinte seja diferente da anterior. Relembramos que os problemas tratados são de programação inteira, em que o conjunto das soluções é discreto, existindo portanto um subconjunto de valores dos parâmetros (sejam eles pontos de referência ou pesos) correspondente a cada solução. Assim, para além da necessidade de se resolver um
novo problema monocritério de programação inteira de cada vez que se alteram os parâmetros, não sabemos a priori se não existirá uma repetição de cálculos. Esta questão agrava as dificuldades computacionais do tratamento dos problemas de PLIMO.
A abordagem que propomos tenta mitigar essas dificuldades, incorporando mecanismos de
análise de sensibilidade para a alteração dos parâmetros – no nosso caso, o ponto de referência – e
resolvendo os sucessivos programas escalarizantes de forma “encadeada” para diminuir o esforço computacional envolvido. A análise de sensibilidade tem como intenção facilitar a intervenção do AD, porque altera automaticamente o ponto de referência quando o AD está interessado em conhecer soluções não dominadas próximas da actual. Isto evita que o AD escolha pontos de referência que possivelmente conduziriam à mesma solução.
O programa escalarizante usado para o cálculo de soluções não dominadas consiste na minimização da distância aumentada (não pesada) de Tchebycheff a um ponto de referência, programa ∞+ρ
, z
P (de acordo com a definição na secção II.1.3). A parametrização do programa
escalarizante através do ponto de referência permite alcançar qualquer solução não dominada e apresenta, a nosso ver, duas importantes vantagens face a uma variação de pesos na métrica pesada de Tchebycheff:
− O cálculo de soluções não dominadas que melhoram sucessivamente um dado objectivo pode ser obtido incrementando-se a correspondente componente do ponto de referência e mantendo-se as outras componentes iguais. Este resultado (apresentado adiante na proposição III.4) permite que se estabeleça um diálogo simples, em que o AD apenas tem que indicar o objectivo que gostaria de melhorar relativamente à solução não dominada anterior.
− Apesar de a programação inteira oferecer grandes dificuldades para qualquer tipo análise de
sensibilidade, é mais fácil lidar com variações nas componentes do ponto de referência do que
nos pesos porque, enquanto que as primeiras surgem nos termos independentes das restrições, os segundos surgem em coeficientes técnicos das restrições. E, como referimos atrás, é importante que se disponha de algum mecanismo de análise de sensibilidade que detecte, pelo menos parcialmente, pontos de referência que conduzem à mesma solução. A técnica adoptada para resolver os programas escalarizantes é a de planos de corte . Apesar de os planos de corte terem demonstrado grandes limitações práticas como técnica de resolução isolada de problemas (genéricos) de programação inteira, eles facilitam a incorporação da análise
de sensibilidade e a resolução “encadeada” dos sucessivos programas escalarizantes. Essa foi a
principal razão que nos motivou a usar planos de corte neste trabalho. Além disso, há estudos recentes que têm demonstrado o valor dos planos de corte na resolução de certas classes de
problemas inteiros puros ou 0-1 mistos, ou na sua integração em esquemas de branch-and-bound. A versão actual do método usa apenas planos de corte fraccionários de Gomory (GOMORY, 1963) e desigualdades de cobertura mínima estendidas (CROWDER ET AL., 1983), em que estas últimas apenas se aplicam a problemas com variáveis 0-1. Alguns dos novos desenvolvimentos da área dos planos de corte não se enquadram de forma directa na nossa abordagem multiobjectivo e por isso não foram utilizados. Mas a abordagem que propomos não está limitada aos planos de corte usados actualmente, podendo ser incorporados outros tipos de desigualdades válidas. Neste contexto, é de referir ainda a importância do pré-processamento de problemas. O pré-processamento é um processo inicial de simplificação que não deve ser negligenciado na resolução de problemas de programação inteira, independentemente do método usado a seguir. Alguns dos trabalhos publicados na literatura da área, que obtiveram êxito na prática, consideram o pré-processamento de problemas antes da geração de cortes. No nosso trabalho incluímos algumas dessas técnicas de pré-processamento.
Na secção 1 deste capítulo fazemos uma breve revisão das técnicas planos de corte, mencionando de forma sucinta alguns dos trabalhos mais recentes nesta área.
A análise de sensibilidade incluída na nossa abordagem tem como intenção ajustar automaticamente o ponto de referência no programa escalarizante, de modo a garantir que se encontrará, na fase de cálculo seguinte, uma solução não dominada diferente da anterior. Propomos um processo iterativo que alterna a actualização do ponto de referência e o cálculo com planos de corte, culminando numa nova solução não dominada. Esta foi uma forma que encontrámos para dar resposta ao caso particular com que nos deparámos de análise de sensibilidade ao termo independente de uma restrição do programa escalarizante ∞+ρ
, z
P . No caso
geral, trata-se de uma questão de difícil resolução, como veremos adiante na secção 2. Nessa secção fazemos uma breve revisão da investigação anterior na área da análise de sensibilidade/paramétrica em programação inteira que se relaciona mais de perto com o nosso problema. Pretendemos alertar para as principais dificuldades existentes neste domínio, apresentando alguns resultados teóricos conhecidos e abordagens paramétricas com algoritmos de planos de corte.
Em suma, a combinação do programa escalarizante de Tchebycheff, parametrizado no ponto de referência, com técnicas de planos de corte e análise de sensibilidade é especialmente útil para pesquisar soluções não dominadas “consecutivas”, propiciando pesquisas direccionais e/ou locais. É este o tipo de pesquisa a que se destina fundamentalmente o novo método interactivo que desenvolvemos para PLIMO, e que apresentamos na secção 3 deste capítulo. Na secção 3.1 começamos por estabelecer e demonstrar alguns resultados teóricos nos quais assentam as
principais características do método. Estes resultados referem-se ao uso da métrica de Tchebycheff em PLIMO, relacionando-se também com o uso de planos de corte. Na secção 3.2 descrevemos o método interactivo, dando particular destaque ao processo de análise de sensibilidade. Apresentamos em seguida um exemplo ilustrativo na secção 3.3. As características principais da implementação computacional e os testes efectuados são descritos na secção 3.4.
Na secção 4 apresentamos algumas conclusões deste trabalho.
III.1 P
LANOS DEC
ORTE– R
EVISÃO1III.1.1 Desigualdades válidas em programação inteira
Consideremos o problema de programação inteira definido da seguinte forma:
max
{
cx x∈X}
(P III.1)com X =
{
x∈ℜn |Ax≤b,x≥0,x inteiro}
em que A e b têm coeficientes racionais.Utilizaremos a notação