Vous êtes sur la page 1sur 40

DUALIDADE EM PROGRAMAÇÃO

LINEAR
DUALIDADE EM PROGRAMAÇÃO LINEAR

Todo problema de programação linear está associado a outro problema


chamado dual.

O problema original é chamado primal.

A teoria da dualidade pode ser aplicada em casos em que a solução do


primal não é pragmática.

Além disso, a teoria da dualidade permite uma interpretação econômica


do problema primal.
DUALIDADE EM PROGRAMAÇÃO LINEAR
Teoria da Dualidade

Um problema de maximização pode ser representado matematicamente, na


forma canônica, como:

O problema dual pode ser escrito como:


DUALIDADE EM PROGRAMAÇÃO LINEAR

Regras para transformar um problema primal em outro dual:

• Para que um problema primal possa ser facilmente transformado em


outro dual, o mesmo deve estar na forma canônica. Se não estiver é
necessário efetuar as transformações necessárias.

Para problema de maximização


max z = f (x1, x2, ..... xn ) = c1 x1 + c2 x2, ..... cnxn
sujeito a:
ɑ11x1 + ɑ12x2 +......... +ɑ1nxn ≤ b1
ɑ21x1 + ɑ22x2 +......... +ɑ2nxn ≤ b2
.
.
ɑm1x1 + ɑm2x2 +......... +ɑmnxn ≤ bm
x1, x2, ..... xn ≥ 0 (restrição de não negatividade)

Se a função z for de maximização, todas as restrições


devem ser representadas com o sinal ≤
DUALIDADE EM PROGRAMAÇÃO LINEAR

Para um problema de minimização


mix z = f (x1, x2, ..... xn ) = c1 x1 + c2 x2, ..... cnxn
sujeito a:
ɑ11x1 + ɑ12x2 +......... +ɑ1nxn ≥ b1
ɑ21x1 + ɑ22x2 +......... +ɑ2nxn ≥ b2
.
.
ɑm1x1 + ɑm2x2 +......... +ɑmnxn ≥ bm
x1, x2, ..... xn ≥ 0 (restrição de não negatividade)

Se a função z for de minimização, todas as restrições


devem ser representadas com o sinal ≥
DUALIDADE EM PROGRAMAÇÃO LINEAR

• Se o problema primal é de maximização, o dual será de minimização.


O problema dual também deve ser representado na forma canônica.
• Os coeficientes da função objetivo do problema primal (transpostos)
correspondem às constantes do lado direito das restrições do
problema dual.
• Max z = 12x1 + 60x2 primal
• Suj a
• 0,25x1 + 0,50x2 ≤ 36
• 0,10x1 + 0,75x2 ≤ 22
• 0,10x1 + 0,40x2 ≤ 15
• x1, x2 ≥ 0

• Suj a:
• 0,25y1 + 0,10y2 + 0,10y3 ≥ 12
• 0,50y1 + 0,75y2 + 0,40y3 ≥ 60 dual
DUALIDADE EM PROGRAMAÇÃO LINEAR

• As constantes do lado direito das restrições do problema primal


correspondem aos coeficientes da função objetivo do problema dual.

• Max z = 12x1 + 60x2 primal


• Suj a
• 0,25x1 + 0,50x2 ≤ 36
• 0,10x1 + 0,75x2 ≤ 22
• 0,10x1 + 0,40x2 ≤ 15
• x1, x2 ≥ 0

• min D = 36y1 + 22y2 + 15y3 dual


DUALIDADE EM PROGRAMAÇÃO LINEAR

• Os coeficientes da variável x em cada uma das restrições do


problema primal são iguais aos coeficientes da variável y do
problema dual.

• Max z = 12x1 + 60x2 primal


• Suj a
• 0,25x1 + 0,50x2 ≤ 36
• 0,10x1 + 0,75x2 ≤ 22
• 0,10x1 + 0,40x2 ≤ 15
• x1, x2 ≥ 0

• Suj a:
• 0,25y1 + 0,10y2 + 0,10y3 ≥ 12
• 0,50y1 + 0,75y2 + 0,40y3 ≥ 60 dual
DUALIDADE EM PROGRAMAÇÃO LINEAR

1. As variáveis de decisão: cada 1. As variáveis de decisão: cada


restrição do dual corresponde restrição do primal corresponde
a uma variável do xi do primal a uma variável do yi do dual

2. Função objetivo é de 2. Função objetivo é de


maximização minimização

3. As restrições são do tipo ≤ 3. As restrições são do tipo ≥

Primal Dual
Max z = 12x1 + 60x2 min D = 36y1 + 22y2 + 15y3

Suj a Suj a:
0,25x1 + 0,50x2 ≤ 36 0,25y1 + 0,10y2 + 0,10y3 ≥ 12
0,10x1 + 0,75x2 ≤ 22 0,50y1 + 0,75y2 + 0,40y3 ≥ 60
0,10x1 + 0,40x2 ≤ 15 y1, y2,y3 ≥ 0
x1, x2 ≥ 0
Os dois atende a condição de não negatividade
DUALIDADE EM PROGRAMAÇÃO LINEAR

Exemplo:

Max z = 2x1 + 3x2 + x3

Suj a
3x1 + 4x2 + 2x3 ≤ 10
2x1 + 6x2 + x3 ≤ 20
x1 - x2 - x3 ≤ 30
x1, x2, x3 ≥ 0

min D = 10y1 + 20y2 + 30y3

Suj a:
3y1 + 2y2 + y3 ≥ 2
4y1 + 6y2 - y3 ≥ 3
2y1 + y2 – y3 ≥ 1
y1, y2,y3 ≥ 0
DUALIDADE EM PROGRAMAÇÃO LINEAR

min z = 10X1 + 20X2 + 30X3 Max D = 2y1 + 3y2 + y3

Suj a: Suj a
3X1 + 2X2 + X3 ≥ 2 3y1 + 4y2 + 2y3 ≤ 10
4X1 + 6X2 - X3 ≥ 3 2y1 + 6y2 + y3 ≤ 20
2x1 + x3 – X3 ≥ 1 y1 - y2 - y3 ≤ 30
x1, x2,x3 ≥ 0 y1, y2, y3 ≥ 0

De um dual é possível voltar ao modelo original

A cada solução viável básica primal não ótima corresponde


uma solução básica inviável dual

A solução ótima primal corresponde à solução ótima dual com


Z=D
DUALIDADE EM PROGRAMAÇÃO LINEAR

Caso especial: restrição de igualdade e variáveis livres

Como o problema não está na forma canônica é necessário


transformar:
DUALIDADE EM PROGRAMAÇÃO LINEAR

Cada restrição de igualdade corresponde duas restrições ≥ ≤

As restrições de desigualdade ≥ devem ser transformadas em outra


do tipo ≤
DUALIDADE EM PROGRAMAÇÃO LINEAR

O modelo completo (primal)

E o dual?

min D = b1y1 + b2y21 - b2y22 – b3y3

Suj a:
2
a11y1 + a21y21 – a21y22 – a31 ≥ c1
1
a12y1 + a22y2 – a22y2 – a32y3 ≥ c2
y1, y21, y22, y3 ≥ 0
Y2 é a diferença entre as duas variáveis, oito é, y2 = y21- y2.2
É chamada de variável livre,podendo assumir valor positivo, negativo
ou nulo.
DUALIDADE EM PROGRAMAÇÃO LINEAR

O modelo completo (dual)

min D = b1y1 + b2y2 – b3y3

Suj a:
a11y1 + a21y2 – a31 ≥ c1
a12y1 + a22y2 – a32y3 ≥ c2
y1, y3 ≥ 0
y2 livre
DUALIDADE EM PROGRAMAÇÃO LINEAR

Exemplo:

Determine o dual do seguinte problema de minimização

Min z = 20X1 + 12X2

Suj a:
(-1) colocar na forma
2X1 + 4X2 ≥ 48
canônica
- X1+ 3X2 ≥ -10
3x1 + x2 ≥ 24
x1, x2 ≥ 0

Dual
Max D = 48y1 -10y2 + 24y3

Suj a:
2y1 - y2 + 3y3 ≤ 20
4y1+ 3y2 +y3 ≤ 12
y1, y2, y3 ≥ 0
DUALIDADE EM PROGRAMAÇÃO LINEAR

Exemplo:

Determine o dual do seguinte problema de minimização

2x1 + 3x2 = 40
(-1)

(-1)
DUALIDADE EM PROGRAMAÇÃO LINEAR

1 2
Max D = 20y1 + 40y2 - 40y2 – 30y3

Suj a: 1 2
2y1 + 2y2 – 2y2 – y3 ≤ 4
1 2
y1 + 3y2 – 3y2 – 2y3 ≤ 5
1 2
y1, y2, y2, y3 ≥ 0

Modelo Dual final


Max D = 20y1 + 40y2 – 30y3

Suj a:
2y1 + 2y2 – y3 ≤ 4
y1 + 3y2 – 2y3 ≤ 5
y1, y3 ≥ 0 y2 livre
INTERPRETAÇÃO ECONÔMICA DA DUALIDADE

Um problema primal de maximização pode ser visto como um problema


de alocação de recursos, ou seja:

Aloca-se m recursos disponíveis às n atividades econômicas, de forma a


maximizar o lucro total de todas as atividades, respeitando a quantidade
disponível de cada recurso.
INTERPRETAÇÃO ECONÔMICA DA DUALIDADE
INTERPRETAÇÃO ECONÔMICA DA DUALIDADE

R1
R2

R3

R1
Carrinhos
Alocar um conjunto R2 Maximizar
Produzir
de recursos o lucro
Triciclo
R3

Explicação:

Alocar um conjunto de recursos para produção de carrinhos e


triciclos, visando maximizar o lucro.
Tratando cada recurso de forma individual em função da produção
dos dois produtos (carrinho e triciclo).
INTERPRETAÇÃO ECONÔMICA DA DUALIDADE

Formulação matemática

Maximizar lucro total


Max z = 12x1 + 60x2

Suj a
0,25x1 + 0,5x2 ≤ 36 Disponibilidade de usinagem
0,1x1 + 0,75x2 ≤ 22 Disponibilidade de pintura
0,1x1 + 0,4x2 ≤ 15 Disponibilidade de montagem
x1, x2 ≥ 0
INTERPRETAÇÃO ECONÔMICA DA DUALIDADE

Formulação matemática - Primal

Max z = 12x1 + 60x2 Maximizar lucro total

Suj a
0,25x1 + 0,5x2 ≤ 36 Disponibilidade de usinagem
0,1x1 + 0,75x2 ≤ 22 Disponibilidade de pintura
0,1x1 + 0,4x2 ≤ 15 Disponibilidade de montagem
x1, x2 ≥ 0

Formulação matemática - Dual

min D = 36y1 + 22y2 + 15y3 Minimizar o uso de recursos disponíveis

Suj a:
0,25y1 + 0,10y2 + 0,10y3 ≥ 12 Restrição de carrinho
0,50y1 + 0,75y2 + 0,40y3 ≥ 60 Restrição de triciclo
y1, y2,y3 ≥ 0
Função objetivo - maximizar o lucro

R1
Conjunto de R2
Carrinhos
recursos Produzir Lucro Total PRIMAL
R3 Triciclo

OU

R1
Conjunto de Preço pago deve
R2
recursos
Vendido ser no mínimo igual DUAL
R3 ao lucro total

Função objetivo - minimizar os custos de oportunidades.


Variáveis de Decisão

Variável de decisão do PRIMAL – produção de carrinhos(X1) e triciclos (X2)

Variável de decisão no DUAL – Preço sombra, ou seja, preço pago pela


empresa compradora pela utilização de uma hora de mão de obra
especializada em cada processo (y1, y2 e y3).
y1: valor do recurso R1 por unidade
y2: valor do recurso R2 por unidade
y3: valor do recurso R3 por unidade

Custo de oportunidade de recursos da empresa vendedora pela perda.


Entendendo a função objetivo e as restrições no dual

Função objetivo

min D = 36y1 + 22y2 + 15y3

A função objetivo busca minimizar a soma dos custos pagos pela


empresa compradora pela utilização (ou a soma dos custos de
oportunidades da empresa vendedora pela perda) de todos os recursos.
Entendendo a função objetivo e as restrições no dual

Primeira restrição

0,25y1 + 0,10y2 + 0,10y3 ≥ 12

Garante que os custos pagos pela utilização dos recursos


(R1,R2,R3) para a produção de uma unidade de carrinho não
devem ser menores do que seu lucro unitário.

A empresa compradora deve oferecer, no mínimo, R$ 12,00


para que compense para a Venix Brinquedos vender os
recursos necessários para produzir uma unidade de triciclo.
Entendendo a função objetivo e as restrições no dual

Segunda restrição

0,50y1 + 0,75y2 + 0,40y3 ≥ 60

Garante que os custos pagos pela utilização dos recursos


(R1,R2,R3) para a produção de uma unidade de triciclo não
devem ser menores do que seu lucro unitário.

A empresa compradora deve oferecer no mínimo R$ 60,00 para


que compense para a Venix Brinquedos vender os recursos
necessários para produzir uma unidade de triciclo.

Dessa forma, as variáveis duais podem receber uma


interpretação muito interessante, que leva ao cálculo da
utilidade marginal (preço-sombra, valor marginal) dos recursos.
EXEMPLO:
Uma indústria dispõe de três recursos A, B e C, em quantidades
limitadas, com os quais pretende produzir dois produtos a que
chamaremos de PROD 1 E PROD 2. A tabela a seguir dá a utilização
unitária de cada recurso em cada um dos produtos e a disponibilidade
de cada recurso.
A indústria sabe que cada unidade produzida do PROD 1 dá uma
margem unitária de lucro de R$ 5,00 e cada unidade produzida do
PROD 2 dá uma margem unitária de lucro de R$ 6,00. O problema de
programação da produção da empresa é determinar a quantidade a
ser feita de PROD 1 e PROD 2 de forma a maximizar a margem de lucro
total.

Recurso gasto para fazer 1


Recurso Disponibilidade unidade de
Prod 1 Prod 2
A 14 1 2
B 9 1 1
C 56 7 4
FORMA MATEMÁTICA DO PROBLEMA - PRIMAL

Max z = 5x1 + 6x2

Suj a
1x1 + 2x2 ≤ 14
1x1 + 1x2 ≤ 9
7x1 + 4x2 ≤ 56
x1, x2 ≥ 0

Vamos supor que a indústria tenha a alternativa de vender os recursos


A, B e C, em vez de emprega-lo na produção dos dois produtos.

Assim, torna-se necessário encontrar o valor da unidade de cada


recurso. É evidente que a venda dos recursos deve fornecer um ganho
pelo menos igual ao obtido com a utilização deles na produção.
Para isso, vamos denomina-los de:
y1: valor do recurso A por unidade
y2: valor do recurso B por unidade
y3: valor do recurso C por unidade
Valor total do estoque de recursos é:

14y1+ 9y2 + 56y3 Função objetivo do dual

Cada um dos produtos pode ser avaliado, levando em consideração


a utilização dos recursos por unidade fabricada. Logo, o PROD 1
gasta 1 unidade de recurso A, 1 do recurso B e 7 do recurso C.

Recurso PROD 1: 1y1 + 1y2 + 7y3


Recurso PROD 2: 2y1 + 1y2 + 4y3

Logo, essas avaliações não podem ser inferiores às margens unitárias


de lucro fornecidas para cada um.
1y1 + 1y2 + 7y3 ≥ 5
Restrições do dual
2y1 + 1y2 + 4y3 ≥ 6

Nesse problema, há o interesse de determinar o valor mínimo do


estoque total, respeitando as restrições de que as avaliações dos produtos
sejam pelo menos iguais aos lucros unitários fornecidos, nesse caso R$ 5,00
para prod 1 e R$ 6,00 para prod 2.
FORMULAÇÃO MATEMÁTICA

PRIMAL
Max z = 5x1 + 6x2

Suj a
1x1 + 2x2 ≤ 14
1x1 + 1x2 ≤ 9
7x1 + 4x2 ≤ 56
x1, x2 ≥ 0
DUAL

Min D = 14y1+ 9y2 + 56y3

Suj a:
1y1 + 1y2 + 7y3 ≥ 5
2y1 + 1y2 + 4y3 ≥ 6
y1, y2, y3 ≥ 0
SOLUÇÃO (primal):
coeficientes
V. N Cont
Básica equação z x1 x2 x3 x4 x5

z 0 1 0 0 1 4 0 50

x2 1 0 0 1 1 -1 0 5

x1 2 0 1 0 -1 2 0 4

x5 3 0 0 0 3 -10 1 8

X1= 4; x2=5; x3=0; x4=0; x5=8 Z=50


Produziu 4 unidade de Prod 1; 5 unidades do prod 2;
Recurso A e B ficaram escassos e o recurso C não
escasso com x5= 8. Com lucro máximo de R$ 50,00
SOLUÇÃO (dual):
coeficientes
V. N Cont
Básica equação z y1 y2 y3 y4 y5

z 0 1 0 0 8 4 5 50

y2 1 0 0 1 10 -2 1 4

y1 2 0 1 0 -3 1 -1 1

y1= 1; y2=4; y3=0; y4=0; y5=0 D=50

O valor de y1 = 1, obtido do coeficiente x3. Representa o


valor da oportunidade do Recurso A. Cada unidade do
Recurso A tem capacidade de gerar lucro de 1.
O valor de y2 = 4, obtido do coeficiente x4. Representa o
valor da oportunidade do Recurso B. Cada unidade do
Recurso B tem capacidade de gerar lucro de 4.
O valor y3 = 0, foi obtido do coeficiente x5, indicando o
valor da oportunidade do Recurso C. O resultado mostra
que o Recurso C é não escasso (X5=8).
SOLUÇÃO (primal):
y4 y5 y1 y2 y3

coeficientes
V. N Cont
z x1 x2 x3 x4 x5
Básica equação
z 0 1 0 0 1 4 0 50

x2 1 0 0 1 1 -1 0 5

x1 2 0 1 0 -1 2 0 4

x5 3 0 0 0 3 -10 1 8

X1= 4; x2=5; x3=0; x4=0; x5=8 Z=50

SOLUÇÃO (dual):
x3 x4 x5 x1 x2

coeficientes
V. N Cont
Básica equação z y1 y2 y3 y4 y5

z 0 1 0 0 8 4 5 50

y2 1 0 0 1 10 -2 1 4

y1 2 0 1 0 -3 1 -1 1

y1= 1; y2=4; y3=0; y4=0; y5=0 D=50


Exemplo:

Considere o exemplo de programação da produção de dois


itens P1 e P2, a partir dos recursos R1 e R2.

Produtos R1 uso por R2 uso por Lucro por


unid unid unid

P1 2 10 50
P2 3 5 90
Disponib. 300 1.000
de recursos
PRIMAL
Max z = 50x1 + 90x2
Suj a
2x1 + 3x2 ≤ 300
10x1 + 5x2 ≤ 1.000
x1, x2 ≥ 0

DUAL

Min D = 300y1+ 1.000y2


Suj a:
2y1 + 10y2 ≥ 50
3y1 + 5y2 ≥ 90
y1, y2 ≥ 0
Solução Primal

coeficientes
V. N Cont
Básica equação z x1 x2 x3 x4

z 0 1 10 0 30 0 9.000

x2 1 0 0,67 1 0,33 0 100

x4 2 0 6,65 0 -1,65 1 500

A empresa produz 0 unidade de P1; 100 unidades do P2;

Recurso 1, ou seja x3 ficou escasso e o recurso 2 não escasso com


x4= 500. Com lucro máximo de R$ 9.000,00
Solução Dual

coeficientes
V. N Cont
z y1 y2 y3 y4
Básica equação
z 0 -1 0 500 0 100 -9.000

Y1 1 0 1 0 0 0 30

y3 2 0 0 0 1 0 10

O valor de y1 = 30, obtido do coeficiente x3. Representa o valor da


oportunidade do Recurso 1. Cada unidade do Recurso 1 tem
capacidade de gerar lucro de 30.
O valor de y2 = 0, obtido do coeficiente x4. Representa o valor da
oportunidade do Recurso 2. O resultado mostra que o Recurso 2 é
não escasso (X4=500).
Solução Primal

y3 y4 y1 y2

coeficientes
V. N Cont
Básica equação z x1 x2 x3 x4

z 0 1 10 0 30 0 9.000

x2 1 0 0,67 1 0,33 0 100

x4 2 0 6,65 0 -1,65 1 500

Solução Dual
x3 x4 x1 x2

coeficientes
V. N Cont
z y1 y2 y3 y4
Básica equação
z 0 -1 0 500 0 100 -9.000

Y1 1 0 1 0 0 0 30

y3 2 0 0 0 1 0 10

Vous aimerez peut-être aussi