Dualidade
A dualidade é um conceito fundamental em programação linear que oferece uma relação simbiótica entre um problema de otimização original (chamado problema primal) e um problema derivado (chamado problema dual). Este relacionamento permite que insights e soluções sejam transferidos de um problema para o outro.
O problema primal em Programação Linear pode ser formulado da seguinte maneira:
onde
Dual através do Lagrangeano
Para construir o problema dual através da teoria do Lagrangeano, introduzimos multiplicadores Lagrangeanos
O Lagrangeano
Problema Dual de Lagrange
O problema dual associado envolve a maximização do limite inferior do problema primal, dado por:
Para resolver isso, precisamos encontrar o infimo de
Se
Relações entre Primal e Dual
-
Dual Unbounded: Se o problema dual é ilimitado, então isso implica que o problema primal é inviável.
-
Dual Optimal: Se o problema dual tem uma solução ótima, então o problema primal também tem, e seus valores objetivos são iguais. Isso é conhecido como "dualidade forte".
Variáveis Básicas e Não Básicas
Na programação linear, especialmente na forma padrão, uma base
Custos Reduzidos
O custo reduzido
onde
Dualidade Fraca
A dualidade fraca, em termos de variáveis básicas e custos reduzidos, pode ser vista como uma afirmação de que se
Dualidade Forte
Se
Isso implica que os custos reduzidos para todas as variáveis não básicas devem ser exatamente zero, e
Complementaridade Slack
Na solução ótima, as condições de complementaridade slack são satisfeitas:
Aqui
Essas são maneiras mais rigorosas de ver a dualidade e a complementaridade slack em termos de programação linear, levando em consideração as variáveis básicas e os custos reduzidos.