Por desejo do OP, aqui está a resposta math.SE que eu vinculo no meu comentário acima.
Talvez valha a pena discutir de onde vem o dual em um problema de exemplo. Isso levará um tempo, mas espero que o dual não pareça tão misterioso quando terminarmos.
Suponha que você tenha um problema primordial da seguinte maneira.
Primal=⎧⎩⎨⎪⎪⎪⎪⎪⎪max 5x1−6x2 s.t. 2x1−x2=1 x1+3x2≤9 x1≥0⎫⎭⎬⎪⎪⎪⎪⎪⎪
Agora, suponha que queremos usar as restrições do primal como uma maneira de encontrar um limite superior no valor ótimo do primal. Se multiplicarmos a primeira restrição por , a segunda por e as adicionarmos, obteremos para o lado esquerdo e para o lado direito. Como a primeira restrição é uma igualdade e a segunda é uma desigualdade, isso implica
Mas, como , também é verdade que e, portanto,
Portanto, é um limite superior do valor ótimo do problema primordial.
919(2x1−x2)+1(x1+3x2)9(1)+1(9)19x1−6x2≤18.
x1≥05x1≤19x15x1−6x2≤19x1−6x2≤18.
18
Certamente, podemos fazer melhor que isso, no entanto. Em vez de apenas adivinhar e como multiplicadores, vamos deixá-los serem variáveis. Portanto, estamos procurando multiplicadores e para forçar91y1y2
5x1−6x2≤y1(2x1−x2)+y2(x1+3x2)≤y1(1)+y2(9).
Agora, para que esse par de desigualdades ocorra, o que tem de ser verdade sobre e ? Vamos pegar as duas desigualdades, uma de cada vez.y1y2
A primeira desigualdade :5x1−6x2≤y1(2x1−x2)+y2(x1+3x2)
Temos que rastrear os coeficientes das variáveis e separadamente. Primeiro, precisamos que o coeficiente total no lado direito seja pelo menos . Obter exatamente seria ótimo, mas, como , algo maior que também satisfaria a desigualdade de . Matematicamente falando, isso significa que precisamos de .x1x2x155x1≥05x12y1+y2≥5
Por outro lado, para garantir a desigualdade para a variável , precisamos que o coeficiente total no lado direito seja exatamente . Como pode ser positivo, não podemos ir abaixo de , e como pode ser negativo, não podemos ir acima de (como o valor negativo de mudaria a direção da desigualdade). Portanto, para que a primeira desigualdade funcione para a variável , precisamos ter .x2x2−6x2−6x2−6x2x2−y1+3y2=−6
A segunda desigualdade :
y1(2x1−x2)+y2(x1+3x2)≤y1(1)+y2(9)
Aqui temos que rastrear as variáveis e separadamente. As variáveis vêm da primeira restrição, que é uma restrição de igualdade. Não importa se é positivo ou negativo, a restrição de igualdade ainda é válida. Assim, é irrestrito no sinal. No entanto, a variável vem da segunda restrição, que é menor ou igual à restrição. Se multiplicássemos a segunda restrição por um número negativo que mudaria de direção e a alteraria para uma restrição maior que ou igual. Para manter nosso objetivo de limitar o objetivo primordial, não podemos deixar isso acontecer. Então oy1y2y1y1y1y2y2A variável não pode ser negativa. Portanto, devemos ter .y2≥0
Finalmente, queremos tornar o lado direito da segunda desigualdade o menor possível, pois queremos o limite superior mais rígido possível no objetivo primordial. Então, queremos minimizar .y1+9y2
Juntando todas essas restrições em e , descobrimos que o problema de usar as restrições do primal para encontrar o melhor limite superior do objetivo primordial ideal implica resolver o seguinte programa linear:y1y2
Minimize y1+9y2subject to 2y1+y2−y1+3y2y2≥5=−6≥0.
E esse é o dual.
Provavelmente vale a pena resumir as implicações desse argumento para todas as formas possíveis do primal e do dual. A tabela a seguir é retirada da p. 214 de
Introdução à Pesquisa Operacional , 8ª edição, de Hillier e Lieberman. Eles se referem a isso como o método SOB, em que SOB significa Sensível, Ímpar ou Bizarro, dependendo da probabilidade de alguém encontrar essa restrição específica ou restrição variável em um problema de maximização ou minimização.
Primal Problem Dual Problem
(or Dual Problem) (or Primal Problem)
Maximization Minimization
Sensible <= constraint paired with nonnegative variable
Odd = constraint paired with unconstrained variable
Bizarre >= constraint paired with nonpositive variable
Sensible nonnegative variable paired with >= constraint
Odd unconstrained variable paired with = constraint
Bizarre nonpositive variable paired with <= constraint