10
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 1 2 - É fácil constatar que em [-2,0[ a função dada é crescente, uma vez que, neste intervalo, se tem:

O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

Embed Size (px)

Citation preview

Page 1: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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

Page 2: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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

Page 3: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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:

Page 4: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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 é:

Page 5: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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:

Page 6: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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:

Page 7: O PRIMAL E O DUAL EM 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, é:

Page 8: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR

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.

Page 9: O PRIMAL E O DUAL EM PROGRAMAÇÃO LINEAR