Eu tenho uma família de problemas de programação linear: maximize sujeito a , . Os elementos de , , e são números inteiros não negativos, estritamente positivo. ( também deve ser integral, mas vou me preocupar com isso mais tarde.)b c c x
Geralmente, em minha aplicação, os coeficientes e são tais que um algoritmo simplificado de uma passagem fornece a solução ideal para todas as opções de : o algoritmo de uma passagem determina os elementos em seqüência, escolhendo cada é o maior valor possível consistente com os valores já determinados . Na linguagem simplex, a sequência de entrada de variáveis é apenas a e termina após etapas. Isso economiza muito tempo em comparação com o simplex completo.c b x 1 , … , x n x j x 1 , … , x j - 1 x 1 x n n
Esse algoritmo funciona quando as colunas de e os elementos de foram classificados de "barato" para "caro". Uma variável "barata" é uma coluna de com valores geralmente pequenos, para os quais o elemento correspondente de é grande: para esse elemento de você obtém muita saída com pouca demanda na restrição . Portanto, o algoritmo diz apenas "faça as coisas fáceis primeiro".c A c x b
Minha pergunta é: que propriedade de e nos garantiria que esse algoritmo simplificado funciona para todos os ? Minha conjectura inicial era que os elementos diferentes de zero de deveriam aumentar em cada linha, mas isso não está correto.c b A
Aqui estão alguns exemplos, todos com : , , , . Para tudo isso, o algoritmo seqüencial fornece a solução ideal para todos os valores de (por experimentação numérica). é o único para o qual todas as permutações de colunas também funcionam.A 1 = ( 1 1 1 1 2 3 3 2 0 ) A 2 = ( 0 0 1 3 0 2 0 3 2 ) A 3 = ( 1 1 1 1 0 0 1 1 1 ) A 4 = ( 1 0 1 0 1 0parece mais caro que e mais caro que .
Eu ficaria tremendamente grato por qualquer indicação na literatura, por quaisquer problemas como esse ou quaisquer sugestões. Deve ter havido outros casos em que algumas variáveis podem ser determinadas como "mais baratas" do que outras e podem ser feitas primeiro com segurança. Com todo o trabalho realizado na programação linear ao longo dos anos, parece que algo semelhante deve ter surgido, mas não consegui encontrá-lo.