A Dualidade em PL

Propaganda
Investigação Operacional- 2009/10 - Programas Lineares
14
A Dualidade em Programação Linear
Para melhor ilustrar este conceito vamos estudar dois problemas intimamente relacionadas:
o problema da dona de casa que quer alimentar a sua família da forma mais económica
possível, tendo o cuidado de incluir na alimentação quantidades adequadas de vitaminas
A e C e, por outro lado, o problema do fabricante de comprimidos de vitaminas que quer
convencer a dona de casa a comprar os seus comprimidos em vez de se preocupar com a
qualidade da alimentação.
Primeiro problema:
Uma dona de casa está a tentar gastar o mínimo possível para, com 6 alimentos básicos,
obter os mínimos de vitamina A e C necessários por dia. A composição dos alimentos em
termos destas vitaminas, assim como os seus custos por quilo estão resumidos no quadro
seguinte:
No de unidades de vitamina por KG
Alimento
1
2
3
4
5
6
requisitos
míninos
Vitamina A
1
0
2
2
1
2
9
Vitamina C
0
1
3
1
3
2
19
custo/Kg
35
30
60
50
27
22
A dona de casa vai comprar quantidades de alimentos necessários para suprir os mínimos
diários de vitamina A e C ao menor preço possível. As variáveis de decisão deste problema
vão ser as quantidades de alimentos a adquirir. Seja xi a quantidade do alimento i. Obtém-se
o seguinte PL:
Min z =
35x1 + 30x2 + 60x3 + 50x4 + 27x5 + 22x6
s. a.
x1 + 2x3 + 2x4 + x5 + 2x6
9
x2 + 3x3 + x4 + 3x5 + 2x6
19
x1
0; x2
0; x3
0; x4
0; x5
0; x6
0
Segundo problema
Por sua vez, o fabricante de vitaminas vai convencer a dona de casa a comprar as suas
pastilhas em vez dos alimentos. Como a dona de casa é muito económica ele tem que a
convencer que as pastilhas são mais baratas que os alimentos. Seja y1 o preço duma unidade
de vitamina A em forma de pílula e y2 o preço de uma unidade de vitamina C em forma de
pílula. Como, por exemplo, o alimento 5 fornece 1 unidade de vitamina A e 3 de vitamina
C e custa 27 u.m. então deve ser y1 + 3y2
27 . E o mesmo se deve passar com os outros
alimentos. Como a dona de casa só vai comprar as pastilhas necessárias aos requisitos
mínimos diários de vitaminas, as vendas serão: v(y) = 9y1 + 19y2 . Está será a função
objectivo do ponto de vista do vendedor que quer maximizar as suas vendas.
Investigação Operacional- 2009/10 - Programas Lineares
15
Obtém-se o seguinte PL para formalizar o problema do vendedor de pastilhas:
Max v(y) = 9y1 + 19y2
s. a.
y1
35
y2
30
2y1 + 3y2
60
2y1 + y2
50
y1 + 3y2
27
2y1 + 2y2
22
y1
0
0; y2
Temos assim dois problemas que se articulam do seguinte modo:
Min z = cT x
s. a.
Max v = bT y
Ax
x
AT y
s. a.
b
0
y
c
0
A um dos problemas chama-se primal e ao outro dual. Diz-se que os dois problemas são
duais ou que os problemas são duais um do outro.
Vamos agora resolver ambos os problemas para vermos se encontramos alguma relação entre
as soluções.
Primeiro Problema
Inserindo variáveis de afastamento, pode-se escrever o quadro inicial:
x1
x2
x3
x4
x5
x6
x7
x8
1
0
x1
9
1
0
2
2
1
2
x2
19
0
1
3
1
3
2
0
z
35 30 60 50 27 22
0
1
0
Antes de começar é necessário escrever a função objectivo só à custa das variáveis não básicas,
ou seja, anular os valores correspondentes a x1 e x2 na última linha:
x1
x2
x3
x4
x5
x6
x7
x8
1
0
x1
9
1
0
2
2
1
2
x2
19
0
1
3
1
3
2
0
1
0
0
100
50
98
108
35
30
z
885
x1
x2
x3
x4
x5
x6
x7
x8
1
1=2
1
1=2
0
2
0
1
44
0
19
x6
9=2
1=2
0
1
x2
10
1
1
1
1
54
0
8
58
z
399
1
30
Investigação Operacional- 2009/10 - Programas Lineares
x6
2
x5
5
z
179
x1
x2
x3
3=4
1=4 3=4
16
x4
x5
x6
x7
x8
5=4
0
1
3=4
1=4
1=2
1=2
1=2
1=2
1
0
1=2
32
22
30
36
0
0
3
1=2
8
Temos então a solução do problema: x1 = x2 = x3 = x4 = 0; x5 = 5; x6 = 2 a que
corresponde um valor para z de 179.
Ou seja, a dieta mais económica deve incluir 5 Kg do alimento 5 e 2 Kg do alimento 6 a um
custo de 179 unidades monetárias.
Segundo Problema
Como temos um problema só com duas variáveis podemos resolvê-lo gra…camente:
Solução: y1 = 3; y2 = 8 a que corresponde um valor para v = 179:
Ou seja o preço de cada unidade de vitamina A deve ser 3 unidades monetárias e o preço de
cada unidade monetária de vitamina C deve ser de 8 unidades monetárias, a que corresponderá um volume de vendas de 179 unidades monetárias.
Neste exemplo conbstata-se que o valor da função objectivo é igual para as soluções óptimas
de ambos os problemas. Como veremos mais à frente, esta é uma característica que se veri…ca
sempre que resolvem pares de problemas duais com solução.
Investigação Operacional- 2009/10 - Programas Lineares
17
Regras para escrever o dual
Pôr o problema na forma de um dos anteriores.
- Se a função objectivo for minimizada as restrições devem ser de maior ou igual;
- Se a função objectivo for maximizada as restrições devem ser de menor ou igual;
De notar que a cada coluna da matriz A corresponde uma variável no primal. Como no dual
trabalhamos com AT , as colunas passam a linhas e a cada linha corresponde uma restrição.
Pode-se então dizer que: A cada restrição do primal corresponde uma variável do dual e a
cada variável do primal corresponde uma restrição do dual.
Como a cada restrição de desigualdade por sua vez corresponde uma variável de afastamento,
então ode-se dizer que a cada variável do primal corresponde uma variável de afstamento do
dual e a cada variável do dual corresponde uma variável de afastamento do primal.
Se tivermos uma restrição de igualdade ela pode ser desdobrada em duas desigualdades
(a = b () (a
b^a
b) () (a
b^ a
b)) : Passando ao dual depois de fazer esta
transformação veri…ca-se que a variável correspondente a uma restrição de igualdade é sem
restrição de sinal.
Do mesmo modo, se uma variável for sem restrição de sinal a restrição correspondente será
de igualdade.
Propriedades dos problemas duais
PRIMAL
DUAL
Min z = cT x
Max v = bT y
s. a
Ax
x
AT y
s. a
b
0
y
c
0
1. O dual do dual é o primal.
2. Seja x uma solução admissível do primal e y uma solução admissível do dual. Então:
z(x)
v(y)
Demonstração:
(Ax
b^y
0) =) y T Ax
yT b ^ yT A
z(x)
cT =) y T Ax
yT x
=) y T b
v(y)
3. O valor da f. o. do primal é um limite superior para o óptimo da f. o. do dual.
cT x =)
Investigação Operacional- 2009/10 - Programas Lineares
18
4. O valor da f. o. do dual é um limite inferior para o óptimo da f.o. do primal.
5. Se o primal é ilimitado inferiormente não existe nenhum limite inferior para a f. o. e
por isso o dual não tem solução admissível.
6. Se o dual é ilimitado superiormente não existe limite superior para o valor da f. o. e
por isso o primal não tem solução admissível
7. Se um dos problemas não tem solução admissível, o outro só é ilimitado se tiver alguma
solução admissível, quer isto dizer que podem ambos os problemas não ter solução
admissível.
8. Se z(x) é solução admissível do primal e v(y) é solução admissível do dual e z(x) = v(y)
então x é solução óptima do primal e y é solução óptima do dual.
Demonstração:
z(x)
v(y) para todo o x que seja solução admissível do primal. Por hipótese
z(x) = v(y) logo z(x)
z(x) para todo o x que seja solução admissível do primal.
Então x é solução óptima do primal. Do mesmo modo se mostra que y é solução
óptima do dual.
9. Num par de problemas primal-dual se um deles tem uma solução óptima o outro
também tem e, além disso, os valores das f.o. são iguais.
Demonstração:
Seja A uma matrix m
n. Suponhamos que o primal tem uma solução óptima
admissível. Seja B a base associada ao vector xI . O vector dos custos actualizados
é dado por cT = cT
cTI B 1 A
cTI B 1 A
0 ( porque o problema é de minimizar). Ou seja
c. Além disso a função objectico vale cTI B 1 b. De…nindo y T = cTI B
temos que y T A
1
c e v(y) = y T b = cTI B 1 b = f. o. primal. Pelo número anterior
então y é solução óptima do dual.
Considere-se o problema primal:
Minimizar z(x) = cTI xI + cTJ xJ
sujeito a
BxI + DxJ = b
xI
0; xJ
0
O seu dual pode ser escrito:
Maximizar v(y) = y T b
sujeito a
yT B
cTI
yT D
cTJ
y sem restrição
Investigação Operacional- 2009/10 - Programas Lineares
19
A solução básica do primal correspondente à base B é dada por: xJ = 0 e xI = B 1 b e
esta base corresponde a uma solução admissível se e só se xI = B 1 b
T
dual correspondente à base B é dada por y =
se satis…zer as outras restrições, isto é se y T D
cTI B 1
cTJ .
T
y B=
cTI
0. A solução do
e é solução admissível
Ou seja, se cTJ
cTI B 1 D
0, o
que representa a condição de optimalidade do primal. Isto é, a qualquer solução admissível
do primal, que não seja óptima, corresponde uma solução não admissível para o dual. Se
a uma solução admissível do primal corresponder uma solução também admissível para o
dual, então são ambas óptimas.
Para este problema primal os custos actualizados em cada iteração são dados por: cT =
cT
cTI B 1 A = cT
y T A . Ou seja cada componenete do vector c pode ser calculada do
cTI B 1 A:j em que A:j reperesenta a coluna j da matriz A. Então
seguinte modo: cj = cj
os custos actualizados do problema primal são os valores das variáveis de afastamento do
problema dual. Estes valores são designados por preços sombra das actividades do primal.
TEOREMA DO EQUILÍBRIO (OU DA COMPLEMENTARIDADE)
Um par de soluções admissíveis para os problemas primal-dual são óptimas se e só se as
variáveis de afastamento do primal positivas correspondem a variáveis do dual nulas.
Demonstração:
Considere-se novamente o par de problemas primal-dual na forma:
PRIMAL
DUAL
T
Min z = c x
s. a
Max v = bT y
Ax
x
b
s. a
0
AT y
y
A variável do dual yi está associada à restrição do primal Ai: x
de afastamento ui = Ai: x
T
restrição do dual y A:j
c
0
bi , à qual se associa a variável
bi . Por outro lado, a variável xj do primal está associada à
cj à qual se associa a variável de afastamento wj = cj
y T A:j
. Sejam x e y um par de soluções admissíveis para os problemas primal e dual. Então,
u = Ax
b e w T = cT
y T A são os vectores das variáveis de afastamento correspondentes.
O teorema diz que:
(ui = Ai: x
bi > 0 =) y i = 0) ^ wj = cj
y T A:j > 0 =) xj = 0
ou, escrevendo de outro modo:
ui y i = (Ai: x
bi )y i = 0 ^ wj xj = (cj
y T A:j )xj = 0 para i = 1; :::; m e j = 1; :::; n:
Investigação Operacional- 2009/10 - Programas Lineares
Como se trata de soluções admissíveis sabe-se que Ai: x
bi e y i
20
0 . Pode então multiplicar-
se ambos os membros da 1a desigualdade por y i vindo y i Ai: x
y i bi , mas por hipótese
veri…ca-se o sinal de igualdade. Somando para todos os i virá :
De modo análogo se conclui ser:
X
X
Mas .
X
Então,
y i Ai: x =
X
xj (yAi: ) =
y i Ai: x =
X
X
X
y i bi =
y i bi
xj cj
xj (yAi: )
X
xj cj
e, por isso, x e y são soluções óptimas dos respectivos problemas.
Reciprocamente, como cT x = bT y = y T Ax , vem que cT x y T Ax = 0 donde
P
cj
y T A:j xj =
0, mas, como se trata de uma soma de parcelas não negativas, todas elas terão de ser nulas,
isto é, para cada j, cj
y T A:j = 0 =) xj = 0. E do mesmo modo para as variáveis do dual.
MÉTODO SIMPLEX DUAL
Considere-se o PL:
Minimizar z(x) = cT x
sujeito a
Ax = b
x
0
Seja B uma base. B é uma base admissível para o primal se B 1 b
dual se c
cTI B 1 A
0 e é admissível para o
0 e é uma base óptima se ambos se realizarem.
O método simplex começa com uma base admissível para o primal e percorre sempre soluções
admissíveis correspondentes a vértices da região admissível até atingir o critério do óptimo
(dual admissível). O método simplex-dual começa com uma solução admissível para o dual
e percorre sempre soluções admissíveis adjacentes para o dual mas não admissíveis para o
primal terminando quando atinge uma solução admissível para o primal que é a óptima.
Cada iteração deste algoritmo reduz o número de inadmissibilidades do primal, mantendo a
admissibilidade do dual.
Investigação Operacional- 2009/10 - Programas Lineares
21
ALGORITMO
1. Escolher uma linha tal que br < 0 ( variável a sair da base); Se todos os br
0,
termina.
cs
cj
= min
: arj < 0
ars
arj
Esta escolha tem o objectivo de manter todos os custos do primal não negativos ou seja
2. Escolher o pivot ars tal que
manter o problema dual admissível. Se todos os arj
3. Efectuar a pivotagem.
4. Voltar a 1.
0, o problema não tem solução.
Download