Você está na página 1de 146

PROGRAMAO LINEAR

5
I N T R O D U O

P R O G R A M A O L I N E A R

Um problema geral de Programao Matemtica pode apresentar-se na forma


seguinte:

Maximizar (ou Minimizar) F ( X1 , X2 , X3 , ... , Xn )

sujeito a:

f1 ( X1 , X2 , X3 , ... , Xn ) {;;=} b1
f2 ( X1 , X2 , X3 , ... , Xn ) {;;=} b2
...
fm( X1 , X2 , X3 , ... , Xn ) {;;=} bm

Se a funo objectivo F e as restries f1 , f2 , ... , fm forem funes lineares em


relao s variveis X1 , X2 , ... , Xn estaremos perante um caso particular do problema
anterior - um problema de Programao Linear:

Maximizar (ou Minimizar) F = c1 . X1 + c2 . X2 + c3 . X3 + ... + cn . Xn

sujeito a:

a11 . X1 + a12 . X2 + a13 . X3 + ... + a1n . Xn { ; ; = } b1


a21 . X1 + a22 . X2 + a23 . X3 + ... + a2n . Xn { ; ; = } b2
...
am1. X1 + am2. X2 + am3. X3 + ... + amn . Xn { ; ; = } bm

X1 , X2 , X3 , ... , Xn { 0 ; 0 ; }
Ruy Costa, 2011

O problema de Programao Linear anterior diz-se estar na forma geral, j que a


funo objectivo pode ser maximizada ou minimizada e as restries podero ser de trs
tipos ( ; ; = ) . Nesta forma, admite-se ainda que um problema de Programao Linear
possa, para alm das variveis no negativas ( Xi 0 ) , apresentar variveis no positivas
( Xi 0 ) , ou ainda variveis livres ( Xi ).

6
Se se pretender maximizar a funo objectivo, sendo todas as restries do tipo e
todas as variveis forem no negativas ( Xi 0 ) , diz-se que o problema de Programao
Linear est na forma cannica.

Se se pretender maximizar a funo objectivo, sendo todas as restries do tipo = e


todas as variveis forem no negativas ( Xi 0 ) , diz-se que o problema de Programao
Linear est na forma standard.

No quadro seguinte resume-se o que se acabou de referir:

Problema de Programao Linear na forma


geral cannica standard
Funo Objectivo Max ; Min Max Max
Restries ;;= =
Variveis 0 ; 0 ; R 0 0

Para efeitos de resoluo analtica de um problema de Programao Linear, muitas


vezes necessrio que o problema esteja apresentado na sua forma mais "simples", isto ,
na forma standard.

Transformao "Forma Geral" "Forma Cannica"


Consideremos o seguinte problema de Programao Linear, que se deseja exprimir
na forma cannica:

Minimizar F = 9 . X1 - 5 . X2 + 4 . X3 - 8 . X4

sujeito a:

2 . X1 + 6 . X2 + 3 . X3 - 1 . X4 50
1 . X1 - 2 . X2 + 6 . X3 + 3 . X4 20
3 . X1 + 2 . X2 + 2 . X3 + 1 . X4 = 15

X1 0 ; X2 R ; X3 , X4 0

Como se v, o problema anterior est apresentado na forma geral, havendo


necessidade de fazer alteraes na funo objectivo, nas restries e nas variveis para que
o problema esteja apresentado na forma cannica.

- Funo objectivo

Minimizar uma funo equivalente a maximizar a sua simtrica, ou seja, Min


Ruy Costa, 2011

F Max G (com G = - F ). Relativamente ao problema que estamos a tratar, ter-se- -ia:

Min F = 9 . X1 - 5 . X2 + 4 . X3 - 8 . X4 Max G = - F = - 9 . X1 + 5 . X2 - 4 . X3 + 8 . X4

O valor ptimo da funo objectivo "original" F (que designaremos por F*) relaciona-
-se facilmente com G*. Com efeito, F* = - G*.

7
- Restries

A primeira restrio do tipo desejado ( ), no sendo, por isso, necessrio fazer


qualquer alterao. No entanto, as duas ltimas restries precisam de ser re-escritas.

A segunda restrio pode ser "multiplicada" por -1, obtendo-se:


1 . X1 - 2 . X2 + 6 . X3 + 3 . X4 20 - 1 . X1 + 2 . X2 - 6 . X3 - 3 . X4 - 20
De notar que este "expediente" nem sempre ser muito til, pois, por vezes, no
desejaremos ter um termo independente de uma restrio com sinal negativo... Na altura
prpria voltaremos a esta questo.

Quanto terceira restrio, poderemos escrever:


3 . X1 + 2 . X2 + 2 . X3 + 1 . X4 15
3 . X1 + 2 . X2 + 2 . X3 + 1 . X4 = 15
3 . X1 + 2 . X2 + 2 . X3 + 1 . X4 15

3 . X1 + 2 . X2 + 2 . X3 + 1 . X4 15

- 3 . X1 - 2 . X2 - 2 . X3 - 1 . X4 - 15 .

- Variveis

A varivel X1 no positiva, pelo que no dever figurar na forma cannica. Se


considerarmos a varivel Y1 = - X1 0 estaremos perante uma varivel no negativa,
como se desejava. Deve-se trocar, na funo objectivo e nas restries, a varivel X1 por -
Y1. O valor ptimo de X1 obtm-se facilmente a partir do valor ptimo de Y1 : X1* =
- Y1* .
Quanto varivel livre X2 , poderemos socorrer-nos de um artifcio que consiste em
escrever essa varivel como a diferena de duas variveis no negativas, isto , X2
= Y2 - Z2 com Y2, Z2 0 . Com efeito, embora Y2 e Z2 sejam no negativas, a sua
diferena poder ser positiva, nula ou negativa, garantindo-se que X2 efectivamente uma
varivel livre. Na funo objectivo e nas restries, a varivel X2 dever ser trocada por Y2
- Z2 . O valor ptimo de X2 obtm-se facilmente a partir dos valores ptimos de Y2 e de Z2
Ruy Costa, 2011

: X2* = Y2* - Z2* .

As variveis X3 e X4 so no negativas, pelo que no precisam de ser alteradas.

Poderemos, agora, escrever o problema, que temos vindo a tratar, na forma


cannica:

Maximizar G = + 9 . Y1 + 5 . Y2 - 5 . Z2 - 4 . X3 + 8 . X4

sujeito a:

- 2 . Y1 + 6 . Y2 - 6 . Z2 + 3 . X3 - 1 . X4 50
+1 . Y1 + 2 . Y2 - 2 . Z2 - 6 . X3 - 3 . X4 - 20
- 3 . Y1 + 2 . Y2 - 2 . Z2 + 2 . X3 + 1 . X4 15
+3 . Y1 - 2 . Y2 + 2 . Z2 - 2 . X3 - 1 . X4 -15

Y1 , Y2 , Z2 , X3 , X4 0

8
Aps a resoluo do problema, obter-se-ia os valores ptimos das variveis Y1, Y2,
Z2, X3 e X4 e da funo objectivo G. Para obter a soluo ptima do problema original e o
valor ptimo da funo objectivo F, basta fazer : F* = - G* , X1* = - Y1* e X2* = Y2* - Z2* .
de notar que os valores ptimos das variveis X3 e X4 se obtm directamente sem ser
necessrio fazer qualquer transformao.

Transformao "Forma Cannica" "Forma Standard"


Esta transformao muito fcil de se fazer. Com efeito, no h alteraes a
introduzir quer na funo objectivo, quer nas variveis. Basta apenas transformar as
restries do tipo (da forma cannica) para o tipo = (da forma standard).

Imagine-se que se pretende transformar a restrio 2 . X1 + 6 . X2 + 3 . X3 50


numa igualdade. Tal pode ser feito com facilidade, mediante a introduo de uma varivel
de folga ou de desvio F1 ( F1 0 ) :

2 . X1 + 6 . X2 + 3 . X3 50 2 . X1 + 6 . X2 + 3 . X3 + F1 = 50 , com F1 0.

Observemos que quando F1 = 0, se tem 2 . X1 + 6 . X2 + 3 . X3 = 50 ; pelo


contrrio, se F1 > 0, tem-se 2 . X1 + 6 . X2 + 3 . X3 < 50, isto , tal como se pretendia tem-
-se 2 . X1 + 6 . X2 + 3 . X3 50.

Assim, para se re-escrever na forma standard um problema de Programao Linear


expresso na forma cannica, bastar adicionar ao primeiro membro de cada restrio
uma varivel de folga [ Ateno: uma por cada restrio ! ] passando a desigualdade a
uma igualdade.

Transformao "Forma Geral" "Forma Standard"


Um problema de Programao Linear expresso na forma geral pode passar-se
forma standard levando a cabo os procedimentos j descritos ( Transformao "Forma
Geral" "Forma Cannica" ) relativos funo objectivo e s variveis.

No tocante s restries nada h a fazer relativamente s igualdades; relativamenteRuy Costa, 2011


s restries do tipo adopta-se o procedimento descrito acima ( Transformao "Forma
Cannica" "Forma Standard" ) e relativamente s restries do tipo adopta-se um
procedimento similar (isto , bastar subtrair ao primeiro membro de cada restrio do
tipo uma varivel de folga [ Ateno: uma por cada restrio ! ] passando a
desigualdade a uma igualdade).

9
F O R M U L A O D E P R O B L E M A S D E

P R O G R A M A O L I N E A R

Comecemos por considerar o seguinte problema 1 :

A FARLACT uma fbrica onde so produzidos dois tipos de farinhas


lcteas ( A e B ) .

Estas farinhas so enriquecidas com dois aditivos. Por cada tonelada de


farinha A so necessrios um quilograma de aditivo P e trs quilogramas de
aditivo Q. Por cada tonelada de farinha B so necessrios dois quilogramas
de aditivo P e dois quilogramas de aditivo Q.

Sabe-se que, em cada semana, a FARLACT no dispe de mais de 20 Kg e


30 Kg, respectivamente, de aditivos P e Q.

Os donos da FARLACT exigem que a produo mensal conjunta das


farinhas A e B no seja inferior a 20 toneladas.

Por cada tonelada de farinha A vendida, a FARLACT tem um lucro de 7


unidades monetrias (u.m.), sendo de 10 u.m. o lucro associado venda de
uma tonelada de farinha B.

Como se pode determinar o plano de produo que maximiza o lucro da


FARLACT ?

Quando somos confrontados com um problema como o anterior, poderemos


formular trs questes importantes:

1 - Qual o objectivo a atingir ?


Ruy Costa, 2011

Relativamente a este problema, o enunciado relativamente explcito: pretende-se


maximizar o lucro.

Note-se que noutros problemas similares (em termos de estrutura) poderemos ter
objectivos muito diferentes: "minimizar desperdcios", "minimizar custos", "minimizar tempos
de espera", "maximizar a satisfao" ...

10
Genericamente o objectivo do problema pode traduzir-se na maximizao de um
benefcio, ou na minimizao de um prejuzo.

2 - Que decises devero ser tomadas ? Que actividades devero ser


levadas a cabo?

Referimo-nos, obviamente, a decises ou actividades que influam no objectivo ...

Assim, relativamente ao problema em anlise poderemos indicar sucintamente as


decises que iro influir no lucro da FARLACT:

- produzir farinha A
- produzir farinha B

3 - Que recursos so consumidos (quando se leva a cabo as actividades


referidas) ? Que condicionalismos so impostos ?

Como se pode constatar pelo enunciado:


- consome-se aditivo P
- consome-se aditivo Q
- exige-se a produo mensal mnima conjunta (A + B) de 20 ton.

Retomemos a questo 2 ( Que decises devero ser tomadas ? Que actividades


devero ser levadas a cabo ? ). Poderemos associar s respostas a esta questo (
produzir farinha A / produzir farinha B ) uma nova questo: Quanto ? Com que
intensidade se deve levar a cabo as actividades referidas ?

Que actividades ? Quanto ?

produzir farinha A XA
produzir farinha B XB

Definamos, ento, as variveis XA e XB :


XA a quantidade de farinha A a produzir;
XB a quantidade de farinha B a produzir;

Uma primeira concluso a reter diz respeito no negatividade destas variveis:

XA 0 , XB 0 .

Retomemos a questo 3 ( Que recursos so consumidos (quando se leva a cabo


as actividades referidas) ? Que condicionalismos so impostos ? ).
Ruy Costa, 2011

Tnhamos referido que um dos recursos consumidos era o aditivo P. De acordo


com o enunciado, semanalmente, s se dispe de, no mximo, 20 Kg de aditivo P. Por
outro lado, sabe-se que por cada tonelada de farinha A produzida necessrio 1 Kg de

11
aditivo P e que por cada tonelada de farinha B produzida so necessrios 2 Kg desse
mesmo aditivo.

Como j definimos XA e XB como "as quantidades de farinha A e B,


respectivamente, a produzir", podemos agora tentar representar analiticamente a restrio
associada ao recurso "aditivo P". Mas ... quantidades ? Quilogramas ? Toneladas
? ... Na definio das variveis fundamental dar particular ateno s unidades !

Redefinamos, ento, com mais cuidado, as variveis:

XA a quantidade (em toneladas) de farinha A a produzir;


XB a quantidade (em toneladas) de farinha B a produzir;

Se cada tonelada de farinha A consome 1 Kg de aditivo P, poderemos dizer que


1 . XA representa a quantidade (em Kg) de aditivo P consumido na produo de farinha A.
Analogamente, 2 . XB representa a quantidade (em Kg) de aditivo Q consumido na
produo de farinha B. Assim, 1 . XA + 2 . XB representa o consumo total de aditivo P
(em Kg) necessrio produo das farinhas A e B.

Sabemos que, no mximo, se dispe de 20 Kg de aditivo P por semana.

Poderemos agora tentar escrever a restrio relativa ao consumo do aditivo P:

Consumo total do aditivo P Disponibilidade do aditivo P


? semanal : 20 Kg
Dever ter-se o cuidado de verificar que a restrio esteja dimensionalmente
correcta ! Isto , se a disponibilidade de aditivo P expressa em Kg / semana , esta
dever tambm ser a unidade a adoptar para o consumo total !

Ou seja, quando definimos as variveis, dever-se-ia ter especificado o perodo de


tempo associado produo das farinhas ... Isto , quando definimos XA como a
quantidade (em toneladas) de farinha A a produzir pela FARLACT, dever-se-ia ter indicado
se se tratava de produo semanal, mensal ou anual ...

Redefinamos, ento, cuidadosamente, as variveis:

XA a quantidade (em toneladas) de farinha A a produzir semanalmente;


XB a quantidade (em toneladas) de farinha B a produzir semanalmente;

Nunca demais recordar a no negatividade destas variveis: XA 0 , XB 0.

Poderemos, agora, re-analisar o significado de " 1 . XA + 2 . XB " : trata-se do


consumo total de aditivo P (em Kg) necessrio produo semanal das farinhas A e B.
Sabendo que a disponibilidade semanal deste recurso de 20 Kg, poderemos, agora,
escrever a correspondente restrio:
Ruy Costa, 2011

Aditivo P : 1 . XA + 2 . XB 20 (Kg/semana)

12
Analogamente, se tivermos em conta que cada tonelada de farinha A requer 3 Kg de
aditivo Q e que cada tonelada de farinha B requer 2 Kg desse mesmo aditivo (do qual se
dispe, no mximo, de 30 Kg por semana), poderemos escrever a correspondente restrio:

Aditivo Q : 3 . XA + 2 . XB 30 (Kg/semana)

No h outros recursos envolvidos neste problema, mas h um


condicionalismo que imposto: "A produo mensal conjunta de A e B no deve ser
inferior a 20 toneladas". Se nos recordarmos da definio das variveis e se, por
simplicidade, admitirmos que um ms tem quatro semanas, poderemos representar esse
condicionalismo pela restrio seguinte:

Prod.mensal A+B : 4 . ( XA + XB ) 20 (ton) , ou, equivalentemente,

XA + XB 5 (ton) .

Poderemos agora tratar da questo 1 ( Qual o objectivo a atingir ? ), que j tinha


sido respondida ( maximizar o lucro ). Tentemos exprimir, usando as variveis definidas,
este objectivo.

Se o lucro associado produo de uma tonelada de farinha A de 7 u.m. e se o


correspondente valor associado produo de farinha B de 10 u.m., poderemos escrever
7 (u.m. / ton A) . XA (ton A / sem.) + 10 (u.m. / ton B) . XB (ton B / sem.) que est
expresso em u.m. por semana.

Assim, F = 7 . XA + 10 . XB a funo objectivo, que representa o lucro

Ruy Costa, 2011


semanal da FARLACT (em u.m.), que se pretende maximizar.

De notar que o enunciado indicava apenas que se pretendia maximizar o lucro.


Poderemos, sem qualquer problema, exprimir este objectivo numa base semanal, isto ,
passar a maximizar o lucro semanal.

Poderemos agora resumir a formulao do problema 1:

Seja Xi a quantidade (em toneladas) de farinha i = A ; B a produzir


semanalmente, com Xi 0 .

MAX F = 7 . XA + 10 . XB

sujeito a:

1 . XA + 2 . XB 20
3 . XA + 2 . XB 30
1 . XA + 1 . XB 5

XA , XB 0 .

Concluda a formulao deste problema, deixemos a sua resoluo para uma


altura posterior ...

13
Recordemo-nos que na formulao de problemas de Programao Linear
pode ser til responder a trs questes importantes:

Qual o objectivo a atingir ?

... Max / Min ... funo objectivo

Que actividades (com influncia no objectivo) devem ser levadas a cabo ?


Que decises devem ser tomadas ?

... Qual a sua intensidade ?

... variveis

Ateno ao cuidado a ter na definio das variveis... No esquecer as


unidades ... No esquecer o carcter de no negatividade das variveis ...

Que recursos so consumidos (quando se leva a cabo as actividades) ?


Que condicionalismos so impostos ?

... restries

14
Consideremos agora uma variante do problema anterior - o problema 2 :

A DUOLACT uma empresa que produz dois tipos de farinhas lcteas ( A e


B ) em duas fbricas (F1 e F2).

Estas farinhas so enriquecidas com dois aditivos. Por cada tonelada de


farinha A so necessrios um quilograma de aditivo P e trs quilogramas de
aditivo Q. Por cada tonelada de farinha B so necessrios dois quilogramas
de aditivo P e dois quilogramas de aditivo Q.

Sabe-se que, em cada semana, a fbrica F1 no dispe de mais de 10 Kg e


18 Kg, respectivamente, de aditivos P e Q. Os correspondentes valores para
a fbrica F2 so, respectivamente, 12 Kg e 14 Kg.

Os donos da DUOLACT exigem que a produo mensal conjunta das


farinhas A e B no seja inferior a 20 toneladas.

O quadro seguinte indica os lucros (em u.m.) associados produo de


uma tonelada de cada tipo de farinha, em funo da fbrica:

F1 F2
A 6 7
B 10 11

Como se pode determinar o plano de produo que maximiza o lucro da


DUOLACT ?

Para formularmos este problema poderemos recordar as trs questes


importantes:

1 - Qual o objectivo a atingir ?


semelhana do problema anterior, tambm aqui se pretende maximizar o lucro.

2 - Que decises devero ser tomadas ? Que actividades devero ser


levadas a cabo?

- produzir farinha A
- produzir farinha B
Ruy Costa, 2011

3 - Que recursos so consumidos (quando se leva a cabo as actividades


referidas) ? Que condicionalismos so impostos ?

- consome-se aditivo P
- consome-se aditivo Q
- exige-se a produo mensal mnima conjunta (A + B) de 20 ton.

15
Se adoptarmos as variveis XA e XB definidas no problema 1:

XA a quantidade (em toneladas) de farinha A a produzir semanalmente;


XB a quantidade (em toneladas) de farinha B a produzir semanalmente;

verificando-se ainda: XA 0 , XB 0, poderemos tentar formular o problema,


em termos de restries e de funo objectivo:.

Relativamente ao condicionalismo da produo mensal conjunta mnima pode


escrever-se facilmente:

Prod.mensal A+B : 4 . ( XA + XB ) 20 (ton) , ou, equivalentemente,

XA + XB 5 (ton) .

No que toca aos aditivos P e Q j no conseguiremos chegar s restries ...

Prob.2

10 F1
Aditivo P : 1 . XA + 2 . XB [ Prob.1 : 20 ]
12 F2

18 F1
Aditivo Q : 3 . XA + 2 . XB [ Prob.1 : 30 ]
14 F2

Relativamente funo objectivo:

Prob.1: F = 7 . XA + 10 . XB

Prob.2: (F1:6 ; F2:7 ) (F1:10 ; F2:11)

Como se v, no conseguimos exprimir nem as restries relativas aos aditivos P e


Ruy Costa, 2011

Q nem a funo objectivo ... H necessidade de ter em conta as duas fbricas F1 e F2 ...

Retomemos, ento a questo 2 ( Que decises devero ser tomadas ? Que


actividades devero ser levadas a cabo? ). Quanto ? Com que intensidade se
deve levar a cabo as actividades referidas ? E, j agora, onde ?

Que actividades ? Quanto ? Onde ?

Fbrica F1 XA1
produzir farinha A XA
Fbrica F2 XA2

Fbrica F1 XB1
produzir farinha B XB
Fbrica F2 XB2

16
Definamos, ento, as variveis XA1 , XA2 , XB1 , XB2 :

Genericamente Xij a quantidade (em toneladas) de farinha i = A ; B a produzir


semanalmente na fbrica Fj , j = 1 ; 2 , isto , por exemplo, XA1 a quantidade (em
toneladas) de farinha A a produzir semanalmente na fbrica F1.

No nos esqueamos de indicar que as variveis definidas so no negativas:

XA1 , XA2 , XB1 , XB2 0

Poderemos agora voltar a tentar escrever as restries:

Relativamente produo mensal mnima conjunta j havamos escrito


XA + XB 5 (ton) . Se tivermos presente que a varivel "antiga" XA mais no do
que a soma das variveis "novas" XA1 e XA2 e que o mesmo sucede com XB
relativamente a XB1 e XB2 , pode escrever-se:

Prod.Mensal A+B : ( XA1 + XA2 ) + ( XB1 + XB2 ) 5 (ton)

Relativamente aos aditivos P e Q poderemos escrever duas restries para cada


aditivo ( uma relativa a cada fbrica):

1 . XA1 + 2 . XB1 10 (Kg / sem.) [ F1 ]


Aditivo P :
1 . XA2 + 2 . XB2 12 (Kg / sem.) [ F2 ]

3 . XA1 + 2 . XB1 18 (Kg / sem.) [ F1 ]


Aditivo Q :
3 . XA2 + 2 . XB2 14 (Kg / sem.) [ F2 ]
Ruy Costa, 2011

Com as novas variveis torna-se fcil escrever a funo objectivo, que representa
o lucro semanal da DUOLACT (em u.m.), que se pretende maximizar:

MAX F = 6 . XA1 + 7 . XA2 + 10 . XB1 + 11 . XB2 .

Poderemos agora resumir a formulao do problema 2:

17
Seja Xij a quantidade (em toneladas) de farinha i = A ; B a produzir
semanalmente na fbrica Fj , j = 1 ; 2 Xij 0 .

MAX F = 6 . XA1 + 7 . XA2 + 10 . XB1 + 11 . XB2 .

sujeito a:

1 . XA1 + 2 . XB1 10
1 . XA2 + 2 . XB2 12
3 . XA1 + 2 . XB1 18
3 . XA2 + 2 . XB2 14
XA1 + XA2 + XB1 + XB2 5

XA1 , XA2 , XB1 , XB2 0.

Compliquemos um pouco o problema anterior... originando o problema 3 :

A TRANSLACT uma empresa que produz dois tipos de farinhas lcteas (


A e B ) em duas fbricas (F1 e F2).

Estas farinhas so enriquecidas com dois aditivos. Por cada tonelada de


farinha A so necessrios um quilograma de aditivo P e trs quilogramas de
aditivo Q. Por cada tonelada de farinha B so necessrios dois quilogramas
de aditivo P e dois quilogramas de aditivo Q.

Sabe-se que, em cada semana, a fbrica F1 no dispe de mais de 10 Kg e


18 Kg, respectivamente, de aditivos P e Q. Os correspondentes valores para
a fbrica F2 so, respectivamente, 12 Kg e 14 Kg.

Em cada semana possvel transferir entre as duas fbricas qualquer


quantidade de aditivos (no utilizados numa fbrica e necessrios na outra).
A transferncia de 1 Kg de qualquer dos aditivos entre as duas fbricas
traduz-se num custo de 0,05 u.m. .

Os donos da TRANSLACT exigem que a produo mensal conjunta das


farinhas A e B no seja inferior a 20 toneladas.

O quadro seguinte indica os lucros (em u.m.) associados produo de


uma tonelada de cada tipo de farinha, em funo da fbrica:

F1 F2
A 6 7
B 10 11

Como se pode determinar o plano de produo que maximiza o lucro da


TRANSLACT ?

18
Para formularmos este problema poderemos recordar as trs questes
importantes:

1 - Qual o objectivo a atingir ?


semelhana do problema anterior, tambm aqui se pretende maximizar o lucro.

2 - Que decises devero ser tomadas ? Que actividades devero ser


levadas a cabo?

- produzir farinha A em F1 / em F2
- produzir farinha B em F1 / em F2
- transferir aditivo P de F1 para F2
- transferir aditivo P de F2 para F1
- transferir aditivo Q de F1 para F2
- transferir aditivo Q de F2 para F1

3 - Que recursos so consumidos (quando se leva a cabo as actividades


referidas) ? Que condicionalismos so impostos ?

- consome-se aditivo P
- consome-se aditivo Q
- exige-se a produo mensal mnima conjunta (A + B) de 20 ton.

Definamos, ento, as variveis XA1 , XA2 , XB1 , XB2 : genericamente Xij a


quantidade (em toneladas) de farinha i = A ; B a produzir semanalmente na fbrica Fj , j
= 1 ; 2 . Adicionalmente define-se as variveis TP1 , TP2 , TQ1 , TQ2 :
genericamente Tkl a quantidade (em Kg) de aditivo k = P ; Q a transferir semanalmente da
Ruy Costa, 2011

fbrica Fi , i = 1 ; 2 para a outra.

No nos esqueamos de indicar que as variveis definidas so no negativas:

XA1 , XA2 , XB1 , XB2 , TP1 , TP2 , TQ1 , TQ2 0

De notar que:

TP1 10 ; TP2 12 ; TQ1 , 18 ; TQ2 14

Utilizando as variveis indicadas poderemos indicar resumidamente a formulao


do problema 3:

19
Seja Xij a quantidade (em toneladas) de farinha i = A ; B a produzir
semanalmente na fbrica Fj , j = 1 ; 2 e Tkl a quantidade (em Kg) de aditivo
k = P ; Q a transferir semanalmente da fbrica Fl , l = 1 ; 2 para a outra.
Xij , Tkl 0 .

MAX F = 6.XA1 + 7.XA2 + 10.XB1 + 11.XB2 - 0,05.(TP1 + TP2 + TQ1 + TQ2)

sujeito a:

1 . XA1 + 2 . XB1 10 - TP1 + TP2


1 . XA2 + 2 . XB2 12 - TP2 + TP1
3 . XA1 + 2 . XB1 18 - TQ1 + TQ2
3 . XA2 + 2 . XB2 14 - TQ2 + TQ1
XA1 + XA2 + XB1 + XB2 5
TP1 10 ; TP2 12 ; TQ1 , 18 ; TQ2 14

XA1 , XA2 , XB1 , XB2 , TP1 , TP2 , TQ1 , TQ2 0 .

Os problemas 1, 2 e 3 anteriores so problemas de Programao Linear.


Com efeito, quer a funo objectivo, quer as restries so lineares, sendo as variveis no
negativas.

O problema 4 seguinte poder formular-se seguindo um raciocnio exactamente igual


ao seguido para a formulao dos problemas anteriores. No entanto, este novo problema
no um simples problema de Programao Linear, mas sim de Programao Linear
Inteira: embora as restries e a funo objectivo sejam lineares, as variveis so inteiras
(respeitando ainda a condio de no negatividade).
Ruy Costa, 2011

A formulao de um problema no apresenta qualquer particularidade por se


exigir que as variveis tomem valores inteiros (basta indicar essa condio) ... No entanto,
a resoluo de um Problema de Programao Linear Inteira exige alguns cuidados
especiais, que a seu tempo sero referidos.

Consideremos agora o seguinte problema 4 :

20
"A Guerra est iminente !", exclamou o General. " preciso tomar
algumas decises !".

O Pas pode dispor de 2 000 unidades monetrias (u.m.) de imediato e


de 1 500 u.m. dentro de 90 dias. Podero ser enviados de imediato 100
bombardeiros, 20 fragatas, 500 tanques e 80 000 homens. Dentro de 90 dias
podero ser enviados mais 30 bombardeiros, 10 fragatas, 200 tanques e 30
000 homens.

O envio de cada bombardeiro, fragata, tanque e 1 000 homens custar


ao Pas, respectivamente, 2 u.m., 6 u.m. , 1 u.m. e 1 u.m. . As reservas
financeiras disponveis de imediato devero assegurar quer o envio imediato
de homens e material, quer a sua manuteno nos prximos 90 dias.

As reservas financeiras disponveis dentro de 90 dias devero


assegurar quer o envio posterior de homens e material, quer a manuteno da
totalidade dos homens e materiais enviados desde o incio do conflito
durante, pelo menos, mais 90 dias.

O custo de manuteno de 1 bombardeiro, 1 fragata, 1 tanque e 1000


homens durante 90 dias , respectivamente, igual a 10 u.m., 8 u.m., 1 u.m.
e 1 u.m. .

De acordo com peritos militares, o nmero total de tanques dever ser


maior ou igual ao quntuplo do nmero total de bombardeiros. Por outro
lado, em cada envio de homens e materiais, devero ser enviados, pelo
menos, 1 000 homens por cada bombardeiro.

Estima-se que a eficcia ( medida em unidades de eficcia militar -


u.e.m. ) de homens e material seja funo da altura do seu envio, de acordo
com o quadro seguinte.

Envio de: Envio dentro de 90 dias Envio imediato


1 000 homens 6 9
1 bombardeiro 9 10
1 fragata 4 5
1 tanque 1 3
Ruy Costa, 2011

Sabendo que se pretende maximizar a eficcia militar total face Guer-ra


que se aproxima, ajude os responsveis militares do Pas na tomada de
decises.

Para formularmos este problema poderemos recordar as trs questes


importantes:

1 - Qual o objectivo a atingir ?

21
Relativamente a este problema, o enunciado relativamente explcito : pretende-
-se maximizar a eficcia militar total.

Note-se que neste mesmo problema poder-se-ia conceber outros objectivos - a ttulo
de exemplo pode referir-se "maximizar a eficcia militar imediata", "minimizar o custo total
(respeitando um nvel mnimo de eficcia militar total)", "minimizar o nmero total de homens
a enviar (respeitando um nvel mnimo de eficcia militar total)".

2 - Que decises devero ser tomadas ? Que actividades devero ser


levadas a cabo?

Relativamente ao problema em anlise poderemos indicar sucintamente as decises


que iro influir na eficcia militar:

- enviar homens para a Guerra


- enviar bombardeiros para a Guerra
- enviar fragatas para a Guerra
- enviar tanques para a Guerra

3 - Que recursos so consumidos (quando se leva a cabo as actividades


referidas) ? Que condicionalismos so impostos ?

Como se pode constatar pelo enunciado:


- as actividades referidas traduzem-se num dispndio do recurso financeiro ;
- um condicionalismo a ter em conta diz respeito ao nmero de homens, bombar-
deiros, fragatas e tanques disponveis ;
- um outro condicionalismo a ter em conta diz respeito, por um lado, relao entre
o nmero total de tanques e o nmero total de bombardeiros enviados e, por
outro lado, relao entre o nmero de homens e o nmero de bombardeiros
enviados.

Ruy Costa, 2011


Retomemos a questo 2 ( Que decises devero ser tomadas ? Que actividades
devero ser levadas a cabo? ). Poderemos associar s respostas a esta questo ( enviar
homens / enviar bombardeiros / enviar fragatas / enviar tanques ) uma nova questo:
Quanto ? Com que intensidade se deve levar a cabo as actividades referidas ?

Que actividades ? Quanto ?

enviar Homens XH
enviar Bombardeiros XB
enviar Fragatas XF
enviar Tanques XT

Definamos, ento, as variveis XH , XB , XF e XT :


XH o nmero total de homens a enviar para a Guerra;
XB o nmero total de bombardeiros a enviar para a Guerra;
XF o nmero total de fragatas a enviar para a Guerra;
XT o nmero total de tanques a enviar para a Guerra.

Uma primeira concluso a reter diz respeito no negatividade destas variveis:

22
XH 0 , XB 0 , XF 0 e XT 0 .

Por outro lado, estas variveis so inteiras.

Retomemos a questo 3 ( Que recursos so consumidos (quando se leva a cabo


as actividades referidas) ? Que condicionalismos so impostos ? ) que tinha trs
respostas (recursos financeiros; recursos humanos e materiais; relaes impostas pelos
peritos militares).

Recordemos esta ltima resposta: De acordo com peritos militares, o nmero


total de tanques dever ser maior ou igual ao quntuplo do nmero total de
bombardeiros. Por outro lado, em cada envio de homens e materiais, devero ser
enviados, pelo menos, 1 000 homens por cada bombardeiro.

Poderemos tentar exprimir estes condicionalismos utilizando as variveis definidas


anteriormente:

O nmero total de tanques ( XT ) dever ser maior ou igual ao quntuplo do nmero


total de bombardeiros ( XB ) , isto : XT 5 . XB .

O nmero total de homens a enviar ( XH ) dever ser maior ou igual a 1 000 vezes o
nmero total de bombardeiros enviados ( XB ), isto : XH 1 000 . XB . Esta
representao no est rigorosamente correcta, j que o enunciado refere explicitamente
"em cada envio de homens e materiais" ... Ora o que foi feito disse respeito relao
entre nmeros totais ...

A questo 3 admitia ainda duas outras respostas (recursos financeiros; recursos


humanos e materiais): de acordo com o enunciado pode dispor-se imediatamente de 2 000
u.m. e, dentro de 90 dias de 1 500 u.m. adicionais. Como relacionar estas informaes com
as variveis definidas ?

Sabemos quanto custa o envio de cada bombardeiro, fragata, tanque e 1 000


homens ( respectivamente, 2 u.m., 6 u.m. , 1 u.m. e 1 u.m. ), pelo que relativamente fcil
indicar o Custo Total de Envio ( igual a 2 . XB + 6 . XF + 1 . XT + 0,001 . XH ) . No
entanto, no poderemos exprimir o Custo Total de Manuteno, j que a determinao
deste custo obriga ao conhecimento dos envios de homens e material em duas fases: de
imediato e dentro de 90 dias.
Ruy Costa, 2011

Analogamente, se retomarmos a resposta dada questo 1 ( pretende-se maximizar


a Eficcia Militar Total ) e se tentarmos exprimir a eficcia militar total em funo das
variveis definidas, constataremos no ser possvel faz-lo j que a determinao desta
eficcia total obriga ao conhecimento dos envios de homens e material em duas fases: de
imediato e dentro de 90 dias.

Assim, pode concluir-se que a definio de variveis que foi feita no


suficientemente fina. Tal, no entanto, no corresponde a dizer que o que foi feito est
errado ! ... Torna-se apenas necessrio refinar a definio feita de modo a poder
contemplar os aspectos referidos ( conhecimento dos envios de homens e material em duas
fases: de imediato e dentro de 90 dias ) .

23
Retomemos, ento a questo 2 ( Que decises devero ser tomadas ? Que
actividades devero ser levadas a cabo? ). Quanto ? Com que intensidade se deve
levar a cabo as actividades referidas ? E, j agora, quando ?

Que actividades ? Quanto ? Quando ?

imediato XH0
enviar Homens XH
90 dias XH1

imediato XB0
enviar Bombardeiros XB
90 dias XB1

imediato XF0
enviar Fragatas XF
90 dias XF1

imediato XT0
enviar Tanques XT
90 dias XT1

Definamos, ento, as variveis XH0 , XH1 , XB0 , XB1 , XF0 , XF1 , XT0 , XT1:

XH0 o nmero de homens a enviar de imediato para a Guerra;


XH1 o nmero de homens a enviar dentro de 90 dias para a Guerra;

XB0 , XB1 , XF0 , XF1 , XT0 , XT1 definem-se analogamente em relao aos
Bombardeiros, Fragatas e Tanques.

No nos esqueamos de indicar que as variveis definidas so inteiras e no


negativas:

XH0 , XH1 , XB0 , XB1 , XF0 , XF1 , XT0 , XT1 0 e inteiras.


Ruy Costa, 2011

Recordemos os dois condicionalismos impostos pelos peritos militares: o nmero


total de tanques dever ser maior ou igual ao quntuplo do nmero total de
bombardeiros (condicionalismo que j tnhamos conseguido representar correctamente com
as "variveis antigas"). Por outro lado, em cada envio de homens e materiais, devero
ser enviados, pelo menos, 1 000 homens por cada bombardeiro.

Utilizando as novas variveis, poderemos exprimir os condicionalismos referidos:

O nmero total de tanques ( XT0 + XT1 ) dever ser maior ou igual ao quntuplo do
nmero total de bombardeiros ( XB0 + XB1 ) , isto : XT0 + XT1 5 . ( XB0 + XB1 ).

Por outro lado, em cada envio de homens e materiais, o nmero de homens


( XH0 ou XH1 ) dever ser maior ou igual a 1 000 vezes o nmero de bombardeiros

24
enviados ( XB0 ou XB1 ), isto : XH0 1 000 . XB0 , relativamente ao envio
imediato e XH1 1 000 . XB1 , relativamente ao envio dentro de 90 dias.

Analisemos agora as questes associadas aos recursos financeiros, humanos e


materiais que no podiam ser convenientemente representados pelas "variveis antigas":

De acordo com o enunciado pode dispor-se imediatamente de 2 000 u.m. e,


dentro de 90 dias de 1 500 u.m. adicionais.

Sabemos quanto custa o envio de cada bombardeiro, fragata, tanque e 1 000


homens ( respectivamente, 2 u.m., 6 u.m. , 1 u.m. e 1 u.m. ), pelo que relativamente fcil
determinar o Custo Total de Envio associado a cada uma das fases de envio de homens
e materiais ( CTE0 e CTE1 ) :

CTE0 = 2 . XB0 + 6 . XF0 + 1 . XT0 + 0,001 . XH0 e

CTE1 = 2 . XB1 + 6 . XF1 + 1 . XT1 + 0,001 . XH1 .

Quanto ao Custo Total de Manuteno correspondente aos primeiros 90 dias


( CTM0 ), pode determinar-se:

CTM0 = 10 . XB0 + 8 . XF0 + 1 . XT0 + 0,001 . XH0

O Custo Total de Manuteno correspondente ao segundo perodo de 90 dias


( CTM1 ), pode determinar-se:

CTM1 = 10 .( XB0 + XB1 ) + 8 .( XF0 + XF1 ) + 1 .( XT0 + XT1 ) + 0,001 .( XH0 + XH1 )

(recorde-se que, de acordo com o enunciado, no segundo perodo de 90 dias ter de ser
assegurada a manuteno (durante 90 dias) dos homens e materiais expedidos de incio e
aps os primeiros 90 dias).

Assim, poderemos agora escrever as restries associadas ao recurso


financeiro:

inicialmente: CTE0 + CTM0 2 000, ou equivalentemente,

12 . XB0 + 14 . XF0 + 2 . XT0 + 0,002 . XH0 2 000 .

dentro de 90 dias: CTE1 + CTM1 1 500, ou equivalentemente,

10.XB0 + 8. XF0 + 1.XT0 + 0,001.XH0 + 12.XB1 + 14.XF1 + 2.XT1 + 0,002. XH1 1 500 .
Ruy Costa, 2011

Poderemos tambm escrever os condicionalismos decorrentes das


disponibilidades de homens e materiais:

inicialmente: XB0 100 ; XF0 20 ; XT0 500 ; XH0 80 000 ;


dentro de 90 dias: XB1 30 ; XF1 10 ; XT1 200 ; XH0 30 000 ;

25
Deveremos agora abordar a questo 1 ( Qual o objectivo a atingir ? ) e tentar
exprimir a sua resposta ( pretende-se maximizar a eficcia militar total ) em funo das
"novas variveis" ( j que as "antigas" tambm no eram adequadas ... ).

Se designarmos por F a eficcia militar total (em u.e.m.), poderemos facilmente


concluir que:

F = (10.XB0 + 5. XF0 + 3.XT0 + 0,009.XH0) + (9.XB1 + 4.XF1 + 1.XT1 + 0,006. XH1) .

Poderemos agora resumir a formulao do problema:

Seja Xij o nmero de unidades de i = H (Homens); B (Bombardeiros);


F (Fragatas); T (Tanques) a enviar para a Guerra na fase j = 0 (envio
imediato); 1 (envio dentro de 90 dias), com Xij 0 e inteiras .

MAX F = 10.XB0 + 5.XF0 + 3.XT0 + 0,009.XH0 +


+ 9.XB1 + 4.XF1 + 1.XT1 + 0,006.XH1

sujeito a:

XB0 100 ; XF0 20 ; XT0 500 ; XH0 80 000 ;


XB1 30 ; XF1 10 ; XT1 200 ; XH0 30 000 ;

12.XB0 +14.XF0 + 2.XT0 + 0,002.XH0 2 000

10.XB0 + 8.XF0 + 1.XT0 + 0,001.XH0 +


+ 12.XB1 + 14.XF1 + 2.XT1 + 0,002.XH1 1 500

XH0 1 000 . XB0


XH1 1 000 . XB1
XT0 + XT1 5 . ( XB0 + XB1 )

XH0 , XH1 , XB0 , XB1 , XF0 , XF1 , XT0 , XT1 0 e inteiras.

E c est a formulao de um problema de Programao Linear Inteira ... Como


se viu, o raciocnio seguido em nada difere dos problemas anteriores (de Programao
Linear).

A formulao de problemas poder estar ligada a temas to diversos quanto o


Ruy Costa, 2011

planeamento da construo de habitaes, o planeamento da renovao de frotas, o


planeamento da produo industrial, o planeamento de aces culturais, o
planeamento da abertura de balces bancrios ... o que mostra a sua importncia.
Por isso, mo obra: tempo de espreitar os Exerccios Propostos e fazer algumas
formulaes!

26
R E S O L U O D E P R O B L E M A S D E

P R O G R A M A O L I N E A R

- O MTODO GRFICO -

Depois de formular um problema de Programao Linear, muitas vezes necessrio


resolv-lo.

Comecemos por considerar o problema 1 apresentado quando se abordou a


"Formulao de Problemas de Programao Linear" e que se formulava do modo seguinte:

Seja Xi a quantidade (em toneladas) de farinha i = A ; B a produzir


semanalmente, com Xi 0 .

MAX F = 7 . XA + 10 . XB

sujeito a:

1 . XA + 2 . XB 20
3 . XA + 2 . XB 30
1 . XA + 1 . XB 5

XA , XB 0 .

Uma primeira constatao diz respeito ao nmero de variveis: temos duas


variveis, o que nos permite optar por uma abordagem grfica, j que fcil a
representao grfica bidimensional. De notar que a existncia de trs variveis nos
obrigaria a representaes grficas tridimensionais, o que no seria muito prtico... Como
se torna evidente, num problema de Programao Linear com trs ou mais variveis a
resoluo por via grfica est completamente fora de causa... Abordaremos,
posteriormente, mtodos analticos que utilizaremos nessas situaes (e que tambm
poderiam ser utilizados em problemas com duas variveis).

Uma segunda constatao diz respeito no negatividade das variveis, o que


nos reduz ao 1 quadrante do referencial.
Ruy Costa, 2011

Poderemos ainda constatar que cada restrio corresponde a uma regio do


plano delimitada por uma recta.

Finalmente, pode verificar-se que para cada valor de F, a funo objectivo


corresponde a uma recta. Ou seja, F = 7 . XA + 10 . XB representa uma famlia de rectas
paralelas de declive - 0,7 ( XB = F / 10 - 7/10 . XA ) . Ainda relativamente funo
objectivo, poderemos observar que se se pretende maximizar F e se o coeficiente de XA
positivo, ento interessa-nos incrementar o valor de XA; analogamente,sendo positivo o
coeficiente de XB, tambm nos interessa incrementar o valor de XB. Conclui- -se,

27
assim, que para incrementar o valor da funo objectivo deve-se aumentar simultaneamente
XA e XB.

Observemos a representao grfica das trs restries do problema:

A zona sombreada na figura anterior, corresponde ao conjunto de pontos que


respeitam simultaneamente as trs restries, bem como s condies de no negatividade
das variveis, pelo que a designaremos por espao de solues admissveis.

Ruy Costa, 2011


A funo objectivo, como j tnhamos observado, aumenta de valor quando as
variveis XA e XB crescem simultaneamente. Assim, as rectas que representam a funo
objectivo F devero ser deslocadas, tanto quanto possvel, no sentido .

Observemos, com ateno, os pontos assinalados no espao de solues


admissveis representado em seguida:

28
A pior soluo admissvel corresponde ao ponto A. Com efeito, se imaginarmos
uma recta de declive -0,7 a movimentar-se no sentido , o primeiro ponto do espao de
solues admissveis a ser tocado pela recta seria exactamente o ponto A ( 5 ; 0 ), a que
corresponde o valor da funo objectivo F = 35 .

Uma soluo admissvel melhor que A seria, por exemplo, B ( 0 ; 5 ) a que


corresponde o valor da funo objectivo F = 50. De notar que uma recta de declive -0,7 que
passe por B conter uma infinidade de pontos pertencentes ao espao de solues
admissveis. Por exemplo, os pontos G ( 5 ; 1,5 ) e H ( 50/7, 0 ) correspondem a duas
dessa solues admissveis com o valor da funo objectivo F = 50.

Prosseguindo o movimento da recta de declive -0,7 no sentido , encontramos os


pontos C ( 10 ; 0 ), I ( 0 ; 7 ) e J ( 5 ; 3,5 ) que so algumas das infinitas solues
admissveis que correspondem ao valor da funo objectivo F = 70.

Continuando a procura de melhores solues (isto , prosseguindo o movimento da


recta de declive -0,7 no sentido ), encontramos os pontos D ( 0 ; 10 ) e K ( 5 ; 6,5 ) que so
algumas das infinitas solues admissveis que correspondem ao valor da funo objectivo F
= 100.

Prosseguindo o movimento da recta de declive -0,7 no sentido , tocamos no ponto


E ( 5 ; 7,5 ) do espao de solues admissveis a que correponde o valor da funo objectivo
F = 110. De notar que se prosseguirmos o movimento da recta de declive -0,7 no sentido
deixaremos de intersectar o espao de solues admissveis, pelo que no possvel
aumentar o valor da funo objectivo alm do valor 110 (respeitando simultaneamente as
trs restries e as condies de no negatividade das variveis). Podemos, assim,
concluir que terminamos a nossa procura da soluo ptima: ela corresponde ao ponto E ( 5
; 7,5 ) do espao de solues admissveis e ao valor da funo objectivo F = 110. Ou seja,

XA* = 5,0 ; XB* = 7,5

F* = 110 .

Se nos recordarmos do enunciado, poderemos "traduzir" a soluo: a FARLACT


deve produzir semanalmente 5,0 toneladas de farinha A e 7,5 toneladas de farinha B, sendo
de 110 u.m. o correspondente lucro semanal.

Como podemos observar, para procurarmos a soluo ptima de um Problema de


Programao Linear (com duas variveis) atravs do Mtodo Grfico, comeamos por
representar o espao de solues admissveis e identificar uma recta pertencente famlia
de rectas paralelas correspondente funo objectivo. Em seguida deslocamos essa recta,
tanto quanto possvel, no sentido que permite melhorar o seu valor (melhorar aumentar se
se pretender maximizar a funo objectivo, ou diminuir o seu valor, caso contrrio). A
soluo ptima ser a ltima a ser tocada por essa "recta em movimento".

Uma constatao parece ser imediata: a soluo ptima de um problema de


Programao Linear um vrtice do espao de solues admissveis !

A afirmao anterior no , no entanto, absolutamente correcta ...


Ruy Costa, 2011

Imaginemos que, no problema que se resolveu para apresentar o Mtodo Grfico se


altera a funo objectivo de F = 7 . XA + 10 . XB para F = 5 . XA + 10 . XB (que se
pretende maximizar), mantendo-se inalteradas as restries.

Como se v a nova funo objectivo representa a famlia de rectas paralelas de


declive - 0,5 , verificando-se um aumento de F quando se desloca uma das rectas referidas
no sentido .

29
O ponto A ( 5 ; 0 ) corresponde pior soluo admissvel com o valor da funo
objectivo F = 25 .

Uma soluo admissvel melhor que A seria, por exemplo, B ( 0 ; 5 ) a que


corresponde o valor da funo objectivo F = 50. De notar que uma recta de declive -0,5 que
passe por B conter uma infinidade de pontos pertencentes ao espao de solues
admissveis ( por exemplo, o ponto C ( 10 ; 0 ) ) correspondentes ao valor da funo
objectivo F = 50.

Prosseguindo o movimento da recta de declive -0,5 no sentido , encontramos os


pontos D ( 0 ; 10 ) e E ( 5 ; 7,5 ) ( e os infinitos pontos no segmento de recta DE ) que so
solues correspondentes ao valor da funo objectivo F = 100... E constatamos no ser
possvel prosseguir o movimento da recta de declive -0,5 no sentido sem se deixar de
intersectar o espao de solues admissveis, pelo que no possvel aumentar o valor da
funo objectivo alm do valor 100 (respeitando simultaneamente as trs restries e as
condies de no negatividade das variveis).

Podemos, assim, concluir que o "problema alterado" ( com F = 5 . XA + 10 . XB )


admite mltiplas solues ptimas: D ( 0 ; 10 ) e E ( 5 ; 7,5 ) so solues ptimas e so
vrtices do espao de solues admissveis; todos os pontos do segmento de recta DE so
solues ptimas do "problema alterado" (sendo 100 o correspondente valor ptimo de F).
Poderemos representar analiticamente este resultado do modo seguinte:

( XA* ; XB* ) = . ( 0 ; 10 ) + ( 1 - ) . ( 5 ; 7,5 ) com [ 0 ; 1 ]

F* = 100 .

Na representao analtica anterior, se = 0, ento ( XA* ; XB* ) = ( 5 ; 7,5 ) = E;


se = 1, ento ( XA* ; XB* ) = ( 0 ; 10 ) = D . Se ] 0 ; 1 [ , ento ( XA* ; XB* ) pertence
ao segmento de recta DE (mas no s extremidades desse segmento - os vrtices D e E do
espao de solues admissveis). De notar que, por exemplo se = 0,5 , (
XA* ; XB* ) = ( 2,50 ; 8,75 ) - o ponto mdio do segmento de recta DE; se = 0,1, (
XA* ; XB* ) = ( 4,5 ; 7,75 ) , ou seja, medida que aumenta, a soluo ptima afasta-se do
vrtice E, aproximando-se do vrtice D.

Poderemos agora voltar constatao que nos parecera ser imediata: "a soluo
ptima de um problema de Programao Linear um vrtice do espao de solues
Ruy Costa, 2011

admissveis" ... Como acabmos de observar, esta afirmao, para estar absolutamente
correcta, precisa de um "retoque": "a soluo ptima de um problema de Programao
Linear, se for nica, um vrtice do espao de solues admissveis".

A propsito da afirmao anterior, deixo-vos trs exerccios muito simples, mas


muito interessantes:

30
Utilizando o Mtodo Grfico, determine a soluo ptima dos trs
problemas de Programao Linear seguintes:

-1-
MAX F = 0 . XA + 0 . XB

sujeito a:

1 . XA + 2 . XB 20
3 . XA + 2 . XB 30
1 . XA + 1 . XB 5

XA , XB 0 .

-2-

MAX F = -2 . XA + 1 . XB

sujeito a:

-1 . XA + 1 . XB 5
1 . XA + 1 . XB 5

XA , XB 0 .

-3-

MAX F = -2 . XA + 2 . XB

sujeito a:

-1 . XA + 1 . XB 5
1 . XA + 1 . XB 5

XA , XB 0 .
Ruy Costa, 2011

Aproveitemos a abordagem ao Mtodo Grfico para discutirmos, com brevidade,


algumas questes ligadas resoluo de problemas de Programao Linear
Inteira.

Consideremos o seguinte problema de Programao Linear Inteira (P.L.I.) :

31
MAX F = 15 . XA + 11 . XB

sujeito a:

XA 8
XB 8
20 . XA + 10 . XB 120
10 . XA + 8 . XB 100

XA , XB 0 e inteiras.

Esbocemos a sua resoluo grfica:

Ruy Costa, 2011

Chamamos "problema relaxado" ao problema de Programao Linear resultante da


relaxao da condio de integralidade das variveis (isto , da sua no considerao) no
problema de P.L.I. . Na representao grfica anterior, sombreou-se o espao de solues
admissveis do problema relaxado. A resoluo grfica do problema relaxado muito fcil,
conduzindo soluo ptima ( XA* ; XB* )PL = ( 8 ; 2,5 ) a que corresponde o valor ptimo
da funo objectivo FPL* = 147,5.

32
Como se pode observar, esta soluo ptima no respeita a condio de
integralidade da varivel XA* , pelo que no "aceitvel" como soluo ptima do problema
de P.L.I. .

Observando, com muita ateno, a representao grfica apresentada, podemos


concluir que o espao de solues admissveis do problema de P.L.I. constitudo
unicamente pelos "pontos inteiros" assinalados na zona sombreada. Assim, a soluo
ptima do problema de P.L.I., o ltimo desses pontos a ser tocado pela recta de declive -
15/11 em movimento no sentido , ou seja, ( XA* ; XB* )PLI = ( 6 ; 5 ) a que corresponde o
valor ptimo da funo objectivo FPLI* = 145,0.

Dois comentrios devem ser feitos:

Dado que o espao de solues admissveis do problema de P.L.I. est


contido no espao de solues admissveis do correspondente problema relaxado, pode
afirmar-se que o valor ptimo da funo objectivo no problema de P.L.I. ser
sempre pior ou igual ao valor ptimo da funo objectivo no correspondente
problema relaxado.

No se pode resolver um problema de P.L.I. "arredondando" a soluo


ptima do correspondente "problema relaxado" para a soluo inteira admissvel
"mais prxima". Se tal tivesse sido feito no problema acima apresentado,
arredondaramos ( 8 ; 2,5 ) para ( 8 ; 2 ) ( j que ( 8 ; 3 ) no soluo do problema ! ),
obtendo-se F = 142,0 (valor inferior ao valor ptimo: 145,0). interessante notar que
uma outra soluo inteira admissvel "mais prxima" de ( 8 ; 2,5 ) seria ( 7 ; 3 ) a que
corresponderia o valor F = 138,0... preciso "afastarmo-nos" mais de ( 8 ; 2,5 ) para
encontrarmos ( 6 ; 5 ) que vem a ser a soluo ptima do problema de P.L.I. !

A propsito da utilizao do Mtodo Grfico na resoluo de problemas de


Programao Linear Inteira, deixo-vos um ltimo exerccio muito simples, mas muito
interessante:

Considere o seguinte problema de optimizao:

MAX F = 5. XA + 6. XB

sujeito a:

2 . XA + 3 . XB 16
3 . XA + 2 . XB 17

a ) Utilizando o "Mtodo Grfico", resolva-o considerando:

I) XA , XB 0 (Programao Linear)
Ruy Costa, 2011

II ) XA 0 e inteira ; XB 0 (Programao Linear Mista)


III ) XA 0 ; XB 0 e inteira (Programao Linear Mista)
IV ) XA , XB 0 e inteiras (Programao Linear Inteira)

b ) Compare as solues obtidas na alnea a).

33
P R O G R A M A O L I N E A R :

C O N C E I T O S F U N D A M E N T A I S

Consideremos um problema de Programao Linear apresentado na sua forma


standard:

Maximizar F = c1 . X1 + c2 . X2 + c3 . X3 + ... + cn . Xn

sujeito a:

a11 . X1 + a12 . X2 + a13 . X3 + ... + a1n . Xn = b1


a21 . X1 + a22 . X2 + a23 . X3 + ... + a2n . Xn = b2
...
am1. X1 + am2. X2 + am3. X3 + ... + amn. Xn = bm

X1 , X2 , X3 , ... , Xn 0

Este problema pode escrever-se numa forma mais compacta:

n
Maximizar F = ck . Xk [1]
k=1
sujeito a:
n
aik . Xk = bi i = 1, 2, ... , m [2]
k=1

Xk 0 k = 1, 2, ... , n [3]

Utilizando a notao matricial poderemos ainda simplificar a apresentao do


problema:
Ruy Costa, 2011

Maximizar F = C . X [1]

sujeito a:
A.X = b [2]

X 0 [3]

Na representao anterior, o vector das incgnitas X um vector coluna ( n x 1 ), o


vector dos coeficientes da funo objectivo C um vector linha ( 1 x n ), a matriz dos

34
coeficientes das restries A uma matriz ( m x n ) e o vector dos termos independentes b
um vector coluna ( m x 1 ). De notar que 0 o vector nulo do tipo ( n x 1 ).

Relativamente a um problema de Programao Linear expresso na forma


standard, com n variveis e m restries ( sendo n > m ), podem apresentar-se as
seguintes definies :

Soluo todo o n-uplo ( v1, v2, ... , vn ) associado s variveis ( X1, X2, ... , Xn )
que verificam as restries [ 2 ] .

Soluo admissvel toda a soluo que verifica as condies de no


negatividade [ 3 ] .

Soluo bsica ( s.b. ) toda a soluo constituda por ( n - m ) variveis no


bsicas ( variveis com valor nulo ), sendo as restantes m variveis bsicas
determinadas univocamente. Relativamente a uma soluo bsica, designa-se por
base o conjunto das variveis bsicas.
[ Para que as m variveis bsicas possam ser determinadas univocamente, ter-se- que exigir que a
submatriz de A, correspondente aos coeficientes das variveis bsicas - que viremos a designar por B - seja
regular, isto , que o seu determinante seja no nulo. ]

Soluo bsica admissvel ( s.b.a. ) toda a soluo bsica que verifica as


condies de no negatividade [ 3 ] .

Soluo bsica admissvel no degenerada toda a s.b.a. cujas variveis


bsicas tomem valores estritamente positivos. Se alguma varivel bsica de uma s.b.a.
for nula, estar-se- perante uma soluo bsica admissvel degenerada.

Soluo ptima toda a soluo que torna mximo o valor da funo objectivo
[ 1 ]. [ Geralmente, s nos interessa determinar uma soluo ptima que seja admissvel ... ]

Sintetizando, poderemos apresentar o quadro seguinte:

n-uplo ( v1, v2, ... , vn ) associado s variveis ( X1, X2, ... , Xn )

Verifica as Restries [2] ?

Sim soluo No No soluo

Verifica as Condies de No
Negatividade das Variveis [ 3 ] ?

Sim No
Ruy Costa, 2011

soluo soluo no
admissvel admissvel
bsica ? bsica ?
Sim: No: Sim: No:
s.b.a. s.n.b.a s.b.n.a. s.n.b.n.a

35
Para uma melhor assimilao das noes apresentadas, recordemo-nos do
problema 1 apresentado quando se abordou a "Formulao de Problemas de
Programao Linear" e retomado na apresentao do "Mtodo Grfico":

MAX F = 7 . XA + 10 . XB

sujeito a:

1 . XA + 2 . XB 20
3 . XA + 2 . XB 30
1 . XA + 1 . XB 5

XA , XB 0 .

fcil passar-se forma standard:

MAX F = 7 . XA + 10 . XB + 0 . F1 + 0 . F2 + 0 . F3

sujeito a:

Ruy Costa, 2011


1 . XA + 2 . XB + 1 . F1 + 0 . F2 + 0 . F3 = 20
3 . XA + 2 . XB + 0 . F1 + 1 . F2 + 0 . F3 = 30
1 . XA + 1 . XB + 0 . F1 + 0 . F2 - 1 . F3 = 5

XA , XB , F1 , F2 , F3 0 .

Recordemos a representao grfica das trs restries do problema:

36
Aproveitemos a figura anterior (em que se sombreou o espao de solues
admissveis) para observar os pontos que se indica no quadro seguinte e classific-los
adequadamente:

Ponto Variveis No soluo


n XA XB F1 F2 F3 soluo s.b.a s.n.b.a. s.b.n.a. s.n.b.n.a. Obs.
1 0 0 20 30 -5 9 Origem do Ref.
2 10 5 0 -10 10 9 1 restr.
3 7 -1 15 11 1 9
4 -10 15 0 30 0 9 Inters. 1/3 restr.
5 -1 6 11 9 0 9 3 restr.
6 5 0 15 15 0 9 Vrtice esp.sol.adm.
7 6 0 14 12 1 9 eixo XA
8 10 0 10 0 5 9 Vrtice esp.sol.adm.
9 20/3 5 10/3 0 20/3 9 2 restr.
10* 5 7,5 0 0 7,5 9 Vrtice esp.sol.adm.
11 2 9 0 6 6 9 1 restr.
12 0 10 0 10 5 9 Vrtice esp.sol.adm.
13 0 8 4 14 3 9 eixo XB
14 0 5 10 20 0 9 Vrtice esp.sol.adm.
15 3 2 13 17 0 9 3 restr.
16 5 5 5 5 5 9 Int. esp.sol.adm.
17 7 3 7 3 5 9 Int. esp.sol.adm.

Nota (*) : Destacou-se o ponto n 10 correspondente soluo ptima do problema.

Relembremo-nos que o problema em anlise tem 3 restries e 5 variveis (na


forma standard). Assim, uma soluo para ser bsica dever ser constituda por duas
variveis no bsicas (isto , nulas).

Uma primeira constatao pode ser feita: todas as solues bsicas admissveis
so vrtices do espao de solues admissveis ! Podemos observar que o ponto n 4
um vrtice do espao de solues (admissveis, ou no) e uma soluo bsica no
admissvel; se determinarmos o vrtice do espao de solues resultante da interseco da
2 com a 3 restrio poderemos concluir estar perante uma outra soluo bsica no
admissvel - em geral, todas as solues bsicas so vrtices do espao de solues !

Observemos que os pontos pertencentes ao interior do espao de solues


Ruy Costa, 2011

admissveis no tm variveis nulas. Os pontos pertencentes a uma aresta ( mas no


a um vrtice ! ) apresentam apenas uma varivel nula - a varivel de folga
correspondente restrio que origina a aresta, ou a a varivel correspondente ao eixo que
origina a aresta. Os pontos correspondentes aos vrtices tm duas variveis nulas -
a(s) varivel(eis) de folga correspondente(s) (s) restrio(es) e/ou a(s) varivel(eis)
correspondente(s) ao(s) eixo(s) que originam o vrtice.

Consideremos agora uma pequena variante do problema apresentado:

37
MAX F = 5 . XA + 10 . XB

sujeito a:

1 . XA + 2 . XB 20
3 . XA + 2 . XB 30
1 . XA + 1 . XB 5
1 . XA + 1 . XB 12,5

XA , XB 0 .

fcil passar-se forma standard:

MAX F = 5 . XA + 10 . XB + 0 . F1 + 0 . F2 + 0 . F3 + 0 . F4

sujeito a:

1 . XA + 2 . XB + 1 . F1 + 0 . F2 + 0 . F3 + 0 . F4 = 20

Ruy Costa, 2011


3 . XA + 2 . XB + 0 . F1 + 1 . F2 + 0 . F3 + 0 . F4 = 30
1 . XA + 1 . XB + 0 . F1 + 0 . F2 - 1 . F3 + 0 . F4 = 5
1 . XA + 1 . XB + 0 . F1 + 0 . F2 + 0 . F3 + 1 . F4 = 12,5

XA , XB , F1 , F2 , F3 0 .

Esbocemos a resoluo grfica do problema:

A soluo ptima do problema corresponde aresta definida pelos pontos ( 5 , 7,5 )


e ( 0 ; 10 ), com o valor ptimo da funo objectivo igual a 100.

38
Aproveitemos a figura anterior (em que se sombreou o espao de solues
admissveis) para observar os pontos, correspondentes a solues, que se indica no quadro
seguinte e classific-los adequadamente:

Ponto Variveis soluo


n XA XB F1 F2 F3 F4 s.b.a s.n.b.a. s.b.n.a. s.n.b.n.a. Obs.
1 7 -1 15 11 1 6,5 9
2 -10 15 0 30 0 7,5 9 Inters. 1/3 restr.
3 -1 6 11 9 0 7,5 9 3 restr.
4 5 0 15 15 0 7,5 9 Vrtice esp.sol.adm.
5 6 0 14 12 1 6,5 9 eixo XA
6 10 0 10 0 5 2,5 9 Vrtice esp.sol.adm.
7 20/3 5 10/3 0 20/3 5/6 9 2 restr.
8* 5 7,5 0 0 7,5 0 9Degen ! Vrtice esp.sol.adm.
9* 2 9 0 6 6 1,5 9 1 restr.
10* 0 10 0 10 5 2,5 9 Vrtice esp.sol.adm.
11 0 8 4 14 3 4,5 9 eixo XB
12 0 5 10 20 0 7,5 9 Vrtice esp.sol.adm.
13 3 2 13 17 0 7,5 9 3 restr.
14 5 5 5 5 5 2,5 9 Int. esp.sol.adm.
15 7 3 7 3 5 2,5 9 Int. esp.sol.adm.

Nota (*) : Os pontos n 8, 9 e 10 so algumas das solues ptimas do problema.

Este problema tem 4 restries e 6 variveis (na forma standard). Assim, uma
soluo para ser bsica dever ser constituda por duas variveis no bsicas (isto , nulas).

Como anteriormente, pode constatar-se que todas as solues bsicas so


vrtices do espao de solues .

Neste problema podemos observar duas particularidades:

Est-se perante uma situao de multiplicidade de solues ptimas (de que os


pontos n 8, 9 e 10 so alguns exemplos). Os pontos n 8 e 10 representam
solues bsicas, isto , correspondem a vrtices do espao de solues
admissveis. O ponto n 9 representa uma soluo no bsica, isto , no
corresponde a um vrtice do espao de solues admissveis.

Das cinco solues bsicas admissveis indicadas no quadro, uma delas (a


correspondente ao ponto n 8) degenerada. Com efeito, relativamente a
essa soluo tm-se trs variveis nulas... Ora, referiu-se anteriormente que,
neste problema, "uma soluo para ser bsica dever ser constituda por duas
variveis no bsicas (isto , nulas)".
Ruy Costa, 2011

Haver aqui alguma contradio ? No, apenas a necessidade de precisar um


pouco melhor este conceito: num problema de Programao Linear com m
restries e n variveis (na forma standard), se uma soluo tiver exactamente
(n-m) variveis nulas, estaremos perante uma soluo bsica no degenerada;
se, pelo contrrio, o nmero de variveis nulas exceder (n-m), estaremos perante
uma soluo bsica degenerada.

Normalmente um vrtice definido pela interseco de duas restries.


Quando um vrtice definido pela interseco de mais de duas restries, estar-se-
- perante uma soluo bsica degenerada - no exemplo, o vrtice correspondente

39
ao ponto n 8 definido pela interseco de trs restries... isto , "uma a mais",
pelo que teremos uma varivel nula "a mais"... [ Podemos imaginar que este vrtice
corres- ponde "sobreposio de trs vrtices"; da que a situao de degenerescncia possa
trazer algumas dificuldades aos algoritmos "normais"... ]

Precisemos, ento, a caracterizao da noo "soluo bsica": num problema


de Programao Linear com m restries e n variveis (na forma standard), uma
soluo bsica se tiver, pelo menos, (n-m) variveis nulas. Se o nmero de variveis
nulas for exactamente igual a (n-m) estaremos perante uma soluo bsica no
degenerada; se, pelo contrrio, o nmero de variveis nulas exceder (n-m), estaremos
perante uma soluo bsica degenerada.

Recordemo-nos dos aspectos mais importantes da resoluo de um problema de


Programao linear com duas variveis, pelo "Mtodo Grfico": depois de representado o
espao de solues admissveis importante representar uma recta pertencente famlia de
rectas paralelas associada funo objectivo; de seguida identificamos o sentido de
movimento dessa recta correspondente ao aumento (num problema de maximizao) do
valor da funo objectivo; finalmente, desloca-se a recta no sentido desejado at que, pela
ltima vez, ela toque o espao de solues admissveis - nessa altura, est identificada a
soluo ptima do problema.

J se referiu que se um problema de Programao Linear admitir uma nica soluo


ptima, ela obrigatoriamente um vrtice do espao de solues admissveis. Numa
situao de multiplicidade de solues ptimas, sabe-se que, pelo menos, uma das solues
ptimas um vrtice do espao de solues admissveis.

Referiu-se agora que todo o vrtice do espao de solues admissveis uma


soluo bsica.

Assim, resulta clara a importncia das solues bsicas na pesquisa da soluo


ptima de um problema de Programao Linear. Um algoritmo para resolver um problema
deste tipo dever analisar as solues bsicas admissveis para encontrar a(s) soluo(es)
ptima(s).

Um algoritmo muito rudimentar consistiria em enumerar todas as solues bsicas


admissveis, determinar (para cada uma delas) o valor correspondente da funo objectivo e,
finalmente seleccionar a(s) soluo(es) que optimizam o valor da funo objectivo...

Uma pergunta pertinente surge de imediato: Quantas solues bsicas


admissveis tem um problema de Programao Linear ? Para responder a esta
questo lembremo-nos que numa soluo bsica h tantas variveis bsicas (normalmente
no nulas) quantas as restries. Assim, num problema de Programao Linear com m
restries e n variveis (na forma standard) [ n > m ] , uma soluo bsica se tiver m
variveis bsicas e (n-m) variveis no bsicas. S que nem toda a soluo bsica
admissvel... Assim, poderemos, apenas, indicar um limite superior para o nmero de
solues bsicas admissveis de um problema de Programao Linear com m
restries e n variveis (na forma standard) : Cnm = n ! / ( m ! / (n-m) ! ) .
Ruy Costa, 2011

Tomemos, como exemplo, a variante do problema 1 que apresentamos


anteriormente - um problema de Programao Linear com 4 restries e 6 variveis (na
forma standard). Para este ( muito pequeno ! ) problema, esse limite superior viria igual a
15. Na realidade, o espao de solues admissveis tem apenas 5 vrtices (ainda que um
deles corresponda a uma s.b.a.degenerada) !

Num problema (ainda considerado pequeno) com 10 restries e 15 variveis, o


limite superior do nmero de solues bsicas admissveis subiria j a 3003 ... Como
facilmente se compreende, a enumerao de solues bsicas no uma via razovel para

40
se pesquisar a soluo ptima de um problema de Programao Linear ... Torna-se
necessrio encontrar um algoritmo "mais inteligente"...

Antes de pensarmos num algoritmo para a resoluo de problemas de Programao


Linear, convm realar que todas as consideraes feitas a partir da anlise de um problema
resolvel pelo Mtodo Grfico so vlidas em problemas com um nmero mais elevado de
variveis.

Alis, recordando-nos de algumas noes da lgebra Linear e Geometria Analtica,


poderemos constatar muito facilmente que cada restrio de um problema de
Programao Linear representa um hiperplano.

Por outro lado, fcil mostrar que um hiperplano um conjunto convexo.


Sabendo que a interseco de conjuntos convexos ainda um conjunto convexo,
torna-se imediata a concluso: o espao de solues admissveis de um problema de
Programao Linear um conjunto convexo ! (E, dado o carcter linear das restries,
no se trata de um qualquer conjunto convexo, mas sim de um politopo convexo)

Uma soluo admissvel de um problema de Programao Linear um ponto desse


politipo convexo; uma soluo bsica admissvel um vrtice desse politopo convexo.

A funo objectivo de um problema de Programao Linear representa tambm


um hiperplano.

Prova-se que o mximo / mnimo de uma funo linear sobre um politopo


convexo corresponde a, pelo menos, um vrtice do politopo.

Os resultados anteriores podem ser sintetizados no Teorema Fundamental da


Programao Linear:

Dado um problema de Programao Linear, na forma

Maximizar F = c1 . X1 + c2 . X2 + c3 . X3 + ... + cn . Xn

sujeito a:

a11 . X1 + a12 . X2 + a13 . X3 + ... + a1n . Xn = b1


a21 . X1 + a22 . X2 + a23 . X3 + ... + a2n . Xn = b2
...
am1. X1 + am2. X2 + am3. X3 + ... + amn. Xn = bm

X1 , X2 , X3 , ... , Xn 0

se existe uma soluo admissvel, ento existe uma soluo bsica


admissvel, e se existe uma soluo ptima admissvel, ento existe uma
soluo bsica ptima admissvel.
Ruy Costa, 2011

Podemos, assim, justificar as referncias feitas importncia das solues


bsicas na pesquisa da soluo ptima de um problema de Programao Linear.
Apresentaremos em seguida um algoritmo para resolver problemas de Programao Linear,
que, de um "modo inteligente" analisa as solues bsicas admissveis para encontrar a(s)
soluo(es) ptima(s) do problema.

41
I N T R O D U O A O

A L G O R I T M O S I M P L E X P R I M A L

Consideremos o seguinte problema de Programao Linear:

Maximizar F = 4. X + 3. Y

sujeito a:

-1 . X + 1 . Y 3
4.X+1.Y 8

X, Y 0

Na figura seguinte representa-se as restries e os quatro vrtices do espao de


solues admissveis correspondente a este problema.
Ruy Costa, 2011

42
Relativamente a este problema fcil enumerar os vrtices do espao de solues
admissveis, calcular o respectivo valor da funo objectivo e, seleccionar a soluo ptima,
isto , o vrtice correspondente ao maior valor da funo objectivo - o que faremos no
quadro seguinte:

Vrtice
n X Y F=4.X+3.Y Obs.
1 0 0 0 sol.no ptima
2 2 0 8 sol.no ptima
3 1 4 16 soluo ptima
4 0 3 9 sol.no ptima

Assim, fcil indicar a soluo ptima deste problema: X* = 1 ; Y* = 4, a que


corresponde F* = 16.

No entanto, como j se referiu, normalmente incomportvel estar a enumerar os


vrtices do espao de solues admissveis de um problema de Programao Linear (com n
variveis e m restries), pelo que necessrio utilizar um algoritmomais eficiente.

Seguidamente, faremos uma introduo ao Algoritmo Simplex Primal (na verso


destinada Maximizao de uma funo objectivo), indicando e comentando os passos a
seguir para a resoluo do exerccio apresentado.

- 1 - Re-escrever o problema na forma standard

Maximizar F = 4. X + 3. Y + 0 . F1 + 0 . F2

sujeito a:

-1 . X + 1 . Y + 1 . F1 + 0 . F2 = 3
4 . X + 1 . Y + 0 . F1 + 1 . F2 = 8

X , Y , F1 , F2 0

- 2 - Arbitrar uma soluo bsica inicial


Ruy Costa, 2011

Relativamente ao problema em anlise (com 2 restries e 4 variveis, na forma


standard), uma soluo bsica constituda por 2 variveis bsicas [recorda-se que o nmero de
variveis bsicas igual ao nmero de restries] e 2 ( 2 = 4 - 2 ) variveis no bsicas (isto , nulas).

) Regra usual: Sempre que possvel, toma-se as variveis de folga como


variveis bsicas iniciais.

[ De notar que tal s possvel quando todas as restries so do tipo ! ]

43
Assim, ter-se-:

S.b.a. inicial: ( X = 0 ; Y = 0 ; F1 = 3 ; F2 = 8 ), com F = 0 .

- 3 - Verificao da optimalidade da soluo em anlise

Pretendemos responder pergunta: Ser que a soluo em anlise j ptima ?

Para tal, necessrio

) nore-escrever
bsicas.
a funo objectivo apenas em funo das variveis

Normalmente, isto , durante a aplicao do algoritmo, nesta altura a funo


objectivo no est escrita apenas em funo das variveis no bsicas, pelo que preciso
faz-lo. No entanto, dado que acabmos de tomar como variveis bsicas as variveis de
folga (e como essas variveis tm coeficiente nulo na funo objectivo), a funo objectivo j
est escrita apenas em funo das variveis no bsicas:

F = 4 . X + 3 . Y + 0 . F1 + 0 . F2 + 0

coeficientes das variveis valor da funo
no bsicas objectivo

A pergunta "Ser que a soluo em anlise j ptima ?" equivalente a uma


outra: "Valer a pena incrementar alguma das variveis no bsicas ?". A resposta
muito fcil de dar depois de se ter a funo objectivo expressa apenas em funo das
variveis no bsicas, originando o

) Critrio deQuando
optimalidade:
a funo objectivo se encontra expressa apenas em
funo das variveis no bsicas e algum desses coeficientes for
positivo, a soluo em anlise no ptima, isto , ainda ser possvel
incrementar o valor da funo objectivo (bastando, para tal, incrementar
uma varivel no bsica com coeficiente positivo).

Concluso: a s.b.a. em anlise ( X = 0 ; Y = 0 ; F1 = 3 ; F2 = 8 ) no ptima j


que qualquer incremento nas variveis X e Y se traduzir num incremento (que se deseja) na
funo objectivo.

Dado que o Algoritmo Simplex Primal, em cada iterao, s permite a entrada


Ruy Costa, 2011

de uma nova varivel para a base [ base o conjunto das variveis bsicas ] (com a
consequente sada de uma varivel que estava na base), correspondendo ao salto de
um vrtice do espao de solues admissveis para outro, surge uma nova
preocupao ...

44
- 4 - Seleco da varivel que entra na base

Presentemente a varivel X vale 0 e a funo objectivo vale 0 ( F = 4.X + 3.Y + 0.F1


+ 0.F2 + 0 ) . Se se incrementar a varivel X de X = 1 unidade, a funo objectivo vem
incrementada de F = 4 . X = 4 unidades. Se se incrementar a varivel Y de Y = 1
unidade, a funo objectivo vem incrementada de F = 3 . Y = 3 unidades. Deve notar-se
que se trata de incrementos da funo objectivo devidos a incrementos unitrios das
variveis... Um maior "incremento unitrio" no est forosamente associado a um maior
"incremento total"...

De acordo com o Algoritmo Simplex Primal,

) Critrio deDeve
seleco da varivel que entra na base:
ser escolhida a varivel (at a no bsica) cujo
incremento unitrio se traduz no maior aumento da funo objectivo,
isto , deve ser escolhida a varivel que, na funo objectivo (escrita
apenas em funo das variveis no bsicas) tenha o maior valor
positivo como coeficiente.

Assim, selecciona-se a varivel X para entrar na base. Teremos, agora, que pensar
na

- 5 - Seleco da varivel que sai da base

Para determinarmos a varivel que deve deixar a base, deveremos tentar responder
a uma outra questo: Qual o incremento mximo que a varivel seleccionada para
entrar na base pode tomar ?

A s.b.a. ainda em anlise ( X = 0 ; Y = 0 ; F1 = 3 ; F2 = 8 ), correspondendo


base ( F1 = 3 ; F2 = 8 ) . Na prxima iterao, a varivel X vai ser incrementada, entrando
na base. Uma das variveis que actualmente esto na base deixa-la-. A varivel Y,
actualmente fora da base, continuar fora da base, isto , continuar-se- a ter Y = 0.

Analisemos agora as restries do problema:

-1 . X + 1 . Y + 1 . F1 = 3 -1 . X + 1 . F1 = 3
Y=0
4 . X + 1 . Y + 0 . F1 + 1 . F2 = 8 4.X + 1 . F2 = 8

Observemos, com ateno, a 1 restrio escrita apenas em funo da nica


varivel bsica que lhe est associada (F1) e da varivel X que pretendenos incrementar: -
1 . X + 1 . F1 = 3 . Se incrementarmos a varivel X de uma unidade, a varivel F1 sofre um
incremento de uma unidade (passando de 3 para 4). Genericamente, se incrementarmos de
Ruy Costa, 2011

X a varivel X, a varivel F1 vem tambm incrementada de X. Tal ocorre porque -1 . X +


1 . F1 = 3 F1 = ( 3 + 1 . X ) / 1, isto , o sinal negativo do coeficiente de X na primeira
restrio expressa apenas em funo da nica varivel bsica que lhe est associada (F1) e
da varivel X que pretendenos incrementar (-1 . X + 1. F1 = 3) mostra que a primeira

45
restrio no limita o aumento da varivel X, o que alis se pode observar na figura
seguinte.

A soluo em anlise corresponde ao vrtice 1 e pretende-se incrementar a varivel


X, mantendo nula a varivel Y, isto , pretendemos deslocar-nos ao longo do eixo X, para a

Ruy Costa, 2011


direita. Como se v, essa deslocao no limitada pela 1 restrio.

Observemos agora, com ateno, a 2 restrio escrita apenas em funo da


nica varivel bsica que lhe est associada (F2) e da varivel X que pretendenos
incrementar: 4 . X + 1 . F2 = 8 . Se incrementarmos a varivel X de uma unidade, a
varivel F2 sofre um decremento de quatro unidades. Assim, ao aumentarmos o valor da
varivel X, preciso ter-se em ateno que a varivel F2 diminui medida que X
aumenta e que no pode tomar valores negativos ! Assim, o maior valor que X pode
tomar estar associado ao menor valor possvel de F2 , isto F2 = 0 :

4 . X + 1 . F2 = 8 4 . Xmax + 1 . 0 = 8 Xmax = 8 / 4 = 2

Concluso: a segunda restrio limita o aumento da varivel X ao mximo de 2


unidades, o que se pode observar na figura seguinte.

46
A deslocao ao longo do eixo X, para a direita limitada pela 2 restrio,
correspondendo ao valor Xmax = 2 .

Acabmos de descobrir que X entrar na base com o valor 2, devendo F2 sair da


base !

Generalizando os conceitos apresentados, poderemos enunciar o

) Critrio deConsidere-se
seleco da varivel que sai na base:
as restries do problema de Programao
Linear, na sua apresentao matricial A . X = b , cada uma delas
escrita apenas em funo da nica varivel bsica que lhe est
associada e da(s) varivel(eis) no bsicas.

Seja Xk a varivel que se pretende incrementar.

O incremento mximo de Xk ser dado por

Max Xk = min ( bi / aik ) i = 1, 2, ... , m para aik > 0 (*).


i

Se o incremento mximo de Xk for obtido pelo quociente


relativo r-sima restrio, isto , se

Max Xk = min ( bi / aik ) = br / ark ,


i

a varivel bsica correspondente r-sima restrio dever deixar a


base, cedendo o seu lugar (mas no necessariamente o seu valor)
varivel Xk que entra para a base.

Nota(*): Se aik 0 , a i-sima restrio no limita o aumento da varivel Xk .

Retomemos o problema em anlise: sabemos que agora X = 2, Y = 0 e F2 = 0.


Para se determinar o valor da varivel F1 na nova base, basta recorrermos 1 restrio -
X + Y + F1 = 3 e substituirmos X por 2, obtendo-se F1 = 5. O valor da funo objectivo
obtm-se facilmente: F = 4 . X + 3 . Y = 4 . 2 + 3 . 0 = 8 .

Assim, a nova s.b.a. : ( X = 2 ; Y = 0 ; F1 = 5 ; F2 = 0 ), com F = 8 .


Ruy Costa, 2011

Antes de iniciarmos a segunda iterao, realcemos um aspecto para o qual se


chamara j a vossa ateno: o critrio de seleco da varivel que entra na base selecciona
a varivel correspondente ao maior "incremento unitrio" da funo objectivo e, um maior
"incremento unitrio" no est forosamente associado a um maior "incremento total"...

47
Se observarmos a representao grfica do espao de solues admissveis deste
problema, poderemos constatar que o Algoritmo Simplex Primal fez-nos saltar do vrtice 1
correspondente origem do referencial, para o vrtice 2 ( X = 2 ; Y = 0 ) a que corresponde
o valor F = 4 . 2 + 3 . 0 = 8. Tal ocorreu porque o incremento unitrio da funo objectivo
assocido varivel X era de 4 unidades e o incremento unitrio da funo objectivo
associado varivel Y era de "apenas" 3 unidades (pelo que se seleccionou a varivel X
para entrar na base).

O que aconteceria se tivssemos saltado do vrtice 1, no para o vrtice 2, mas


para o outro vrtice adjacente, o 4 ( X = 0 ; Y = 3 ) ? A funo objectivo teria passado de 0
para F = 4 . 0 + 3 . 3 = 9. Ora c est um caso em que se se tivesse feito entrar para a
base a varivel Y correspondente a um menor incremento unitrio ( 3 ), em vez da varivel X
Ruy Costa, 2011
( 4 ), a funo objectivo teria tido um maior incremento total ! Ento porque que o
Algoritmo Simplex Primal no selecciona para entrar na base a varivel que provoca
um maior incremento total na funo objectivo (em vez do maior incremento unitrio)
? Resposta: por uma questo de simplicidade! muito mais simples implementar
informaticamente o critrio de seleco da varivel a entrar para a base adoptado pelo
Algoritmo Simplex Primal do que o critrio alternativo que se referiu... E para alm de mais
simples seguramente mais rpido em cada iterao... mas pode conduzir a um maior
nmero de iteraes... embora se obtenha uma eficincia global superior.

Comecemos agora a 2 iterao !

Como se referiu, a nova s.b.a. : ( X = 2 ; Y = 0 ; F1 = 5 ; F2 = 0 ), com F = 8 .


Torna-se pertinente a pergunta: Ser que ptima ? [ Claro que ns j sabemos, por simples
anlise da representao grfica, que a resposta negativa... Mas a pergunta pertinente nesta fase da resoluo
de um qualquer problema de Programao Linear ! ]

Esta questo leva-nos, de novo ao terceiro passo do Algoritmo Simplex Primal, j


apresentado

48
- 3 [2Iter.] - Verificao da optimalidade da soluo em anlise

Recordemo-nos que necessrio

) nore-escrever
bsicas.
a funo objectivo apenas em funo das variveis

Neste momento, a funo objectivo deve ser re-escrita apenas em funo das
variveis Y e F2.

Recordemo-nos que F = 4 . X + 3 . Y + 0 . F1 + 0 . F2 + 0 e que a


segunda restrio 4 . X + 1 . Y + 1 . F2 = 8 . Poderemos re-escrever esta restrio
X = - 1/4 . Y - 1/4 . F2 + 2 e fazer a correspondente substituio na funo objectivo:
F = 4 . ( - 1/4 . Y - 1/4 . F2 + 2 ) + 3 . Y + 0 . F1 + 0 . F2 + 0 , obtendo-se, assim,

F = 0 . X + 2 . Y + 0 . F1 - 1 . F2 + 8 .

coeficientes das variveis valor da funo
no bsicas objectivo

Recordando-nos do

) Critrio deQuando
optimalidade:
a funo objectivo se encontra expressa apenas em
funo das variveis no bsicas e algum desses coeficientes for
positivo, a soluo em anlise no ptima, isto , ainda ser possvel
incrementar o valor da funo objectivo (bastando, para tal, incrementar
uma varivel no bsica com coeficiente positivo),

poderemos concluir que a s.b.a. em anlise ( X = 2 ; Y = 0 ; F1 = 5 ; F2 = 0 ) no ptima


j que qualquer incremento na varivel Y se traduzir num incremento (que se deseja) na
funo objectivo, pelo que poderemos avanar para

- 4 [2Iter.] - Seleco da varivel que entra na base

De acordo com o

) Critrio deDeve
seleco da varivel que entra na base:
ser escolhida a varivel (at a no bsica) cujo
incremento unitrio se traduz no maior aumento da funo objectivo,
isto , deve ser escolhida a varivel que, na funo objectivo (escrita
Ruy Costa, 2011

apenas em funo das variveis no bsicas) tenha o maior valor


positivo como coeficiente,

no temos qualquer dvida: a varivel Y deve entrar para a base. Teremos, agora, que
pensar na

49
- 5 [2Iter.] - Seleco da varivel que sai da base

Recordemos as restries do problema:

-1 . X + 1 . Y + 1 . F1 = 3
4 . X + 1 . Y + 1 . F2 = 8

Da segunda restrio, tem-se X = - 1/4 . Y - 1/4 . F2 + 2 , que se pode substitur na


primeira restrio: -1.( - 1/4 . Y - 1/4 . F2 + 2 ) + 1 . Y + 1 . F1 = 3 , obtendo-se, ento

0 . X + 5/4 . Y + 1 . F1 + 1/4 . F2 = 5 5/4 . Y + 1 . F1 = 5


Como F2 = 0, temos
4 . X + 1 . Y + 0 . F1 + 1 . F2 = 8 4.X+ 1 .Y = 8

Poderemos, agora, determinar o maior incremento possvel para Y:

Ymax = min ( 5 / 5/4 ; 8 / 1 ) = 5 / 5/4 = 4 F1 deve sair da base, ou seja, Y


= 4 ; F1 = 0 ; F2 = 0. Substituindo na segunda restrio, obtm-se X = 1. O valor
correspondente da funo objectivo obtm-se facilmente: F = 4. X + 3. Y = 4 . 1 + 3 . 4 = 16.

Ruy Costa, 2011


Assim, a nova s.b.a. : ( X = 1 ; Y = 4 ; F1 = 0 ; F2 = 0 ), com F = 16 .

Podemos observar o "percurso grfico" seguido pelo Algoritmo Simplex Primal:


inicia-se com a s.b.a. correspondente ao vrtice 1 ( 0 ; 0 ) com F = 0, salta para o vrtice 2(
2 ; 0 ) a que corresponde F = 8 e agora saltou para o vrtice 3 (1 ; 4 ) a que corresponde F
= 16:

50
Estar-se- perante a soluo ptima do problema ? Ainda que j saibamos
previamente a resposta a esta questo, vamos ver como que o Algoritmo Simplex Primal
nos d a resposta.

Comecemos ento a 3 iterao !

- 3 [3Iter.] - Verificao da optimalidade da soluo em anlise

Recordemo-nos que necessrio

) nore-escrever
bsicas.
a funo objectivo apenas em funo das variveis

Neste momento, a funo objectivo deve ser re-escrita apenas em funo das
variveis F1 e F2. Comecemos por manipular algebricamente as restries:

-1 . X + 1 . Y + 1 . F1 = 3 1 . X - 1 . Y - 1 . F1 = - 3 [1]

4 . X + 1 . Y + 1 . F2 = 8 4 . X + 1 . Y + 1 . F2 = 8 [2]
+
5 . X - 1 . F1 + 1 . F2 = 5

X = 1 + 1/5 . F1 - 1/5 . F2 [3]

De [ 1 ] e [ 3 ] obtm-se Y = 4 - 4/5 . F1 - 1/5 . F2 [4]

Recordemo-nos que F = 4 . X + 3 . Y + 0 . F1 + 0 . F2 + 0 . Se nesta expresso


substituirmos X e Y, respectivamente, pelos segundos membros das igualdades [ 3 ] e [ 4 ],
obteremos F = 4 .( 1 + 1/5 . F1 - 1/5 . F2 ) + 3 .( 4 - 4/5 . F1 - 1/5 . F2 ) + 0 . F1 + 0 . F2 + 0,
ou seja, F = 0 . X + 0 . Y - 8/5 . F1 - 7/5 . F2 + 16 .

coeficientes das variveis valor da funo
no bsicas objectivo

Recordando-nos do
Ruy Costa, 2011

) Critrio deQuando
optimalidade:
a funo objectivo se encontra expressa apenas em
funo das variveis no bsicas e algum desses coeficientes for
positivo, a soluo em anlise no ptima,

poderemos concluir que a s.b.a. em anlise ( X = 1 ; Y = 4 ; F1 = 0 ; F2 = 0 ) a que


corresponde F = 16 j ptima, isto

A soluo ptima do problema :

( X* = 1 ; Y* = 4 ; F1* = 0 ; F2* = 0 ), com F* = 16 .

51
Poderemos agora recordar os passos a seguir na resoluo de um problema de
Programao Linear com o Algoritmo Simplex Primal, que se acabou de introduzir:

- 1 - Re-escrever o problema na forma standard

- 2 -
) Introduzir variveis de folga.
Arbitrar uma soluo bsica inicial
) Regra usual:variveisSempre que possvel, toma-se as variveis de folga como
bsicas iniciais.

REPETIR
- 3 - Verificao da optimalidade da soluo em anlise

bsicas.
) re-escrever a funo objectivo apenas em funo das variveis no

) CritrioQuando
de optimalidade:
a funo objectivo se encontra expressa apenas em
funo das variveis no bsicas e algum desses coeficientes for positivo, a soluo
em anlise no ptima.

- 4 - Seleco da varivel que entra na base


) CritrioDeve
de seleco da varivel que entra na base:
ser escolhida a varivel (at a no bsica) cujo incremento
unitrio se traduz no maior aumento da funo objectivo, isto , deve ser escolhida a
varivel que, na funo objectivo (escrita apenas em funo das variveis no
bsicas) tenha o maior valor positivo como coeficiente.

- 5 - Seleco da varivel que sai da base


) CritrioConsidere-se
de seleco da varivel que sai na base:
as restries do problema de Programao
Linear, na sua apresentao matricial A . X = b , cada uma delas escrita apenas
em funo da nica varivel bsica que lhe est associada e da(s) varivel(eis)
no bsicas.

Seja Xk a varivel que se pretende incrementar.

O incremento mximo de Xk ser dado por

Max Xk = min ( bi / aik ) i = 1, 2, ... , m para aik > 0 (*).


i

Se o incremento mximo de Xk for obtido pelo quociente relativo


r-sima restrio, isto , se
Ruy Costa, 2011

Max Xk = min ( bi / aik ) = br / ark ,


i

a varivel bsica correspondente r-sima restrio dever deixar a base, cedendo o


seu lugar (mas no necessariamente o seu valor) varivel Xk que entra para a base.

Nota (*): Se aik 0 , a i-sima restrio no limita o aumento da varivel Xk .

AT SE ATINGIR A SOLUO PTIMA

52
O A L G O R I T M O S I M P L E X P R I M A L

Consideremos o problema de Programao Linear j apresentado na "Introduo ao


Algoritmo Simplex Primal":

Maximizar F = 4. X + 3. Y

sujeito a:

-1 . X + 1 . Y 3
4.X+1.Y 8

X, Y 0

Comecemos por re-escrever o problema na forma standard:

Maximizar F = 4. X + 3. Y + 0 . F1 + 0 . F2

sujeito a:

-1 . X + 1 . Y + 1 . F1 + 0 . F2 = 3
4 . X + 1 . Y + 0 . F1 + 1 . F2 = 8

X , Y , F1 , F2 0

Re-escrevamos F = 4. X + 3. Y + 0 . F1 + 0 . F2

na forma equivalente F - 4. X - 3. Y + 0 . F1 + 0 . F2 = 0 .
Ruy Costa, 2011

Poderemos, ento, apresentar o problema na forma seguinte:

53
Max. F

-1 . X + 1 . Y + 1 . F1 + 0 . F2 = 3
4 . X + 1 . Y + 0 . F1 + 1 . F2 = 8
F - 4 . X - 3 . Y + 0 . F 1 + 0 . F2 = 0

X , Y , F1 , F2 0 ,

ou na representao tabular equivalente:

X Y F1 F2 T.I.
-1 1 1 0 3
4 1 0 1 8
F -4 -3 0 0 0 .

O quadro anterior diz-se um "Quadro do SIMPLEX" pois apresenta as seguintes


caractersticas:

possvel identificar uma varivel bsica associada a cada restrio.


Uma varivel pode considerar-se bsica associada a uma restrio se o seu coeficiente
na linha que representa essa restrio no Quadro do Simplex (QS) for unitrio, sendo
nulos todos os demais coeficientes dessa varivel nas restantes linhas do QS (incluindo
a linha que representa a funo objectivo). habitual utilizar-se a "coluna exterior
esquerda" para identificar as variveis bsicas; relativamente a este problema ter-se-ia:

X Y F1 F2 T.I.
F1 -1 1 1 0 3
F2 4 1 0 1 8
F -4 -3 0 0 0 .

Num QS a funo objectivo est sempre representada apenas em


funo das variveis no bsicas. Assim, o coeficiente das variveis bsicas na linha
que representa a funo objectivo, sempre nulo (como alis decorria da primeira
caracterstica apresentada anteriormente).

De realar que se apresentar o Algoritmo Simplex Primal para resolver


problemas de maximizao ( Max F = c1 . X1 + c2 . X2 + ... + cn . Xn ) e que, nos QS a
funo objectivo ser escrita na forma F - c1 . X1 - c2 . X2 - ... - cn . Xn = 0 .

No Algoritmo Simplex Primal, um Quadro do Simplex corresponde


sempre a uma soluo bsica admissvel, isto , a um vrtice do espao de
solues admissveis.


Ruy Costa, 2011

Os termos independentes ( T.I. ), indicados na "coluna exterior direita",


correspondem aos valores assumidos pelas variveis bsicas e pela funo
objectivo, relativas s.b.a. a que corresponde o QS. Assim, a leitura do QS
apresentado permite concluir-se estarmos perante a base ( F1 = 3 ; F2 = 8 ) a que
corresponde o valor da funo ojectivo F = 0. Como X e Y no pertencem base,
conclui-se que X = Y = 0 .

54
O Algoritmo Simplex Primal baseia-se nos princpios apresentados na "Introduo ao
Algoritmo Simplex Primal" e na utilizao dos "Quadros do Simplex" que condensam a
informao relevante de um modo mais eficiente. Os clculos aparentemente fastidiosos
apresentados na "Introduo ao Algoritmo Simplex Primal" sero feitos de um modo expedito
graas utilizao dos QS.

Assim, um primeiro passo para a resoluo de um problema de Programao


Linear consiste na elaborao de um primeiro "Quadro do Simplex" correspondente a
uma s.b.a. inicial.

) Desde j se chama a ateno para o facto da representao tabular inicial de


um problema de Programao Linear no ser obrigatoriamente um "Quadro do
Simplex" ! ... Com efeito, basta que uma restrio seja do tipo para que a
representao tabular inicial do problema no seja um "Quadro do Simplex" !
Voltaremos posteriormente a esta questo...

Relativamente ao problema em anlise o primeiro "Quadro do Simplex" o seguinte:

X Y F1 F2 T.I.
F1 -1 1 1 0 3
F2 4 1 0 1 8
F -4 -3 0 0 0 .

Ruy Costa, 2011


Recordemo-nos de algumas noes apresentadas na "Introduo ao Algoritmo
Simplex Primal": Depois de se ter arbitrado uma s.b.a. inicial, a primeira preocupao
consistia em verificar a optimalidade da soluo em anlise. O critrio de optimalidade
enunciava: Quando a funo objectivo se encontra expressa apenas em funo das
variveis no bsicas e algum desses coeficientes for positivo, a soluo em anlise
no ptima.

Dado que na apresentao tabular utilizada no Algoritmo Simplex Primal a funo


objectivo Max F = c1 . X1 + c2 . X2 + ... + cn . Xn escrita na forma
F - c1 . X1 - c2 . X2 - ... - cn . Xn = 0 , poderemos apresentar o

) Critrio de optimalidade do Algoritmo Simplex Primal:


Quando num "Quadro do Simplex" se pode observar, pelo
menos, um coeficiente negativo na linha correspondente funo
objectivo, a soluo em anlise no ptima.

X Y F1 F2 T.I.
F1 -1 1 1 0 3
F2 4 1 0 1 8
F -4 -3 0 0 0
.

Por simples inspeco do "Quadro do Simplex" apresentado acima, poder-se-


concluir que a correspondente s.b.a ( X = 0 ; Y = 0 ; F1 = 3 ; F2 = 8 ) no ptima.

, tambm, muito fcil indicar o

55
)naCritrio
base:
do Algoritmo Simplex Primal para seleco da varivel que entra

Deve ser incrementada a varivel com o coeficiente mais


negativo na linha correspondente funo objectivo.

Assim, por simples inspeco do "Quadro do Simplex" apresentado acima, poder-se-


- concluir que a varivel X deve ser incrementada (j que o seu coeficiente na linha
correspondente funo objectivo o mais negativo: -4 ), o que se pode assinalar do modo
seguinte:

X Y F1 F2 T.I.
F1 -1 1 1 0 3
F2 4 1 0 1 8
F -4 -3 0 0 0

Qual o incremento mximo a dar varivel X ? E qual das variveis F1 ou F2 deve


deixar a base ? Para responder a estas questes deveremos recordar-nos do

)base:
Critrio do Algoritmo Simplex Primal para seleco da varivel que sai na

Considere-se as restries do problema de Programao


Linear, na sua apresentao matricial A . X = b , cada uma delas
escrita apenas em funo da nica varivel bsica que lhe est
associada e da(s) varivel(eis) no bsicas.

Seja Xk a varivel que se pretende incrementar.

O incremento mximo de Xk ser dado por

Max Xk = min ( bi / aik ) i = 1, 2, ... , m para aik > 0 (*).


i

Se o incremento mximo de Xk for obtido pelo quociente


relativo r-sima restrio, isto , se

Max Xk = min ( bi / aik ) = br / ark ,


i

a varivel bsica correspondente r-sima restrio dever deixar a


base, cedendo o seu lugar (mas no necessariamente o seu valor)
varivel Xk que entra para a base.

Nota(*): Se aik 0 , a i-sima restrio no limita o aumento da varivel Xk .


Ruy Costa, 2011

Assim, deveremos comear por calcular os incrementos i = bi / aik para todas


as restries i = 1, 2 , ... , m desde que aik > 0 . O novo valor de Xk ser igual a
= min ( i ) . Aproveitando o "Quadro do Simplex" poderemos acrescentar uma "coluna
exterior direita":

56
X Y F1 F2 T.I. i
F1 -1 (*) 1 1 0 3 (*)

F2 4 1 0 1 8 8/4
F -4 -3 0 0 0 =2

Nota(*): a11 0 , pelo que a 1 restrio no limita o aumento da varivel X.

Como o mnimo dos valores de i corresponde segunda restrio (segunda linha


do "Quadro do Simplex", assinalou-se direita essa linha com , indicando ser nesta
restrio que se vai proceder troca de variveis na base. Assim, entra para a base a
varivel X e sai da base a varivel F2 (que era a varivel bsica "associada segunda
restrio"). F1 manter-se- a varivel bsica "associada primeira restrio".

Podemos desde j indicar a base correspondente ao prximo "Quadro do Simplex":


( F1 , X ) e proceder ao seu "preenchimento prvio":

X Y F1 F2 T.I.
F1 0 1
X 1 0 2
F 0 0

O "preenchimento prvio" efectuado corresponde apenas indicao da nova base


e do valor que a varivel que acaba de entrar na base vai tomar ( X tomar o valor 2, que foi
o valor de determinado no Quadro anterior).

) Para preenchermos o resto do Quadro deveremos comear por escrever e


destacar a "Linha-Pivot", isto a linha correspondente restrio onde se operou a troca
de variveis na base.

Para se obter a "Linha-Pivot" deve dividir-se os coeficientes da correspondente linha


do Quadro anterior pelo coeficiente (nessa linha) da varivel que acaba de entrar para a
base. Assim, obtm-se o coeficiente unitrio dessa varivel nessa linha.

X Y F1 F2 T.I.

4 1 0 1 8
F
Dividindo por 4
X Y F1 F2 T.I.

1 1/4 0 1/4 2
F
Ruy Costa, 2011

Completemos o Quadro com os elementos do "preenchimento prvio" e


destaquemos a "Coluna-Pivot" correspondente varivel que acabou de entrar na base.
Ser a partir da "Coluna-Pivot" e da "Linha-Pivot" que se far o preenchimento do resto do
Quadro.
X Y F1 F2 T.I.
F1 0 1
X 1 1/4 0 1/4 2
F 0 0

Para obtermos uma linha do novo Quadro "multplicaremos" a "Linha-Pivot" do novo


Quadro pelo simtrico do coeficiente do Quadro anterior correspondente varivel que

57
entrou para a base e "soma-se" linha correspondente do Quadro anterior. ( Hum... muito
complicado de se enunciar... mas, muito simples de fazer ! )

Comecemos pela primeira linha:

Quadro X Y F1 F2 T.I.
Anterior F1 -1 1 1 0 3

Simtrico do coeficiente do Quadro anterior correspondente varivel que entrou


para a base = - ( -1) = + 1

(+1)x 1 1/4 0 1/4 2

+ -1 1 1 0 3

Nova
Linha 0 5/4 1 1/4 5

X Y F1 F2 T.I.
F1 0 5/4 1 1/4 5
X 1 1/4 0 1/4 2
F 0 0

Passemos terceira linha:

Quadro X Y F1 F2 T.I.
Anterior F -4 -3 0 0 0

Simtrico do coeficiente do Quadro anterior correspondente varivel que entrou


para a base= - ( -4) = + 4

(+4)x 1 1/4 0 1/4 2

-4 -3 0 0 0

Nova
Linha 0 -2 0 1 8

X Y F1 F2 T.I.
F1 0 5/4 1 1/4 5
X 1 1/4 0 1/4 2
Ruy Costa, 2011

F 0 -2 0 1 8

E j est ! O segundo "Quadro do Simplex" ! Olhando para a ltima linha


constatamos no se tratar ainda da soluo ptima:

X Y F1 F2 T.I.
F1 0 5/4 1 1/4 5
X 1 1/4 0 1/4 2
F 0 -2 0 1 8

A varivel Y deve entrar para a base. Determinemos agora qual a varivel que deve
sair da base:

58
X Y F1 F2 T.I. i
F1 0 5/4 1 1/4 5 5/(5/4)
X 1 1/4 0 1/4 2 2/(1/4)
F 0 -2 0 1 8 =4

Concluso: F1 deve deixar a base, cedendo o seu lugar varivel Y.

Avancemos agora mais rapidamente para o terceiro "Quadro do Simplex":

"Preenchimento prvio":
X Y F1 F2 T.I.
Y 0 1 4
X 1 0
F 0 0

"Linha-Pivot":
X Y F1 F2 T.I.
0 5/4 1 1/4 5

Dividir a primeira linha por 5/4

X Y F1 F2 T.I.
0 1 4/5 1/5 4

X Y F1 F2 T.I.
Y 0 1 4/5 1/5 4
X 1 0
F 0 0

Segunda linha:

Quadro X Y F1 F2 T.I.
Anterior 1 1/4 0 1/4 2

Simtrico do coeficiente do Quadro anterior correspondente varivel que entrou


para a base = - ( 1/4 )

- ( 1/4 ) x 0 1 4/5 1/5 4

+ 1 1/4 0 1/4 2

Nova
Ruy Costa, 2011

Linha 1 0 -1/5 1/5 1



X Y F1 F2 T.I.
Y 0 1 4/5 1/5 4

59
X 1 0 -1/5 1/5 1
F 0 0

Passemos terceira linha:

Quadro X Y F1 F2 T.I.
Anterior F 0 -2 0 1 8

Simtrico do coeficiente do Quadro anterior correspondente varivel que entrou


para a base= - ( -2) = + 2

(+2)x 0 1 4/5 1/5 4

0 -2 0 1 8

Nova
Linha 0 0 8/5 7/5 16

X Y F1 F2 T.I.
Y 0 1 4/5 1/5 4
X 1 0 -1/5 1/5 1
F 0 0 8/5 7/5 16

Ruy Costa, 2011


E j est ! O terceiro "Quadro do Simplex" ! Olhando para a ltima linha
constatamos tratar-se (finalmente...) da soluo ptima ! ( os coeficientes das variveis no
bsicas na linha correspondente funo objectivo so positivos )

Ou seja, tal como j havamos determinado grficamente,

X* = 1 ; Y * = 4 ; F1* = 0 ; F2* = 0 ; F* = 16 .

Poderemos, agora, recordar de modo mais condensado a resoluo do problema

Maximizar F = 4. X + 3. Y

sujeito a:

-1 . X + 1 . Y 3
4.X+1.Y 8

X, Y 0

pelo Algoritmo Simplex Primal:

X Y F1 F2 T.I. i Quadro
F1 -1 1 1 0 3 Inicial
F2 4 1 0 1 8 8/4
F -4 -3 0 0 0 =2 X=0;Y=0

60
F=0

X Y F1 F2 T.I. i
F1 0 5/4 1 1/4 5 5/(5/4) 1 Iterao
X 1 1/4 0 1/4 2 2/(1/4)
F 0 -2 0 1 8 =4 X=2;Y=0
F=8

X Y F1 F2 T.I. 2 Iterao
Y 0 1 4/5 1/5 4
X 1 0 -1/5 1/5 1 X* = 1 ; Y* = 4
F 0 0 8/5 7/5 16 F* = 16
Sol. ptima

Resolvamos agora um novo problema de Programao Linear utilizando o Algoritmo


Simplex Primal:

Maximizar F = 2. X + 3. Y

sujeito a:

1 . X + 3 . Y 12
1.X+1.Y 6
2 . X + 1 . Y 10

X, Y 0

X Y F1 F2 F3 T.I. i Quadro
F1 1 3 1 0 0 12 12/3 Inicial
F2 1 1 0 1 0 6 6/1
F3 2 1 0 0 1 10 10/1 X=0;Y=0
F -2 -3 0 0 0 0 =4 F=0

X Y F1 F2 F3 T.I. i
Y 1/3 1 1/3 0 0 4 4/(1/3) 1 Iterao
F2 2/3 0 -1/3 1 0 2 2/(2/3)
F3 5/3 0 -1/3 0 1 6 6/(5/3) X=0;Y=4
F -1 0 1 0 0 12 =3 F = 12

X Y F1 F2 F3 T.I. 2 Iterao
Y 0 1 1/2 -1/2 0 3
X 1 0 -1/2 3/2 0 3 X* = 3 ; Y* = 3
F3 0 0 1/2 -5/2 1 1 F* = 15
F 0 0 1/2 3/2 0 15 Sol. ptima
Ruy Costa, 2011

Na resoluo do problema anterior, o Quadro do Simplex inicial corresponde (em


termos grficos) origem do referencial, isto , ( X , Y ) = ( 0 , 0 ) com F = 0. O Quadro
correspondente primeira iterao refere-se soluo ( X , Y ) = ( 0 , 4 ) com F = 12. O
Quadro correspondente segunda iterao refere-se soluo ptima ( X* , Y* ) = ( 3 , 3 )
com F* = 15.

Faamos uma ligeira alterao no problema anterior, alterando a funo objectivo:

61
Maximizar F = 3. X + 3. Y

sujeito a:

1 . X + 3 . Y 12
1.X+1.Y 6
2 . X + 1 . Y 10

X, Y 0

X Y F1 F2 F3 T.I. i Quadro
F1 1 3 1 0 0 12 12/1 Inicial
F2 1 1 0 1 0 6 6/1
F3 2 1 0 0 1 10 10/2 X=0;Y=0
F -3 -3 0 0 0 0 =5 F=0

Nota: Em caso de "empate", optaremos pela varivel "empatada" que primeiro aparecer na "lista de variveis".
X Y F1 F2 F3 T.I. i
F1 0 5/2 1 0 -1/2 7 7/(5/2) 1 Iterao
F2 0 1/2 0 1 -1/2 1 1/(1/2)
X 1 1/2 0 0 1/2 5 5/(1/2) X = 5; Y = 0
F 0 -3/2 0 0 3/2 15 =2 F = 15

X Y F1 F2 F3 T.I. 2 Iterao
F1 0 0 1 -5 2 2
Y 0 1 0 2 -1 2 X* = 4 ; Y* = 2
X 1 0 0 -1 1 4 F* = 18
F 0 0 0 3 0 18 Sol. ptima

Observemos com ateno o Quadro do Simplex anterior. Trata-se de um Quadro


correspondente a uma soluo ptima, ( X* , Y* ) = ( 4 , 2 ), j que na linha que representa
a funo objectivo no h coeficientes negativos. No entanto, uma observao mais
Ruy Costa, 2011

cuidadosa permite-nos constatar que o coeficiente da varivel no bsica F3 nessa linha no


negativo, mas tambm no estritamente positivo ! Ora se esse coeficiente no fosse
igual a zero, mas apenas "ligeiramente" negativo, diramos no estar perante a soluo
ptima e incrementaramos a varivel F3 . Experimentemos incrementar essa varivel,
fazendo-a entrar para a base...

X Y F1 F2 F3 T.I. i 2 Iterao
F1 0 0 1 -5 2 2 2/2
Y 0 1 0 2 -1 2 X* = 4 ; Y* = 2
X 1 0 0 -1 1 4 4/1 F* = 18
F 0 0 0 3 0 18 =1 Sol. ptima

X Y F1 F2 F3 T.I. 3 Iterao
F3 0 0 1/2 -5/2 1 1
Y 0 1 1/2 -1/2 0 3 X* = 3 ; Y* = 3
X 1 0 -1/2 3/2 0 3 F* = 18

62
F 0 0 0 3 0 18 Sol. ptima

O novo Quadro corresponde a uma nova soluo bsica ptima ! [ claro que o valor
] . A nova soluo bsica
da funo objectivo permanece inaltervel, pois j era o valor ptimo F* = 18
admissvel ptima ( X* , Y* ) = ( 3 , 3 ).

Observemos com cuidado a linha que representa a funo objectivo. semelhana


do que j havamos notado, o coeficiente da varivel no bsica F1 nessa linha nulo. Ora
se esse coeficiente no fosse igual a zero, mas apenas "ligeiramente" negativo, diramos no
estar perante a soluo ptima e incrementaramos a varivel F1. Se experimentarmos
incrementar essa varivel, fazendo-a entrar para a base...

X Y F1 F2 F3 T.I. i 3 Iterao
F3 0 0 1/2 -5/2 1 1 1/(1/2)
Y 0 1 1/2 -1/2 0 3 3/(1/2) X* = 3 ; Y* = 3
X 1 0 -1/2 3/2 0 3 F* = 15
F 0 0 0 3 0 18 =2 Sol. ptima

Concluso: Deve entrar para a base a varivel F1 (correspondendo primeira linha


do novo Quadro) em substituio da varivel F3 . Mas essa exactamente a soluo
bsica admissvel correspondente ao Quadro respeitante segunda iterao ! Ou seja, o
"2 Quadro" remete-nos para o "3 Quadro" e vice-versa !

Poderemos assim concluir que se na linha que representa a funo objectivo


num Quadro do Simplex no houver coeficientes negativos, mas se um coeficiente
correspondente a uma varivel no bsica for nulo, ento estaremos perante uma
situao de mutiplicidade de solues ptimas !

Ruy Costa, 2011


Relativamente ao problema em anlise, o Algoritmo Simplex Primal indica-nos que
so ptimas as duas solues bsicas admissveis correspondentes a ( X , Y ) = ( 4 , 2 ) e
( X , Y ) = ( 3 , 3 ), sendo ainda ptimas todas as solues resultantes da combinao linear
convexa dessas duas solues bsicas admissveis, isto

( X* , Y* ) = . ( 4 , 2 ) + ( 1 - ) . ( 3 , 3 ) ; [0,1] .

Em termos grficos, ter-se-ia:

Recordemos a sequncia dos Quadros do Simplex correspondentes resoluo


deste problema:

63
X Y F1 F2 F3 T.I. i Quadro
F1 1 3 1 0 0 12 12/1 Inicial
F2 1 1 0 1 0 6 6/1
F3 2 1 0 0 1 10 10/2 X=0;Y=0
F -3 -3 0 0 0 0 =5 F=0

Nota: Em caso de "empate", optaremos pela varivel "empatada" que primeiro aparecer na "lista de variveis".
X Y F1 F2 F3 T.I. i
F1 0 5/2 1 0 -1/2 7 7/(5/2) 1 Iterao
F2 0 1/2 0 1 -1/2 1 1/(1/2)
X 1 1/2 0 0 1/2 5 5/(1/2) X = 5; Y = 0
F 0 -3/2 0 0 3/2 15 =2 F = 15

X Y F1 F2 F3 T.I. i 2 Iterao
F1 0 0 1 -5 2 2 2/2
Y 0 1 0 2 -1 2 X* = 4 ; Y* = 2
X 1 0 0 -1 1 4 4/1 F* = 18
F 0 0 0 3 0 18 =1 Sol. ptima

X Y F1 F2 F3 T.I. i 3 Iterao
F3 0 0 1/2 -5/2 1 1 1/(1/2)
Y 0 1 1/2 -1/2 0 3 3/(1/2) X* = 3 ; Y* = 3
X 1 0 -1/2 3/2 0 3 F* = 15
F 0 0 0 3 0 18 =2 Sol. ptima

( X* , Y* ) = . ( 4 , 2 ) + ( 1 - ) . ( 3 , 3 ) ; [0,1].

Consideremos agora o seguinte problema de Programao Linear:

Maximizar F = - 2. X + 4. Y

sujeito a:

-4.X+2.Y 1
-1.X+2.Y 6

X, Y 0

X Y F1 F2 T.I. i Quadro
F1 -4 2 1 0 1 1/2 Inicial
Ruy Costa, 2011

F2 -1 2 0 1 6 6/2 X=0;Y=0
F 2 -4 0 0 0 = 1/2 F=0

X Y F1 F2 T.I. i 1 Iterao
Y -2 1 1/2 0 1/2
F2 3 0 -1 1 5 5/3 X = 0 ; Y = 1/2

64
F -6 0 2 0 2 = 5/3 F=2

X Y F1 F2 T.I. i 1 Iterao
Y 0 1 -1/6 2/3 23/6
X 1 0 -1/3 1/3 5/3 X*= 5/3 ; Y* = 23/6
F 0 0 0 2 12 =? F* = 12
Sol. ptima
no nica !

Observemos o que se passou na resoluo deste problema: inicialmente analisou-


-se a origem do referencial ( X , Y ) = ( 0 , 0 ) com F = 0, constatando-se no se tratar da
soluo ptima. Com a entrada de Y para a base, passou-se, ento, para ( X , Y ) =
= ( 0 , 1/2 ) com F = 2, que ainda no corresponde soluo ptima. De seguida, entrou X
para a base, passando-se a ( X , Y ) = ( 5/3 , 23/6 ) com F = 12, tendo-se verificado tratar-se
de uma soluo ptima. No entanto, a existncia de um coeficiente nulo correspondente a
uma varivel no bsica na linha da funo objectivo indica-nos uma situao de
multiplicidade de solues ptimas.

Para determinar a outra soluo bsica admissvel ptima incrementamos a varivel


F1 . No entanto, quando se vai investigar qual a varivel da base ( X ou Y ) que si da base
para dar lugar a F1 constata-se que nenhuma dessas variveis ( X ou Y ) limita o aumento
da varivel F1 , isto , pode-se aumentar F1 tanto quanto se pretender, sem qualquer
restrio relativamente a X ou Y !

Moral da histria: Estamos perante uma situao de multiplicidade de solues


ptimas, mas com apenas uma soluo bsica admissvel ptima !

Sabemos, assim, que ( X* , Y* ) = ( 5/3 , 23/6 ) com F* = 12. Sabemos ainda que de
entre as variveis no bsicas do ltimo Quadro do Simplex ( F1 e F2 ) a varivel F1 deveria
ser incrementada ( isto , F1* 0 ) e, consequentemente, F2 continua fora da base ( ou
seja, F2* = 0 ).

Como F1* 0 equivalente a - 4 . X* + 2 . Y* 1 e como F2* = 0 se pode


escrever na forma - 1 . X* + 2 . Y* = 6 , a conjuno destas duas condies equivalente a
Y* = 3 + (1/2) . X*

F1* 0 - 4 . X* + 2 . Y* 1 - 4 . X* + 2 . ( 3 + (1/2) . X* ) 1 X* 5/3



F2* = 0 - 1 . X* + 2 . Y* = 6 Y* = 3 + (1/2) . X* Y* = 3 + (1/2) . X*

Assim, as solues ptimas deste problema so os pares ordenados ( X* , Y* ) que


Ruy Costa, 2011

verificam simultaneamente as duas condies X* 5/3 e Y* = 3 + (1/2) . X* . Se X* = 5/3 ,


ento Y* = 23/6 (trata-se da nica soluo bsica admissvel ptima deste problema); se
X* > 5/3 , ento Y* = 3 + (1/2) . X* (tratando-se de uma soluo no bsica admissvel e
ptima). De notar que, como bvio, todas as solues ptimas esto associadas ao
mesmo valor da funo objectivo, F* = 12.

) Aproveite para resolver este problema recorrendo ao Mtodo Grfico. Poder,


assim, observar um problema com um espao de solues admissveis ilimitado e
com um nmero ilimitado de solues ptimas (sendo apenas uma dela bsica).

65
) Altere adequadamente a funo objectivo de modo a que o novo problema
admita apenas uma nica soluo ptima (que, sendo nica, ser obrigatoriamente
bsica).

Terminaremos a apresentao do Algoritmo Simplex Primal com a resoluo de uma


variante do anterior problema de Programao Linear:

Maximizar F = 2. X + 3. Y

sujeito a:

-4.X+2.Y 1
-1.X+2.Y 6

X, Y 0

X Y F1 F2 T.I. i Quadro
F1 -4 2 1 0 1 1/2 Inicial
F2 -1 2 0 1 6 6/2 X=0;Y=0
F 2 -3 0 0 0 = 1/2 F=0

X Y F1 F2 T.I. i 1 Iterao
Y -2 1 1/2 0 1/2
F2 3 0 -1 1 5 5/3 X = 0 ; Y = 1/2
F -8 0 3/2 0 3/2 = 5/3 F = 3/2

X Y F1 F2 T.I. i 1 Iterao
Y 0 1 -1/6 2/3 23/6
X 1 0 -1/3 1/3 5/3 X*= 5/3 ; Y* = 23/6
F 0 0 - 7/6 8/3 89/6 =? F* = 89/6
Sol. no ptima

Observemos o que se passou na resoluo deste problema: inicialmente analisou-


-se a origem do referencial ( X , Y ) = ( 0 , 0 ) com F = 0, constatando-se no se tratar da
soluo ptima. Com a entrada de Y para a base, passou-se, ento, para ( X , Y ) =
= ( 0 , 1/2 ) com F = 3/2, que ainda no corresponde soluo ptima. De seguida, entrou
Ruy Costa, 2011

X para a base, passando-se a ( X , Y ) = ( 5/3 , 23/6 ) com F = 89/6, tendo-se verificado que
ainda no se tratava de uma soluo ptima. Quando vamos investigar qual a varivel que
dever sair da base para ceder o seu lugar a F1, constatamos que nem X nem Y limitam o
aumento de F1 ! Ou seja, a soluo deste problema indeterminada, j que a funo
objectivo poder aumentar de valor indefinidamente !

) Moral da histria: Estamos perante um espao de solues admissveis ilimitado


e sem uma soluo ptima do problema determinada, j que a funo objectivo poder
aumentar de valor indefinidamente ! (O que poder constatar facilmente atravs da
resoluo grfica).

66
67
Ruy Costa, 2011
68
Ruy Costa, 2011
69
Ruy Costa, 2011
70
Ruy Costa, 2011
71
72
73
74
75
76
77
A L G O R I T M O S I M P L E X R E V I S T O

O Algoritmo Simplex Revisto tira partido da formulao matricial do Simplex de modo


a reduzir ao mnimo o volume de clculos efectuados.

Consideremos um problema de Programao Linear expresso na forma standard e


representado matricialmente:

Maximizar F = C . X

sujeito a:
A.X = b

X 0

Na representao anterior, as matrizes so as apresentadas na "Formulao


Matricial do Simplex".

Poderemos resumir os passos principais do Algoritmo Simplex Revisto,


relativos a uma dada iterao:

1 - Critrio de Optimalidade
Exprimir a funo objectivo em funo das variveis no bsicas, ou seja, calcular os
coeficientes dessas variveis, r = - CD + CB . B-1.D ( 1 x ( n - m ) ).

Se todos os coeficientes rk ( k = 1 , 2, ... , n-m ) forem no negativos, ento a


soluo em anlise ptima, verificando-se XB* = B-1.b e F* = + CB . B-1.b . [ Ateno: se
se tratar da base inicial, dever-se-ia verificar se a soluo era admissvel, isto , se XB 0 ]. Se algum dos
coeficientes rk for negativo, ento a soluo em anlise no ptima, devendo seleccionar-
se para entrar na base a varivel correspondente ao coeficiente rk mais negativo.

2 - Determinao das variveis que pertencem Nova Base


Ruy Costa, 2011

Se pretendermos fazer entrar para a base a k-sima varivel, deve-se determinar


qual a varivel que deve sair da base.
Para tal,

78
Comea-se por calcular o vector vk ( m x 1 ), correspondente coluna que
representa a k-sima varivel no novo Quadro do Simplex [ Nota: vk uma coluna da matriz B-1.D ]
:

vk = B-1.ak , sendo ak a coluna da matriz dos coeficientes A correspondente


k-sima varivel.

Calcula-se, em seguida, os quocientes i = ( B-1.b )i / ( vk )i , para ( vk )i > 0


e i = 1, 2, ... , m.

Calcula-se = min ( i ) , i = 1, 2, ... , m. Se = s , a s-sima varivel


dever deixar a base.

Conhecemos, assim, as variveis que pertencem nova base.

3 - Mudana de Base
Escrever as matrizes B, D, CB eCD correspondentes nova base.
Calcular B-1.D e B-1.b.

Voltar a 1.

Sintetizando, poderemos apresentar os passos mais importantes a seguir, numa


dada iterao, pelo

ALGORITMO SIMPLEX REVISTO

1- Calcular r = - CD + CB . B-1.D .
r 0 soluo ptima: XB* = B-1.b e F* = + CB . B-1.b ;
caso contrrio, seleccionar a varivel correspondente ao rk mais negativo para
entrar na base.

2- Calcular vk = B-1.ak .
Calcular i = ( B-1.b )i / ( vk )i , para ( vk )i > 0 e i = 1, 2, ... , m.
Calcular = min ( i ) , i = 1, 2, ... , m. Se = s , a s-sima varivel
dever deixar a base.

3- Escrever as matrizes B, D, CB eCD correspondentes nova base.


Calcular B-1.D e B-1.b.

Voltar a 1.

Um aspecto importante deve ser focado: a escolha da base inicial. Num


exerccio meramente acadmico a base inicial , geralmente, indicada. Contudo, se
tivermos que escolher uma base inicial, tentaremos que as "variveis originais do
Ruy Costa, 2011

problema" estejam, tanto quanto possvel, na base inicial, visando diminuir o volume de
clculo. Assim, no far sentido adoptarmos uma base inicial formada maioritariamente (ou
exclusivamente) por variveis de folga (a regra habitual do Algoritmo Simplex Primal).

79
Teremos sempre que ter um cuidado importante: a base inicial adoptada dever
corresponder sempre a uma soluo bsica admissvel ! Se, por acaso, se tivesse
adoptado uma determinada base e se tivesse constatado posteriormente tratar-se de uma
soluo bsica no admissvel, dever-se-ia adoptar uma nova base inicial e refazer os
clculos.

Resolvamos agora o seguinte exerccio:

Consideremos o seguinte problema de


Programao Linear:

Maximizar F = 3 . X + Y Resolva-o recorrendo ao


Algoritmo Simplex Revisto, a
sujeito a: partir da base inicial (X,Y,F3 ).
X 1
Y 2 Nota: F3 designa a varivel
X + Y 5 de folga associada terceira
restrio.
X , Y 0

1 Iterao
Base inicial:
1- X Y F3 F1 F2

B= 1 0 0 D= -1 0 b= 1
0 1 0 0 -1 2
1 1 1 0 0 5

CB = +3 +1 0 CD = 0 0

B-1 = 1 0 0 B-1.D = -1 0 XB = 1
0 1 0 0 -1 2
-1 -1 1 1 1 2

r= -3 -1 F= 5

F1 deve entrar para a base
Nota: r = - CD + CB . B-1.D XB = B-1.b F = CB . B-1.b
2-
vF1 = B-1.aF1 = 1 0 0 . -1 = -1
0 1 0 0 0
-1 -1 1 0 1

vF1 = -1 XB = 1 1 =
Ruy Costa, 2011

0 2 2 =
1 2 3 = 2 / 1 a 3 varivel
= 2 bsica ( F3 ) si
da base

80
3- X, Y , F1)
Nova base: (
X Y F1 F2 F3
B= 1 0 -1 D= 0 0 b= 1
0 1 0 -1 0 2
1 1 0 0 1 5

CB = +3 +1 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

- 2 iterao -

1- r= +2 +3 F= 11

Concluso: Trata-se da soluo ptima, isto , X* = 3; Y* = 2 com F* = 11.

Aproveite para resolver este problema utilizando o Mtodo Grfico e para constatar
que, para o resolver pelo Algoritmo Simplex Primal, no poderia tomar como base inicial
( F1 , F2 , F3 ) [teria que recorrer Tcnica da Base Artificial ...] .

Ruy Costa, 2011


Ainda relativamente a este problema, e embora o enunciado o no pea,
aproveitaremos os clculos efectuados para apresentar o Quadro do Simplex
correspondente soluo ptima:

X Y F1 F2 F3 TI
X 1 0 0 1 1 3
Y 0 1 0 -1 0 2
F1 0 0 1 1 1 2
F 0 0 0 +2 +3 11

81
A N L I S E D E S E N S I B I L I D A D E

A N L I S E P S - O P T I M A L I D A D E

Recordemos o exerccio apresentado para ilustrar a aplicao do Algoritmo Simplex


Revisto:

Consideremos o seguinte problema de


Programao Linear:

Maximizar F = 3 . X + Y Resolva-o recorrendo ao


Algoritmo Simplex Revisto, a
sujeito a: partir da base inicial (X,Y,F3 ).
X 1
Y 2 Nota: F3 designa a varivel
X + Y 5 de folga associada terceira
restrio.
X , Y 0

Ao resolv-lo constatmos que a base ptima correspondia s variveis X, Y e F1.

X Y F1 F2 F3
B= 1 0 -1 D= 0 0 b= 1
0 1 0 -1 0 2
1 1 0 0 1 5

CB = +3 +1 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r= +2 +3 F= 11

Concluso: Trata-se da soluo ptima, isto , X* = 3; Y* = 2; F* = 11


Ruy Costa, 2011

Imagine que o coeficiente da varivel X na funo objectivo (originalmente igual a 3)


poderia variar ligeiramente, tomando valores no intervalo [ 1 ; 5 ]. Poder-se-ia perguntar
"Qual a sensibilidade da soluo ptima do problema a essa variao ?". Ser que a
soluo ptima sempre a mesma nesse domnio de variao do coeficiente de X na funo

82
objectivo ? Ou, pelo contrrio, a soluo ptima do problema muito sensvel variao
desse coeficiente ?

Podemos tambm imaginar que o termo independente da primeira restrio tinha


sido alterado de 1 para 2. legtima a pergunta: "Ser que se mantm a soluo ptima
determinada ?".

E o que acontece se, depois de determinar a soluo ptima de um dado problema


de Programao Linear, descobrirmos que se deveria ter introduzido uma restrio adicional
? Dever-se-ia voltar ao incio da resoluo ?

As questes levantadas justificam a Anlise de Sensibilidade / Anlise de Ps-


-Optimalidade, isto o estudo da sensibilidade da soluo ptima de um determinado
problema de Programao Linear variao de algum(ns) dos coeficientes intervenientes /
estudo da variao da soluo ptima de um problema de Programao Linear face
alterao de algum(ns) dos coeficientes intervenientes e/ou introduo de novas restries
ou novas variveis.

Comecemos por apresentar, de um modo mais geral, algumas das situaes mais
importantes com que nos poderemos deparar:

Variaes nos coeficientes da funo objectivo

I B-1.D B-1.b
0 - CD + CB . B-1.D CB . B-1.b
r= F=

I B-1.D B-1.b
0 - CD' + CB' . B-1.D CB' . B-1.b
r' = F' =

Uma alterao nos coeficientes da funo objectivo (novos valores dos


coeficientes: CD' ; CB' ) no pe em causa a admissibilidade da soluo correspondente
ao ltimo Quadro (antes de se efectuar as alteraes). Com efeito, no h qualquer
alterao em B-1.b . No entanto, a optimalidade pode ser posta em causa, j que os
coeficientes das variveis no bsicas na funo objectivo so alterados:
r' = - CD' + CB' . B-1.D . [De notar que B-1.D corresponde ao ltimo Quadro (ptimo)].

Assim, h que verificar se se mantm a optimalidade da soluo. Se r' 0, ento a


soluo anteriormente determinada mantm-se ptima, devendo-se apenas alterar o valor
Ruy Costa, 2011

ptimo da funo objectivo para F' = CB' . B-1.b . [De notar que B-1.b corresponde ao ltimo Quadro
(ptimo)]. Se, pelo contrrio, algum dos coeficientes do vector r' for negativo, a soluo
anteriormente determinada deixou de ser ptima, devendo prosseguir-se com o Algoritmo
Simplex Primal (eventualmente na verso matricial - Algoritmo Simplex Revisto).

83
Variaes nos termos independentes das restries

I B-1.D B-1.b
0 - CD + CB . B-1.D CB . B-1.b
r= F=

I B-1.D B-1.b'
0 - CD + CB . B-1.D CB . B-1.b'
r= F' =

Uma alterao nos termos independentes das restries (novos valores no


vector dos termos independentes: b' ) no pe em causa a optimalidade da soluo
correspondente ao ltimo Quadro (antes de se efectuar as alteraes). Com efeito, no h
qualquer alterao em r = - CD + CB . B-1.D . No entanto, a admissibilidade pode ser
posta em causa, j que o vector das variveis bsicas sofre alteraes: XB' = B-1.b' [De notar
que B-1 corresponde ao ltimo Quadro (ptimo)].

Assim, h que verificar se se mantm a admissibilidade da soluo. Se XB' 0,


ento a soluo anteriormente determinada mantm-se admissvel (e ptima), devendo-se
apenas alterar o valor ptimo da funo objectivo para F' = CB . B-1.b' . [De notar que CB.B-1
corresponde ao ltimo Quadro (ptimo)]. Se, pelo contrrio, algum dos coeficientes do vector XB'
for negativo, a soluo anteriormente determinada deixou de ser admissvel, continuando, no
entanto, a verificar o critrio de optimalidade. Para determinar a nova soluo ptima a
partir do ltimo Quadro, poder-se- prosseguir com o Algoritmo Simplex Dual (ou,
alternativamente, arbitrar uma nova soluo bsica admissvel inicial e utilizar o Algoritmo
Simplex Primal).

Variaes nos coeficientes das restries


A introduo de alteraes nos coeficientes das restries pode afectar s a matriz
B, s a matriz D, ou ambas.

Como a matriz B intervm no vector das variveis bsicas e no vector dos


coeficientes das variveis no bsicas na funo objectivo, podemos concluir que uma
alterao que envolva a matriz B obriga verificao quer da admissibilidade quer da
optimalidade. Se X'B 0 e r' 0 , mantm-se ptima a base correspondente ao Quadro
anterior (embora se alterem os valores das variveis bsicas X'B = B'-1.b e o valor da
funo objectivo F' = CB . B'-1.b). Se X'B 0 e r' < 0 , mantm-se a admissibilidade da
base correspondente ao Quadro anterior, mas no a sua optimalidade (pelo que se dever
Ruy Costa, 2011

prosseguir com o Algoritmo Simplex Primal). Se X'B < 0 e r' 0 , continua a verificar-se a
optimalidade da base correspondente ao Quadro anterior, mas no a admissibilidade (para
determinar a nova soluo ptima a partir do ltimo Quadro, poder-se- prosseguir com o
Algoritmo Simplex Dual ou, alternativamente, arbitrar uma nova soluo bsica admissvel
inicial e utilizar o Algoritmo Simplex Primal). Se X'B < 0 e r' < 0 , a base correspondente ao

84
ltimo Quadro deixou de ser admissvel e deixou de ser ptima, pelo que se dever arbitrar
uma nova soluo bsica admissvel inicial e utilizar o Algoritmo Simplex Primal.

Como a matriz D no intervm no vector das variveis bsicas, podemos concluir


que uma alterao que envolva a matriz D obriga verificao apenas da optimalidade,
j que a admissibilidade no posta em causa. Se r' 0 , mantm-se ptima a base
correspondente ao Quadro, embora se tenham alterado os valores das variveis bsicas
( X'B = B'-1.b ) e o valor da funo objectivo ( F' = CB . B'-1.b ); se r' < 0 a base
correspondente ao Quadro anterior deixa de ser ptima, pelo que se dever prosseguir com
o Algoritmo Simplex Primal.

Esquematicamente, tem-se:

I B-1.D B-1.b
0 - CD + CB . B-1.D CB . B-1.b
r= F=

I B'-1.D' B'-1.b
0 - CD + CB . B'-1.D' CB . B'-1.b
r' = F' =

Introduo de novas variveis


A introduo de uma nova varivel (que, claro est, no pertence base ptima
correspondente ao ltimo Quadro) representa a introduo de uma nova coluna na matriz D,
que designaremos por dn, e de um novo coeficiente na funo objectivo (formalmente, uma
coluna adicional em CD), que designaremos por cn.

A admissibilidade da base correspondente ao ltimo Quadro no posta em causa,


j que nada afecta o vector das variveis bsicas, XB = B-1.b. No entanto, a optimalidade
dever ser verificada, no tocante nova varivel. Ser que ela deve entrar para a base e,
assim, contribuir para uma melhoria da funo objectivo ? Ou, pelo contrrio, sabemos que
ela deve continuar fora da base ptima ? Para responder a estas questes calcularemos o
coeficiente da nova varivel na funo objectivo no Quadro do Simplex:
rn = - Cn + CB . B-1. dn . [De notar que CB . B-1 corresponde ao ltimo Quadro (ptimo)].

Se rn 0, mantm-se a optimalidade da base correspondente ao ltimo Quadro,


mantendo-se quer os valores das variveis bsicas, quer o valor da funo objectivo. Se
Ruy Costa, 2011

rn < 0, a nova varivel dever entrar para a base, prosseguindo-se com o Algoritmo Simplex
Primal (com a determinao da varivel que deve sair da base).
Introduo de novas restries
A introduo de uma nova restrio corresponde a uma eventual alterao no
espao de solues admissveis. Esta alterao, ainda que efectiva, no significa

85
necessariamente uma alterao na soluo ptima do problema previamente determinada.
Ilustremos o que se acaba de referir com um exemplo:

Considere-se o problema de Programao Linear seguinte:

Maximizar F = 3 . X + 2 . Y

sujeito a
X + Y 5
X 3

X , Y 0

fcil de verificar (por exemplo, recorrendo ao Mtodo Grfico) que a soluo


ptima X* = 3 ; Y* = 2 , com F* = 13.

Imaginemos que se introduz a nova restrio 2 . X + 3 . Y 16 . Como se pode


constatar muito facilmente, esta nova restrio dominada pela restrio X + Y 5, pelo que
em nada altera o espao de solues admissveis do problema original. Assim, a soluo
ptima do "problema alterado" coincide com a do "problema original".

Se, no "problema original", se introduzir a nova restrio 4 . X + 6 . Y 25 , o


espao de solues admissveis do problema original alterado ( "reduzido" - por exemplo,
( 0 ; 5 ) soluo admissvel do "problema original", mas no respeita a nova restrio, pelo
que nem sequer uma soluo do "problema alterado"). No entanto, a soluo ptima do
"problema alterado" coincide com a do "problema original", j que ( 3 ; 2 ) tambm respeita a
nova restrio.

Se a nova restrio a introduzir no "problema original" for 4 . X + 6 . Y 22 , o


espao de solues admissveis do problema original tambm alterado e, dado que a
soluo ptima do "problema original" no respeita a nova restrio, a soluo ptima do
"problema alterado" no coincidir com a do "problema original". A nova soluo ptima
ser X* = 3 ; Y* = 5/3 , com F* = 37/3. De notar que, como se esperaria, o valor ptimo da
funo objectivo do "problema alterado" no melhor do que o correspondente valor do
"problema original".

Assim, se a soluo ptima original no violar a nova restrio, continuar a


ser a soluo ptima do "problema alterado". Se, pelo contrrio, a soluo ptima
original violar a nova restrio, ento ela ser uma soluo no admissvel que verifica
o critrio de optimalidade do "problema alterado", pelo que a determinao da soluo
admissvel ptima do "problema alterado" pode ser feita com o recurso ao Algoritmo
Simplex Dual (alternativamente, dever-se- arbitrar uma nova soluo bsica
admissvel inicial para o "problema alterado" e utilizar o Algoritmo Simplex Primal).

Para se utilizar o Algoritmo Simplex Dual, a partir da soluo ptima do "problema


original" que viola a nova restrio, deve adoptar-se o seguinte procedimento:

1 - No Quadro do Simplex correspondente soluo ptima do


"problema original" deve adicionar-se uma nova linha correspondente
Ruy Costa, 2011

nova restrio (e, se necessrio, uma nova coluna para a eventual nova
varivel de folga). Com este passo deixamos de estar perante um
Quadro do Simplex.

86
2 - Efectuar as "operaes elementares" sobre as linhas do
Quadro, de modo a ser possvel identificar uma varivel bsica associada
nova linha e, estar-se de novo perante um Quadro do Simplex
(correspondente a uma soluo no admissvel, que respeita o critrio de
optimalidade).

3 - Iniciar o Algoritmo Simplex Dual.

Aproveitemos, agora, o exerccio apresentado para ilustrar a aplicao do Algoritmo


Simplex Revisto, com vista a exemplificarmos as situaes agora abordadas:

Consideremos o seguinte problema de Programao Linear:

Maximizar F = 3 . X + Y

sujeito a:
X 1
Y 2
X + Y 5

X , Y 0

Ao resolv-lo constatmos que a base ptima correspondia s variveis X, Y e F1.

X Y F1 F2 F3

B= 1 0 -1 D= 0 0 b= 1
0 1 0 -1 0 2
1 1 0 0 1 5

CB = +3 +1 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r= +2 +3 F= 11

Concluso: Trata-se da soluo ptima, isto , X* = 3; Y* = 2 com F* = 11.


Ruy Costa, 2011

a) Admita que o coeficiente da varivel X na funo objectivo pode variar. Para que
valores desse coeficiente se mantm ptima a soluo previamente determinada ?

b) Imagine que por lapso de edio se tinha indicado que o coeficiente da varivel Y
na funo objectivo era 1, mas o valor real 10. Manter-se- a soluo ptima
determinada ? Em caso negativo, determine a nova soluo ptima.

87
c) Se, no problema original, se alterar o termo independente da segunda restrio de
2 para 3, mantm-se a base ptima original ? E a soluo ptima original ?
Justifique.

d) Se, no problema original, se alterar a terceira restrio para ( 3/2 ) . X + Y 5,


manter-se- a base ptima original ? E a soluo ptima original ? Justifique.

e) Imagine que se introduz, no problema original, uma nova varivel no negativa, Z,


com coeficiente + 7 na funo objectivo F e coeficientes +1, 0 e +2, respectivamente,
na 1, 2 e 3 restries.

Manter-se- a soluo ptima determinada ? Em caso negativo, determine a


nova soluo ptima.

f) Se, ao problema original, se acrescentar a restrio 2 . X + Y 7 , manter-se- a


soluo ptima determinada ? Em caso negativo, determine a nova soluo ptima.

Resoluo:

a) Seja o valor do coeficiente de X na funo objectivo F.

C'B = +1 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r' = -1 F= 3. + 2

A soluo ptima anteriormente determinada mantm-se ptima sse


-10 0 1

b) C'B = +3 + 10 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r' = -7 +3 F= 29

F2 deve entrar para a base
vF2 = B-1.aF2 = 0 -1 1 . 0 = 1
0 1 0 -1 -1
-1 -1 1 0 1
Ruy Costa, 2011

vF2 = 1 XB = 3 1 = 3 / 1
-1 2 2 =
1 2 3 = 2 / 1 a 3 varivel
= 2 bsica ( F1 ) si
da base

88
Nova base: ( X, Y , F2)
X Y F2 F1 F3
B= 1 0 0 D= -1 0 b= 1
0 1 -1 0 0 2
1 1 0 0 1 5

C'B = +3 + 10 0 CD = 0 0

B-1 = 1 0 0 B-1.D = -1 0 XB = 1
-1 0 1 1 1 4
-1 -1 1 1 1 2

r= +7 + 10 F= 43

Assim, a nova soluo ptima X* = 1; Y* = 4 com F* = 43.

c) CB = +3 +1 0 CD = 0 0 b' = 1
3
5

B-1 = 0 -1 1 B-1.D = 1 1 X'B = 2


0 1 0 -1 0 3
-1 -1 1 1 1 1

r= +2 +3 F' = 9

Concluso: Mantm-se ptima a base ( X , Y , F1 ),embora se alterem os valores das


variveis bsicas e da funo objectivo: X* = 2 ; Y* = 3 com F* = 9.

d) X Y F1 F2 F3

B' = 1 0 -1 D= 0 0 b= 1
0 1 0 -1 0 2
3/2 1 0 0 1 5

CB = +3 +1 0 CD = 0 0

B'-1 = 0 - 2/3 2/3 B'-1.D = 2/3 2/3 X'B = 2


0 1 0 -1 0 2
-1 - 2/3 2/3 2/3 2/3 1
Ruy Costa, 2011

r'= +1 +2 F' = 8

Concluso: Mantm-se ptima a base ( X , Y , F1 ),embora se alterem os valores das


variveis bsicas e da funo objectivo: X* = 2; Y* = 2 com F* = 8.

e) r Z = - c Z + CB .B-1.dZ

89
= -7+ +3 +1 0 . 0 -1 1 . 1
0 1 0 0
-1 -1 1 2

= -7+ +3 +1 0 2
0
1

= - 7 + 6 = - 1 a soluo deixa de ser ptima; Z deve entrar para a base

vZ = B-1.aZ = 0 -1 1 . 1 = 2
0 1 0 0 0
-1 -1 1 2 1

vZ = 2 XB = 3 1 = 3 / 2 a 1 var. bsica
0 2 2 = ( X ) si da base
1 2 3 = 2 / 1
=3/2
Nova base: ( Z , Y , F1)
Z Y F1 X F2 F3
B= 1 0 -1 D= 1 0 0 b= 1
0 1 0 0 -1 0 2
2 1 0 1 0 1 5

CB = +7 +1 0 CD = +3 0 0

B-1 = 0 - 1/2 1/2 B-1.D = 1/2 1/2 1/2 XB = 3/2


0 1 0 0 -1 0 2
-1 - 1/2 1/2 - 1/2 1/2 1/2 1/2

r= + 1/2 + 5/2 + 7/2 F= 25/2

Assim, a nova soluo ptima X* = 0; Y* = 2; Z* = 3/2 com F* = 25/2.

f) Introduo da nova restrio: 2 . X + Y 7

( X* , Y* ) = ( 3 , 2 ) 2 . 3 + 2 = 8 > 7 !

Concluso: a soluo ptima vai ser alterada !

1 - Introduzir a nova restrio no ltimo Quadro do Simplex.

X Y F1 F2 F3 F4 TI
Ruy Costa, 2011

X? 1 0 0 1 1 0 3
Y? 0 1 0 -1 0 0 2
F1 0 0 1 1 1 0 2
? 2 1 0 0 0 1 7
F 0 0 0 +2 +3 0 11
De notar que se deixou de estar perante um Quadro do Simplex !

90
2 - Efectuar "operaes elementares" para se estar perante um Quadro do
Simplex.

- multiplicar a 1 linha por ( - 2 ) e somar 4 linha


- multiplicar a 2 linha por ( - 1 ) e somar 4 linha

X Y F1 F2 F3 F4 TI
X 1 0 0 1 1 0 3
Y 0 1 0 -1 0 0 2
F1 0 0 1 1 1 0 2
F4 0 0 0 -1 -2 1 -1
F 0 0 0 +2 +3 0 11

3 - Prosseguir com o Algoritmo Simplex Dual

X Y F1 F2 F3 F4 TI
X 1 0 0 1 1 0 3
Y 0 1 0 -1 0 0 2
F1 0 0 1 1 1 0 2
F4 0 0 0 -1 -2 1 -1 F4 si da base
F 0 0 0 +2 +3 0 11
2/1 3/2

F3 entra na base

X Y F1 F2 F3 F4 TI
X 1 0 0 1/2 0 1/2 5/2
Y 0 1 0 -1 0 0 2

Ruy Costa, 2011


F1 0 0 1 1/2 0 1/2 3/2
F3 0 0 0 1/2 1 - 1/2 1/2
F 0 0 0 + 1/2 0 + 3/2 19/2

Concluso: A nova soluo ptima X* = 5/2; Y* = 2 com F* = 19/2.

91
Introduo de novas restries
A introduo de uma nova restrio corresponde a uma eventual alterao no
espao de solues admissveis. Esta alterao, ainda que efectiva, no significa
necessariamente uma alterao na soluo ptima do problema previamente determinada.
Ilustremos o que se acaba de referir com um exemplo:

Considere-se o problema de Programao Linear seguinte:

Maximizar F = 3 . X + 2 . Y

sujeito a
X + Y 5
X 3

X , Y 0

fcil de verificar (por exemplo, recorrendo ao Mtodo Grfico) que a soluo


ptima X* = 3 ; Y* = 2 , com F* = 13.

Imaginemos que se introduz a nova restrio 2 . X + 3 . Y 16 . Como se pode


constatar muito facilmente, esta nova restrio dominada pela restrio X + Y 5, pelo que
em nada altera o espao de solues admissveis do problema original. Assim, a soluo
ptima do "problema alterado" coincide com a do "problema original".

Se, no "problema original", se introduzir a nova restrio 4 . X + 6 . Y 25 , o


espao de solues admissveis do problema original alterado ( "reduzido" - por exemplo,
( 0 ; 5 ) soluo admissvel do "problema original", mas no respeita a nova restrio, pelo
que nem sequer uma soluo do "problema alterado"). No entanto, a soluo ptima do
"problema alterado" coincide com a do "problema original", j que ( 3 ; 2 ) tambm respeita a
nova restrio.

Se a nova restrio a introduzir no "problema original" for 4 . X + 6 . Y 22 , o


espao de solues admissveis do problema original tambm alterado e, dado que a
soluo ptima do "problema original" no respeita a nova restrio, a soluo ptima do
"problema alterado" no coincidir com a do "problema original". A nova soluo ptima
ser X* = 3 ; Y* = 5/3 , com F* = 37/3. De notar que, como se esperaria, o valor ptimo da
funo objectivo do "problema alterado" no melhor do que o correspondente valor do
"problema original".

Assim, se a soluo ptima original no violar a nova restrio, continuar a


ser a soluo ptima do "problema alterado". Se, pelo contrrio, a soluo ptima
original violar a nova restrio, ento ela ser uma soluo no admissvel que verifica
o critrio de optimalidade do "problema alterado", pelo que a determinao da soluo
Ruy Costa, 2011

admissvel ptima do "problema alterado" pode ser feita com o recurso ao Algoritmo
Simplex Dual (alternativamente, dever-se- arbitrar uma nova soluo bsica
admissvel inicial para o "problema alterado" e utilizar o Algoritmo Simplex Primal).

Aproveitemos, agora, o exerccio apresentado para ilustrar a aplicao do Algoritmo


Simplex Revisto, com vista a exemplificarmos as situaes agora abordadas:

92
Consideremos o seguinte problema de Programao Linear:

Maximizar F = 3 . X + Y

sujeito a:
X 1
Y 2
X + Y 5

X , Y 0

Ao resolv-lo constatmos que a base ptima correspondia s variveis X, Y e F1.

X Y F1 F2 F3

B= 1 0 -1 D= 0 0 b= 1
0 1 0 -1 0 2
1 1 0 0 1 5

CB = +3 +1 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r= +2 +3 F= 11

Concluso: Trata-se da soluo ptima, isto , X* = 3; Y* = 2 com F* = 11.

a) Admita que o coeficiente da varivel X na funo objectivo pode variar. Para que
valores desse coeficiente se mantm ptima a soluo previamente determinada ?

b) Imagine que por lapso de edio se tinha indicado que o coeficiente da varivel Y
na funo objectivo era 1, mas o valor real 10. Manter-se- a soluo ptima
determinada ? Em caso negativo, determine a nova soluo ptima.

c) Se, no problema original, se alterar o termo independente da segunda restrio de


2 para 3, mantm-se a base ptima original ? E a soluo ptima original ?
Justifique.

d) Se, no problema original, se alterar a terceira restrio para ( 3/2 ) . X + Y 5,


manter-se- a base ptima original ? E a soluo ptima original ? Justifique.

e) Imagine que se introduz, no problema original, uma nova varivel no negativa, Z,


com coeficiente + 7 na funo objectivo F e coeficientes +1, 0 e +2, respectivamente,
Ruy Costa, 2011

na 1, 2 e 3 restries.

Manter-se- a soluo ptima determinada ? Em caso negativo, determine a


nova soluo ptima.

f) Se, ao problema original, se acrescentar a restrio 2 . X + Y 7 , manter-se- a


soluo ptima determinada ? Em caso negativo, determine a nova soluo ptima.

93
Resoluo:

a) Seja o valor do coeficiente de X na funo objectivo F.

C'B = +1 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r' = -1 F= 3. + 2

A soluo ptima anteriormente determinada mantm-se ptima sse


-10 0 1

b) C'B = +3 + 10 0 CD = 0 0

B-1 = 0 -1 1 B-1.D = 1 1 XB = 3
0 1 0 -1 0 2
-1 -1 1 1 1 2

r' = -7 +3 F= 29

F2 deve entrar para a base
vF2 = B-1.aF2 = 0 -1 1 . 0 = 1
0 1 0 -1 -1
-1 -1 1 0 1

vF2 = 1 XB = 3 1 = 3 / 1
-1 2 2 =
1 2 3 = 2 / 1 a 3 varivel
= 2 bsica ( F1 ) si
da base

Nova base: ( X, Y , F2)


X Y F2 F1 F3
B= 1 0 0 D= -1 0 b= 1
0 1 -1 0 0 2
1 1 0 0 1 5

C'B = +3 + 10 0 CD = 0 0

B-1 = 1 0 0 B-1.D = -1 0 XB = 1
-1 0 1 1 1 4
-1 -1 1 1 1 2
Ruy Costa, 2011

r= +7 + 10 F= 43

Assim, a nova soluo ptima X* = 1; Y* = 4 com F* = 43.

94
c) CB = +3 +1 0 CD = 0 0 b' = 1
3
5

B-1 = 0 -1 1 B-1.D = 1 1 X'B = 2


0 1 0 -1 0 3
-1 -1 1 1 1 1

r= +2 +3 F' = 9

Concluso: Mantm-se ptima a base ( X , Y , F1 ),embora se alterem os valores das


variveis bsicas e da funo objectivo: X* = 2 ; Y* = 3 com F* = 9.

d) X Y F1 F2 F3

B' = 1 0 -1 D= 0 0 b= 1
0 1 0 -1 0 2
3/2 1 0 0 1 5

CB = +3 +1 0 CD = 0 0

B'-1 = 0 - 2/3 2/3 B'-1.D = 2/3 2/3 X'B = 2


0 1 0 -1 0 2
-1 - 2/3 2/3 2/3 2/3 1

r'= +1 +2 F' = 8

Concluso: Mantm-se ptima a base ( X , Y , F1 ),embora se alterem os valores das


variveis bsicas e da funo objectivo: X* = 2; Y* = 2 com F* = 8.

e) r Z = - c Z + CB .B-1.dZ

= -7+ +3 +1 0 . 0 -1 1 . 1
0 1 0 0
-1 -1 1 2

= -7+ +3 +1 0 2
0
1

= - 7 + 6 = - 1 a soluo deixa de ser ptima; Z deve entrar para a base

vZ = B-1.aZ = 0 -1 1 . 1 = 2
Ruy Costa, 2011

0 1 0 0 0
-1 -1 1 2 1

vZ = 2 XB = 3 1 = 3 / 2 a 1 var. bsica
0 2 2 = ( X ) si da base
1 2 3 = 2/1
= 3/2

Nova base: ( Z , Y , F1)

95
Z Y F1 X F2 F3
B= 1 0 -1 D= 1 0 0 b= 1
0 1 0 0 -1 0 2
2 1 0 1 0 1 5

CB = +7 +1 0 CD = +3 0 0

B-1 = 0 - 1/2 1/2 B-1.D = 1/2 1/2 1/2 XB = 3/2


0 1 0 0 -1 0 2
-1 - 1/2 1/2 - 1/2 1/2 1/2 1/2

r= + 1/2 + 5/2 + 7/2 F= 25/2

Assim, a nova soluo ptima X* = 0; Y* = 2; Z* = 3/2 com F* = 25/2.

f) Introduo da nova restrio: 2 . X + Y 7

( X* , Y* ) = ( 3 , 2 ) 2 . 3 + 2 = 8 > 7 !

Concluso: a soluo ptima vai ser alterada !

Para se determinar a nova soluo ptima poder-se-ia recorrer ao Algoritmo


Simplex Dual (a partir do ltimo Quadro do Simplex), ou, alternativamente,
poderemos arbitrar uma nova soluo bsica admissvel inicial e recorrer ao
Algoritmo Simplex Primal. Dado que este problema tem apenas duas "variveis
originais", poderemos resolv-lo graficamente.

A nova soluo ptima X* = 5/2; Y* = 2 com F* = 19/2.

Ruy Costa, 2011


) problema
Verifique o resultado anterior !
"alterado".
Aproveite para fazer uma resoluo grfica do
Identifique a base ptima a partir da resoluo grfica.
Recorrendo formulao matricial do Simplex obtenha o Quadro correspondente base
ptima. A partir da resoluo grfica, escolha uma soluo bsica admissvel no
ptima para adoptar como soluo inicial e resolva o problema com o Algoritmo Simplex
Revisto. [ E mais nada ? ... ]

Quadro do Simplex correspondente nova soluo ptima:

X Y F1 F2 F3 F4 TI
X 1 0 0 1/2 0 1/2 5/2
Y 0 1 0 -1 0 0 2
F1 0 0 1 1/2 0 1/2 3/2
F3 0 0 0 1/2 1 - 1/2 1/2
F 0 0 0 + 1/2 0 + 3/2 19/2

96
UTILIZAO DE VARIVEIS BINRIAS NA FORMULAO DE
PROBLEMAS DE PROGRAMAO LINEAR MISTA

Muitas vezes, bastam pequenas alteraes a um enunciado de um problema de


Programao Linear para que esse ele deixe de ser um problema de Programao Linear e
a sua formulao no seja possvel fazer-se apenas com o recurso s tradicionais variveis
no negativas... Nestes casos, frequente poder-se "dar a volta" ao problema utilizando
variveis binrias (que tomam os valores 0 ou 1)...

Veremos, em seguida, algumas das situaes clssicas em que o recurso s


variveis binrias nos permitir levar a cabo a formulao, conduzindo, geralmente, a um
modelo de programao Linear Mista (isto , um modelo de P.L. onde, alm das variveis
no negativas, existem tambm variveis inteiras).

1 - O Lote mnimo
As variveis utilizadas nos modelos de Programao Linear so no negativas:

0 X

Ruy Costa, 2011


Muitas vezes, torna-se necessrio, exigir que uma varivel X ou seja nula, ou seja
no inferior a um determinado valor (por exemplo, 10) - a situao que normalmente se
conhece como "o lote mnimo": ou no se produz um determinado artigo, ou ento produz-
-se, pelo menos, o "lote mnimo". Esquematicamente ter-se-ia:

0 10 X

Seja Z uma varivel binria que toma ou o valor 0, ou o valor 1 - Z { 0 ; 1 } , o


que se pode exprimir como uma conjuno de trs condies: Z 1 ; Z 0 ; Z inteiro .

Seja M um valor numrico positivo muito elevado (relativamente aos valores


dos outros coeficientes intervenientes no problema) - [sempre que necessrio, ao longo
das vrias situaes a apresentar, utilizaremos esta notao sem qualquer outra indicao
adicional] .

A condio X = 0 ou X 10 pode representar-se pela conjuno das seguintes


condies:

Se Z = 0
X 10 . Z X 0
X 0 , ou seja, X = 0.
X M.Z
Z{0;1} Se Z = 1
X 0 X 10
X M , ou seja, X 10 .

97
De notar que X M, em termos prticos nada restringe, j que M um valor
positivo to grande quanto se queira... Da que a conjuno de X M com X 10 se
traduza, em termos prticos, em X 10.

Assim, conseguiu-se atravs de restries lineares, representar a situao de


"Lote mnimo".

2 - Custo fixo de arranque de produo


O objectivo dos problemas de Programao Linear pode exprimir-se do modo
seguinte: MIN F = c1 . X1 + c2 . X2 + ... + cn . Xn , ou seja, a parcela Pi correspondente
varivel Xi igual a ci . Xi , podendo representar-se graficamente do modo seguinte:

Pi

ci
1

Xi

Em muitas situaes reais no adequado admitir que Pi tem o comportamento


linear indicado anteriormente.

Imaginemos, por exemplo, que F representa o custo total (em u.m.) de produo

Ruy Costa, 2011


semanal de uma fbrica que produz dois tipos de peas (A e B). Se XA e XB representar,
respectivamente, o nmero de peas A e B a produzir semanalmente, pode no ser realista
representar PA = 5 . XA (o que corresponderia a afirmar que, por cada pea A produzida, se
incorre num custo de 5 u.m.); muitas vezes, para se iniciar o processo de produo incorre-
se num custo fixo de arranque do processo produtivo (set-up cost), por exemplo 1 u.m. e,
para alm desse custo fixo, tem que se admitir o custo varivel que depende do nmero de
peas A produzidas - por exemplo, admitir um custo unitrio de 4 u.m. . Ou seja, em vez de
PA = 5 . XA que se tinha anteriormente, passar-se-ia a ter PA = 0 (se XA = 0) , ou
alternativamente, PA = 1 + 4 . XA (se XA > 0).

Generalizando, se ki e ci representarem, respectivamente, o custo fixo e o custo


unitrio relativo parcela Pi ter-se-ia:

Pi = 0 (se Xi = 0) , ou alternativamente, Pi = ki + ci . Xi (se Xi > 0) ,

o que se pode representar graficamente do modo seguinte:

P
i

c
k 1 i
i

Xi

98
A condio Pi = 0 (se Xi = 0) , ou alternativamente, Pi = ki + ci . Xi
(se Xi > 0) pode representar-se pela conjuno das seguintes condies:

Z = 0 Xi 0 Xi 0 Xi = 0
Min F = ... + ki . Zi + ci . Xi + ...
Min F = ... + Ki . 0 + ci . 0 + ... ,
ou seja, Pi = 0 .
Xi M . Z
Z = 1 Xi M Xi 0 Xi 0
Z{0;1}
Min F = ... + Ki . 1 + ci . Xi + ... ,
ou seja, Pi = ki + ci . Xi .
Xi 0

Relembra-se que X M, em termos prticos nada restringe, j que M um valor


positivo to grande quanto se queira... Da que a conjuno de X M com X 0 se
traduza, em termos prticos, em X 0.

Assim, conseguiu-se atravs de restries lineares, representar a situao de


"Custo fixo de arranque de produo".

3 - Varivel que toma valores de um dado conjunto discreto


Em determinados problemas reais, uma varivel s pode tomar valores pertencentes
a um determinado conjunto discreto (por exemplo, para o dimensionamento de uma rede de

Ruy Costa, 2011


abastecimento de gua, a varivel dimetro das canalizaes comerciais s pode tomar
valores correspondentes aos dimetros comercializados; como exemplo mais quotidiano
pode apresentar-se a varivel "n de ovos a comprar" - obviamente em mltiplos de 6 ... ).

Suponha-se que X { x1 , x2, ... , xk } .

Esta situao pode modelar-se com a conjuno das seguintes condies:

X = Z1 . x1 + Z2 . x2 + ... + Zk . xk
Z1 + Z2 + ... + Zk = 1
Z1, Z2, ... , Zk { 0 ; 1 }

Note-se que a conjuno das duas ltimas condies obriga a que uma, e s uma,
das variveis Z1, Z2, ... , Zk tome o valor 1, tomando as restantes variveis o valor 0.
Assim, se, por exemplo, Z2 = 1 ter-se- X = 0 . x1 + 1 . x2 + 0 . x3 + ... + 0 . xk,
ou seja, X = x2 . Genericamente, se Zi = 1 , ento X = xi (i = 1, 2, ... , k) .

Conseguiu-se, assim, representar facilmente a situao de "Varivel que toma


valores de um dado conjunto discreto".

99
4 - Funo objectivo com troos lineares de diferentes
inclinaes
J se apresentou a situao em que na funo objectivo de um problema de
Programao Linear a parcela Pi correspondente varivel Xi deixa de ser igual a ci . Xi ,
passando a ser ki + ci . Xi . Como se poder tratar uma situao em que a parcela Pi seja
representada por troos lineares de diferentes inclinaes ? Veja-se, a ttulo de ilustrao a
figura seguinte:

Pi

a b c X
i
Imagine-se, sem perda de generalidade, que, relativamente figura anterior se tinha:
a = 5 ( declive da f.o. = 1,0 ) ; b = 12 ( declive da f.o. = 0,5 ) e c = 20 ( declive da f.o. =
0,7 ) .

Ruy Costa, 2011


Poderemos imaginar que a varivel Xi se exprime como a soma de trs variveis
no negativas Y1 ( correspondente ao intervalo Xi [ 0 ; a ] ) , Y2 ( correspondente ao
intervalo Xi [ a ; b ] ) e Y3 ( correspondente ao intervalo Xi [ b ; c ] ) , ou seja,

Xi = Y1 + Y2 + Y3 , verificando-se adicionalmente

0 Y1 5 ( 5 a amplitude do intervalo [ 0 ; a = 5 ] )
0 Y2 7 ( 7 a amplitude do intervalo [ a = 5 ; b = 12 ] )
0 Y3 8 ( 8 a amplitude do intervalo [ b = 12 ; c = 20] ) .

Nestas condies poder-se-ia escrever:

Pi = 1,0 . Y1 + 0,5 . Y2 + 0,7 . Y3 .

No entanto, para que este artifcio seja vlido, preciso garantir que:

Y1 = 5 sempre que Y2 > 0 e Y2 = 7 sempre que Y3 > 0 .

Tal consegue-se com a introduo de duas variveis binrias Z1 , Z2 { 0; 1 } : Z1


toma o valor 1 sempre que Y1 atinja o seu valor mximo (5) e toma o valor 0 , caso contrrio;
analogamente, Z2 toma o valor 1 sempre que Y2 atinja o seu valor mximo (7) e toma o valor
0 , caso contrrio.

Assim, o exemplo indicado de funo objectivo com troos lineares de diferentes


inclinaes, pode modelar-se com a conjuno das seguintes condies:

100
Xi = Y1 + Y2 + Y3 [1]

Pi = 1,0 . Y1 + 0,5 . Y2 + 0,7 . Y3 [2]

5 . Z1 Y1 5 [3]
7 . Z2 Y2 7 . Z1 [4]
0 Y3 8 . Z2 [5]

Z1 , Z2 { 0; 1 } [6]

Note-se que:

a funo objectivo F (de que Pi uma parcela) tanto pode ser maximizada
como minimizada.

se Z1 = 0, ento Z2 = 0 ( condio [ 4 ] ). Tal ocorre quando X


[ 0 ; a = 5 ] e, consequentemente, 0 Y1 5 ( condio [ 3 ] ) ; Y2 = 0 (
condio [ 4 ] ) e Y3 = 0 ( condio [ 5 ] ).

se Z1 = 1, ento Z2 pode tomar o valor 0 ou o valor 1 ( condies [ 4 ],[ 5] ).

se Z1 = 1 e Z2 = 0 , ento X [ a = 5 ; b = 12 ] , isto , Y1 = 5
( condio [ 3 ] ) , 0 Y2 7 ( condio [ 4 ] ) e Y3 = 0 ( condio [ 5 ] ).

se Z1 = 1 e Z2 = 1 , ento X [ b = 12 ; c = 20 ] , isto , Y1 = 5
( condio [ 3 ] ) , Y2 = 7 ( condio [ 4 ] ) e 0 Y3 8 ( condio [ 5 ] ).

Ruy Costa, 2011

Um caso particular de funo objectivo com troos lineares de diferentes


inclinaes diz respeito s chamadas deseconomias de escala - funo que se
pretende minimizar com troos com declives crescentes (ou, alternativamente,
maximizar uma funo com troos com declives decrescentes).

MIN Pi
d3

d2
d1

a b c Xi
Na figura anterior d1 , d2 e d3 designam, respectivamente, os declives dos troos [
0 ; a ] , [ a ; b ] e [ b ; c ], verificando-se d1 d2 d3 .

101
A situao de deseconomias de escala - funo que se pretende minimizar com
troos com declives crescentes, pode modelar-se com a conjuno das seguintes
condies:

Xi = Y1 + Y2 + Y3 [1]

Pi = d1 . Y1 + d2 . Y2 + d3 . Y3 [2]*
( MIN F e d1 d2 d3 )

0 Y1 a [3]
0 Y2 b - a [4]
0 Y3 c - b [5]

De notar que, relativamente ao caso geral apresentado anteriormente, existem as


seguintes peculiaridades:

a funo objectivo F (de que Pi uma parcela) apenas pode ser minimizada
(estamos a tratar da situao de declives crescentes: d1 d2 d3 ).

no necessrio introduzir variveis binrias para garantir que Y1 = a


sempre que Y2 > 0 e Y2 = b - a sempre que Y3 > 0 , j que como se pretende
minimizar F e como os declives dos troos so crescentes d1 d2 d3 , fica garantido o
cumprimento das condies referidas ( sempre melhor, em termos do objectivo,
incrementar a varivel Y1 do que Y2 ou Y3 , pelo que s depois de Y1 tomar o seu valor
mximo ( a ) se incrementa Y2 ; analogamente, s depois de Y2 tomar o seu valor mximo (
b - a ) se incrementa Y3 ) .

Ruy Costa, 2011


se se pretender resolver um problema de maximizao de uma funo com troos
lineares de declives crescentes, deve optar-se pela formulao correspondente ao caso
geral apresentado anteriormente (com as variveis binrias).

5 - Activao de uma de entre duas restries


Imaginemos que se pretende garantir que seja cumprida, pelo menos uma, de
entre duas restries de um problema de Programao Linear. A ttulo de exemplo
consideremos:

ou 3 . X1 + 2 . X2 18 ,

ou X1 + 4 . X2 16 .

Se somarmos ao segundo membro de uma restrio do tipo " " um valor positivo
muito elevado M , estamos, em termos prticos a "anular" a restrio. Com efeito, por
exemplo, 3 . X1 + 2 . X2 18 + M nada restringe, em termos prticos, j que por
muito elevados que sejam os valores atribudos s variveis X1 e X2 a restrio continua
a ser verificada.

102
Assim, pode dizer-se que h uma equivalncia entre

ou 3 . X1 + 2 . X2 18 ,

ou X1 + 4 . X2 16 .

ou 3 . X1 + 2 . X2 18 X1 + 4 . X2 16 + M,

ou X1 + 4 . X2 16 3 . X1 + 2 . X2 18 + M.
.

Assim, a situao de escolha de uma de entre duas restries (relativa ao


exemplo apresentado), pode modelar-se com a conjuno das seguintes condies:

3 . X1 + 2 . X2 18 + M . Z [1]

X1 + 4 . X2 16 + M . ( 1 - Z ) [2]

Z {0;1} [3]

De notar que:
Ruy Costa, 2011

se Z = 0 , ento exige-se o cumprimento da primeira restio; caso contrrio,


exige-se o cumprimento da segunda restrio [ No entanto, nada impede que ambas sejam
pontualmente verificadas ] .

se uma restrio for do tipo " " , a parcela M . Z ( ou, M . ( 1 - Z ) ) dever ser
subtrada ao segundo membro da desigualdade.

103
6 - Activao de k restries de entre um grupo de restries
A generalizao do caso anterior pretende garantir que, de entre um grupo com
mais de k restries, sejam cumpridas, pelo menos k restries de um problema de
Programao Linear.

Imaginemos que, de entre as N restries seguintes pretendemos activar, pelo


menos k ( k < n ) .

f1 ( X1 , X2 , ... , Xn ) d1 ,

f2 ( X1 , X2 , ... , Xn ) d2 ,

f3 ( X1 , X2 , ... , Xn ) d3 ,

.
.
.

fN ( X1 , X2 , ... , Xn ) dN ,

Tal, poder-se-ia conseguir do modo seguinte:

f1 ( X1 , X2 , ... , Xn ) d1 + M . Z1

f2 ( X1 , X2 , ... , Xn ) d2 + M . Z2

f3 ( X1 , X2 , ... , Xn ) d3 + M . Z3

.
.
.

fN ( X1 , X2 , ... , Xn ) dN + M . ZN

Z1 + Z2 + ... + ZN = N - k

Z1 , Z2 , ... , ZN { 0 ; 1 }
Ruy Costa, 2011

De notar que se a varivel Zi tomar o valor 0, a restrio fi ( X1, X2 , ... , Xn ) di


activada. Por outro lado, a condio Z1 + Z2 + ... + ZN = N - k , em simultneo com
Z1 , Z2 , ... , ZN { 0 ; 1 } garante-nos que exactamente k variveis Zi tomem o valor 0,
isto , que exactamente k restries sejam activadas, como se pretendia.

104
7 - Representao de domnios planos no convexos por
disjuno de restries lineares

Exemplificaremos esta situao com a apresentao dos trs exemplos seguintes:

Exemplo A - Considere-se o domnio plano representado na figura seguinte:

Y
5

3 6 10 X
Este domnio plano pode representar-se por

{ X + 2 . Y 10 X 0 Y 0 ( X 3 X 6 ) } ,

ou, alternativamente, pela conjuno das condies seguintes:

X + 2 . Y 10 [1]

X 0 [2]

Y 0 [3]

X3 + M.Z [4]

X6 - M.(1-Z) [5]

Z {0;1} [6]
Ruy Costa, 2011

De notar que as condies [ 1 ], [ 2 ] e [ 3 ] so sempre verificadas. Se Z = 0 , a


restrio " X 3 " activada e a restrio " X 6 " desactivada, acontecendo o inverso se
Z=1.

105
Exemplo B - Considere-se o domnio plano representado na figura seguinte:

Y 8
5

4 10 X
Este domnio plano pode representar-se por

{ X 10 Y 8 X 0 Y 0 ( X 4 Y 5 ) } ,

ou, alternativamente, pela conjuno das condies seguintes:

X 10 [1]

Y 8 [2]

X 0 [3]

Y 0 [4]

X4 + M.Z [5]

Y 5 + M . (1 - Z ) [6]

Z {0;1} [7]
Ruy Costa, 2011

De notar que as condies [ 1 ], [ 2 ], [ 3 ] e [ 4 ] so sempre verificadas. Se Z = 0 ,


a restrio " X 4 " activada e a restrio " Y 5 " desactivada, acontecendo o inverso
se Z = 1 .

106
Exemplo C - Considere-se o domnio plano representado na figura seguinte:

Y
3

1 3
X
Este domnio plano pode representar-se por

{ X + Y 3 X 0 Y 0 ( X 1 Y 1 ) } ,

ou, alternativamente, pela conjuno das condies seguintes:

X + Y 3 [1]

X 0 [2]

Y 0 [3]

X 1 - M.Z [4]

Y 1 - M . (1 - Z ) [5]

Z {0;1} [6] .
Ruy Costa, 2011

De notar que as condies [ 1 ], [ 2 ] e [ 3 ] so sempre verificadas. Se Z = 0 , a


restrio " X 1 " activada e a restrio " Y 1 " desactivada, acontecendo o inverso se
Z=1.

107
8 - Implicao de restries
A utilizao de variveis binrias permite ainda modelar a relao de implicao
entre restries. Para tal, basta recordarmo-nos da equivalncia entre a b e ~a b .

Considere-se um primeiro exemplo:

Se ( X + Y > 10 ), ento ( Z 3 W 5 )

Esta implicao equivalente a ( X + Y 10 ) ou ( Z 3 W 5 ), o que pode


representar-se com a conjuno das condies seguintes:

X + Y 10 + M . Z [1]

Z 3-M.(1-Z) [2]

W 5+M.(1-Z) [3]

Z {0;1} [4].

De notar que se Z = 0 , a restrio " X + Y 10 " activada e as restries "


Z 3 " e " W 5 " so desactivadas, acontecendo o inverso se Z = 1 .

Consideremos agora um segundo exemplo: Representar, como conjuno de


condies, X > 5 .

Como se sabe,

X > 5 , se X 0
X > 5
Ruy Costa, 2011

- X > 5 , se X < 0 .

Relativamente implicao X 0 X > 5 , pode-se escrever


equivalentemente X < 0 X > 5, o que pode representar-se com a conjuno das
condies seguintes:

X < 0+M.Z [1]

X > 5 -M.(1-Z) [2]

Z {0;1} [3].

108
De notar que, se Z = 0 , ento X < 0 ; se Z = 1 , ento X > 5. Isto , X < 0 ou
X > 5 , como se pretendia.

Relativamente implicao X < 0 - X > 5 , pode-se escrever


equivalentemente X 0 - X > 5, o que pode representar-se com a conjuno das
condies seguintes:

X 0- M.(1-Z) [1]

-X > 5 -M. Z [2]

Z {0;1} [3].

De notar que, se Z = 0 , ento - X > 5 ; se Z = 1 , ento X 0. Isto , X 0 ou


- X > 5, como se pretendia. De realar ainda o facto de se ter tido o cuidado de escrever
os dois conjuntos de conjunes de condies relativos s duas implicaes, de modo a que
os "resultados" sejam compatveis, permitindo a sua sobreposio. Com efeito, se Z = 0 ,
X toma sempre um valor negativo; e se Z = 1 , X toma sempre um valor no negativo [Tal
no aconteceria se a conjuno de condies relativa segunda implicao fosse X
0- M. Z e -X > 5 -M. (1-Z) e Z { 0 ; 1 } , que representaria
correctamente essa implicao...] .

Assim, poderemos sintetizar os resultados:

X < 0+M.Z [1]

X > 5 -M.(1-Z) [2]

X > 5 X 0- M.(1-Z) [3]

-X > 5 -M. Z [4]

Z {0;1} [5] .
Ruy Costa, 2011

De notar que, se Z = 0 , ento X < 0 [ 1 ] e - X > 5 [ 4 ] , ou seja X < - 5 ;


se Z = 1 , ento X > 5 [ 2 ] e X 0 [ 3 ] , ou seja X > 5 . Isto , X < - 5 ou X > 5 , o
que efectivamente o que acontece com X > 5 .

9 - Problemas de escolha mltipla


Admita-se que as variveis X1, X2, ... , Xn esto associadas a n actividades que
podero ser levadas a cabo. Xi corresponde "intensidade" com que a i-sima actividade
deve ser levada a cabo ( se Xi = 0 a i-sima actividade no deve ser levada a cabo; se Xi
> 0 a i-sima actividade deve ser executada ).

109
Admita-se ainda que as n actividades esto divididas em k grupos. Seja Nj o
nmero de actividades pertencentes ao grupo j , pelo que N1 + N2 + ... + Nk = n .

Admita-se que se pretende garantir que apenas uma actividade de cada


grupo venha a ser levada a cabo.
Tal, pode conseguir-se fazendo:

Xj 0 + M . Zj , j "Grupo 1" [1]

Grupo 1 Zj = 1 [2]
j "Grupo 1"

Zj { 0 ; 1 } , j "Grupo 1" [3]

. .
. .
. .

Xj 0 + M . Zj , j "Grupo k" [1]

Grupo k Zj = 1 [2]
j "Grupo k"

Zj { 0 ; 1 } , j "Grupo k" [3]

Xi 0 , i = 1, 2, ... , n [4]

Relativamente a cada grupo de actividades, as restries [ 2 ] e [ 3 ] garantem que


Ruy Costa, 2011

s uma das variveis Zj tome o valor 1, sendo nulas as restantes. Assim, garante-se que a
varivel Xj possa ser positiva; pelo contrrio, a conjuno das restries [ 1 ], [ 2 ] e [ 3 ] do
grupo de actividades e da restrio [ 4 ], obriga as restantes variveis Xi do grupo a
tomarem o valor 0. Ou seja, relativamente a cada grupo de actividades, apenas uma
actividade levada a cabo, como se pretendia.

fcil fazer pequenas variantes: exigir que, pelo menos, uma actividade por grupo
seja levada a cabo; exigir que duas actividades por grupo sejam levadas a cabo ...

Para terminarmos a abordagem da utilizao das variveis binrias na formulao


de problemas de Programao Linear Mista, consideraremos o seguinte problema-global :

110
O responsvel pelos servios de informtica de uma grande empresa pretende
planear a aquisio de novo equipamento (microcomputadores, impressoras e
monitores).

Esto disponveis no mercado trs marcas de microcomputadores considerados


adequados ( A, B e C ), duas marcas de impressoras ( D e E ) e quatro marcas de
monitores ( F, G*, H e I* - * designa monitores de alta resoluo ).

Sabe-se que os microcomputadores da marca A so imcompatveis com os


monitores da marca H e que os microcomputadores da marca C so
imcompatveis com as impressoras da marca E.

O responsvel pelos servios de informtica decidiu que:

1) devem ser comprados, pelo menos, 30 microcomputadores e 5 impressoras;


2) devem ser comprados, pelo menos, tantos monitores quantos os
microcomputadores comprados; o nmero de monitores comprado no poder,
no entanto, exceder em mais de 15 % o nmero de microcomputadores
comprado;
3) pelo menos, 30 % dos monitores comprados devero ser de alta resoluo;
4) s se dever comprar microcomputadores de uma nica marca.
5) s se dever comprar impressoras de uma nica marca.
6) podero ser comprados monitores de, no mximo, duas marcas diferentes.

Sabe-se que se dispe de 550 u.m. para proceder s aquisies de equipamento


informtico e pretende-se maximizar a Utilidade Global do equipamento adquirido.

Conhece-se o quadro seguinte:

Marca Utilidade Custo total (*)


unitria (u.m.)

Ruy Costa, 2011


A 10 15 . XA
B 8 3 + 12. XB
C 9 13 . XC , XC 10 ; 130 + 10 . ( XC - 10 ) , XC > 10
D 4 1 + 5 . XD
E 3 2 + 4 . XE
F 1 XF, XF 6; 1,2 + 0,8 . XF, 6 < XF 12; 3,6 + 0,6 . XF, XF > 12
G 5 1,2 . XG - s vendido em lotes de 12 unidades
H 2 0,8 . XH
I 6 0,4 + 1,0 . XI

Nota (*) : Xi designa o nmero unidades de equipamento de marca i a adquirir

Formule o problema com um modelo de Programao Linear Mista adequado.

Considerando que Xi representa o nmero unidades de equipamento de marca i


a adquirir, i = A, B, ... ,I , pode formular-se o problema do modo seguinte:

MAX U = 10 XA + 8 XB + 9 XC + 4 XD + 3 XE + 1 XF + 5 XG + 2 XH + 6 XI
sujeito a:

111
XA M . Z1
XB M . Z2
XC M . Z3
Z1 + Z2 + Z3 = 1 apenas se compra microcomputadores de uma nica marca

XD M . Z4
XB M . Z5
Z4 + Z5 = 1 apenas se compra impressoras de uma nica marca
Z5 = 1 - Z3 incompatibilidade C / E

XF M . Z6
XG M . Z7
XH M . Z8
XI M . Z9
1 Z6 + Z7 + Z8 + Z9 2 compra-se monitores de, no mx., duas marcas
Z8 = 1 - Z1 incompatibilidade A / H

XA + XB + XC 30 n mnimo de microcomputadores a adquirir


XD + XE 50 n mnimo de impressoras a adquirir

1,15 . ( XA + XB + XC ) ( XF + XG + XH + XI ) ( XA + XB + XC ) relao
ncomp./nmonit.
( XG + XI ) 0,30 . ( XF + XG + XH + XI ) N mnimo de monitores de alta resol.

Ruy Costa, 2011


XG = 12 . Z10 + 24 . Z11 + 36 . Z12 + 48 . Z13
Z10 + Z11 + Z12 + Z13 1 monitores G vendidos em lotes de 12 unidades

15 . XA + ( 3 . Z2 + 12. XB ) + ( 13 . Y1 + 10 . Y2 ) + ( 1 . Z4 + 5 . XD ) +
+ ( 2 . Z5 + 4 . XE ) + ( 1 . Y3 + 0,8 . Y4 + 0,6 . Y5 ) + 1,2 . XG + 0,8 . XH +
+ ( 0,4 . Z9 + 1,0 . XI ) 550 recurso financeiro

XC = Y1 + Y2
10 . Z14 Y1 10
0 Y2 50 . Z14 custo unitrio dos computadores C varivel com XC

XF = Y3 + Y4 + Y5
6 . Z15 Y3 6
6 . Z16 Y4 6 . Z15
0 Y5 50 . Z16 custo unitrio dos monitores F varivel com XF

Xi 0 e inteiras , i = A,B, ... , I .


Zk { 0 ; 1 } , k = 1, ... , 16 - variveis auxiliares
Ym 0 , m = 1, 2, ... , 5 - variveis auxiliares

112
R E S O L U O D E P R O B L E M A S D E

P R O G R A M A O L I N E A R I N T E I R A :

O A L G O R I T M O B R A N C H A N D B O U N D

( P E S Q U I S A E M R V O R E )

Considere-se o problema 1 seguinte:

MAX F = 2 . XA + 3 . XB

sujeito a:

2 . XA + 4 . XB 8
2 . XA + 2 . XB 6

XA , XB 0 e inteiras.

Ruy Costa, 2011


Trata-se de um problema de Programao Linear Inteira Pura (PLIP), isto , um
problema de Programao Linear a que adicionalmente se exige a integralidade de todas as
variveis.

Tratando-se de um problema com duas variveis, podemos resolv-lo graficamente.


Para tal, comecemos por representar o conjunto de solues admissveis correspondente:

Como se pode observar na figura anterior, o conjunto de solues admissveis


corresponde ao conjunto formado pelos oito pontos assinalados, que verificam
simultaneamente as duas restries, as condies de no negatividade e de integralidade
das variveis.

113
Dado que se pretende maximizar a funo objectivo F = 1 . XA + 3 . XB ,
devemos deslocar, tanto quanto possvel, no sentido crescente de XA e de XB , uma recta
de declive ( - 1 / 3 ).

Assim, fcil determinar o ltimo dos oito pontos/solues admissveis a ser


tocado pela recta de declive ( - 1 / 3 ) no seu movimento ascendente, isto , tem-se
( XA* , XB* ) = ( 2 , 1 ) a que corresponde F* = 7.

Se, no problema 1 anterior, relaxarmos a condio de integralidade das variveis (ou


seja, prescindirmos da exigncia de integralidade das variveis), estaremos perante um
problema de Programao Linear (PL), que diremos ser a relaxao linear do problema de
PLI original. Com efeito, o conjunto de solues do problema de PLI est contido no espao
de solues admissveis do problema relaxado de PL, pelo que fcil de concluir que a
soluo ptima do problema de PLI nunca poder corresponder a um valor da funo
objectivo melhor do que o correspondente soluo ptima do respectivo problema
relaxado de PL.

Ruy Costa, 2011


No problema 1, a soluo ptima do problema relaxado respeita a condio de
integralidade, pelo que, obviamente, coincide com a soluo ptima do problema de PLI.
Ou seja, neste caso, ter-se- F*PLI = F*PL . Em geral, para um problema de maximizao,
tem-se F*PLI F*PL .

Assim, podemos, desde j, indicar um caminho a seguir na resoluo de problemas


de PLI:

Comea-se por resolver a relaxao linear do problema de PLI, isto ,


) o problema de PL associado.

Se a soluo ptima desse problema respeitar a condio de


integralidade das variveis, essa ser tambm a soluo ptima do
problema de PLI original.

Consideremos, agora, o problema 2 seguinte:

MAX F = 5 . XA + 6 . XB

sujeito a:

2 . XA + 3 . XB 16
3 . XA + 2 . XB 17

XA , XB 0 e inteiras.

Comecemos por representar o conjunto de solues admissveis correspondente:

114
Comecemos por resolver graficamente a relaxao linear do problema. A soluo
ptima do correspondente problema de PL ( XA* , XB* ) = ( 3,8 ; 2,8 ) a que corresponde
F*PL = 35,8. Como bvio, esta no pode ser a soluo ptima do problema de PLI !
Como os coeficientes das variveis na funo objectivo so inteiros, o valor ptimo da
funo objectivo (do problema de PLI) ser inteiro e, consequentemente, no exceder 35 ...

Observe-se que se pretendessemos obter a soluo ptima do problema de PLI

Ruy Costa, 2011


arredondando cegamente a soluo anterior, obteramos ( 4 , 3 ), que no sequer uma
soluo admissvel do problema !

Se tivessemos o cuidado de arredondar a soluo ptima do problema de PL para a


soluo admissvel mais prxima do problema de PLI teramos ( 3 , 3 ), a que
corresponderia F = 33. Ser que essa a soluo ptima do problema de PLI ?

A resposta negativa ! Com efeito, se deslocarmos uma recta de declive ( - 5 / 6 ),


que representa a funo objectivo, no sentido crescente de XA e de XB , o ltimo
ponto/soluo admissvel de PLI a ser tocado ( 2 , 4 ) , ou seja, ( XA* , XB* ) = ( 2 , 4 ) ,
a que corresponde F*PLI = 34 .

Assim, parece importante reter que,

)
Quando se pretende resolver um dado problema de PLI,
comeando por resolver a sua relaxao linear, nunca se deve
assumir que a soluo ptima do problema de PLI se pode obter
pelo arredondamento da soluo ptima dessa relaxao linear !

115
Uma questo pode por-se, neste momento: A resoluo da relaxao linear
de um problema de PLI no pode servir de base para a resoluo desse problema de
PLI ?

A questo anterior tem resposta afirmativa. O Mtodo de Pesquisa em rvore


( Branch and Bound ), vai permitir obter a soluo de um problema de PLI, partindo da
resoluo da sua relaxao linear (PL), como se ver em seguida.

Dois conceitos esto na base deste mtodo: branching, ou seja, ramificao e


bounding, isto , limitao.

Consideremos um problema de PLI de maximizao. Para o


resolver pelo Algoritmo Branch and Bound, comea-se por
resolver a sua relaxao linear (um problema que, por simplicidade,
designaremos por ).

- Se a soluo ptima respeitar a condio de integralidade


das variveis, ento essa ser tambm a soluo ptima do
problema de PLI.

- Caso contrrio, o valor da funo objectivo do problema


poder ser considerado um limite superior do valor ptimo
da funo objectivo do problema de PLI .
- Considere-se uma das variveis que na soluo ptima do
problema de PL no verifica a condio de integralidade.
Assuma-se,sem perda de generalidade, que X essa varivel.
Constitua-se as duas restries seguintes:

X X* + 1 e

X X* ,

onde X* designa o maior valor inteiro que no excede X*.


Ruy Costa, 2011

- Ramifique-se o problema , em dois novos problemas


de Programao Linear, e , obtidos a partir de ,
cada um deles por adio de cada uma das duas restries
anteriormente definidas.

Desta forma est-se a particionar o conjunto de solues


admissveis de PLI em dois subconjuntos, contidos
respectivamente no espao de solues admissveis de
e .

--- Interrompamos a apresentao do Algoritmo Branch and


Bound para o exemplificarmos com a resoluo do problema 2
anteriormente apresentado ---

116
MAX F = 5 . XA + 6 . XB MAX F = 5 . XA + 6 . XB

sujeito a: sujeito a:

2 . XA + 3 . XB
3 . XA + 2 . XB
16
17 2 . XA + 3 . XB
3 . XA + 2 . XB
16
17

XA , XB 0 e inteiras. XA , XB 0 .

Comecemos por escrever o enunciado ... Passemos Relaxao Linear e


determinemos a correspondente soluo
ptima:

XA* = 3,8 ; XB* = 2,8 ; F* = 35,8

Actualizemos o limite superior da funo objectivo F : Lsup F = 35,8 35 pois os


coefs. das vars. na f.o. so inteiros.

Ramifiquemos a partir da varivel XA : XA* = 3,8 XA 4 ; XA 3

Ruy Costa, 2011


MAX F = 5 . XA + 6 . XB MAX F = 5 . XA + 6 . XB

sujeito a: sujeito a:

2 . XA + 3 . XB 16 2 . XA + 3 . XB 16
3 . XA + 2 . XB 17 3 . XA + 2 . XB 17
XA 4 XA 3

XA , XB 0 .
XA , XB 0 .


Resolvendo, obtemos: Resolvendo, obtemos:

XA* = 4 ; XB* = 2,5 ; F* = 35,0 XA* = 3 ; XB* = 3,(3) ; F* = 35,0

O que nos permitiria actualizar o limite O que nos permitiria actualizar o limite
superior da funo objectivo F: superior da funo objectivo F:

Lsup F = 35,0 Lsup F = 35,0

117
+ XB 3 + XB 2 + XB 4 + XB 3


Tentamos resolver, Resolvendo obtemos: Resolvendo obtemos: Resolvendo obtemos:
mas ...

O Problema XA*= 4,(3) ; XB*= 2; XA*= 2 ; XB*= 4; XA*= 3 ; XB*= 3;


Impossvel F* = 33,(6) F* = 34 F* = 33

Normalmente, nos algoritmos de pesquisa em rvore, a pesquisa feita em


profundidade, escolhendo-se ramificar o subproblema mais recentemente criado,
escolhendo-se, em caso de empate, o subproblema correspondente ao melhor valor da
funo objectivo.

Assim, na resoluo do problema 2, acima esquematizada, comemos por resolver


a relaxao linear . Constatamos no ter obtido a soluo ptima do problema de PLI e
conclumos que 35 um limite superior do valor ptimo da funo objectivo.

Ramificando a partir da varivel XA, crimos ento os subproblemas e .


Resolvemos , constatando no se ter obtido a soluo ptima do problema de PLI, uma
vez que XB* no toma um valor inteiro. Pode-se ainda manter 35 como limite superior do

Ruy Costa, 2011


valor ptimo da funo objectivo. De notar que, por coincidncia, o valor ptimo da funo
objectivo nestes dois subproblemas igual ... da que prossigamos com a ramificao do
primeiro desses problemas.

Ramificando a partir da varivel XB, crimos ento os subproblemas e


. Resolvemos , constatando que o mesmo impossvel. Resolvemos ,
constatando no se ter ainda obtido a soluo ptima do problema de PLI, uma vez que XA*
no toma um valor inteiro. De notar que qualquer ramificao de conduziria a solues
correspondentes a valores da funo objectivo no superiores a 33.

Como podemos ramificar o subproblema a que corresponde um melhor limite


superior da funo objectivo ( 35 ), deixaremos, por agora, o subproblema .

Ramificando a partir da varivel XB, crimos ento os subproblemas e


. Resolvendo o subproblema obtemos, pela primeira vez, uma soluo inteira:
( XA* = 2 ; XB* = 4 ) a que corresponde F* = 34. Poderemos estar perante a soluo
ptima do problema de PLI ! Diremos ento que esta a soluo incumbente.

De notar que, neste momento, podemos concluir ser desnecessrio prosseguir a


ramificao do subproblema . Com efeito, j havamos concludo que essa ramificao
conduziria a solues ptimas correspondentes a valores da funo objectivo no superiores
a 33. Ora a soluo incumbente, neste momento, corresponde a F* = 34, pelo que, no se
justifica ramificar subproblemas correspondentes a valores de F inferiores a 34.

118
E porque no concluir, de imediato, que a soluo ( XA* = 2 ; XB* = 4 ) a soluo
ptima do problema de PLI ? ... que o subproblema correspondia a F* = 35, pelo que
a ramificao que originou dever ser explorada, j que pode corresponder a uma
soluo ptima correspondente a F no inferior a 34 ...

Resolvendo obtm-se uma soluo inteira correspondente a F* = 33, pelo que


termina a resoluo do nosso problema ! A soluo, at a, incumbente passa a poder ser
considerada a soluo ptima do problema de PLI: ( XA* = 2 ; XB* = 4 ) a que
corresponde F* = 34.

[ De notar que, como j se referiu, para a resoluo do problema de PLI no fazia


sentido prosseguir a ramificao de ... No entanto, se pretender verificar o que se
referiu, poder ramificar a partir da varivel XA ( XA 5 ; XA 4 ) , obtendo e
, a que correspondem, respectivamente, ( XA* = 5 ; XB* = 1 ) ; F* = 31 e
( XA* = 4 ; XB* = 4 ) ; F* = 32 - por acaso, duas solues inteiras, mas obviamente
piores do que a soluo incumbente / ptima ... ] .

Para apresentarmos a resoluo do problema 2, interrompemos a apresentao do


Algoritmo Branch and Bound. Sintetizemos agora o funcionamento deste Algoritmo.

Considere-se o problema de Programao Linear Inteira, que se


designar por , de maximizao, cuja Relaxao Linear se designar
por .

Para resolver o problema recorrendo ao Algoritmo Branch and


Bound, recorre-se Relaxao Linear, , e

- EM CADA ITERAO devem ser seguidos os trs passos seguintes:

1 - Ramificao
De entre os subproblemas ainda no pesquisados, seleccionar o
que foi criado mais recentemente. Em caso de empate, seleccionar o
Ruy Costa, 2011

correspondente ao maior valor da funo objectivo.

De entre as variveis ineiras que apresentem um valor no inteiro,


seleccionar a primeira de acordo com a ordem atribuda
originalmente. Essa ser a varivel de ramificao. Assuma- -
se, sem perda de generalidade, que Xk essa varivel. Constitua-se
as duas restries seguintes:
Xk Xk* + 1 e

Xk Xk* ,
onde Xk* designa o maior valor inteiro que no excede Xk*.

Ramifique-se o n correspondente ao subproblema em anlise, em


dois novos subproblemas, cada um deles obtidos a partir do
subproblema em anlise por adio de cada uma das restries
anteriormente definidas.

119
2 - Limitao
Para cada novo subproblema PLk, determinar o correspondente
valor ptimo da funo objectivo, F*PLk. Para tal recorrer ao
Algoritmo Simplex Primal, ou ao Algoritmo Simplex Dual, se estiver a
reoptimizar.

Actualizar o limite superior para o valor ptimo da funo


objectivo do problema .

Se a soluo ptima verificar as condies de integralidade das


variveis, actualizar a soluo incumbente, bem como o valor da
funo objectivo a ela associado.

De notar que se F*PLk representar o valor ptimo da funo


objectivo correspondente ao subproblema PLk, ento qualquer
subproblema criado a partir desse, por ramificao, ter F*PLk como
limite superior da funo objectivo. Se os coeficientes das variveis
na funo objectivo forem inteiros ento esse limite superior igual a
F*PLk ( o maior valor inteiro que no excede F*PLk ).

3 - Eliminao
A cada novo subproblema devero ser aplicados os seguintes
quatro Testes de Eliminao. Terminar-se- a pesquisa a partir dos
subproblemas que verifiquem, pelo menos, um dos testes.

Teste 1 : O valor ptimo da funo objectivo correspondente


menor (ou igual)ao valor ptimo da funo objectivo Ruy Costa, 2011
correspondente soluo incumbente.

Teste 2 : A soluo ptima inteira e o correspondente valor da


funo objectivo igual ao limite superior do valor ptimo
para a funo objectivo do problema .

Foi encontrada a soluo ptima do problema


!

Teste 3 : O problema impossvel / no tem solues admissveis.

Teste 4 : A soluo ptima verifica as condies de integralidade


das variveis.

Actualizar a soluo incumbente !

- CRITRIO DE OPTIMALIDADE :
Parar quando no houver subproblemas por pesquisar, ou quando for
verificado o Teste de Eliminao n 2. A soluo incumbente a
soluo ptima do problema .

120
Se no existir qualquer soluo incumbente, tal indicar que o
problema original no tem solues admissveis.
Antes de prosseguirmos gostaramos de deixar duas notas:

1 - Na exposio apresentada considerou-se, para simplificar, que se estava a


resolver um problema de PLI, de maximizao. O Algoritmo Branch and Bound pode ser
utilizado directamente para a resoluo de problemas de minimizao. Nessas
circunstncias dever-se- fazer as necessrias adaptaes, nomeadamente no que diz
respeito Limitao - o limite do valor ptimo da funo objectivo do problema de PLI
passa, agora, a ser um limite inferior...

2 - O Algoritmo Branch and Bound pode ser aplicado a problemas de Programao


Linear Mista (PLM). Neste caso, a ramificao s aplicada (s) varivel(eis) inteira(s).
Existe ainda uma variante deste Algoritmo para problemas de Programao Linear Binria,
normalmente referido como Enumerao Implcita.

EXERCCIOS PROPOSTOS

-1-
MAX F = 3 . X + 2 . Y + 1 . Z

sujeito a:

1.X + 1.Y + 3.Z 150


1.X + 1.Y - 1.Z 100
3.X - 1.Y + 1.Z 100

X , Y , Z 0 e inteiros.

Relaxao Linear deste problema corresponde o seguinte Quadro ptimo

Ruy Costa, 2011


do Simplex:

X Y Z F1 F2 F3
X 1 0 0 0 1/4 1/4 50
Y 0 1 0 1/4 2/4 -2/4 62,5
Z 0 0 1 2/4 -2/4 0 12,5
F 0 0 0 3/4 6/4 1/4 287,5

-2-
MAX F = 5 . X + 6 . Y

sujeito a:

2.X + 3.Y 16
3.X + 2.Y 17

X ,Y 0

a) e X inteiro.
b) e Y inteiro.

121
122
O P R O B L E M A D O S T R A N S P O R T E S

O A L G O R I T M O D O S T R A N S P O R T E S

O Problema dos Transportes


O Problema dos Transportes um problema clssico de Programao Linear:

Tem-se m 'fontes de oferta' de um dado produto, que


preciso abastecer a n 'pontos de procura'.

Conhecem-se os custos unitrios de transporte cij associados


ao transporte de uma unidade da 'fonte' i ( i = 1 , 2 , ..., m ) para o
'ponto' j ( j = 1 , 2 , ..., n ). Conhecem-se as disponibilidades ai

Ruy Costa, 2011


associadas a cada 'fonte' i e as necessidades bj associadas a cada
'ponto' j.

Pretende-se determinar o 'plano de transportes' que minimiza


o custo total de transportes.

Fontes de Pontos de
oferta Procura
Disponibilidades Necessidades
a1 1 1 b1

a2 2 2 b2

ai i cij j bj

xij = ?

am m
n bn

m n
bvio que importante saber qual a relao entre ai e bj.
i=1 j=1

Se o total das disponibilidades for igual ao total das necessidades, diremos


estar perante um 'problema equilibrado' - apresentaremos o 'Algoritmo dos
Transportes' que permite resolver Problemas dos Transportes equilibrados.

122
Se os totais das disponibilidades e das necessidades diferirem, estaremos
perante um 'problema desequilibrado' - a sua resoluo ser possvel, depois de
artificialmente equilibramos o problema.

Consideremos um Problema dos Transportes equilibrado. A sua formulao


imediata:

Seja xij a quantidade a transportar da 'fonte de oferta' i para o


'ponto de consumo' j.

O problema pode apresentar-se do modo seguinte:

m n
MIN C = cij . xij
i=1 j=1

sujeito a:

n
xij = ai ( i = 1 , 2 , ... , m ) [1]
j=1

m
xij = bj ( j = 1 , 2 , ... , n ) [2]
i=1

xij 0 [3]

De notar que a funo objectivo corresponder ao Custo Total correspondente ao


plano de transporte ' xij '.
Ruy Costa, 2011

As m restries [ 1 ] dizem respeito a cada 'fonte de oferta'. A i-sima restrio


diz respeito i-sima 'fonte de oferta' e visa assegurar que o total enviado para os n 'pontos
de procura' igual capacidade dessa 'fonte de oferta'.

As n restries [ 2 ] dizem respeito a cada 'ponto de procura'. A j-sima restrio


diz respeito ao j-sima 'ponto de procura' e visa assegurar que o total recebido das m 'fontes
de oferta' igual necessidade desse 'ponto de procura'.

As m . n condies [ 3 ] so as habituais condies de no negatividade das


variveis (que no sero consideradas 'restries').

)
Se o problema for no equilibrado, que alteraes tero que ser
introduzidas ?

Representemos 'matricialmente' as restries [ 1 ] e [ 2 ] do Problema dos


Transportes:

123
x11 x12 ... x1j ... x1n x21 x22 ... x2j ... x2n ... xi1 xi2 ... xij ... xin ... xm1 xm2 xmj ... xmn

1 1 ... 1 ... 1 a1
1 1 ... 1 ... 1 a2

1 1 ... 1 ... 1 ai

1 1 ... 1 ... 1 am

1 1 ... 1 ... 1 b1
1 1 ... 1 ... 1 b2

1 1 ... 1 ... 1 bj

1 1 ... 1 ... 1 bn

Notas: 1) Os coeficientes no representados so nulos.


2) A coluna da direita representa os termos independentes das restries.

Se observarmos com ateno a matriz dos coeficientes das restries de um


Problema dos Transportes constataremos que a estrutura deste problema muito particular:

Ruy Costa, 2011


os coeficientes ou so nulos ou unitrios - os coeficientes unitrios dispem-se
'em patamares' ou 'em escada' (os 'patamares' correspondem s 'restries da oferta' e as
'escadas' correspondem s 'restries da procura').
a cada varivel s correspondem dois coeficientes unitrios - genericamente,
varivel xij correspondero coeficientes unitrios na i-sima 'restrio da oferta' e na
j-sima 'restrio da procura' (todos os outros coeficientes, relativos a essa varivel, sero
nulos).

um problema genrico dos transportes com m fontes de oferta e n pontos de


procura, corresponder a m + n restries. No entanto, dado que se est a considerar
que o problema equilibrado, possvel estabelecer-se uma relao entre essas restries
(a soma dos termos independentes das 'restries da oferta' dever ser igual soma dos
termos independentes das 'restries da procura'), pelo que, teremos apenas m + n - 1
restries independentes.

A resoluo de um Problema dos Transportes pode fazer-se por recurso ao


Algoritmo Simplex, j que este um problema de Programao Linear. No entanto, tal seria
muito trabalhoso, j que, mesmo para um nmero baixo de fontes de oferta e pontos de
procura, se teria um elevado nmero de restries.

Atendendo particularssima estrutura do 'Problema dos Transportes' foi possvel


desenvolver um algoritmo eficiente para a resoluo deste problema: o Algoritmo dos
Transportes.

O Algoritmo dos Transportes

124
Admitamos estar perante um Problema dos Transportes equilibrado com m 'fontes
de oferta' e n 'pontos de procura'. Sistematizemos os 6 passos a seguir pelo Algoritmo dos
Transportes para a sua resoluo:

1 Construir um 'Quadro dos Transportes' com uma linha para cada 'fonte de
oferta' e uma coluna para cada 'ponto de procura', isto , com m linhas e n colunas, como
se esquematiza em seguida:

C1 C2 ... Cj ... Cn

F1 ... ... a1
c11 c12 c1j c1n

F2 ... ... a2
c21 c22 c2j c2n
... ... ... ... ... ... ... ...

Fi ... ... ai
ci1 ci2 cij cin
... ... ... ... ... ... ... ...

Fm ... ... am
cm1 cm2 cmj cmn
b1 b2 ... bj ... bn

Ruy Costa, 2011


No canto inferior direito de cada 'clula' correspondente ao transporte a efectuar
de uma fonte de oferta para um ponto de procura indica-se o correspondente custo
unitrio de transporte.
direita de cada linha (correspondente a uma fonte de oferta) indica-se a
correspondente disponibilidade.
Em baixo de cada coluna (correspondente a um ponto de procura) indica-se a
correspondente necessidade.

2 Arbitrar uma soluo inicial. Para tal, poderemos recorrer ao Mtodo do


Canto NW, ou ao Mtodo do Custo Mnimo.

3 Verificar se a soluo degenerada.

4 Verificar a optimalidade da soluo em anlise.

5 Se a soluo em anlise no for ptima, determinar qual a varivel no bsica


que deve entrar para a base e determinar o valor mximo que essa varivel pode tomar.

6 Proceder ao incremento da varivel que vai entrar para a base e aos


correspondentes ajustamentos no 'Quadro dos Transportes'. Voltar ao passo 3 .
Apliquemos o Algoritmo dos Transportes para resolver o Problema dos Transportes
correspondente ao seguinte 'Quadro dos Transportes':

X Y Z
Nota: Custos

125
A 50 unitrios de
3 1 3 transporte em
u.m. / unidade
B 250
2 9 3

C 100
5 7 2
200 50 150

1 Construir um 'Quadro dos Transportes' 9

2 Arbitrar uma soluo inicial.

Comecemos por apresentar o Mtodo do Canto NW:


a) seleccionar a 'clula' ainda no preenchida situada no 'Canto NW' (i.e.,).
b) atribuir a essa clula o maior valor possvel, respeitando simultneamente
a disponibilidade da 'fonte de oferta' e a necessidade do 'ponto de procura'
correspondentes.
Repetir a) e b) at o 'Quadro dos Transportes' estar completamente preenchido.

X Y Z

A 50
3 1 3

B 250
2 9 3

C 100
5 7 2

Ruy Costa, 2011


200 50 150

Sombreou-se o 'Canto NW'. A 'fonte de oferta' A pode fornecer, no mximo, 50


unidades e o 'ponto de consumo' X necessita de 200 unidades de produto. Assim, o maior
valor possvel que se pode atribuir a xAX ser igual a mn ( 50 ; 200 ), isto , 50 unidades.

X Y Z

A 50 0 0 50
3 1 3

B 250
2 9 3

C 100
5 7 2
200 50 150

De notar que quando se atribui a xAX o valor 50, 'esgota-se' a capacidade de


fornecimento da 'fonte de oferta' A, pelo que imediata a atribuio do valor 0 a xAY e xAZ .
Desde j se chama a ateno para o facto de, normalmente, se 'esgotar' apenas ou
a disponibilidade da 'fonte de oferta', ou as necessidades do 'ponto de procura'. S a ttulo
excepcional ocorrem simulataneamente essas duas situaes. Quando tal ocorrer, originar-
se- uma situao de degenerescncia.

126
Assinalemos o novo 'Canto NW' disponvel:

X Y Z

A 50 0 0 50
3 1 3

B 250
2 9 3

C 100
5 7 2
200 50 150

A 'fonte de oferta' B pode fornecer, no mximo, 250 unidades e o 'ponto de consumo'


X necessita agora de 150 unidades de produto (j que a 'fonte' A fornecer 50 unidades).
Assim, o maior valor possvel que se pode atribuir a xBX ser igual a mn ( 250 ; 150 ), isto
, 150 unidades.

X Y Z

A 50 0 0 50
3 1 3

B 150 250
2 9 3

C 0 100
5 7 2
200 50 150

Ruy Costa, 2011


De notar que quando se atribui a xBX o valor 150, 'esgota-se' as necessidades
do'ponto de consumo' X, pelo que imediata a atribuio do valor 0 a xCX .

De notar ainda que nesta etapa do preenchimento do 'Quadro dos Transportes'


apenas se 'esgotou a coluna X' ...

Assinalemos o novo 'Canto NW' disponvel:

X Y Z

A 50 0 0 50
3 1 3

B 150 250
2 9 3

C 0 100
5 7 2
200 50 150

A 'fonte de oferta' B pode agora fornecer, no mximo, 100 unidades (j que j


fornece 150 unidades a X) e o 'ponto de consumo' Y necessita de 50 unidades de produto.
Assim, o maior valor possvel que se pode atribuir a xBY ser igual a mn ( 100 ; 50 ), isto ,
50 unidades.

127
X Y Z

A 50 0 0 50
3 1 3

B 150 50 250
2 9 3

C 0 0 100
5 7 2
200 50 150

De notar que quando se atribui a xBY o valor 50, 'esgota-se' as necessidades do


'ponto de consumo' Y, pelo que imediata a atribuio do valor 0 a xCY .

De notar ainda que nesta etapa do preenchimento do 'Quadro dos Transportes'


apenas se 'esgotou a coluna Y' ...

Assinalemos o novo 'Canto NW' disponvel:

X Y Z

A 50 0 0 50
3 1 3

B 150 50 250
2 9 3

C 0 0 100
5 7 2

Ruy Costa, 2011


200 50 150

A 'fonte de oferta' B pode agora fornecer, no mximo, 50 unidades (j que j fornece


150 unidades a X e 50 unidades a Y) e o 'ponto de consumo' Z necessita de 150 unidades
de produto. Assim, o maior valor possvel que se pode atribuir a xBZ ser igual a
mn ( 50 ; 150 ), isto , 50 unidades.

X Y Z

A 50 0 0 50
3 1 3

B 150 50 50 250
2 9 3

C 0 0 100
5 7 2
200 50 150

De notar que quando se atribui a xBZ o valor 50, apenas se 'esgota' a disponibilidade
da 'fonte de oferta' B ('esgota-se a linha B').

Resta finalmente a clula CZ, sendo de 100 unidades o correspondente valor, j que
o 'ponto de consumo' Z necessita de um total de 150 unidades, recebendo j 50 unidades de
B e, por outro lado, a 'fonte de oferta' C pode proporcionar um envio mximo de 100
unidades. Assim, o valor a atribuir a xCZ ser igual a mn ( 100 ; 100 ), isto , 100
unidades.

128
X Y Z

A 50 0 0 50
3 1 3

B 150 50 50 250
2 9 3

C 0 0 100 100
5 7 2
200 50 150

De notar que, quando se completa o preenchimento do 'Quadro dos Transportes' se


esgota sempre simultaneamente 'a linha' e 'a coluna' correspondentes clula que ento se
preenche. Tal no indicia qualquer situao de degenerescncia ...

Temos, agora, uma soluo inicial para o nosso Problema de Transportes:

X Y Z

A 50 0 0 50
3 1 3

B 150 50 50 250
2 9 3

C 0 0 100 100
5 7 2
200 50 150

Ruy Costa, 2011

Antes de prosseguirmos podemos 'traduzir' a soluo inicial representada pelo


'Quadro dos Transportes' anterior:
xAX = 50 ; xAY = 0 ; xAZ = 0 ; xBX = 150 ; xBY = 50 ; xBZ = 50 ; xCX = 0 ; xCY = 0 ; xCZ = 100

Poderemos determinar facilmente o custo associado a esta soluo:


CTot = 50 . 3 + 0 . 1 + 0 . 3 + 150 . 2 + 50 . 9 + 50 . 3 + 0 . 5 + 0 . 7 + 100 . 2 = 1 250 u.m.

Claro que de imediato surge uma pergunta bvia: ' Ser este o valor mnimo
possvel do Custo Total de Transporte ? ' , ou, o que o mesmo, ' Ser esta a soluo
ptima ? ' .

Para respondermos a esta(s) pergunta(s) deveremos prosseguir a aplicao do


Algoritmo dos Transportes:

129
3 Verificar se a soluo degenerada.

Este um cuidado que deveremos ter para evitar 'dissabores'...

J se referiu que a um Problema dos Transportes com m 'fontes de oferta' e n


'pontos de procura' esto associadas m + n - 1 restries independentes. Assim,
uma soluo deste problema ser bsica no degenerada se tiver exactamente m
+ n - 1 variveis bsicas (i.e., positivas). Se o nmero de variveis positivas for inferior a
m + n - 1, estaremos perante uma soluo bsica degenerada (e teremos que ter alguns
cuidados antes de prosseguirmos...).

Assim, relativamente ao problema que estamos a resolver, tem-se:

n variveis bsicas = m + n - 1 = 5 9

Ou seja, a soluo inicial arbitrada bsica no degenerada.

4 Verificar a optimalidade da soluo em anlise.

Quando apresentmos o Algoritmo Simplex para a resoluo de problemas de


Programao Linear, conclumos que para verificar a optimalidade de uma dada soluo era
necessrio re-escrever a funo objectivo apenas em funo das variveis no bsicas.
Neste problema pretendemos re-escrever a funo CTot em funo de xAY , xAZ , xCX e
xCY , isto ,

CTot = 3 . xAX + 1 . xAY + 3 . xAZ + 2 . xBX + 9 . xBY + 3 . xBZ + 5 . xCX + 7 . xCY + 2 . xCZ

= 0 . xAX + ? . xAY + ? . xAZ + 0 . xBX + 0 . xBY + 0 . xBZ + ? . xCX + ? . xCY + 0 . xCZ + K

em que K corresponde ao custo da soluo em anlise.

Ruy Costa, 2011


Pretendemos, assim, passar da representao CTot = cij . xij para

CTot = c'ij . xij + K com c'ij = 0 para todas as variveis xij bsicas .

Para obtermos os novos valores dos custos unitrios, c'ij , poderemos adoptar o
seguinte procedimento:

Definir c'ij = cij - ui - vj com c'ij = 0 para todas as variveis xij


bsicas, isto , para as m + n - 1 variveis bsicas ser vlida a igualdade cij
= ui + vj .

Note-se que a cada linha do 'Quadro dos Transportes' se est a afectar um


coeficiente ui e a cada coluna um coeficiente vj. Assim, teremos que determinar
m valores para os m coeficientes ui e n valores para os coeficientes vj a partir das
m + n - 1 equaes cij = ui + vj correspondentes s variveis bsicas. Teremos,
assim, um sistema de m + n - 1 equaes a m + n incgnitas, que (como se
sabe) nunca poder ser possvel e determinado.

Arbitrando um valor de uma incgnita (de preferncia, atribuir o valor zero a


uma incgnita que intervenha em muitas equaes), poderemos determinar os valores
das restantes incgnitas.

A partir dos valores dos coeficientes ui e vj determinados pela resoluo


do sistema referido, poderemos calcular os desejados novos valores dos custos c'ij
correspondentes s variveis no bsicas, o que nos permitir saber se a soluo em
anlise , ou no, ptima.

130
De notar que os novos valores dos custos c'ij correspondentes s variveis no
bsicas no se alteram com uma eventual mudana do valor inicialmente arbitrado (ou da
varivel) - essa mudana poder reflectir-se nos valores de ui e vj (mas no afecta c'ij ).

Retornemos ao exerccio que apresentmos, para aplicar o procedimento descrito.

Escrevamos, para as 5 variveis bsicas, a correspondente igualdade cij = ui + vj:

cAX = uA + vX uA + vX = 3
cBX = uB + vX uB + vX = 2
cBY = uA + vX uB + vY = 9
cBZ = uB + vZ uB + vZ = 3
cCZ = uC + vZ uC + vZ = 2

Dado que a varivel uB intervm em trs das cinco equaes, se arbitrarmos


uB = 0 , resolvemos com facilidade o sistema de cinco equaes, obtendo uA = 1 ; uB
= 0 ; uC = - 1 ; vX = 2 ; vY = 9 e vZ = 3 .

Poderemos, agora, determinar os novos valores de c'ij correspondentes s


variveis no bsicas:

c'AY = cAY - uA - vY c'AY = 1 - 1 - 9 = -9


c'AZ = cAZ - uA - vZ c'AZ = 3 - 1 - 3 = -1
c'CX = cCX - uC - vX c'CX = 5 +1 - 2 = +4
c'CY = cCY - uC - vY c'CY = 7 +1 - 9 = -1

Poderemos, agora, re-escrever CTot :

CTot = 3 . xAX + 1 . xAY + 3 . xAZ + 2 . xBX + 9 . xBY + 3 . xBZ + 5 . xCX + 7 . xCY + 2 . xCZ

= 0 . xAX - 9 . xAY - 1 . xAZ + 0 . xBX + 0 . xBY + 0 . xBZ + 4 . xCX - 1 . xCY + 0 . xCZ + 1 250
Ruy Costa, 2011

fcil concluir que se se incrementar o valor de xAY, xAZ ou xCY estaremos a


diminuir o valor de CTot. Ora como pretendemos minimizar o valor de CTot, poderemos
concluir que a soluo em anlise no ptima.

Faamos uma breve interrupo na resoluo do problema apresentado, para


fazermos alguns comentrios.

Recordemos que os novos valores dos custos c'ij correspondentes s variveis no


bsicas no se alteram com uma eventual mudana do valor inicialmente arbitrado (ou da
varivel) - essa mudana poder reflectir-se nos valores de ui e vj (mas no afecta c'ij ).
Para que no restem dvidas, sugere-se que trabalhe um pouquinho ...

131
Arbitre inicialmente uA = 0 e determine os restantes valores de ui e vj .
) Determine agora os novos valores dos custos c'ij correspondentes s
variveis no bsicas e constate que coincidem com os valores obtidos
quando inicialmente se tinha considerado uB = 0 .

A determinao dos valores de ui e vj no nos obriga a escrever formalmente o


sistema de equaes e a resolv-lo. Com efeito, poderemos determinar esses valores
directamente a partir do 'Quadro dos Transportes'.

Para tal, comeamos por associar ao Quadro uma constante ui por cada linha e uma
constante vj por cada coluna. Arbitramos o valor de uma das constantes (regra geral,
atribumos o valor 0 constante associada fila do Quadro com maior nmero de variveis
bsicas). Finalmente, a partir das clulas correspondentes s variveis bsicas,
determinamos os valores de ui e vj por resoluo das correspondentes equaes cij = ui + vj.

Comecemos por considerar o 'Quadro dos Transportes' correspondente soluo


inicial obtida para o problema que estamos a tratar:

X Y Z
Comeamos por indi-
A 50 0 0 50 uA = car as constantes ui e
3 1 3 vj .

B 150 50 50 250 uB = Inutilizmos' as clu-

Ruy Costa, 2011


2 9 3 las correspondentes
s variveis no bsi-
C 0 0 100 100 uC = cas, que no sero
5 7 2 utilizadas para a de-
200 50 150 terminao dos valo-
vX = vY = vZ = res de ui e vj .

X Y Z
Fila com maior nme-
A 50 0 0 50 uA = ro de variveis bsi-
3 1 3 cas: 2 linha arbi-
trar uB = 0 .
B 150 50 50 250 uB = 0
2 9 3 cBX = uB + vX
2 = 0 + vX
C 0 0 100 100 uC = vX = 2
5 7 2
200 50 150 Analogamente se de-
vX = vY = vZ = termina vY e vZ a partir
de xBY e cBZ ,
respectivamente.

132
X Y Z

A 50 0 0 50 uA =
3 1 3

B 150 50 50 250 uB = 0
2 9 3
A partir de vX = 2 e
C 0 0 100 100 uC = da var. bsica xAX,
5 7 2 determina-se uA.
200 50 150 3 = uA + 2
vX = 2 vY = 9 vZ = 3 uA = 1

X Y Z

A 50 0 0 50 uA = 1
3 1 3

B 150 50 50 250 uB = 0
2 9 3
A partir de vZ = 3 e
C 0 0 100 100 uC = da var. bsica xCZ,
5 7 2 determina-se uC.
200 50 150 2 = uC + 3
vX = 2 vY = 9 vZ = 3 uC = - 1

X Y Z

A 50 0 0 50 uA = 1
3 1 3

B 150 50 50 250 uB = 0
2 9 3

C 0 0 100 100 uC = - 1
5 7 2
200 50 150
vX = 2 vY = 9 vZ = 3 E j est !
Ruy Costa, 2011

Sabemos que os valores de ui e vj foram determinados de modo a que, para todas


as variveis bsicas, c'ij = cij - ui - vj = 0 . Interess-nos, agora, calcular os valores de
c'ij = cij - ui - vj relativos s variveis no bsicas, o que poderemos fazer facilmente a
partir do ltimo 'Quadro dos Transportes' apresentado. Registaremos no canto inferior
esquerdo de cada clula o correspondente valor de c'ij (obviamente igual a 0, para as
variveis bsicas).

133
X Y Z
Comeamos por re-
A 50 0 0 50 uA = 1 gistar os c'ij = 0 rela-
0 3 1 3 tivos s var. bsicas.

B 150 50 50 250 uB = 0
0 2 0 9 0 3
c'AY = cAY - uA - vY
C 0 0 100 100 uC = - 1 c'AY = 1 - 1 - 9 = - 9
5 7 0 2
200 50 150 c'AZ = cAZ - uA - vZ
vX= 2 vY= 9 vZ= 3 c'AZ = 3 - 1 - 3 = - 1

c'CX = cCX - uC - vX
c'CX = 5 + 1 - 2 = + 4

c'CY = cCY - uC - vY
c'CY = 7 + 1 - 9 = - 1

X Y Z

A 50 0 0 50 uA = 1
0 3 -9 1 -1 3

B 150 50 50 250 uB = 0
0 2 0 9 0 3

C 0 0 100 100 uC = - 1
+4 5 -1 7 0 2 E j est !
200 50 150
vX= 2 vY= 9 vZ= 3 Destacamos os c'ij < 0 !

Retornemos resoluo do problema apresentado:

J tnhamos referido que a existncia de, pelo menos, um coeficiente c'ij


Ruy Costa, 2011

negativo indica que a soluo em anlise no ptima - estamos, obviamente, a


considerar que a funo objectivo se encontra expressa apenas em funo das variveis no
bsicas ( pelo que para as variveis bsicas ser vlida a igualdade c'ij = 0 ) . Assim,
reafirmamos que a soluo em anlise no a soluo ptima do problema.

5 semelhana do procedimento seguido no Algoritmo Simplex Primal,


seleccionaremos para entrar na base a varivel correspondente ao coeficiente c'ij mais
negativo. De notar que c'ij indica o acrscimo (decrscimo se for negativo) da funo
objectivo correspondente a um incremento unitrio da correspondente varivel.

Assim, seleccionamos xAY para entrar na base, isto , para ser incrementada.

134
E qual o incremento mximo, , que pode ser dado varivel xAY ?

Para determinarmos esse valor, incrementaremos, no 'Quadro dos Transportes' a


clula correspondente a xAY de :

X Y Z

A 50 0+ 0 50 uA = 1
0 3 -9 1 -1 3

B 150 50 50 250 uB = 0
0 2 0 9 0 3

C 0 0 100 100 uC = - 1
+4 5 -1 7 0 2
200 50 150
vX= 2 vY= 9 vZ= 3

Ruy Costa, 2011


Para se respeitar as capacidades de oferta das vrias fontes de oferta e as
necessidades dos vrios pontos de procura, deveremos 're-equilibrar' o Quadro, somando
e subtraindo , nas clulas correspondentes s variveis bsicas necessrias ao re-
-equilbrio. S assim se garante que apenas a varivel seleccionada entre na base, com a
correspondente sada de uma varivel que, at a, se encontrava na base:

X Y Z

A 50 - 0+ 0 50 uA = 1
0 3 -9 1 -1 3

B 150+ 50 - 50 250 uB = 0
0 2 0 9 0 3

C 0 0 100 100 uC = - 1
+4 5 -1 7 0 2
200 50 150
vX= 2 vY= 9 vZ= 3

Qualquer valor positivo de pode ser atribudo, sem qualquer perturbao das
variveis xAY e xBX. No entanto, preciso termos cuidado com as variveis xAX e xBY j
que estamos a subtriar ao seu actual valor e essas variveis (como todas as demais) no
podem ser negativas !

Assim, 50 - 0 50 mx = 50 .

6 Poderemos agora iniciar a 2 iterao, escrevendo o 'Quadro dos


Transportes' correspondente nova soluo em anlise:

135
X Y Z

A 50 - 0+ 0 50 uA = 1
0 3 -9 1 -1 3

B 150+ 50 - 50 250 uB = 0
0 2 0 9 0 3

C 0 0 100 100 uC = - 1
+4 5 -1 7 0 2
200 50 150
vX= 2 vY= 9 vZ= 3

= 50
X Y Z

A 0 50 0 50
3 1 3

B 200 0 50 250
2 9 3

C 0 0 100 100
5 7 2
200 50 150

Antes de prosseguirmos, verifiquemos que a diferena entre os custos da soluo


anterior e da nova soluo igual a . c'AY = 50 . ( - 9 ) = - 450 u.m..

Custo da soluo anterior = 1 250 u.m.


Custo da nova soluo = 50 . 1 + 200 . 2 + 50 . 3 + 100 . 2 = 800 u.m.
C = - 450 u.m. 9

Prossigamos com o passo

3 Verificar se a soluo em anlise , ou no, degenerada:


Ruy Costa, 2011

m + n - 1 = 5 n variveis positivas = 4 ! Base degenerada !

A soluo em anlise bsica degenerada, j que o nmero de variveis


estritamente positivas inferior a m + n -1 . Na realidade, e dado que o nmero de
variveis positivas inferior em 1 unidade relativamente a m + n - 1 , bastaria que uma das
variveis que tem o valor zero tivesse um valor positivo para que a soluo deixasse de ser
degenerada ....

Observando o modo como se obteve o actual 'Quadro dos Transportes', podemos


constatar que, quando xAY entrou na base (tomando o valor 50), altermos os valores de
xAX, xBX e xBY. O 'problema' ocorreu quando simultaneamente as variveis xAX e xBY
deixaram a base (passando a valer zero). Normalmente, apenas uma varivel deixa a base,
cedendo o seu lugar nova varivel que entra na base.

136
Quando mais do que uma varivel deixa a base, conveniente assinalar (por
exemplo, sublinhando) essas variveis, para posteriormente se escolher a(s) varivel(eis) a
'promover' artificialmente para a base.

Neste caso, sublinhamos os zeros correspondentes s variveis xAX e xBY.


Interessa-nos considerar que uma dessas variveis ainda est na base (embora com um
valor infinitesimal, que designaremos por 0*).

Como regra geral, e uma vez que se pretende minimizar a funo objectivo,
escolheremos para integrar artificialmente na base a varivel de menor custo, de entre as
candidatas (assinaladas / sublinhadas). Neste caso, escolheramos xAX para integrar a
base, ou seja:

X Y Z

A 0* 50 0 50
3 1 3

B 200 0 50 250
2 9 3

C 0 0 100 100
5 7 2
200 50 150

Ruy Costa, 2011


E agora, poderemos prosseguir, considerando xAX uma varivel bsica, para efeitos
de determinao dos valores de ui , vj e c'ij . Esclareamos, ento, se a nova soluo
,ou no, ptima:

4 Determinar ui , vj de modo a que c'ij = cij - ui - vj = 0 para as variveis


bsicas.

X Y Z

A 0* 50 0 50 uA = 3 II
3 1 3

B 200 0 50 250 uB = 2 III


2 9 3

C 0 0 100 100 uC = 1 VI
5 7 2
200 50 150
vX= 0 vY= -2 vZ= 1
I IV V
Nota: Indicou-se a sequncia seguida para a determinao dos valores utilizando a numerao romana.

Poderemos, agora, calcular os novos custos c'ij = cij - ui - vj associados s


variveis no bsicas:
c'AZ = cAZ - uA - vZ = 3 - 3 - 1 = - 1
c'BY = cBY - uB - vY = 9 - 2 + 2 = + 9
c'CX = cCX - uC - vX = 5 - 1 - 0 = + 4
c'CY = cCY - uC - vY = 7 - 1 + 2 =+ 8

137
X Y Z

A 0* 50 0 50 uA = 3
0 3 0 1 -1 3

B 200 0 50 250 uB = 2
0 2 9 9 0 3

C 0 0 100 100 uC = 1
4 5 8 7 0 2
200 50 150
vX= 0 vY= -2 vZ= 1

Concluso: A soluo em anlise ainda no ptima.

5 Dado que o nico valor negativo de c'ij corresponde a xAZ, dever-se-


incrementar essa varivel.

X Y Z

A 0* - 50 0+ 50 uA = 3
0 3 0 1 -1 3

B 200+ 0 50 - 250 uB = 2
0 2 9 9 0 3

C 0 0 100 100 uC = 1
4 5 8 7 0 2
Ruy Costa, 2011
200 50 150
vX= 0 vY= -2 vZ= 1

Determinemos mx : 0* - 0 50 - 0 0* , ou seja,
mx = 0*.

6 Actualizemos o 'Quadro dos Transportes':


X Y Z

A 0* - 50 0+ 50
0 3 0 1 -1 3

B 200+ 0 50 - 250
0 2 9 9 0 3

C 0 0 100 100
4 5 8 7 0 2
200 50 150

= 0*

138
= 0*
X Y Z

A 0 50 0* 50 uA =
3 1 3

B 200 0 50 250 uB =
2 9 3

C 0 0 100 100 uC =
5 7 2
200 50 150
vX= vY= vZ=

3 De notar que a 'nova' soluo continua a ser degenerada. (Na realidade, e


em termos prticos, ela coincide com a anterior ... Apenas se alterou a varivel nula que
promovida a bsica ...).

Dispomos, no entanto, de cinco variveis bsicas a partir das quais determinaremos


os valores dos coeficientes ui e vj.

4 Determinemos os valores dos coeficientes ui e vj, com vista a apurarmos se


a soluo em anlise , ou no, ptima.

X Y Z

A 0 50 0* 50 uA = 3 II
3 1 3

B 200 0 50 250 uB = 3 III


2 9 3

C 0 0 100 100 uC = 2 IV
5 7 2
200 50 150
Ruy Costa, 2011

vX= -1 vY= -2 vZ= 0


VI V I

Nota: Indicou-se a sequncia seguida para a determinao dos valores utilizando a numerao romana.

Poderemos, agora, calcular os novos custos c'ij = cij - ui - vj associados s


variveis no bsicas:
c'AX = cAX - uA - vX = 3 - 3 + 1 = + 1
c'BY = cBY - uB - vY = 9 - 3 + 2 = + 8
c'CX = cCX - uC - vX = 5 - 2 + 1 = + 4
c'CY = cCY - uC - vY = 7 - 2 + 2 = + 7

Dado que os novos custos c'ij associados s variveis no bsicas so positivos,


estamos perante a soluo ptima do problema:
x*AX = 0 ; x*AY = 50 ; x*AZ = 0 ;
x*BX = 200 ; x*BY = 0 ; x*BZ = 50 ;
x*CX = 0 ; x*CY = 0 ; x*CZ = 100 .

139
O custo associado a esta soluo no difere do custo da soluo anterior, j que
as variveis estritamente positivas so as mesmas e com os mesmos valores nas duas
solues. Assim, C*Tot = 800 u.m. .

Como j se referiu, as duas ltimas solues, em termos prticos, coincidem. No


entanto, sob o ponto de vista formal, as bases correspondentes so diferentes (num dos
casos xAX est na base; no outro xAZ que est na base)...

Retomemos o incio da resoluo do exerccio apresentado, para utilizarmos, como


alternativa ao Mtodo do Canto NW o Mtodo do Custo Mnimo para determinao de uma
soluo inicial.

2 Arbitrar uma soluo inicial.

Comecemos por apresentar o Mtodo do Custo Mnimo:


a) seleccionar a 'clula' ainda no preenchida correspondente ao menor
valor de custo unitrio de transporte;
b) atribuir a essa clula o maior valor possvel, respeitando simultneamente
a disponibilidade da 'fonte de oferta' e a necessidade do 'ponto de procura'
correspondentes.
Repetir a) e b) at o 'Quadro dos Transportes' estar completamente preenchido.

Exemplifiquemos a sua aplicao com o problema apresentado:

X Y Z

A 50
3 1 3

B 250
2 9 3

C 100
5 7 2
Ruy Costa, 2011

200 50 150

Sombreou-se a 'clula' correspondente ao menor valor de custo unitrio de


transporte. A 'fonte de oferta' A pode fornecer, no mximo, 50 unidades e o 'ponto de
consumo' Y necessita de 50 unidades de produto. Assim, o maior valor possvel que se
pode atribuir a xAY ser igual a mn ( 50 ; 50 ), isto , 50 unidades.

X Y Z

A 0 50 0 50
3 1 3

B 0 250
2 9 3

C 0 100
5 7 2
200 50 150

140
De notar que quando se atribui a xAY o valor 50, 'esgota-se' simultaneamente a
'linha A' e a 'coluna Y', o que ir originar uma situao de degenerescncia. Por esse
motivo, assinalamos os zeros registados no quadro, sublinhando-os.

Assinalemos a nova 'clula' (ainda no preenchida) correspondente ao menor valor


de custo unitrio de transporte:

X Y Z

A 0 50 0 50
3 1 3

B 0 250
2 9 3

C 0 100
5 7 2
200 50 150

Ruy Costa, 2011


De notar que poderamos ter optado pela varivel xCZ a que corresponde o mesmo
custo unitrio de transporte.

A 'fonte de oferta' B pode fornecer, no mximo, 250 unidades e o 'ponto de consumo'


X necessita de 200 unidades de produto. Assim, o maior valor possvel que se pode atribuir
a xBX ser igual a mn ( 250 ; 200 ), isto , 200 unidades.

X Y Z

A 0 50 0 50
3 1 3

B 200 0 250
2 9 3

C 0 0 100
5 7 2
200 50 150

Esgotou-se a 'coluna X'.

Assinalemos a nova 'clula' (ainda no preenchida) correspondente ao menor valor


de custo unitrio de transporte:

X Y Z

A 0 50 0 50
3 1 3

B 200 0 250
2 9 3

C 0 0 100
5 7 2
200 50 150

141
A 'fonte de oferta' C pode fornecer, no mximo, 100 unidades ( na realidade, ter que
fornecer obrigatoriamente essas 100 unidades a Z, j que no efectuou qualquer
fornecimento a X e a Y ... ) e o 'ponto de consumo' Z necessita de 150 unidades de produto.
Assim, o maior valor possvel que se pode atribuir a xCZ ser igual a mn ( 100 ; 150 ), isto ,
100 unidades.

X Y Z

A 0 50 0 50
3 1 3

B 200 0 250
2 9 3

C 0 0 100 100
5 7 2
200 50 150

Esgotou-se a 'linha C'.

Finalmente, resta-nos preencher a clula relativa varivel xBZ. imediata a


atribuio de 50 unidades a essa varivel, esgotando-se simultaneamente as
correspondentes linha e coluna (como sempre acontece com o preenchimento da 'ltima'
clula).

X Y Z

A 0 50 0 50
3 1 3

B 200 0 50 250
2 9 3

C 0 0 100 100
5 7 2
200 50 150

E pronto ! Eis a soluo inicial obtida a partir do Mtodo do Custo Mnimo.


Ruy Costa, 2011

De notar que o custo total de transporte correspondente igual a 800 u.m. - valor
inferior ao do custo da soluo inicial obtida a partir do Mtodo do Canto NW ... e, por
acaso, at j sabemos que este o valor mnimo correspondente a este problema ...

Usualmente, a soluo inicial obtida a partir do Mtodo do Custo Mnimo


apresenta um custo total de transporte inferior ao valor correspondente da soluo
inicial obtida a partir do Mtodo do Canto NW. Assim, em geral, o processo iterativo
descrito mais 'rpido' quando se adopta a soluo inicial obtida a partir do Mtodo do
Custo Mnimo.

Se pretendessemos prosseguir a aplicao do Algoritmo dos Transportes ao


problema apresentado a partir da soluo inicial obtida com o Mtodo do Custo Mnimo,
passaramos ao passo

3 Verificar se a soluo , ou no, degenerada:

142
n variveis positivas = 4 m + n - 1 = 5 Soluo degenerada.

Como se referiu anteriormente, ao esgotarmos simulataneamente a 'linha A' e a


'coluna Y' quando se fez a primeira atribuio de um valor a uma clula originamos a
situao de degenerescncia.

Para podermos prosseguir a aplicao do Algoritmo dos Transportes, necessrio


'promover' uma das variveis nulas para a base. Escolheremos, de entre as variveis com
valor 0 resultante do 'esgotamento' simultneo da 'linha A' e 'coluna Y' ( 0 no quadro ), a
varivel com custo unitrio de transporte mais baixo.

Assim, poderamos optar por seleccionar xAX ou xAZ . Como por acaso, j
resolvemos o problema ... at sabemos que se xAZ pertencer base (com o valor 0*) se
est perante a soluo ptima ...

Recordemos que as situaes de degenerescncia podem ocorrer quando:

i) ao determinar uma soluo inicial e ao atribuir um valor a uma varivel se 'esgota'


simultaneamente quer a correspondente linha, quer a correspondente coluna.

Ruy Costa, 2011


ii) se actualiza um 'Quadro dos Transportes' e se verifica que mais de uma varivel
bsica (a que se subtri ) deixa a base.

Para podermos prosseguir com a aplicao do Algoritmo dos Transportes,


deveremos 'promover' uma (ou, se necessrio, mais) varivel nula para a base - escolhemos
uma varivel nula, de entre as que tenham resultado da situao i) ou ii), com o menor custo
unitrio de transporte e atribuimos-lhe o valor 0*, considerando-a, ento, como varivel
bsica.

Um reparo deve ser feito relativamente ao reequilbrio dos 'Quadros dos


Transportes': excepo da varivel no bsica que vai entrar na base, todas as outras
variveis intervenientes nas 'operaes de re-equilbrio' devero ser variveis bsicas. Por
vezes, no conseguimos re-equilibrar um 'Quadro dos Transportes' apenas com quatro
variveis - veja-se o exemplo seguinte:
X Y Z W

A 0 0 150 50 200
... ... ... ...

B 100 50 50 0 200
... ... ... ...

C 0 0+ 0 100 100
... ... ... ...
100 50 200 150

Imagine que se pretendia incrementar a varivel xCY, fazendo-a entrar para a base.

143
Para re-equilibrar a 'coluna Y' s poderamos subtrair a xBY; por outro lado, para
re-equilibrar a 'linha C' s poderamos subtrair a xCW.

X Y Z W

A 0 0 150 50 200
... ... ... ...

B 100 50 - 50 0 200
... ... ... ...

C 0 0+ 0 100 - 100
... ... ... ...
100 50 200 150

Ruy Costa, 2011


Torna-se, agora, necessrio, re-equilibrar a 'linha B' e a 'coluna W'. Relativamente
'coluna W' s poderemos somar a xAW e, ver-nos-emos obrigados a subtrair a xAZ.
Assim, o re-equilbrio da 'linha B' deve ser feito somando a xBZ o que termina o processo
de re-equilbrio ...

X Y Z W

A 0 0 150 - 50 + 200
... ... ... ...

B 100 50 - 50 + 0 200
... ... ... ...

C 0 0+ 0 100 - 100
... ... ... ...
100 50 200 150

J agora ... Aproveitemos para determinar o maior valor possvel do incremento


correspondente ao Quadro anterior:

150 - 0 50 - 0 100 - 0 50 mx = 50

- Problemas dos Transportes Desequilibrados


Recordemos a formulao do 'Problema dos Transportes':

Seja xij a quantidade a transportar da 'fonte de oferta' i para o


'ponto de consumo' j.

O problema pode apresentar-se do modo seguinte:


m n
MIN C = cij . xij
i=1 j=1
sujeito a:

144
n
xij = ai ( i = 1 , 2 , ... , m ) [1]
j=1

m
xij = bj ( j = 1 , 2 , ... , n ) [2]
i=1

xij 0 [3]

m
O somatrio ai designa o total das disponibilidades das 'fontes de oferta'.
i=1

n
O somatrio bj designa o total das necessidades dos 'pontos de consumo'.
j=1

Se o total das disponibilidades (que designaremos, abreviadamente, por ai ) for


inferior ao total das necessidades (que designaremos, abreviadamente, por bj ), teremos
uma situao de procura superior oferta, pelo que, para podermos recorrer ao Algoritmo
dos Transportes, deveremos tornar o problema equilibrado, o que se consegue com a

Ruy Costa, 2011


criao de uma 'fonte de oferta' fictcia com capacidade de oferta igual a ( bj - ai ) .

No que respeita ao 'Quadro dos Transportes', esta 'fonte de oferta' fictcia,


corresponde a uma nova linha. Os valores das variveis dessa linha correspondero s
necessidades no satisfeitas, relativamente aos diversos 'pontos de procura'. Assim, em
termos prticos, esses valores representam quantidades desejadas mas no satisfeitas, pelo
que no h um transporte efectivo que lhes seja associado. Assim, os correspondentes
'custos unitrios de transporte' podero, por este ponto de vista, ser nulos.

Se existirem multas previstas pelo no fornecimento a algum(ns) 'ponto(s) de


procura', far sentido que os valores unitrios de multa possam ser utilizados como 'custos
unitrios de transporte'.

Se se pretender garantir que o fornecimento de um dado 'ponto de consumo' feito


integralmente, ento haver que garantir que a 'fonte fictcia' abastea 0 unidades a esse
'ponto de consumo'. Tal pode conseguir-se facilmente considerando um 'valor muito
elevado' para o correspondente custo unitrio de transporte.

Imagine-se, por exemplo, o problema de fornecimento de oxignio por parte de duas


fbricas ( A e B com capacidade de produo de 350 e 200 un. vol. / ms, respectivamente )
a trs consumidores ( Hospital, X e Y com necessidades mensais de, respectivamente, 300,
250 e 150 un. vol.). Sabe-se que o total da procura excede a disponibilidade total e
pretende-se garantir o abastecimento integral do Hospital. Admitamos que o problema
representado pelo seguinte 'Quadro dos Transportes' (custos em u.m. / un. vol.) :

145
Hospital X Y

A 350
16 16 8

B 200
14 14 12
300 250 150


Hospital X Y

A 350
16 16 8

B 200
14 14 12

Fict. 150
0 0
300 250 150

Nota: Em termos prticos, relativamente clula 'Fict. / Hospital' bastaria considerar


um custo unitrio de transporte muito mais alto do que os restantes, por exemplo, 1 000 u.m.
/ un. vol. .

) E agora s resolver o problema ...


capacidades ...
Aproveite, para testar as suas

Ruy Costa, 2011

Se o total das disponibilidades ( ai ) for superior ao total das necessidades


( bj ), teremos uma situao de oferta superior procura, pelo que, para podermos
recorrer ao Algoritmo dos Transportes, deveremos tornar o problema equilibrado, o que se
consegue com a criao de um 'ponto de consumo' fictcio com necessidade igual a
( ai - bj ) .

No que respeita ao 'Quadro dos Transportes', este 'ponto de consumo' fictcio,


corresponde a uma nova coluna. Os valores das variveis dessa coluna correspondero s
produes no escoadas, relativamente s diversas 'fontes de oferta'. Assim, em termos
pticos, esses valores representam quantidades produzidas mas no fornecidas, pelo que
no h um transporte efectivo que lhes seja associado. Assim, os correspondentes 'custos
unitrios de transporte' podero, por este ponto de vista, ser nulos.

Se se pretender garantir que a produo de uma dada 'fonte de oferta' seja


integralmente escoada, ento haver que garantir que essa 'fonte de oferta' abastea 0
unidades ao 'ponto de consumo' fictcio. Tal pode conseguir-se facilmente considerando um
'valor muito elevado' para o correspondente custo unitrio de transporte.

146
Imagine-se, por exemplo, que dois silos para armazenamento de cereais (A e B, com
capacidade de fornecimento de 350 e 200 toneladas por ms, respectivamente) so
utilizados para o abastecimento de dois consumidores ( X e Y com necessidades mensais
de, respectivamente, 300 e 150 toneladas). Pretende-se garantir que o abastecimenteo seja
feito de tal modo que o silo B esteja vazio no final do ms para permitir uma 'inspeco
tcnica'. Admitamos que o problema representado pelo seguinte 'Quadro dos Transportes'
(custos em u.m. / ton.) :

X Y

A 350
16 8

B 200
14 12
300 150


X Y Fict.

A 350
16 8 0

B 200
14 12
300 150 100

diferirem, estaremos perante um 'problema desequilibrado' - a sua resoluo ser


possvel, depois de artificialmente equilibramos o problema.

Ruy Costa, 2011


) E agora s resolver o problema ...
capacidades ...
Aproveite, para testar as suas

147
- O Problema da Afectao
Um caso particular do 'Problema dos Transportes' ocorre quando as variveis s
podem tomar o valor 1, ou 0 e quando os termos independentes das restries so todos
iguais a 1.

Este o conhecido 'Problema da Afectao': pretende-se determinar qual o


melhor plano de afectao, por exemplo, de trabalhadores a mquinas, de modo a minimizar
o custo total de formao dos trabalhadores.

A varivel xij toma o valor 1 quando o trabalhador i afectado


mquina j, ou 0, caso contrrio. O custo cij pode ser encarado como o
custo de formao do trabalhador i para este poder operar com a
mquina j.

O problema pode apresentar-se do modo seguinte:

m n
MIN C = cij . xij
i=1 j=1
sujeito a:

n
xij = 1 ( i = 1 , 2 , ... , m ) [1]
j=1

m
xij = 1 ( j = 1 , 2 , ... , n ) [2]
i=1

xij { 0 ; 1 } [3]

Quando m = n, h tantas mquinas, quantos os trabalhadores e o problema


'equilibrado'. Caso contrrio, estaremos perante um 'problema desequilibrado' (que se
Ruy Costa, 2011

poder 'equilibrar' com a introduo de trabalhador(es) fictcio(s) ou mquina(s) fictcia(s).

O 'Problema da Afectao', como caso particular do 'Problema dos Transportes'


pode ser resolvido por utilizao do Algoritmo dos Transportes. Neste caso, estaremos
sempre perante 'solues degeneradas ! [ Porque ser que tal ocorre ? ... ].

A estrutura do 'Problema da Afectao' ainda mais particular do que a do


'Problema dos Transportes', pelo que existe um algoritmo especialmente concebido para a
sua resoluo - o Algoritmo Hngaro (que no abordaremos).

148
C O N C L U S O

A Programao Linear tem um papel fulcral no mbito da Programao Matemtica


e, de um modo mais geral, uma grande importncia na Investigao Operacional, pelo que
justifica que a nossa abordagem a este tema tenha sido relativamente extensa e includo
vrios tpicos.

O conjunto de tpicos apresentado constitui uma perspectiva equilibrada da


Programao Linear. Tentou-se que essa perspectiva apresentasse uma sequncia que
facilitasse a progresso de quem pela primeira vez contacta com a Programao Linear.

Ruy Costa, 2011


Dado que do programa desta disciplina fazem parte outros domnios da Investigao
Operacional, a abordagem da Programao Linear levada a cabo, no incluu tpicos como
a Tcnica da Base Artificial, o Algoritmo Simplex Dual, a Programao Linear Paramtrica, o
Problema da Afectao. Estes tpicos podero ser abordados pelos leitores mais
interessados na Programao Matemtica.

149