P. 1
O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

4.5

|Views: 6.529|Likes:

More info:

Published by: HELIO BERNARDO LOPES on Feb 27, 2008
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

06/09/2013

pdf

text

original

O PR IMA L E O DU AL EM PR OGRAMAÇÃO

HÉLIO BERNARDO LOPES

L INEAR

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) = 1 − x 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 ) ≡ −2 x = 0 ⇔
ou seja, existe um só ponto de estacionaridade da função, x A segunda derivada da função dada é:

x=0

= 0.

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 maximizante da função dada, onde ocorre o máximo local:

= 0 é um

f (0) = 1 − 0 2 = 1.
É 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 o primeiro dos quais também de mínimo absoluto, com o valor:
2 f ( −2) = 1 − ( − 2) = −3. •

x = −2 e x = 1 pontos de mínimo local,

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) = 1 − x 2
condicionados por:

x− y =1
há que resolver o sistema de equações:

y = 1 − x2   x − y = 1 
cujas soluções, muito fáceis de encontrar, são:

x = −2 ∨
tendo-se que:

x =1

− 2 ∈[ − 2,1]
Dado que se tem:

∧ 1 ∈[ − 2,1] .

f ( −2 ) = 1 − ( − 2 ) = −3 ∧
2

f (1) = 1 − 12 = 0

f (1) = 0 é o máximo da função: f ( x) = 1 − x 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) = 1 − x 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) = 1 − x 2 x− y =1 x ∈[ − 2,1]

ou:

Min

f ( x) = 1 − x 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

=

c1 x1

+

c2 x 2

+ ......

+

cn x n

a11 x1 + a12 x 2 + ...... + a1n x n ≤ b1 a 21 x 2 + a 22 x 2 + ...... + a 2 n x n ≤ b2 ......... ... ......... ... ...... ... .......... ... ..... a m1 x1 + a m2 x 2 + ...... + a mn x n ≤ bm xj ≥ 0
com

,..., x n ) ∈ D f , que torna máxima a função, Z = f : D ⊆ R n → R, onde D é o conjunto dos pontos de R n definido pelas m inequações indicadas. As variáveis x j , ( j = 1,..., n) , são não negativas, sendo c j ∈ R, ( j = 1,..., n) , e bi ∈ R, ( i = 1,..., m) . A este problema de j ∈ { 1,2,..., n} . Ou seja, pretende determinar-se o ponto
1 2

( x ,x

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 =

b1 y1 ......... a11 y1 a12 y1 ......... a1n y1

+ b2 y 2 + ...... + b1 y m .. ......... .. ........ .. .......... + a 21 y 2 + ...... + a m1 y m ≥ c1 + a 22 y 2 + ...... + a m2 y m ≥ c2 .. ......... .. ...... .. .......... .. .... + a 2 n y 2 + ...... + a mn y m ≥ cn yi ≥ 0

i ∈ { 1,..., m} . Ou seja, pretende aqui determinar-se o ponto ( y1 ,..., y m ) ∈ Dg , 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 = 1,..., m) , são não negativas, sendo c j ∈ R, ( j = 1,..., n) , e bi ∈ R, ( i = 1,..., m) . É a este problema
com 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

=

c1 x1 a11 x1 a 21 x1 a 31 x1

+

c2 x 2

+

c3 x 3 ≤ b1 ≤ b2 = b3

+ a12 x 2 + a 22 x 2 + a 32 x 2

+ a13 x 3 + a 23 x 3 + a 33 x 3

x1 ≥ 0 , x 2 ≥ 0 , x 3 ≥ 0 .
Então, o respectivo dual é:

Min D =

b1 y1 a11 y1 a12 y1 a13 y1

+

b2 y 2

+

b3 y 3 ≥ c1 ≥ c2 ≥ c3

+ a 21 y 2 + a 22 y 2 + a 23 y 2

+ a 31 y 3 + a 32 y 3 + a 33 y 3

y1 ≥ 0 , y 2 ≥ 0 , y 3 ∈ R. •
Veja-se, a este propósito, um outro EXEMPLO. Seja o problema primal de Programação Linear:

Max Z

=

c1 x1 a11 x1 a 21 x1 a 31 x1

+

c2 x 2

+

c3 x 3 = b1 ≤ b2 = b3

+ a12 x 2 + a 22 x 2 + a 32 x 2

+ a13 x 3 + a 23 x 3 + a 33 x 3

x1 ≥ 0 , x 2 ≥ 0 , x 3 ≥ 0.
O respectivo dual é então:

Min D =

b1 y1 a11 y1 a12 y1 a13 y1

+

b2 y 2

+

b3 y 3 ≥ c1 ≥ c2 ≥ c3

+ a 21 y 2 + a 22 y 2 + a 23 y 2

+ a 31 y 3 + a 32 y 3 + a 33 y 3

y 2 ≥ 0 , y1 , y 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

=

c1 x1 a11 x1 a 21 x1 a 31 x1

+

c2 x 2

+

c3 x 3 ≤ b1 ≤ b2 ≤ b3

+ a12 x 2 + a 22 x 2 + a 32 x 2

+ a13 x 3 + a 23 x 3 + a 33 x 3

x1 , x 2 ∈ R , x 3 ≥ 0.

O dual deste problema é, nos termos do que se disse:

Min D =

b1 y1 a11 y1 a12 y1 a13 y1

+

b2 y 2

b3 y 3 a 31 y 3 a 32 y 3 a 33 y 3 = c1 = c2 ≥ c3

+ a 21 y 2 + a 22 y 2 + a 23 y 2

y1 ≥ 0 , y 2 ≥ 0 , y 3 ≥ 0. •
Veja-se, ainda, este novo EXEMPLO. Seja o problema primal de Programação Linear:

Max Z

=

c1 x1 a11 x1 a 21 x1 a 31 x1

+

c2 x 2

+

c3 x 3 = b1 ≤ b2 ≤ b3

+ a12 x 2 + a 22 x 2 + a 32 x 2

+ a13 x 3 + a 23 x 3 + a 33 x 3

x1 ≥ 0 , x 2 , x 3 ∈ R.
Neste caso, como já se percebe facilmente, o respectivo dual é:

Min D =

b1 y1 a11 y1 a12 y1 a13 y1

+

b2 y 2

+

b3 y 3 ≥ c1 = c2 = c3

+ a 21 y 2 + a 22 y 2 + a 23 y 2

+ a 31 y 3 + a 32 y 3 + a 33 y 3

x1 ∈ R , x 2 ≥ 0 , x 3 ≥ 0. •
Nos casos em que se está perante uma variável sem restrição de sinal, seja a variável em causa na forma:

x j ∈ R, ( j = 1,..., n) , basta escrever

x j = x 'j − x ''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

=

c1 x1 a11 x1 a 21 x1 a 31 x1

+

c2 x 2

+

c3 x 3 ≤ b1 = b2 ≤ b3

+ a12 x 2 + a 22 x 2 + a 23 x 2

+ a13 x 3 + a 23 x 3 + a 33 x 3

x1 ≥ 0 , x 2 ≥ 0 , x 3 ≥ 0.
Este problema pode escrever-se na forma equivalente:

Max Z

=

c1 x1 a11 x1 a 21 x1 a 21 x1 a 31 x1

+ + + + +

c2 x 2 a12 x 2 a 22 x 2 a 22 x 2 a 32 x 2

+ + + + +

c3 x 3 a13 x 3 a 23 x 3 a 23 x 3 a 33 x 3 ≤ b1 ≤ b2 ≥ b2 ≤ b3

x1 ≥ 0 , x 2 ∈ R, x 3 ≥ 0
ou, ainda:

Max Z

=

c1 x1 a11 x1 a 21 x1 − a 21 x1 a 31 x1

+ + + − +

c2 x 2 a12 x 2 a 22 x 2 a 22 x 2 a 32 x 2

+ + + − +

c3 x 3 a13 x 3 a 23 x 3 a 23 x 3 a 33 x 3 ≤ b1 ≤ b2 ≤ − b2 ≤ b3

x1 ≥ 0 , x 2 ∈ R, x 3 ≥ 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

=

c1 x1 a11 x1 a 21 x1 a 31 x1

+

c2 x 2

+

c3 x 3 ≤ b1 ≤ b2 ≥ b3

+ a12 x 2 + a 22 x 2 + a 32 x 2

+ a13 x 3 + a 23 x 3 + a 33 x 3

x1 ≥ 0 , x 2 ≤ 0 , x 3 ≥ 0 .
Então, o dual deste problema, nos termos do que antes se referiu, é:

Min D =

b1 y1 a11 y1 a12 y1 a13 y1

+

b2 y 2

+

b3 y 3 ≥ c1 ≤ c2 ≥ c3

+ a 21 y 2 + a 22 y 2 + a 23 y 2
,

+ a 31 y 3 + a 32 y 3 + a 33 y 3
,

x1 ≥ 0

x2 ≥ 0

x 3 ≤ 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.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->