Upload
helio-bernardo-lopes
View
6.453
Download
0
Embed Size (px)
Citation preview
O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR
HÉLIO BERNARDO LOPES
O tema da Programação Linear, com as suas particularizações do Problema dos Transportes e do Problema da Afectação de Recursos, é hoje estudado em cursos diversos onde uma disciplina de Investigação Operacional esteja presente.
Trata-se, em última análise, de um problema de cálculo de extremos condicionados, seja de máximo ou de mínimo, que apresenta características muito particulares e de grande elegância simbólica.
Também os Problemas dos Transportes e da Afectação de Recursos se podem resolver como problemas de Programação Linear, através do Algoritmo Simplex, embora seja preferível o recurso a algoritmos próprios, de muitíssimo maior simplicidade: o Algoritmo dos Transportes e o Algoritmo Húngaro, respectivamente.
De molde a facilitar a compreensão do que realmente está em jogo, consideram-se aqui dois casos de determinação de extremos e de extremos condicionados, mas ao nível do final do ensino secundário.
EXEMPLO. Pretende estudar-se a existência de extremos para a função real, de variável real, definida em [-2,1] por:
f x x( ) . -1 2
A função é constituída por um polinómio incompleto do segundo grau, pelo que é possível recorrer, em princípio, à utilização de derivadas da função.
As condições de estacionaridade são, neste caso:
f x x x' ( ) - 2 0 0
ou seja, existe um só ponto de estacionaridade da função, x 0.
A segunda derivada da função dada é:
f x'' ( ) - 2 0
que já não se anula no ponto de estacionaridade encontrado, sendo negativa em todo o seu domínio. Assim, x 0 é um maximizante da função dada, onde ocorre o máximo local:
f ( ) .0 1 0 12 -
É fácil constatar que em [-2,0[ a função dada é crescente, uma vez que, neste intervalo, se tem:
f x' ( ) 0
e que em ]0,1] é decrescente, dado ter-se aqui:
f x' ( ) 0 .
Assim, em x 0 ocorre igualmente o máximo absoluto da função, sendo x - 2 e x 1 pontos de mínimo local, o primeiro dos quais também de mínimo absoluto, com o valor:
f ( ) .- - - -2 1 2 32 ·
Um outro caso, que envolve a determinação de extremos condicionados de certa função, é o que se apresenta no seguinte
EXEMPLO. Pretende determinar-se os extremos da função apresentada no exemplo anterior, mas sujeitos à condição:
x y- 1.
Como se torna evidente, o anterior maximizante já aqui o não é, dado que é falsa a igualdade numérica:
0 1 1 1 1- - .
Para achar os extremos da função:
f x x( ) -1 2
condicionados por:
x y- 1
há que resolver o sistema de equações:
y x
x y
-
-
1
1
2
cujas soluções, muito fáceis de encontrar, são:
x x- 2 1
tendo-se que:
[ ] [ ]- - -2 2 1 1 2 1, , .
Dado que se tem:
f f( ) ( )- - - - - 2 1 2 3 1 1 1 02 2
f ( )1 0 é o máximo da função:
f x x( ) -1 2
sujeito à condição:
x y- 1
e ainda ao facto de:
[ ]x - 2 1, .
De igual modo:
f ( )- -2 3
é o mínimo de:
f x x( ) -1 2
sujeito à condição:
x y- 1
e também à condição:
[ ]x - 2 1, .
De um modo sintético, o problema consiste em resolver os problemas de extremos condicionados:
Max f x x( ) -1 2
x y- 1
[ ]x - 2 1,
ou:
Min f x x( ) -1 2
x y- 1
[ ]x - 2 1, . ·
Com estes dois exemplos pode agora entender-se melhor o Problema da Programação Linear. De um modo puramente matemático, ele consiste na resolução do problema seguinte:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
n n
n n
n n
m m mn n m
1 1 2 2
11 1 12 2 1 1
21 2 22 2 2 2
1 1 2 2
......
......
......
......... ... ......... ... ...... ... .......... ... .....
......
x j 0
com j n 1 2, ,..., . Ou seja, pretende determinar-se o ponto x x x Dn f1 2, ,..., , que torna máxima a função, Z f D :
R n ® R, ondeD é o conjunto dos pontos de R n definido pelas m inequações indicadas. As variáveis x j , j n1,..., , são
não negativas, sendo c j R, j n1,..., , e bi R, i m1,..., . A este problema de Programação Linear dá-se o nome de primal.
Pode, para já, dizer-se o seguinte:
¶ a função objectivo do primal pretende maximizar-se;
· as inequações do primal são do tipo , e tomam o nome de restrições do problema;
¸ o conjunto de todas as soluções possíveis do primal, gerado pelo das restrições, é um conjunto convexo. Neste ponto, já conhecido o que se entende em Programação Linear por primal, pode definir-se o conceito de dual do problema apresentado, como sendo o novo problema:
Min D b y b y b y
a y a y a y c
a y a y a y c
m
m m
m m
1 1 2 2 1
11 1 21 2 1 1
12 1 22 2 2 2
......
......... .. ......... .. ........ .. ..........
......
......
......... .. ......... .. ...... .. .......... .. ....
......a y a y a y cn n mn m n1 1 2 2
yi 0
com i m 1,..., . Ou seja, pretende aqui determinar-se o ponto y y Dm g1 ,..., , que torna mínima a função
D g G : R m® R, onde G é o conjunto dos pontos de R m definido pelas n inequações - restrições - indicadas. As
variáveis yi , i m1,..., , são não negativas, sendo c j R, j n1,..., , e bi R, i m1,..., . É a este problema de Programação Linear que se dá o nome de dual (do primal).
Pode dizer-se agora o seguinte:
¶ a função objectivo do primal deve ser maximizada, enquanto que a do dual deve ser minimizada;
· as constantes dos segundos membros das restrições do primal são os coeficientes da função objectivo do dual;
¸ os coenficientes da função objectivo do primal são as constantes dos segundos membros do dual;
¹ as restrições do primal são do tipo , ao passo que as do dual são do tipo ;
º o número de variáveis do primal é igual ao número de restrições do dual;
» o número de variáveis do dual é igual ao número de restrições do primal;
¼ os coeficientes dos primeiros membros das restrições do primal formam uma matriz que é transposta da dos coeficientes dos primeiros membros das restrições do dual;
½ o dual do dual é o primal;
¾ os conjuntos de todas as soluções possíveis, do primal ou do dual, são convexos.
Na formulação dos problemas primal e dual aceitaram-se as condições que se indicaram. Pode acontecer, porém, que ocorram excepções.
Assim, admita-se que certa restrição do primal é uma igualdade. Neste caso, a correspondente variável do dual é um número real. Um exemplo esclarece o que está em jogo.
EXEMPLO. Seja o problema primal de Programação Linear que se segue:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x1 0 , x2 0 , x3 0 .
Então, o respectivo dual é:
Min D b y b y b y
a y a y a y c
a y a y a y c
a y a y a y c
1 1 2 2 3 3
11 1 21 2 31 3 1
12 1 22 2 32 3 2
13 1 23 2 33 3 3
y1 0 , y2 0 , y3 R. ·
Veja-se, a este propósito, um outro
EXEMPLO. Seja o problema primal de Programação Linear:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x1 0 , x2 0 , x3 0 .
O respectivo dual é então:
Min D b y b y b y
a y a y a y c
a y a y a y c
a y a y a y c
1 1 2 2 3 3
11 1 21 2 31 3 1
12 1 22 2 32 3 2
13 1 23 2 33 3 3
y2 0 , y y1 3, R. ·
Admita-se, agora, que certa variável do primal é um número real qualquer. Então, a restrição correspondente do dual é uma igualdade, É o que se mostra no seguinte
EXEMPLO. Seja o problema primal de Programação Linear:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x x1 2, R , x3 0 .
O dual deste problema é, nos termos do que se disse:
Min D b y b y b y
a y a y a y c
a y a y a y c
a y a y a y c
1 1 2 2 3 3
11 1 21 2 31 3 1
12 1 22 2 32 3 2
13 1 23 2 33 3 3
y1 0 , y2 0 , y3 0 . ·
Veja-se, ainda, este novo
EXEMPLO. Seja o problema primal de Programação Linear:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x1 0 , x x2 3, R.
Neste caso, como já se percebe facilmente, o respectivo dual é:
Min D b y b y b y
a y a y a y c
a y a y a y c
a y a y a y c
1 1 2 2 3 3
11 1 21 2 31 3 1
12 1 22 2 32 3 2
13 1 23 2 33 3 3
x1 R , x2 0 , x3 0 . ·
Nos casos em que se está perante uma variável sem restrição de sinal, seja x j R, j n1,..., , basta escrever a variável em causa na forma:
x x xj j j -' ''
já com x j' 0 e x j
'' 0 , uma vez que qualquer número real pode sempre escrever-se como a diferença de dois outros não
negativos. Assim se cai, pois, nas condições inicialmente apresentadas, para o primal e para o dual, no respeitante à respectivas variáveis.
De igual modo, no sentido de se ser conduzido à situação inicial, quando surge uma igualdade em certa condição, a mesma pode ser substituída por duas desigualdades, uma do tipo , outra do tipo . É o que se mostra com o seguinte
EXEMPLO. Seja o seguinte problema de Programação Linear:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 23 2 33 3 3
x1 0 , x2 0 , x3 0 .
Este problema pode escrever-se na forma equivalente:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x1 0 , x2 R, x3 0
ou, ainda:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
a x a x a x b
- - - -
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x1 0 , x2 R, x3 0
Admita-se, agora, que certa variável do primal é não positiva. Neste caso, a correspondente restrição do dual é do tipo . Do mesmo modo, se certa restrição do primal é do tipo , a correspondente variável do dual é não positiva. É o que se mostra com o novo
EXEMPLO. Seja o problema primal de Programação Linear:
Max Z c x c x c x
a x a x a x b
a x a x a x b
a x a x a x b
1 1 2 2 3 3
11 1 12 2 13 3 1
21 1 22 2 23 3 2
31 1 32 2 33 3 3
x1 0 , x2 0 , x3 0 .
Então, o dual deste problema, nos termos do que antes se referiu, é:
Min D b y b y b y
a y a y a y c
a y a y a y c
a y a y a y c
1 1 2 2 3 3
11 1 21 2 31 3 1
12 1 22 2 32 3 2
13 1 23 2 33 3 3
x1 0 , x2 0 , x3 0 . ·
Para um dado problema de Programação Linear, no caso de existir o óptimo do primal, também existe o do dual e são iguais. Mas para soluções possíveis do primal inferiores ao seu óptimo, existirão soluções possíveis do dual superiores ao seu óptimo, e portanto soluções não óptimas do primal serão menores que as correspondentes - não óptimas - do dual.
Finalmente, se a solução do primal crescer positivamente para infinito, o dual não tem qualquer solução possível. Em contrapartida, se a solução do dual decrescer negativamente para infinito, também o primal não terá qualquer solução possível. Para lá destes casos, podem mesmo não existir soluções possíveis para ambos os problemas, primal e dual.