Programação linear
Modelação, formas standard e slack, pivôs de Simplex, viabilidade e certificados por dualidade.
Uma oficina produz quantidades e de dois produtos divisíveis. O lucro depende das quantidades e as capacidades limitam as combinações possíveis. A programação linear, ou LP, otimiza uma função linear sob restrições lineares, com variáveis reais que podem tomar valores fracionários.
Vamos conservar o mesmo plano desde a formulação até aos pivôs de Simplex e ao certificado dual. Cada transformação tem de preservar as decisões permitidas e o valor do objetivo, para que o certificado final fale do problema original.
Modelar um plano de produção
O lucro por unidade é 3 e 2. A capacidade conjunta é 4 unidades, a capacidade exclusiva do primeiro produto é 2 e a do segundo é 3. O modelo é
sujeito a
Se só pudéssemos fabricar produtos inteiros, teríamos de acrescentar integridade, o tema da programação inteira. Uma restrição não é linear; uma multiplicação por uma constante, como , é.
O conjunto de pontos que respeitam as restrições é a região admissível, uma interseção de semiespaços. É convexa: o segmento entre dois pontos admissíveis também é admissível.
| Vértice | Objetivo |
|---|---|
| 0 | |
| 6 | |
| 10 | |
| 9 | |
| 6 |
O ótimo é , lucro 10. Numa região admissível não vazia em forma standard, se o objetivo tem ótimo finito, existe uma solução ótima num vértice. Isso não significa que todos os ótimos sejam vértices: uma função paralela a uma face pode ter uma face inteira de ótimos.
Viável, limitado e ótimo são factos diferentes
Um LP pode ser inviável, ter ótimo finito ou ter objetivo ilimitado. As restrições e são incompatíveis, portanto inviáveis.
A região , é ilimitada. Mesmo assim, minimizar tem ótimo finito 1 em , enquanto maximizar é ilimitado. O tamanho geométrico da região não determina sozinho o comportamento do objetivo.
Se maximizarmos na região do exemplo, todos os pontos do segmento entre e atingem 4. Empates não autorizam escolher um ponto fora das restrições.
Forma standard
Usamos a convenção
tem linhas, uma por restrição, e colunas, uma por variável. guarda limites e coeficientes do objetivo. Para o plano,
Podemos converter outras formas:
- Minimizar equivale a maximizar .
- Multiplicar uma desigualdade por dá .
- Uma igualdade é o par de desigualdades opostas.
- Uma variável livre pode ser escrita como , com as duas parcelas não negativas.
Por exemplo, minimizar sujeito a , e , com livre de restrição de sinal explícita, pode escrever-se com e :
A igualdade deu duas desigualdades e o limite inferior mudou de sinal. Uma solução original dá uma solução nova tomando e . Uma solução nova recupera . O objetivo novo é o negativo do original, logo maximizar um minimiza o outro.
A forma standard não exige ; esse sinal é relevante para a solução inicial de Simplex.
Forma slack e solução básica
Acrescentamos variáveis de folga não negativas:
Inicialmente, são não básicas e fixadas a zero; as folgas são básicas e ficam . Esta solução básica é admissível porque as folgas são não negativas. Os conjuntos de variáveis básicas e não básicas mudam em cada pivô; não são propriedades permanentes de uma variável.
Na forma slack, o objetivo é um valor constante mais uma combinação das não básicas. Aumentar uma não básica com coeficiente positivo melhora o objetivo num problema de maximização, até alguma básica chegar a zero.
Dois pivôs de Simplex
Começamos com . Fazemos entrar. Para aumentar , as restrições com coeficiente que o limita dão razões para e para . A menor é 2, portanto sai. A folga não limita , porque o coeficiente de nessa linha é ; razões só usam linhas onde a entrada tem coeficiente positivo. Se nenhuma linha limitasse , o objetivo seria ilimitado nessa direção.
Isola e substitui em todas as equações:
Com não básicas , temos , , , objetivo 6. Agora tem coeficiente positivo. As razões que limitam o aumento são 2 por e 3 por . sai e entra:
Com , obtemos , e . Todos os coeficientes das não básicas no objetivo são não positivos, e como são variáveis não negativas, não há solução admissível com objetivo superior a 10 neste dicionário.
Regra da razão e casos especiais
A variável que sai minimiza a razão entre valor atual da básica e o coeficiente positivo que limita a entrada. Ignora coeficientes que não limitam um aumento. Se nenhum limita uma variável que melhora o objetivo, podemos aumentá-la sem fim e o objetivo é ilimitado.
Razões empatadas podem produzir vários pivôs válidos. Uma básica já a zero pode sair sem melhorar o objetivo, um pivô degenerado. Isso pode originar ciclos com certas regras. A regra de Bland escolhe a variável elegível de menor índice para entrar e, nos empates da razão, a de menor índice para sair; evita ciclos. Simplex é muito usado, mas tem pior caso exponencial. Existem algoritmos polinomiais para LP, por exemplo métodos de ponto interior, sob o modelo de entrada racional.
Encontrar uma solução inicial
Se algum termo independente for negativo, fixar as não básicas a zero pode dar uma folga negativa. Isso não prova que o LP é inviável: prova apenas que esta base inicial não serve.
Uma fase I introduz variáveis artificiais e otimiza um objetivo auxiliar que mede a violação necessária para obter uma base admissível. Se o melhor ainda exigir uma quantidade artificial positiva, o problema original é inviável. Se a quantidade artificial pode chegar a zero, retira as artificiais, ajusta a base quando necessário e repõe o objetivo original para a fase II.
Por exemplo, escreve-se . A folga inicial seria em , mas é admissível. Declarar inviabilidade só pelo termo negativo rejeitaria esta solução válida.
Para iniciar a fase I deste exemplo, escreve , com e artificial . A base , com , é admissível para o problema auxiliar que minimiza . Aumentar até 2 leva a zero; retirando , fica , uma base admissível para o problema original. Se o mínimo auxiliar fosse positivo, não conseguiríamos satisfazer a igualdade sem a artificial.
Dualidade
Ao primal com , , corresponde o dual
As variáveis duais podem ser vistas como preços dos recursos. O preço combinado dos recursos necessários a um produto deve cobrir o seu lucro, criando um limite superior para o lucro total.
Para qualquer primal admissível e dual admissível ,
A primeira desigualdade usa e ; a segunda usa e . Esta é a dualidade fraca. Se encontramos soluções admissíveis com os mesmos objetivos, ambas são ótimas. A dualidade forte garante a igualdade dos ótimos quando há ótimo finito nas condições usuais de LP.
No exemplo, o dual minimiza , sujeito a e , com . A solução dá 10. O primal também dá 10; isto certifica o ótimo sem depender da sequência de pivôs.
A folga complementar liga restrições e preços: um recurso com folga positiva tem preço dual zero numa solução ótima; uma variável primal positiva exige que a restrição dual correspondente esteja em igualdade. Aqui sobrou uma unidade do terceiro recurso e .
Como verificar um modelo
Substitui a solução em todas as restrições e calcula o objetivo nas unidades originais. Confirma se frações são admissíveis, se limites são superiores ou inferiores e se faltam decisões, como um produto obrigatório ou um custo de ativação. Um solver resolve o modelo fornecido; não deteta por si só que omitiste uma regra do problema.
Exercícios
Escolher quem sai da base
Maximiza 4x+y sujeito a x+y≤5, 2x+y≤6 e x,y≥0. Usa folgas e faz o primeiro pivô com x a entrar. Dá a solução básica resultante e o valor do objetivo.
Pista
As folgas são s1=5-x-y e s2=6-2x-y. Calcula as razões para aumentar x.
Mais uma pista
As razões são 5 e 3, logo s2 sai e x=(6-y-s2)/2.
Solução
A menor razão é 6/2=3 contra 5/1=5, portanto s2 sai. A comparação usa só linhas com coeficiente positivo de x. Temos x=3-y/2-s2/2, s1=2-y/2+s2/2 e z=12-y-2s2. Com não básicas y=s2=0, a solução é x=3, y=0, s1=2 e s2=0, valor 12. Como os coeficientes das não básicas no objetivo são não positivos, este dicionário já certifica o ótimo.
Confere a tua resposta:
- Usei as razões 5 e 3.
- Fiz s2 sair e obtive x=3.
- Derivei z=12-y-2s2 e objetivo 12.
Erros frequentes
Usar o maior quociente violaria uma restrição antes de o atingir. Qualquer não básica com coeficiente positivo pode entrar, mas essa escolha não determina por si só quem sai; é preciso aplicar a razão mínima.
Uma região ilimitada com mínimo finito
Minimiza 2x+y sujeito a x≥3 e y≥0. Dá o ótimo e explica se a região e o objetivo são limitados no sentido necessário à minimização.
Pista
Aumentar qualquer variável não melhora o objetivo.
Solução
O ótimo é (3,0), valor 6. A região é ilimitada, porque podemos aumentar x ou y sem sair dela. O objetivo está limitado inferiormente por 6 e atinge esse limite. A região ilimitada não torna automaticamente o problema de otimização ilimitado.
Erros frequentes
Confundir a região com o sentido de melhoria do objetivo leva a declarar ilimitado um mínimo que existe.
Conferir o valor e o ponto arredondado
Maximiza , sujeito a , e . Uma resolução declara que (3,5/2) é o ótimo, com valor 15, e recomenda arredondar para (3,3) na variante inteira. Confere as afirmações. Dá as folgas, prova o ótimo LP e encontra o ótimo inteiro sem escolher apenas o ponto mais próximo.
Solução
As folgas são e , ambas não negativas. Em (3,5/2), as duas são zero, mas o objetivo vale , não 15.
Somar as restrições dá , logo . Pela primeira, . Assim . O ponto (3,5/2) é admissível e atinge esse limite: é ótimo.
Arredondar para (3,3) dá e viola a primeira restrição. Para inteiros, x só pode ser 0,1,2 ou 3. Com , o limite não passa de 12. Para x=3, as restrições exigem , portanto não há y inteiro. O melhor candidato inteiro é (2,3), que dá 12 e cumpre e . O ótimo inteiro é 12.
Confere a tua resposta:
- Obtive ótimo LP (3,5/2), valor 14.
- Rejeitei (3,3) pela primeira restrição.
- Certifiquei o ótimo inteiro (2,3), valor 12.