Você está na página 1de 175

ndice

1-BREVE HISTRIA SOBRE A PROGRAMAO LINEAR............................... 1


2- INTRODUO MATEMTICA............................................................................ 5
2.1- Notaes e convenes............................................................................................. 5
2.2- Programao linear em redes................................................................................. 7
2.3- Exemplos de modelos em programao linear .................................................. 15
2.3.1- Produo - distribuio da polmeros .............................................................. 15
2.3.2- Problema das dietas ........................................................................................... 22
2.3.3- Financiamento de projectos .............................................................................. 23
2.3.4- Planeamento em aproveitamentos hidroelctricos, curto prazo, modelo LP24
2.3.5- Planeamento em aproveitamentos de biogas, curto prazo, modelo LP......... 32
3- PROGRAMAO LINEAR (PL).......................................................................... 36
3.1- Propriedades do espao vectorial euclidiano...................................................... 39
3.2- Caracterizao do domnio das solues possveis............................................. 45
3.3- Mtodo primal simplex......................................................................................... 50
3.4- Condies de Karush-Kuhn-Tucker para a programao linear..................... 71
3.5- Teoria da dualidade .............................................................................................. 74
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES........................... 83
4.1- Resultados da teoria dos grafos ........................................................................... 84
4.2- Caracterizao de uma rede................................................................................. 97
4.3- Especializao primal simplex ........................................................................... 107
4.4- Soluo bsica possvel inicial ............................................................................ 115
4.5- Estratgias de avaliao...................................................................................... 117
5-ALGORITMO DA CONDIO PARA A PROGRAMAO EM REDES ... 118
5.1- Condies de ptimo ........................................................................................... 119
5.2- Metodologia para o algoritmo............................................................................ 121
5.3- Fase primal .......................................................................................................... 123
5.4- Fase dual .............................................................................................................. 127
5.5- Algoritmo da condio........................................................................................ 131
5.6- Exemplo de iniciar o algoritmo da condio por n e arcos artificiais .......... 142
5.7- Convergncia do Algoritmo da Condio......................................................... 155
6- CDIGO LSNNO, CASCATA HDRICA.......................................................... 156
6.1- Simulao da Gesto de cascatas hdricas ........................................................ 156
6.2- Gesto de uma cascatas hdricas no curto prazo.............................................. 158
6.3- Limites para as variveis .................................................................................... 159
6.4- Funo objectivo.................................................................................................. 162
6.5- Equaes de balano ........................................................................................... 164
6.6- Construo dos ficheiros para a aplicao LSNNO......................................... 164
6.7- Dados para um caso exemplo............................................................................. 173
6.8- Manual do utilizador do LSNNO....................................................................... 174

1- BREVE HISTRIA SOBRE A PROGRAMAO LINEAR

















1-BREVE HISTRIA SOBRE A PROGRAMAO LINEAR

A programao linear surgiu como um dos mais importantes ramos da programao
matemtica com uma vasta aplicao prtica. Inovaes da ltima metade do sculo
passado fizeram com que os algoritmos de programao linear sejam eficientes e
favorveis para a resoluo de um larga variedade de problemas envolvendo questes de
deciso em vrios domnios. Por exemplo: no planeamento da distribuio e produo
de produtos, no planeamento de curto prazo em aproveitamento hidroelctricos, nas
decises ligadas s polticas micro-econmicas e macro-econmicas de governao dos
pases, na utilizao como subrotinas para suporte de tarefas especificas em cdigos de
programao no linear. Ainda, so aspectos positivos a considerar o facto da
programao linear ser uma teoria de optimizao significativamente completa, de
existirem cdigos para computadores podendo suportar problemas de muito grande
dimenso.

O problema de optimizar uma funo linear sujeita a restries lineares teve as sua
origem com os estudos de Fourier sobre sistemas lineares de inequaes em 1826. No
1
1- BREVE HISTRIA SOBRE A PROGRAMAO LINEAR

entanto, s em 1939 Kantorovich faz notar a importncia prtica destes problemas,
tendo criado um algoritmo para a sua soluo. Num documento cujo objectivo era expor
conceitos, Kantorovich apresentou exemplos para a aplicao da programao linear,
sendo a ideia fundamental de cada exemplo a obteno da maior produo possvel com
base numa utilizao ptima dos recursos disponveis. Um desses exemplos envolvia a
distribuio de fluxos de carga (distribudos atravs de veculos de transporte), usando
diferentes rotas em redes rodovirias de forma a satisfazer os requisitos e as restries
de capacidade das rotas, minimizando o consumo de combustvel. Infelizmente, durante
vrios anos o trabalho de Kantorovich no s foi insuficientemente conhecido na
Europa de Leste, mas tambm foi totalmente desconhecido na Europa Ocidental. Este
amplo trabalho que aborta a discusso do fluxo de trfego ptimo na antiga URSS foi
efectuado por Kantorovich e Gavurin. O conhecimento sobre este trabalho chegou s ao
ocidente depois de 1950.

O problema de optimizar uma funo linear sujeita a restries lineares tem o seu auge
com George Dantzig na dcada de 1940, consultor de matemtica do US Air Force
Comptroller, e com o prmio Nobel da Economia George Stigler, que formulou o
problema das dietas como um problema de mistura de componentes. Dantzig no s
formula o problema de programao linear, mas tambm cria o Algoritmo do Simplex
para a sua soluo em 1947. Ainda em 1947, Koopmans mostra que a programao
linear um modelo apropriado para a anlise da teoria econmica clssica. Entretanto,
nos EUA, Frank L. Hitchcock apresentou o que hoje a formulao base do problema
de transporte. Independentemente, o professor Koopmans formulou o mesmo problema
em ligao com o seu trabalho efectuado na Combined Shipping Adjustement Board.
Por isso, o problema de transporte referido, na literatura cientfica, quer como
2
1- BREVE HISTRIA SOBRE A PROGRAMAO LINEAR

problema de transporte de Hitchcock, quer como problema de transporte de Hitchcock-
Koopmans.

Em 1956 Alex Orden props a generalizao do modelo de transporte em que eram
permitidos pontos de transbordo de carga. Esta formulao conhecida hoje como um
problema de transbordo sem limite de capacidade. Ao mesmo tempo, o problema de
fluxos mximos e o problema do fluxo do custo mnimo em rede foi formulado e
investigado pela famosa equipa de Lester Ford e Delbert Fulkerson.

Entre 1950 a 1965 muita actividade foi dirigida para o desenvolvimento de algoritmos
para modelos de programao linear em rede. Os algoritmos desenvolvidos podem ser
classificados em duas classes, como se segue:

1) Especializao do Mtodo Simplex;
2) Mtodo Primal-Dual.

A especializao primal simplex comeou com o trabalho de Dantzig e atingiu o apogeu
com o documento de Ellis Johnson. Os fundamentos para o documento de Johnson
podem ser encontrados basicamente em dois livros: um de Dantzig e outro de Charnes e
Cooper.

O mtodo primal-dual originado com o algoritmo hngaro de Harold Kuhn para o
problema de atribuio concludo com o algoritmo da condio de Delbert Fulkerson
em 1961.

3
1- BREVE HISTRIA SOBRE A PROGRAMAO LINEAR

Muita da actividade de investigao envolveu uma eficiente implementao das tcnicas
bsicas, a particularizao dos cdigos programao linear em rede acrescentou
vantagens no desempenho, comparativo, dos procedimentos para a resoluo de
problemas de programao linear em rede. O primeiro problema de tamanho
considervel resolvido pelo Algoritmo do Simplex foi o das dietas de Stigler com nove
equaes e setenta e sete variveis no negativas, gastando 120 Horas Homem nas
calculadoras de secretria existentes na altura e menos de um segundo nos actuais
computadores pessoais.

Em 1975, a Academia Real de Cincia atribuiu o prmio Nobel da Cincia em
Economia a Kantorovich e Koopmans pelas a suas contribuies para a teoria da
alocao de recursos, considerando a contribuio de Dantzig mais no mbito
matemtico, no havendo prmio para o ramo cientfico da matemtica, no atribuiu
prmio a Dantizg. No entanto, Dantizg permanecer para a histria da construo da
programao linear como um dos arquitectos fundamentais.

4
2- INTRODUO MATEMTICA
















2- INTRODUO MATEMTICA

2.1- Notaes e convenes

Ao longo deste texto as matrizes so indicadas por letras maisculas do alfabeto latino,
a cheio. Os grafos ou conjuntos de ns e arcos dos grafos so indicados por letras
maisculas do alfabeto latino. O smbolo I indica a matriz identidade com dimenso
apropriada para o contexto das operaes matriciais onde est inserida. Uma matriz com
todos os elementos nulos indicada por 0. O elemento da linha i e da coluna j da matriz
A indicado por A
ij
. O vector cujas coordenadas so os elementos da coluna j da matriz
A indicado por A(j).

Determinadas constantes inteiras indicando valores mximos so indicadas por letras
maisculas do alfabeto latino com uma barra por cima, como por exemplo K. Letras
minsculas do alfabeto latino e letras do alfabeto grego, a cheio, so usadas para indicar
vectores. O smbolo e
i
, indica um vector cuja coordenada i igual a 1 e todas as outras
coordenadas so iguais a 0, enquanto que o smbolo 1 indica um vector com todas as
5
2- INTRODUO MATEMTICA
coordenadas iguais a 1. A coordenada i do vector c indicada por c
i
. O conjunto vazio
indicado por . Ser adoptado o ponto de vista de que os vectores pertencentes a um
espao vectorial (com dimenso igual a n) no so necessariamente nem vectores linha
(1n matrizes) nem vectores coluna (n1matrizes), sendo considerados de modo que as
dimenses fiquem compatveis com a multiplicao, isto , um vector tratado como
um vector linha quando aparece esquerda de outro vector ou de uma matriz e como
um vector coluna quando aparece direita. Assim, o produto interno de dois vectores a
e b indicado simplesmente por ab. Portanto, no contexto matricial e da forma que for
mais conveniente, um vector ser inserido como uma linha ou como uma coluna. Um
Superscripts usualmente indica membros de uma classe em vez de expoentes. Sigma
usado para indicar a funo sinal de um nmero definida por:

<
=
>
=
0 x se 1
0 x se 0
0 x se 1
) x (
Sero ainda, empregues outras notaes matemticas, que sero apresentadas ao longo
do texto quando forem requeridas. No que se refere aos conceitos de grafo e de rede,
que surgem em numerosos ramos da cincia, onde tm existido contribuies prprias
no contexto destes ramos da cincia para a evoluo do estudo de problemas de fluxo
em redes, que a forma mais simples de modelar matematicamente muitos problemas
desses ramos, utilizando o conceito de rede. No entanto, as perspectivas de cada ramo
so no convergentes, sendo facto que a literatura da teoria de grafos e de redes no
possui uniformizao, existindo diversidade variedade de convenes e notao. Por
isso, neste ponto ser feita informalmente uma descrio mais exaustiva do conceito de
grafo dirigido para fixar a linguagem que ser usada neste texto. Um grafo constituda
por dois conjuntos finitos. O conjunto dos ns, vrtices ou nodos, indicado por N. O
conjunto das arcos, arestas ou ramos, indicado por A. Assim, um grafo G indicado
6
2- INTRODUO MATEMTICA
como um par ordenado G = [N, A] e de ordem n se #A=n. Cada arco representada
por um par ordenado de ns (i, j), com i j e N j i, em que i o n de onde provm o
arco o n da cauda e j e o n para onde se dirige o arco ou o n cabea; diz-se que arco
(i, j) sai do n i e chega ao n j. Portanto, N N A . O arco (i, j) incidente nos
vrtices i e j. O arco (i, j) um arco de sada do n i e um arco de chegada do n j. O n
j diz-se adjacente ao n i se existir o arco (i, j). Dois arcos so adjacentes se forem
ambos incidentes no mesmo n. A lista de adjacncia dos arcos de um n i, indicada por
A(i), o conjunto de arcos que saem do n i; isto , } N j : A j) (i, { A(i) = . A lista de
adjacncia de ns de um n i, indicada por V(i), o conjunto de ns adjacentes ao n i,
isto , . Claro que o #A(i) igual ao #V(i) e dado pelo o
nmero de arcos que saem do n i. Um grafo diz-se completo se entre quaisquer dois
vrtices existir uma arco. A densidade de um grafo a razo entre o nmero de arcos de
grafo e o nmero de arcos do grafo completo com o mesma nmero de ns. Dado um
grafo G = (N, A), G = (N, A) um subgrafo de G se e .
} A j) (i, : N j { V(i) =
N N
'
A A
'


Uma rede um grafo cujos arcos tm rtulas, i.e, existem valores numricos associados,
por exemplo: custos unitrio de transporte num arco, capacidades mxima de um arco.
Assim, rede um terno ordenado R = [N, A, L], sendo [N, A] um grafo e L o conjunto
dos valores numricos associados aos arcos.

2.2- Programao linear em redes

O nome programao em redes faz lembra de imediato a rede elctrica, a rede
telefnica, a rede rodoviria, a rede ferroviria etc. Em todas estas redes existe em
trnsito algo, a electricidade na rede elctrica, a mensagem na rede telefnica, o ser
7
2- INTRODUO MATEMTICA
humano, bens ou resduos nas redes rodoviria e ferroviria. Este trnsito tem que ser
decidido e claro deve ser o mais racional e eficiente possvel.

Para que a deciso seja eficiente em redes de tamanho considervel necessrio
recorrer modelao matemtica da estrutura da rede para o suporte da deciso racional
e ao desenvolvimento de algoritmos para o tratamento de problemas em redes. Uma
rede envolve o conceito de grafo, que uma representao grfica de dados e da ligao
existente entre esse dados. A representao grfica tem vantagens na construo do
modelo matemtico para a resoluo do problema. Muitas reas do conhecimento, como
por exemplo, a matemtica, as engenharias em geral e a gesto usam a teoria de grafos
para descrever diversas situaes dentro do seu mbito

Uma rede uma estrutura caracterizada por trs tipos de objectos, constituintes da rede
que so os arcos, os ns e as etiquetas associadas com os ns ou com os arcos. Os
arcos podem ser considerados como abstraces de meios unidireccionais, como por
exemplo meios fsicos para o transporte de mercadorias. Os ns podem ser
considerados como abstraces interpretados como locais de injeco de fluxo ou
terminais de recepo do fluxo. As etiquetas so dados associados com os objectos
arcos ou ns. Os ns so geralmente ligados por arcos, podendo corresponder com a
realidade de um qualquer meio fsico de transporte. Assim, os arcos podem representar
linhas elctricas, ruas ou estradas numa rede urbana de transportes, tubagens numa rede
de distribuio de gua, linhas telefnicas numa rede de comunicaes, etc. No estudo
que ser feito as consideraes sero limitadas a redes com um nmero finito de ns e
arcos e sem laos. No entanto, se existir a necessidade de considerar laos eles podem
ser introduzidos considerando o lao substitudo por dois arcos e um n entre eles. Para
8
2- INTRODUO MATEMTICA
uma rede com I ns e J arcos, ser admitida uma ordem para os ns e para os arcos,
atravs de uma qualquer enumerao para os ns de 1,, I , e para os arcos de 1,, J .
Uma rede ilustrada por um grafo orientado sobre o qual se escrevem as etiquetas. Os
ns ilustrados por crculos, e os arcos ilustrados por linhas orientadas ligando dois ns.
A orientao do arco indicada por uma seta colocada sobre o respectivo o arco. A
Figura 2.1, ilustra a forma como se representa o grafo usando uma representao sagital.

1
2
4
3
1
2
3
4
5
6
7


Figura 2.1 Ilustrao de uma rede.

Observe que possvel mais do que um arco a ligar os mesmos dois ns com a mesma
orientao. Por exemplo na Figura 2.1, ambos os arcos 1 e 2 saem do n 1 e entram
ambos no n 2. A rede em termos matemticos pode ser descrita por uma matriz cuja
dimenso o nmero de ns pelo nmero de arcos, I J , sendo os seus elementos
definidos da seguinte forma:


+1 se do n i sai o arco j;

A
ij
= -1 se no n i entra o arco j;
0 caso contrrio.
9
2- INTRODUO MATEMTICA
A matriz A acima definida chamada a matriz de incidncia dos ns nos arcos. A
matriz de incidncia dos ns nos arcos correspondente rede da Figura 2.1 a seguinte:
arcos

1 2 3 4 5 6 7
1 1 -1
1
-1 -1 1 1
2
ns
-1 -1 1
3
-1 1 -1 1
4

Como cada arco s incidente em dois ns uma propriedade que caracteriza esta matriz
que cada coluna tem exactamente dois elementos no nulos, um igual a +1, no n de
onde sa o fluxo para o arco, e outro igual a 1, no n onde entra o fluxo do arco.
Qualquer matriz, independentemente da sua origem, que tenha esta propriedade ser
chamada matriz de incidncia dos ns nos arcos, visto que, pode ser representada por
uma rede.

A cada arco j da rede est associado uma varivel de deciso x
j
, definindo a quantidade
de fluxo atravs do arco j, sendo o vector, cuja dimenso J e as coordenadas so os
fluxos nos arcos indicado por x. O custo unitrio de transporte do fluxo do arco j
indicada por c
j
, tendo o vector c dos custos unitrios dimenso J e coordenadas dadas
pelos custos unitrios. A capacidade do arco j em termos de fluxo mximo indicada
por u
j
, tendo vector dos fluxos mximos u dimenso J e coordenadas dadas pelos os
fluxos mximos nos arcos. A cada n est associado um requisito do n, o requisito do
n i indicado por r
i
, tendo o vector dos requisitos r dimenso I e coordenadas dadas
pelos requisitos de cada n. Se r
i
> 0, o n i de fornecimento ou oferta com uma oferta
igual a r
i
, i.e., injectado fluxo na rede por este n. Se r
i
< 0 o n i de consumo ou
procura com um consumo igual a |r
i
|, i.e., retirado fluxo da rede por este n. Se r
i
= 0,
10
2- INTRODUO MATEMTICA
o n i um n de transbordo, i.e., no injectado nem retirado fluxo da rede neste n.
Em formulao matemtica, o problema da minimizao do custo do fluxo da rede
representado da seguinte forma

min c x
s.a.
A x = r

u x 0
PR
(NP)

Onde A a matriz de incidncia dos ns nos arcos, e s.a. sigla abreviatura de
sujeito a.

Diversos casos particulares da programao linear em rede, PR Programao em Redes
(NP Network Programming), mereceram estudos particulares que originaram cdigos
mais eficientes para a sua resoluo em comparao com a utilizao de cdigos mais
genricos. Uma classificao desses casos apresentada de seguida.

1. Problema de transbordo com capacidade no limitada.
Este problema uma particularizao do programao linear em rede, na qual u
j
=
para todo j, i.e., no existe uma limitao de fluxo mximo dos arcos.

2. Problema de transporte com capacidade limitada.
Este problema uma particularizao do programao linear em rede, na qual um n
ou e de oferta ou de procura. Ainda, os arcos so dirigidos dos ns de oferta para
os ns de procura. A Figura 2.2 ilustra um problema deste tipo em que existem trs
ns de oferta e cinco de procura.
11
2- INTRODUO MATEMTICA
3. Problema de Transporte. Este problema um caso especial problema de
transporte com capacidade limitada no qual u
j
= para todo j. Portanto a Figura
2.2 tambm serve para ilustrao do problema de transporte.

1
2
3
5
6
7
8
4
ns de
oferta
ns de
procura

Figura 2.2 Problema de transporte.

4. Problema de afectao.
Este problema consiste em associar entidades uma a uma da forma mais vantajosa.
As entidades podem ser tarefas, indivduos, mquinas, etc. Exemplos: associar
pessoas a funes, carros a pessoas, funes a mquinas. Este problema um caso
especial do problema de transporte no qual todos os requisitos so iguais a 1, i.e.,
|r
i
|=1 para i=1,, I .
12
2- INTRODUO MATEMTICA
5. Problema do fluxo mximo.
Este problema consiste em encontrar uma soluo admissvel que envie a mxima
quantidade de fluxo de um n origem para um n destino, satisfazendo as restries
de capacidade dos arcos da rede. Por exemplo: determinar o nmero mximo de
pessoas que podem ser transportadas por uma rede area de transportes entre duas
localizaes, ou o volume mximo de petrleo numa rede de oleodutos, ou de
energia electricidade numa rede elctrica. Em geral so dados dois ns de uma rede:
s n de oferta e t n procura. Os arcos da rede tm capacidade u
j
para j = 1, , J , o
problema consiste em encontrar o fluxo mximo, satisfazendo as restries de
capacidade 0 x u, que pode ser enviado atravs da rede do n s para o n t. Este
problema um caso especial do problema PR no qual r = 0 e s um arco tem custo
no nulo. Para exemplificar, suponha que se pretende determinar o fluxo mximo
entre os ns 1 e 4 da rede da Figura 2.1.
} {ri

Figura 2.3 Problema de maximizao do fluxo entre ns.
1
2
4
3
[0, u 1 ]
[0, u2]
[0, u3]
[0, u4]
{0}
[0, u5]
[0, u6]
[0, u7]
[1, ]
{0}
{0}
{0}
[c j , u j ]
13
2- INTRODUO MATEMTICA
Aumenta-se a rede com um arco fictcio de retorno, nmero de ordenao do arco 8,
do n 4 para o n 1, sendo u
8
= e c
8
= -1 e sendo r
i
= 0 para i = 1, ,4 e c
j
= 0
para j = 1, ,7. A rede para este problema ilustrada na Figura 2.3.

6. Problema do caminho mais curto.
Este problema consiste em encontrar o caminho mais curto entre dois ns s e t de
uma dada rede cujos arcos tm custos c
j
0 para j = 1, , J . Estes custos podem
identificar-se, com o valor da distncia a percorrer quando se opta pelo trajecto
determinado pelo respectivo arco. Este caso corresponde a fazer r
s
=1, r
t
=-1 e os
outros requisitos so iguais a zero. Supondo que se pretende encontrar o caminho
mais curto entre os ns 1 e 3 na rede da Figura 2.1, o problema programao ento
descrito pela rede ilustrada na Figura 2.4.

Figura 2.4 Problema do caminho mais curto.
Na soluo ptima a unidade de fluxo ir percorrer o caminho mais curto entre os
ns s e t. Caso a unidade de fluxo se fraccionar em quantidades iguais que fluiro
1
2
4
3
[c1, ]
[c2, ]
{1}
{0}
{-1}
{0}
{ri}
[c j , u j ]
[c4,
]
[c3,
]
[c7,
]
[c5,
]
[c6,
]
14
2- INTRODUO MATEMTICA
atravs de mais do que um arco, existiro caminhos alternativos cujo percurso
igual distancia mais curta.


2.3- Exemplos de modelos em programao linear
A programao linear tem uma parte que arte e outra que cincia. Enquanto que o
processo de construo da estrutura proveniente de enunciado de um problema real,
permitindo a anlise do problema real, pode ser encarado como uma arte, existindo
vrias maneiras de proceder a arte guia na direco da mais conveniente. O
desenvolvimento dos algoritmos para resoluo dos problemas de programao linear
uma cincia. Exemplos prticos que ilustram a construo de um problema de
programao linear so apresentados em seguida.


2.3.1- Produo - distribuio da polmeros
A Polmeros uma empresa de polmeros europeia. O director de produo decide o
nvel de produo de cada uma das quatro fbricas na Europa. O plano de produo-
distribuio feito com dois meses de antecipao. O director de produo est a
trabalhar nos pedidos para o ms de Julho. Existem diversos clientes os quais foram
agrupados em cinco regies. Existe aqui j uma primeira deciso que foi tomada
anteriormente que a formao de regies de clientes, ou seja, construir pontos de
procura que aglomeram clientes. Claro que ao nvel de transporte os clientes localizados
numa cidade so potencialmente aglomerados num ponto, de qualquer modo considere
que essa deciso j foi tomada e que o director de produo tem que respeitar o que se
entendeu pontos de procura que aglomeram clientes.
15
2- INTRODUO MATEMTICA

A procura de polmero para o ms de Julho para cada uma das regies indicada no
Quadro 2.1. As fbricas da Poliremos esto localizadas em Dresden na Alemanha, Lie
na Frana, Milo na Itlia e Aveiro em Portugal.

Quadro 2.1 Procura para Julho
Regio de Vendas
Pedidos para Julho
(Ton.)
1 2840
2 2800
3 2600
4 2820
5 2750


Dadas as diferenas existentes nas vrias fbricas, as capacidades e os custos de
produo so distintos de fbrica para fbrica e so indicadas no Quadro 2.2.

Quadro 2.2 Capacidade de produo e custo para Julho
Fbrica/Pas
Capacidade
(Ton.)
Custo por Tonelada
()
Dresden/Alemanha 4000 2100
Lille/Frana 4500 2000
Milo/Itlia 2700 1600
Aveiro/Portugal 3000 1700

O custo de transporte por tonelada e a respectiva capacidade de transporte, entre cada
uma das quatro fbricas e as cinco regies de venda, so indicados no Quadro 2.3.

16
2- INTRODUO MATEMTICA
Por exemplo: o custo de produo de uma tonelada de polmero na fbrica de Aveiro
de 1700; o custo transporte de uma tonelada de polmero fabricado em Aveiro para ser
vendido na regio 3 de 400. Ento o custo total de produo e transporte de uma
tonelada de polmero de Aveiro para ser distribudo na regio 3 de 1700+400=2100 .

Quadro 2.3 Custo e capacidade de transporte para Julho
Fbricas
Dresden Lille Milo Aveiro
Regio
de
Vendas Custo
()
Capac.
(Ton.)
Custo
()
Capac.
(Ton.)
Custo
()
Capac.
(Ton.)
Custo
()
Capac.
(Ton.)
1 800 0 200 3000 500 1000 0 0
2 600 2000 400 2000 200 2000 400 1000
3 300 2000 500 1000 200 1000 400 1000
4 200 2000 900 200 200 1000 300 1000
5 400 500 0 0 400 300 100 2000

No Quadro 2.3 os valores nulos correspondem a situao a onde no possvel meios
de transporte para o ms de Julho, sempre que o mximo fluxo de um arco seja nulo o
custo unitrio desse arco pode tomar qualquer valor que no vai influenciar a deciso.

O problema do director de produo fazer a programao da produo e da
distribuio de cada uma das quatro fbricas para as regies de procura dos polmeros,
de modo a que a soma do custo de produo mais transporte seja mnima. Para a
resoluo deste problema o director de produo pode por abstraco considerar que
cada uma das quatro fbricas um n por onde se injecta fluxo na rede.
17
2- INTRODUO MATEMTICA
Clientes
1

Figura 2.5 Produo e distribuio na Polmeros.

No entanto, como quer obter o plano de produo e transporte tem que considerar que
em cada fabrica existe um percurso que corresponde produo dos polmeros.
Portanto, este percurso cujo custo unitrio o custo de produo da tonelada de
polmero ser descrito por um arco que liga um n que pode ser considerado como o
incio de produo com o n que pode ser considerado como o fim de produo da
fbrica. A rede ser constituda como se indica na Figura 2.5, sendo os ns nmero: 1 a
5, os ns clientes, as regies que o director de produo tem que considerar; 6 a 9 os ns
fim de produo para fbricas; 10 a 13 os ns de incio de produo para fbricas. No
entanto, estes ltimos ns tem um significado que deriva do facto dos seus requisitos
serem iguais capacidade mxima de produo das respectivas fbricas, como est
indicado no Quadro 2.4.
9
2
3
4
5
Excesso de
Capacidade de
Produo
6
11
12
13
10
14
8
Fbricas Arco 1
Arco 21
Arco 2
Arco 25
Dresden
A. 5
A. 3
7
Arco 26 Arco 22
A. 4
Lille
Arco 27
A. 16
Arco 23
A. 17
Milo
Arco 28
A. 18
Arco 24
Arco 19
Aveiro
Arco 20
18
2- INTRODUO MATEMTICA
Quadro 2.4 Requisitos dos ns (Figura 2.5)
N. do N Requisito N. do N Requisito
1 -2840 8 0
2 -2800 9 0
3 -2600 10 4000
4 -2820 11 4500
5 -2750 12 2700
6 0 13 3000
7 0 14 -390

Quadro 2.5 Especificaes dos arcos
N. do
Arco
N
De
N
Para
Custo
Unit.
Capac.
Arco
N. do
Arco
N
De
N
Para
Custo
Unit.
Capac.
Arco
1 6 1 800 0 15 8 5 400 300
2 6 2 600 2000 16 9 1 0 0
3 6 3 300 2000 17 9 2 400 1000
4 6 4 200 2000 18 9 3 400 1000
5 6 5 400 500 19 9 4 300 1000
6 7 1 200 3000 20 9 5 100 2000
7 7 2 400 2000 21 10 6 2100 4000
8 7 3 500 1000 22 11 7 2000 4500
9 7 4 900 200 23 12 8 1600 2700
10 7 5 0 0 24 13 9 1700 3000
11 8 1 500 1000 25 10 14 0
12 8 2 200 2000 26 11 14 0
13 8 3 200 1000 27 12 14 0
14 8 4 200 1000 28 13 14 0

No n incio de produo injectado o fluxo que ser igual capacidade mxima de
produo da fbrica, mas como nem toda a capacidade necessitara de ser utilizada para
o ms de Julho surge um outro n para onde ser localizado o excesso de capacidade de
produo, sendo o custo de transporte nos arcos que ligam este n nulo.
19
2- INTRODUO MATEMTICA
Os dados e a estrutura para o sistema de produo/distribuio apresentado no Quadro
2.5. Note que o excesso de capacidade de produo concretizado na representao do
grafo por o n extra nmero 14 que liga as quatro fbricas, atravs de arcos de custo
zero e capacidade de transporte ilimitada. O director de produo pode tambm
considerar que a capacidade de transporte nestes arcos limitada e igual a capacidade
de produo das respectivas fbricas ou at considerar que capacidade de transporte
qualquer nmero superior ao excesso de capacidade de produo.

1

Figura 2.6 Produo e distribuio na Poliremos.

Na Figura 2.6 e nos Quadros 2.6 e 2.7 apresentada outra opo possvel para o director
de produo ilustrar a rede deste problema. Esta variedade de ilustrao de um problema
corresponde a uma variedade na sua formulao que de facto pode ser encarada como
9
2
3
4
5
6
Arco 1
Arco 2
10
8
Arco 21
A. 5
A. 3
7
Arco 22
A. 4
Arco 23
A. 16
A. 17
Arco 24
A. 18
Arco 19
Arco 20
20
2- INTRODUO MATEMTICA
uma arte, visto que no sistemtica deixando alguma margem de liberdade, que deve
ser convenientemente explorada.

Nesta ltima opo o director de produo considera s um n para cada fbrica e
aglomera o custo de produo da fbrica com o custo de transporte para cada uma das
regies, criando arcos com custo unitrio igual ao custo de produo mais o custo de
transporte por tonelada de polmero de cada fbrica para cada uma das regies,
correspondendo a uma simplificao na formulao do problema. No entanto, perde em
descrio do processo de produo e distribuio, visto que, agora s existe um arco na
rede que est associados aos dois processos. O valor do fluxo mximo num arco que
substitui outros o mnimo entre os fluxos mximos dos arcos que foram substitudos
por esse arco.

Embora nada tenha sido dito o n nmero 14 na primeira opo ou o n nmero 10 na
segunda opo pode efectivamente ser tambm representativos de um n de armazm,
i.e., de facto se o director de produo no tm a liberdade de definir o nvel de
produo de cada fbrica, visto que, ambas tm que produzir a capacidade mxima,
ento a produo no requerida pelos clientes dirigida para um armazm.

Quadro 2.6 Requisitos dos ns (Figura 2.6)
N. do N Requisito N. do N Requisito
1 -2840 6 4000
2 -2800 7 4500
3 -2600 8 2700
4 -2820 9 3000
5 -2750 10 -390
21
2- INTRODUO MATEMTICA
Quadro 2.7 Especificaes dos arcos (Figura 2.6)
N. do
Arco
N
De
N
Para
Custo
Unit.
Capac.
Arco
N. do
Arco
N
De
N
Para
Custo
Unit.
Capac.
Arco
1 6 1 2900 0 13 8 3 1800 1000
2 6 2 2700 2000 14 8 4 1800 1000
3 6 3 2400 2000 15 8 5 2000 300
4 6 4 2300 2000 16 9 1 0 0
5 6 5 2500 500 17 9 2 2100 1000
6 7 1 2200 3000 18 9 3 2100 1000
7 7 2 2400 2000 19 9 4 2000 1000
8 7 3 2500 1000 20 9 5 1800 2000
9 7 4 2900 200 21 6 10 0
10 7 5 0 0 22 7 10 0
11 8 1 2100 1000 23 8 10 0
12 8 2 1800 2000 24 9 10 0


2.3.2- Problema das dietas
Os alimentos 1, . . . , i, . . . , m com custo unitrio c
i
, disponibilidade d
i
e percentagem a
ij

dos componentes j = 1, 2, ... , n, tem que originam a quantidade s de rao alimentar,
tendo as percentagem do componente j que ser compreendida no intervalo
] p , p [
j
_
j _
.
Determinar a quantidade de cada produto x
i
na mistura, que corresponde ao menor custo
total da rao.

O problema de programao linear para obter o menor custo tem como funo objectivo
o custo total da mistura, sendo as restries a satisfazer: a quantidade s de rao;
percentagem do componente j compreendidas no intervalo respectivo; e finalmente a
22
2- INTRODUO MATEMTICA
limitao da disponibilidade dos alimentos. O problema de programao linear para o
problema das dietas ento descrito como

=
m
1 i
i i
x c min
s.a

=
=
m
1 i
i
s x
j
_
m
1 i
i ij
j _
p s x a p s

=
n , . . . , 2 , 1 j =

i i
d x 0 m , . . . , 2 , 1 i = .
Outro problema semelhante a este problema de encontrar a rao com maior
quantidade para um dos elementos, mas cujo custo seja inferior a um determinado valor.
Fica ou cuidado do leitor escrever a formulao para este ltimo problema.

2.3.3- Financiamento de projectos
Os projectos 1, . . . , i, . . . , n tm valor actual lquido v
i
e requerem respectivamente
para o financiamento o capital a
i
, podendo ser financiados totalmente ao em parte. O
capital total disponvel para financiar os projectos b, pretende-se determinar quanto
deve ser financiado cada um dos projectos de forma a maximizar o valor actual lquido
do investimento de capital investido nos projectos. O problema de programao linear
para obter o financiamento ptimo

=
n
1 i
i i
x v max
s.a

=

n
1 i
i i
b x a
1 x 0
i
.
Caso o financiamento seja na globalidade, a varivel de deciso tem que ser inteira.
23
2- INTRODUO MATEMTICA
2.3.4- Planeamento em aproveitamentos hidroelctricos, curto prazo, modelo LP
Numa aproveitamento hidroelctrico a optimizao da gesto dos recursos consiste em
decidir com racionalidade a gesto da gua disponvel, sujeita a condicionantes que so
impostas quer pelo equipamento, condicionantes tcnicas, quer por razes ecolgicas e
de segurana, condicionantes polticas. As variveis ligadas aos trnsitos de volume de
guas esto relacionadas pelas equaes de balano da gua, complicando o problema.
Consequentemente, para atingir racionalidade na gesto necessrio a considerao de
variveis e restries que ultrapassam a capacidade humana mental de decidir sem um
suporte racional auxiliar para descrever o comportamento do aproveitamento
hidroelctrico. Assim, o recurso simulao computacional do modelo matemtico do
aproveitamento hidroelctrico a gerir e a tcnicas de optimizao, permite gerar um
sistema de informao para o suporte tomada das decises. Considere a figura
seguinte, que representa um aproveitamento hidroelctrico em cascata genrico, com as
albufeiras i = 1, 2, . . ., n e admita que existem centrais hidroelctricas entre albufeiras
consecutivas at ao mar, considerando que o mar o fim da cascata.
v
i
l
i
v
i+1
l
i+1
h
i
central i
reser. i
reser. i+1
G
v
i
l
i
v
i+1
l
i+1
h
i
central i
reser. i
reser. i+1
G

Figura 2.7 Albufeiras e central hidroelctrico para a cascata.

Numa cascata hdrica, a gesto de curto prazo do aproveitamento hidroelctrico decide
o volume de gua armazenado nas albufeiras e o turbinado ou descarregado em cada
24
2- INTRODUO MATEMTICA
perodo, tipicamente de uma hora, durante o horizonte temporal, tipicamente de uma dia
at uma semana, correspondendo este domnio ao ciclo diria at ao semanal dos
diagramas de carga. As equaes de balano de gua numa albufeira e em cada perodo
determinam um n da rede, considerando uma albufeira i no perodo k a equao de
balano de gua

k
i
k
i
k
i
k
1 i
k
1 i
k
i
1 k
i
s t v s t r v + + = + + +

Caso k seja a segunda hora, a equao determina o n indicado na Figura 2.8.



Figura 2.8 N para a equao do balano da gua na segunda hora.
O lado esquerdo da igualdade o valor que toma o volume de gua disponvel na
albufeira i para ser gerido no perodo k, igual ao que transita anterior, k-1, mais o
requisito r (afluncia natural ou um valor pr-especificado) albufeira i no perodo k e
mais o volume que provm da albufeira de montante i-1, turbinado ou descarregado no
perodo k, i.e., considerando o tempo de transito entre albufeiras para o volume
turbinado ou descarregado nulo. O lado direito da igualdade o volume de gua
disponvel na albufeira i para ser gerido no perodo k igual ao volume que transita para a
hora k+1 mais o turbinado e o descarregado para a albufeira de jusante no perodo k.
25
2- INTRODUO MATEMTICA
Na Figura 2.9, est representada a rede para um aproveitamento hdrico em cascata com
trs albufeiras, que ser considerado neste exemplo. Com o fim de ilustrar o exemplo
ser considerado um horizonte s com trs horas. Esta rede uma expanso temporal da
arborescncia relativa primeira hora.
(Mar =>Fim de Cascata)
N raiz

Figura 2.9 Expanso temporal da arborescncia da primeira hora at a terceira hora.
A funo objectivo determinada pela soma do lucro obtido com a explorao de cada
central hidroelctrica. Para obter um modelo linear ser considerada como hiptese que
a queda til permanece constante durante o horizonte temporal. Assim, a expresso do
lucro para a central i no perodo k escrita como
(2)
k
i i
k
i
k
i k
k
i
t p com p lucro = =
26
2- INTRODUO MATEMTICA

sendo o valor econmico da energia elctrica, preo unitrio, no perodo k. Para
obviar a que no fim do horizonte o volume de gua armazenado seja o mnimo normal
impor cotas finais dos reservatrios, ditas cotas objectivo, que corresponde a introduzir
no problema de programao linear restries de igualdade para impor os volumes
finais de gua armazenados nos reservatrios.
k

) t ( p max
k
i
k
i
I
i
K
k
k
= =

1 1

s.a
para K , . . . , 2 , 1 k I , . . . , 2 , 1 i = =
k
i
k
i
k
i
k
1 i
k
1 i
k
i
1 k
i
s t v s t r v + + = + + +


i
k
i i
v v v
i
k
i
t t 0
i
k
i
s s 0
f
i
K
i
v v =
Este problema de programao linear e um problema em redes cuja formulao do
tipo
prazo curto no cascata da gesto a para problema a . s
max


=
u x 0
r x A
x

O vector x dos fluxos um vector cujas coordenadas so os volumes de gua quer em
trnsito, turbinado ou descarregado, quer os volumes de gua armazenados nas
albufeiras. A funo objectivo uma funo linear do volume de gua turbinado, visto
27
2- INTRODUO MATEMTICA
que, a produo de energia elctrica na central hidroelctrica i proporcional ao caudal
turbinado nessa central no perodo k.

Considere o seguinte caso: uma empresa gere um aproveitamento hidroelctrico. O
director de produo decide o nvel de produo de cada uma das trs centrais de uma
cascata com trs albufeiras que termina no mar. O director de produo est a planear
tomar as melhores decises para um horizonte temporal com trs horas. O volume
mximo, mnimo, inicial e final requerido em cada albufeira, o factor de eficincia da
converso, o mximo caudal e as afluncias s albufeiras estimadas para as respectivas
centrais e os preos para a energia elctrica so os indicados no quadro seguinte.

Quadro 2.7 Dados para do aproveitamento hidroelctrico
volume
[hm
3
]
reser. 1 reser. 2 reser. 3
v
9.9 13.5 26.4
o
v 7.9 10.8 21.1
f
v 7.9 10.8 22.1
v 4 5 10

[MWh/hm
3
]
121.03 164.14 181.09
t [hm
3
/h]
1.404 1.188 1.512
hora
1
r
[hm
3
]
2
r
[hm
3
]
3
r
[hm
3
]

[/MWh]
1 1.0 0.0 0.0
14,8
2 0.0 0.0 0.0
16,8
3 0.0 0.0 0.0
15,8

Os quadros que contm os requisitos dos ns e especificao dos arcos so
respectivamente o Quadro 2.8 e o Quadro 2.9 seguidamente indicados.
28
2- INTRODUO MATEMTICA
Quadro 2.8 Requisitos dos ns (Figura 2.9)
N do N Requisito N do N Requisito
1 8.9 6 0.0
2 10.8 7 0.0
3 21.1 8 0.0
4 0.0 9 0.0
5 0.0 10 -40.8

Quadro 2.9 Especificaes dos arcos (Figura 2.9)
N
do
Arco
N
De
N
Para
Lucro
Unit.
Capac.
N
do
Arco
N
De
N
Para
Lucro
Unit.
Capac.
1 1 2 0
9.9] [4.0,
14 5 8 2758 ] 188 . 1 [0.0,
2 2 3 0
9.9] [4.0,
15 6 9 2593 ] 512 . 1 [0.0,
3 3 10 0
9.9] [4.0,
16 7 10 2680 ] 404 . 1 [0.0,
4 4 5 0
13.5] [5.0,
17 8 10 3042 ] 188 . 1 [0.0,
5 5 6 0
13.5] [5.0,
18 9 10 2861 ] 512 . 1 [0.0,
6 6 10 0
13.5] [5.0,
19 1 4 0 ] [0.0,
7 7 8 0
] 4 . 6 2 [10.0,
20 2 3 0
] [0.0,
8 8 9 0
] 4 . 6 2 [10.0,
21 3 6 0
] [0.0,
9 9 10 0
] 4 . 6 2 [10.0,
22 4 7 0
] [0.0,
10 1 4 1791 ] 404 . 1 [0.0,
23 5 8 0
] [0.0,
11 2 3 2033 ] 188 . 1 [0.0,
24 6 9 0
] [0.0,
12 3 6 1912 ] 512 . 1 [0.0,
25 7 10 0
] [0.0,
13 4 7 2429 ] 404 . 1 [0.0,
26 8 10 0
] [0.0,


27 9 10 0
] [0.0,

Este planeamento simples de efectuar sem o recurso a um sistema de suporte
deciso, visto que, o que se pretende planear a gesto de 1 hm
3
de afluncia de gua
primeira albufeira de forma a que este seja armazenado no fim das trs horas na ltima
albufeira, como o preo da energia mais favorvel na segunda hora, a soluo ptima
29
2- INTRODUO MATEMTICA
deve contemplar que o mximo volume de gua possvel seja turbina na segunda hora
nas duas primeiras albufeiras, sendo o lucro total de 4788.
Quadro 2.10 Soluo para o planeamento.
k 1
r
1
v
1
t
1
s
2
r
2
v
2
t
2
s
2
r
3
v
3
t
3
s
o 7.9 10.8 21.1
1 1.0 8.9 0.0 0.0 0.0 10.8 0.0 0.0 0.0 21.1 0.0 0.0
2 0.0 7.9 1.0 0.0 0.0 10.8 1.0 0.0 0.0 22.1 0.0 0.0
3 0.0 7.9 0.0 0.0 0.0 10.8 0.0 0.0 0.0 22.1 0.0 0.0
f 7.9 10.8 22.1

t em percentagem do mximo volume de gua turbinado
k
%
1
t %
2
t
%
3
t
1 0,00% 0,00% 0,00%
2 71,20% 84,18% 0,00%
3 0,00% 0,00% 0,00%

Caso o horizonte temporal seja maior ou existam mais afluncias j no seria to fcil
encontrar a soluo ptima por tentativa. Por exemplo, considere que os dados para o
planeamento eram os do Quadro 2.11.
Quadro 2.11 Dados para do aproveitamento hidroelctrico
volume
[hm
3
]
reser. 1 reser. 2 reser. 3
v
9.9 13.5 26.4
o
v 7.9 10.8 21.1
f
v 7.9 10.8 22.1
v 4 5 10

[MWh/hm
3
]
121 164 181
t [hm
3
/h]
1.404 1.188 1.512
hora
1
r
[hm
3
]
2
r
[hm
3
]
3
r
[hm
3
]

[/MWh]
1 3.5 0.0 0.0
14,8
2 0.0 0.0 0.0
16,8
3 0.0 0.0 0.0
15,8

30
2- INTRODUO MATEMTICA
Ainda, seria fcil concluir que na primeira albufeira h afluncia de gua excessiva, i.e.,
tem que se descarregar 0.096 hm
3
na primeira hora. Como proceder para tomar as
melhores decises em cada hora? Um processo de tentativa e erro permite concluir que
o melhor lucro de 23011 e que o quadro de soluo o seguinte
Quadro 2.12 Soluo para o planeamento.
k 1
r
1
v
1
t
1
s
2
r
2
v
2
t
2
s
2
r
3
v
3
t
3
s
o 7.9 10.8 21.1
1 3.5 9.9 1.4 0.1 0.0 11.2 1.1 0.0 0.0 22.2 0.0 0.0
2 0.0 8.5 1.4 0.0 0.0 11.4 1.2 0.0 0.0 21.9 1.5 0.0
3 0.0 7.9 0.6 0.0 0.0 10.8 1.2 0.0 0.0 22.1 1.0 0.0
f 7.9 10.8 22.1
t em percentagem do mximo volume de gua turbinado
k
%
1
t %
2
t
%
3
t
1 100,0% 94,6% 0,0%
2 100,0% 100,0% 100,0%
3 42,5% 100,0% 65,3%

No entanto, para obter esta soluo j mais significativo o dispndio de tempo e a
dificuldade de antever a soluo ptima. Embora, aps a obteno desta, uma anlise da
soluo recorrendo rede apresentada na Figura 2.9 permite concordar com os valores
apresentados. Neste exemplo os requisitos para os ns passam a ser os indicados
seguidamente no Quadro 2.13
Quadro 2.13 Requisitos dos ns (afluncia )
3 1
1
hm 5 . 3 r =
N do N Requisito N do N Requisito
1 10.4 6 0.0
2 10.8 7 0.0
3 21.1 8 0.0
4 0.0 9 0.0
5 0.0 10 -43.3


31
2- INTRODUO MATEMTICA
2.3.5- Planeamento em aproveitamentos de biogas, curto prazo, modelo LP
Em aterros sanitrios, o biogs produzido uma mistura cujo principais gases so o
metano (40 a 60 %), dixido de carbono (20 a 40 %) e nitrognio (2 a 20 %). A
produo de biogs varia ao longo dos anos, medida que se processa a decomposio
dos resduos. O metano sob o ponto de vista do efeito de estufa um gs cerca de vinte
e uma vezes mais prejudicial que o dixido de carbono. Portanto, mesmo que no seja
aproveitado deve ser queimado. O aproveitamento energtico do biogs para a
converso para energia elctrica conduz valorizao econmica proveniente da venda
da energia elctrica, com preos melhores que os das fontes convencionais, e representa
um benefcio ambiental. A Gesto de Curto-Prazo para converso da energia do biogs
para a forma de energia elctrica consiste em estabelecer um plano possvel para o
funcionamento das unidades, podendo serem tomadas decises em estdios de uma hora
durante um horizonte temporal de um dia a uma semana.

A gesto desta fonte de energia no curto-prazo tem que considerar a variao dos preos
e a emisso de metano estimada recorrendo ao histrico e ou particularmente numa fase
de projecto ao modelo LandGEM da USEPA, http://www.epa.gov, utilizado na Europa.
O comportamento do jogo dos mecanismo tcnico-econmico neste tipo de
aproveitamento pode ser modelizado por um problema de programao matemtica
linear. A funo objectivo o proveito econmico total obtido ao longo do horizonte
temporal calculado por



K k I i
k
k
i k
) d p (
sendo a potncia elctrica na unidade i no estdio k e a potncia elctrica
associada ao consumo prprio de energia elctrico, energia no exportada, no estdio k.
k
i
p
k
d
32
2- INTRODUO MATEMTICA
O consumo do biogs e o nvel de emisso poluente de uma unidade calculado
respectivamente por
k
i ik ik
k
i ik
p ) p ( C + =
k
i ik ik
k
i ik
p b a ) p ( E + =

As restries podem ser limitaes no consumo de biogs em cada estdio, a emisso
poluente limitada ao longo do horizonte temporal para um conjunto de unidades.

req
jk
_
A i
k
i ik
req
jk _
C ) p ( C C
jk

K k , J j

req
n
_
B i K k
k
i ik
req
n _
E ) p ( E E
n



N n
Ainda podem ser imposies no nvel de potncia das unidades: se a unidade estiver em
funcionamento, potncia compreendida entre um valor mnimo e o valor mximo de
potncia possvel; caso contrrio nula, impondo a introduo de variveis inteiras. No
entanto, para exemplo de aplicao, ser admitido que o grupo motogerador tem que
estar em funcionamento durante o horizonte temporal considerado. Portanto, no
necessrio introduzir variveis inteiras. O problema de programao linear para este
planeamento ser escrito como
max



K k I i
k
k
i k
) d p (
s.a
para K k , J j e N n
req
jk
_
A i
k
i ik
req
jk _
C ) p ( C C
jk



req
n
_
B i K k
k
i ik
req
n _
E ) p ( E E
n



i
k
i
i
p p p
33
2- INTRODUO MATEMTICA
Considere um aproveitamento de biogs com um motogerador com a potncia elctrica
mxima de 800 kW, sendo o horizonte temporal de um dia dividido em perodos de
deciso de uma hora. Considere as seguintes restries: manter o aproveitamento em
converso durante as 24 horas; satisfazer o consumo de energia elctrica prprio,
indicado nas colunas d do Quadro 2.11, exportando a restante energia para venda de
acordo com os preos; respeitar a previso de 4000 unidades de volume disponvel de
biogs durante as 24 horas, devendo utilizar em cada hora uma quantidade no inferior a
60 e no superior a 300 unidades de volume, sendo a emisso poluente total no fim das
24 horas no superior a 3500 unidades de massa. Ainda, considere os seguintes dados
que caracterizam respectivamente o consumo de biogs com a operao da unidade e o
nvel de emisso poluente
35 . 0 10
k k
= = 2 . 0 b 45 a
k k
= =

Os preos para a energia elctrica esto indicados nas colunas preo do Quadro 2.14.
A soluo ptima est tambm indicada no Quadro 2.14.
Quadro 2.14 Soluo para o planeamento.
h d fuel emi Preoo p h d fuel emi preoo p
1 21 60 74 0,080 143 10 13 20 290 205 0,105 800 82
2 20 60 74 0,080 143 10 14 21 290 205 0,122 800 95
3 20 60 74 0,080 143 10 15 23 290 205 0,122 800 95
4 19 60 74 0,080 143 10 16 24 290 205 0,122 800 95
5 19 60 74 0,080 143 10 17 24 254 184 0,105 696 71
6 18 60 74 0,080 143 10 18 25 290 205 0,122 800 95
7 17 60 74 0,080 143 10 19 25 290 205 0,122 800 95
8 17 60 74 0,080 143 10 20 24 211 160 0,105 575 58
9 17 60 74 0,080 143 10 21 24 211 160 0,105 575 58
10 18 60 74 0,080 143 10 22 23 211 160 0,105 575 58
11 18 60 74 0,080 143 10 23 22 211 160 0,105 575 58
12 19 290 205 0,105 800 82 24 21 211 160 0,105 575 58
total 950 1014 2371 191 total 4000 3229 10743 1107

34
2- INTRODUO MATEMTICA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
preo consumo exportao

Figura 2.10 Preos, consumo de metano, energia elctrica exportada.

Observe que este planeamento, suportado por um problema de programao linear,
necessita de dados que so estimados, atendendo ao facto do horizonte temporal ser de
curto prazo o problema geralmente tratado em mbito determinstico, i.e., os valores
mdios so considerados.
35
3- PROGRAMAO LINEAR (PL)
















3- PROGRAMAO LINEAR (PL)
O problema de programao linear (PL) expresso em programao matemtica pela
minimizao (ou maximizao) de uma funo linear, que se designa por funo
objectivo, sujeita a restries, normalmente expressas na forma de inequaes. O
problema PL ser formulado como se segue:
( )
( )
( )
de) negativida no de s (restrie N , . . . 2, 1, i , u x 0
b x a ... x a x a
. .
. .
. .
b x a . . . x a x a
b x a . . . x a x a
: a sujeito
x c ... x c x c z ) mx min(
i i
M N MN 2 M2 1 M1
2 N 2N 2 22 1 21
1 N 1N 2 12 1 11
N N 2 2 1 1
=
+ + +
+ + +
+ + +
+ + + =

O uso de restries de igualdade mais conveniente para o estudo da metodologia que
ser apresentada neste texto para soluo do problema PL. Por isso, convm converter
as inequaes que expressam as restries em equaes, introduzindo no problema
novas variveis, tambm no negativas, designadas por variveis auxiliares ou de
desvio. Esta converso conduz a uma formulao do problema que se convencionou
chamar forma cannica ou normalizada.
36
3- PROGRAMAO LINEAR (PL)

O problema na forma cannica descrito como se segue:
M N , . . . 1, N N, , . . . 2, 1, j , u x 0
b x ) ( - x a ... x a x a
. .
. .
. .
b x ) ( - x a . . . x a x a
b x ) ( - x a . . . x a x a
: a sujeito
x 0 . . . x 0 x c . . . x c x c z ) mx min(
j j
M M N N MN 2 M2 1 M1
2 2 N N 2N 2 22 1 21
1 1 N N 1N 2 12 1 11
M N 1 N N N 2 2 1 1
+ + =
= + + + +
= + + + +
= + + + +
+ + + + + + =
+
+
+
+ +

ou ainda
( ) j i M , . . . 1, j M; , . . . 1, i , 0 a , 1 a , 0 c
com
M N , . . . 1, N N, , . . . 2, 1, j , u x 0
b x a . . . x a x a . . . x a x a
. .
. .
. .
b x a . . . x a x a . . . x a x a
b x a . . . x a x a . . . x a x a
: a sujeito
x c . . . x c x c . . . x c x c z ) mx min(
j N i, i N i, i N
j j
M M N M N M, 1 N 1 N M, N MN 2 M2 1 M1
2 M N M N 2, 1 N 1 N 2, N 2N 2 22 1 21
1 M N M N 1, 1 N 1 N 1, N 1N 2 12 1 11
M N M N 1 N 1 N N N 2 2 1 1
= = = = =
+ + =
= + + + + + +
= + + + + + +
= + + + + + +
+ + + + + + =
+ + +
+ + + +
+ + + +
+ + + +
+ + + +

Sendo
M m= nmero de restries
M N n + = nmero de variveis, incluindo as principais e auxiliares
Atendendo a que , poderemos optar por um dos operadores, no caso
vamos optar pelo de minimizao. O problema de PL estudado neste texto est na
seguinte forma cannica:
( z mx z min = )
37
3- PROGRAMAO LINEAR (PL)

n , . . . 2, 1, j , u x 0
b x a . . . x a x a
. .
. .
. .
b x a . . . x a x a
b x a . . . x a x a
: a sujeito
x c ... x c x c z min
j j
m n mn 2 m2 1 m1
2 n 2n 2 22 1 21
1 n 1n 2 12 1 11
n n 2 2 1 1
=
= + + +
= + + +
= + + +
+ + + =


Ou na forma matricial como se segue:
u x 0
b Ax
cx

=


s.a.
min

Em que A uma matriz , com n x m n m< , dos coeficientes das equaes associadas s
restries; x um vector com n coordenadas que so as variveis de deciso; 0 e u
vectores colunas em que as coordenadas so os valores limite das variveis de deciso; c
vector linha, dos coeficientes da funo objectivo; b vector coluna dos valores impostos
para requisitos determinados pelas restries. Nesta forma cannica, o problema PL por
ser um problema de minimizao permite que a funo objectivo seja interpretada como
um custo. Cada coordenada do vector c um coeficiente de custo associado respectiva
coordenada do vector x.

No texto seguinte ser estudado os procedimentos a seguir para a resoluo de um
problemas de programao linear (PL) que esteja formulado de acordo com forma
cannica. Iniciaremos com alguns tpicos matemticos, importantes para o estudo do
problema PL, apresentando de seguida o mtodo simplex.
38
3- PROGRAMAO LINEAR (PL)


3.1- Propriedades do espao vectorial euclidiano

Neste subcaptulo ser recordado algumas noes fundamentais. Denomina-se
n
R ao
espao Euclidiano n-dimensional, cuja norma ou comprimento do vector
n
R x
calculada por
2
n
2
2
2
1
x . . . x x + + + = x . Um vector cuja norma 1 = x , dito vector
unitrio.

Consideremos dois pontos distintos e do espao
1
x
2
x
n
R e o conjunto de escalares
R , o conjunto de combinaes lineares dos pontos e usando os escalares do
conjunto definem o conjunto , dos pontos x que obedecem a:
1
x
2
x
^


( ) { }. , 1 :
2 1
^
+ = = x x x x

Se ento o conjunto define uma linha que passa pelos pontos e na
direco do primeiro ponto para o segundo. Se
1
R =
^

1
x
2
x
{ } = 0 : o conjunto define
uma semi-recta fechada em e com direco definida pelo vector . Se
o conjunto define um segmento de recta fechado com os pontos
extremos e . Este segmento de recta indicado por .
^

1
x
1
x x
2

{ 1 0 : = }
^

1
x
2
x ] , [
2 1
x x
Um ponto um ponto extremo do conjunto convexo X se no pertence a
qualquer segmento de recta que una dois outros pontos distintos quaisquer de X, ou dito
de outra maneira, um ponto extremo de X no pode ser obtido pela combinao convexa
de quaisquer outros dois pontos distintos de X.
X x
Um conjunto
n
R X um conjunto convexo se para quaisquer pontos e
pertencentes a X, o conjunto dos pontos do segmento de recta fechado de extremos e
um subconjunto de X.
1
x
2
x
1
x
2
x

39
3- PROGRAMAO LINEAR (PL)

O termo fechado (semi-recta fechada, segmento de recta fechado) significa que os
pontos extremos tambm pertencem ao conjunto dos pontos. Se nas definies de ,
expressas acima, substituirmos o smbolo por <, usa-se a designao de abertos
(semi-recta aberta, segmento de recta aberto), ou seja, os pontos extremos no
pertencem ao conjunto de pontos considerados. Dado um ponto
n 0
R x e um escalar
, o conjunto dos pontos 0 >
n
R x cuja distncia ao ponto inferior a e que se
indica da forma
0
x
( ) { } < =

0 n 0
- , R : B x x x x x denominado bola aberta com centro
e raio .
0
x

Um ponto x dito interno ao conjunto
n
R X se, existir uma bola aberta de centro em
x e raio includa em X, isto , se existir 0 > tal que ( ) X B

x . Um ponto x dito
externo ao conjunto
n
R X se, existir uma bola aberta de centro em x e raio tal que
. Qualquer ponto x que no interno nem externo do conjunto

( ) =

X B x
n
R X
dito ponto da fronteira de X. Um ponto extremo de um conjunto convexo um ponto da
fronteira desse conjunto, mas nem todos os pontos da fronteira so extremos, como
ilustra a figura seguinte:


Figura 3.1 Ilustrao do conceito de ponto extremo.
40
3- PROGRAMAO LINEAR (PL)

Um conjunto dito aberto se todos os pontos do conjunto so internos ao conjunto. Um
conjunto dito fechado se os pontos da fronteira do conjunto pertencem ao conjunto.

Um conjunto
n
X R dito limitado se existe algum 0 > tal que o conjunto X est
includo no conjunto , isto , existe ( ) 0 B

( ) 0 B

tal que ( ) 0 B X

.

Uma funo f no conjunto
n
R X contnua, se f(x) existe para qualquer , e se
para qualquer e 0
X x
0 > X x
0
> tal que ( ) ( ) <
0
f f x x sempre que
( ) [ ]
n 0
R B X

x x .

Uma funo f convexa num conjunto convexo
n
R X se, para quaisquer dois pontos
e pertencentes a X e um escalar
1
x
2
x tal que 1 0 for vlido
( ) [ ] ( ) ( ) ( )
2 1 2 1
f f 1 1 f x x x x + + , a figura seguinte ilustra uma funo real de
varivel real convexa.

Figura 3.2 Ilustrao de uma funo convexa.
Uma funo f cncava num conjunto convexo
n
R X se para quaisquer dois pontos
e pertencentes a X e um escalar
1
x
2
x tal que 1 0 for vlido
41
3- PROGRAMAO LINEAR (PL)

( ) [ ] ( ) ( ) ( )
2 1 2 1
f f 1 1 f x x x x + + , a figura seguinte ilustra uma funo real de
varivel real cncava.

Figura 3.3 Ilustrao de uma funo cncava.
Recordamos, em seguida, algumas preposies importantes para o estudo que ser feito
da resoluo de problemas de programao PL na sua formulao cannica.

Preposio 3.1
Qualquer funo que contnua num conjunto
n
R X fechado e limitado
limitada em X.

Preposio 3.2
Qualquer funo que contnua num conjunto
n
R X fechado e limitado tem
um valor mximo e mnimo em X.

Recordamos, em seguida, os conceitos combinao convexa, hiperplano e hiper espao
limitado por um hiperplano.

42
3- PROGRAMAO LINEAR (PL)

Uma combinao linear de um conjunto finito de pontos { }
n
m 1
R de ..., , x x , dada por
, chamada combinao convexa se os escalares e .

=
m
1 i i i
x c 0 c
i


=
=
m
1 i i
1 c

Dado um conjunto
n
R X , o invlucro do conjunto X definido pela unio de todas as
combinaes lineares convexas de pontos dos subconjuntos finitos de X.

O conjunto de pontos definido por ( ) { } w x , R : w , H
n
= = d x x d , designado por
hiperplano, sendo d um vector pertencente a
n
R normal ao hiperplano,
n
R x um
ponto do espao e w um escalar. Desenvolvendo w x = d tem-se:
w x d ... x d x d
n n 2 2 1 1
= + + +
pelo que w est relacionado com a distancia do hiperplano origem.

Associados com a definio de um hiperplano ( ) w , H d existem dois conjuntos,
denominados semi-hiperespaos fechados, definidos por:

( ) { } w x , R : w , H
n
L
= d x x d semi-hiperespao fechado inferior
e
( ) { } w x , R : w , H
n
U
= d x x d semi-hiperespao fechado superior.

Um politopo por definio a interseco de um nmero finito de semi-espaos
fechados. E um poliedro por definio um politopo limitado. Esta definio merece
uma observao, i.e., no concordante o seu uso, alguns definem estes dois conceitos
43
3- PROGRAMAO LINEAR (PL)

ao contrrio do que se fez aqui, levantando inconvenientes e obrigando a esclarece o
que se entende pelos conceitos no texto.
Um ponto extremo de um politopo designa-se vrtice. Uma aresta um segmento de
recta fechado que limita um politopo. Estes conceitos so utilizados para enunciar as
seguintes preposies sobre poliedros e politopos.

Preposio 3.3
O nmero de vrtices e arestas de um poliedro finito.

Preposio 3.4
O nmero de vrtices de um poliedro no vazio diferente de zero.

Preposio 3.5
O invlucro convexo dos vrtices de um politopo no vazio o politopo.

Preposio 3.6
Num poliedro convexo fechado qualquer ponto do poliedro pode ser
representado como uma combinao convexa dos pontos extremos desse
poliedro.

Feita esta abordagem de conceitos, para apresentar o mtodo simplex vamos fazer a
caracterizao do domnio das solues possveis e a identificao neste conjunto das
solues bsicas possveis, das quais ser pelos menos uma ptima.

44
3- PROGRAMAO LINEAR (PL)

3.2- Caracterizao do domnio das solues possveis

Nesta seco estudaremos a caracterizao do domnio das solues possveis e dentro
destas solues estudaremos as solues bsicas possveis com o objectivo de
determinar a melhor, i.e., estudaremos como seleccionar entre a infinidade de solues
possveis do problema aquelas que so solues bsicas e dentro destas pelo menos uma
ptima. Esta a abordagem do mtodo que ser apresentado posteriormente dito de
mtodo do Simplex. O domnio das solues possveis para a PL descrito como se
segue { u x 0 Ax x } = = , b : Q . Neste estudo assumimos que o problema tem pelo
menos uma soluo possvel, i.e., Q . Esta hiptese no restritiva, uma vez que,
tanto para problemas PL, como de programao em redes, podemos introduzir variveis
artificiais que tornam o conjunto de solues Q no vazio, claro num espao de maior
dimenso, i.e., com maior nmero de variveis. Partindo da hiptese de que o problema
tem solues possveis, , vamos mostrar que existe um ponto extremo de Q que
ptimo.
Q

Preposio 3.7
Existe um ponto extremo de Q que ptimo para o problema PL.
Prova: Primeiro, vamos provar que o domnio das solues possveis Q um poliedro
finito. Para isso, considere-se o conjunto de restries para o problema, escrito na forma
matricial, , o qual pode ser reescrito na forma: b = x A

b
b
x A
x A
(3.1)
De igual modo (restries de no negatividade) pode ser reescrito na forma: u x 0

0 x
u x
(3.2)
45
3- PROGRAMAO LINEAR (PL)

De acordo com o exposto anteriormente, 3.1 e 3.2 definem a intercepo de semi-
hiperespaos fechados, sendo Q a interseco desses semi-espaos, conclui-se que Q
um politopo. Ainda, atendendo a 3.2, o conjunto Q limitado, ficando assim provado
que Q um poliedro.

A funo objectivo, c x, linear portanto contnua em Q. Pelas preposies anteriores
3.1 a 3.2 c x limitada e toma um valor mnimo que designaremos por num ponto
. Pela hiptese e pelas preposies 3.3 a 3.5 o conjunto Q tem um nmero
finito no nulo de vrtices, que designaremos pelos elementos do conjunto { },
sendo Q o invlucro convexo desses vrtices. Ento existe um vector tal que

z
Q

x Q
m 1
..., , x x
m
R d

=
m
1 i
i i
d x x , onde

=
=
m
1 i
i
1 d e . 0 d
Seja o conjunto e , i.e., o conjunto dos ndices i para os quais no
nulo e . Ento
{ 0 d : i J
i
> = }
i
d
J

= =
J i
i
J i
i i
1 d om c d x x .
Por contradio, vamos provar que pelo menos um ponto extremo de Q ptimo.
Seja , recordar que, o mnimo da funo objectivo em Q. Para qualquer
tal que , ento . Seja
i
x

= z x c

z x c
i
x J i

z x c
i i
J k tal que , vir:

> z cx
k
( ) ( ) ( )
{ }
( )
{ } { }




=






= = + > +
+ = = = =
k J i
1
J i
i i k
k J i
i k k
k J i
i i k k
J i
i i
J i
i i
z z d z d z d z d d
d d d d z
3 2 1
x c
x c x c x c x c x c

O que uma contradio, i.e., para qualquer J i , .

= z
i
x c

46
3- PROGRAMAO LINEAR (PL)

Da prova desta preposio pode tambm concluir que se existem dois pontos extremos
ptimos ento um ponto que pertena combinao convexa desses dois pontos
tambm ptimo. Em geral se existirem vrios pontos extremos ptimos os pontos que
pertenam combinao convexa desses pontos so ptimos. Tambm se conclui que
pelo facto de existir um ponto extremo que ptimo ento os pontos ptimos no
podem ser pontos interiores ao conjunto Q a no ser que todos os ponto de Q sejam
ptimos. Seja ento A uma matriz com n x m n m< e caracterstica rank( ) .
Ento, atravs de uma permuta de colunas da matriz A, a matriz pode ser particionada
na seguinte forma , onde B uma matriz quadrada no singular. Seguindo a
mesma organizao de forma a tornar os produtos matriciais e as igualdades e
desigualdades compatveis com a partio podem escrever-se os vectores x e u de
acordo com a partio, i.e., vamos rescrever as seguintes igualdades e desigualdades
matriciais:
m = A
[ N B A : = ]
b x N x B b x A = + =
N B

As coordenadas do vector x ligadas com as colunas da matriz B, i.e., , so chamadas
variveis bsicas; e as restantes, ligadas com as colunas da matriz N, i.e., , so
chamadas variveis no bsicas. Uma soluo bsica possvel, tambm dita de bsica
admissvel, do problema de PL por definio uma soluo tal que:
B
x
N
x
{ } i o todo para u , 0 x
e
Q ] : [
N
i
N
i
N B

x x

Por outras palavras, cada varivel no bsica ou tem valor igual a zero ou tem valor
igual ao seu valor mximo para a varivel do problema a que esta associada.

47
3- PROGRAMAO LINEAR (PL)

Vamos demonstrar agora, que um ponto extremo de Q uma soluo bsica possvel do
problema PL, ou seja, vlida a seguinte preposio.

Preposio 3.8
Um ponto extremo de Q uma soluo bsica admissvel do problema PL.
Prova: Seja um ponto extremo de Q. E sejam as coordenadas deste ponto
ordenadas da seguinte forma para para
, ou seja, primeiramente so escolhidas na ordenao as variveis que no
tm valor igual aos extremos e em seguida as que tm valor igual aos extremos. As
colunas de A so reordenadas de modo a corresponder a esta ordem das coordenadas de
. Vamos supor por hiptese que as primeiras k colunas de A so linearmente
dependentes e, em consequncia, vamos provar uma contradio o que permite concluir
que essas colunas formam um sistema de vectores linearmente independentes.
Atendendo hiptese existem escalares

x

i
x
i i
u x 0 < <

{
i i
u , 0 x e k , ... , 1 i =

}
n , ... , 1 k i + =

x
i
, nem todos nulos, tal que:
( ) 0 A =

=
=
k i
1 i
i
i
Seja 0
i

=


| |
x
min
i
i
k i 1
1
e

=


| |
x u
min
i
i i
k i 1
2

Seleccionando tal que ( )
2 1
, min 0 < < . Ento:
para
i i i
u x 0 < <

k i 1 (3.3)
Seja o vector n-dimensional dado por [ ] 0 ..., , 0 , ... ,
k 1
, e seja:
x x =

1
e x x + =

2
por (3.3), e . u x 0 < <
1
u x 0 < <
2
48
3- PROGRAMAO LINEAR (PL)

Mais ainda, devido hiptese de dependncia linear e ao facto de para
. Ento .
0
i
=
( ) 0 A A = = +

=
=
i , 1 k i
n i
1 i
i
b e b
2 1
= = = =

Ax Ax Ax Ax
Como so solues possveis, sendo diferentes entre si e diferentes de .
E como
2 1
e , 0 x x

x
2 1
2
1
2
1
x x x + =

, tal contradiz a hiptese de que um ponto extremo e


prova que as primeiras k colunas de A no podem ser linearmente dependentes.

x
Ainda, como m a caracterstica da matriz A e sendo m k , ento B constitudo
pelas primeiras k colunas de A e pelas k m colunas de A que constituem um sistema
de m colunas linearmente independentes. Esta seleco sempre possvel, visto que, a
caracterstica de A igual a m por hiptese.

Preposio 3.9
Dado um problema de PL, se existe uma soluo possvel, ento existe uma
soluo bsica possvel. Se existe uma soluo ptima possvel, ento existe
uma soluo ptima bsica possvel.
Prova: Se existe uma soluo possvel, ento o poliedro Q . Logo pela preposio
(3.7) existe um ponto extremo de Q que um ponto ptimo para o problema PL. Pela
preposio (3.8), um ponto extremo uma soluo bsica possvel.
A preposio (3.9) conhecida como teorema fundamental da programao linear. A
preposio (3.9) permite limitar o estudo para a escolha da soluo ptima do problema
PL s solues bsicas possveis, visto que, pela preposio (3.7), uma delas ptima.
O nmero mximo de bases possveis para um problema com m restries de igualdade
linearmente independentes e n variveis no superior a
)! m n ( ! m
! n
m
n

.
49
3- PROGRAMAO LINEAR (PL)

Com cada base est associado um nmero de solues bsicas, nem todas
necessariamente admissveis, igual a m
2
. Portanto como sabemos que as solues
bsicas possveis so os pontos extremos do politopo Q e so em nmero finito, resulta
que se soubermos determinar as solues bsicas possveis podemos por fora bruta
encontrar a ptima. Fora bruta aqui significa determinar todos os pontos extremos de
Q, o que apresenta uma ineficcia considervel. Posteriormente, escolhendo o ponto
para o qual a funo objectivo tem o menor valor fica identificado o ponto ptimo. O
mtodo do simplex faz melhor, vai progredir de forma racional entre pontos extremos
de Q at concluir que encontrou o ponto para o qual a funo objectivo tem o menor
valor, i.e., tem um critrio de optimilidade que termina o algoritmo. Como o nmero de
pontos extremos de Q finito o mtodo do simplex um algoritmo perfeito na
verdadeira acepo da palavra, terminando aps um nmero de iteraes fixo.


3.3- Mtodo primal simplex

O mtodo primal simplex pode ser considerado como um caso particular dos algoritmos
conhecidos por mtodo da direco admissvel de melhoria do valor da funo
objectivo. Uma direco d diz-se admissvel no ponto y possvel se existir tal que
admissvel para qualquer
0 >
d y + 0 com o 0 > .

Para o problema de minimizao uma direco d designa-se por direco admissvel de
melhoria do valor da funo objectivo no ponto y, se d uma direco admissvel e a
derivada direccional da funo objectivo cx segundo d no ponto y negativa o que
significa que segundo esta direco existe um intervalo onde a funo objectivo
50
3- PROGRAMAO LINEAR (PL)

decresce. Dadas as definies acima, o mtodo geral da direco admissvel pode ser
descrito como se segue:

Algoritmo (ALG) 3.1 Mtodo Geral da Direco Admissvel

Passo 0 Iniciao.
Considere um ponto soluo possvel para o problema PL, inicie a zero
0
y
o ndice k da iterao, i.e., faa a atribuio, 0 k .

Passo 1 Determinao de uma Direco Admissvel de melhoria do valor da
Funo Objectivo.
Determine d uma direco admissvel de melhoria do valor da funo
objectivo no ponto . Se d no existe, ento o algoritmo termina e o
ponto corrente , o ponto soluo. Caso contrrio, o algoritmo
prossegue para o passo 2.
k
y
k
y

Passo 2 Obteno de um novo ponto.
Procurar tal que:

( ) ( ) { } Q : min
k k
0
k
+ + = +
>

d y d y c d y c .
Isto , vamos procurar o passo para a translao de segundo vector
d, de modo que pertence ainda ao conjunto Q das solues
possveis e que seja a melhor soluo para o problema de pesquisa em
linha segundo esta direco. Encontrado , actualizamos o ponto para

k
y
d y +
k

51
3- PROGRAMAO LINEAR (PL)

d
k 1 k +
+ = y y nova soluo corrente e incrementamos o contador de
iteraes k de um, 1 k k + .
O algoritmo prossegue para o passo 1.

O mtodo primal simplex pois uma especializao do mtodo geral da direco
admissvel em que , para cada k, um ponto extremo do domnio das solues
possveis o poliedro Q. Por isso, frequentemente, o mtodo simplex chamado mtodo
do ponto extremo. A direco d ter de ser seleccionada de modo que a soluo
encontrada no Passo 2 resulte num novo ponto extremo. Dada uma soluo bsica
possvel para o problema PL, considere a partio das matrizes e a partio de c, x e u
de forma compatvel em componentes bsicos e no bsicos
k
y
] | [ e , ] | [ , ] | [ , ] | [
N B N B N B
u u u x x x c c c N B A = = = = .
O problema PL ser escrito como se segue:

(3.4)
a . s
min
N N B B
x c x c +
(3.5) b Nx Bx = +
N B
(3.6)
B B
u x 0
(3.7)
N N
u x 0

Nesta forma, o problema PL permite interpretar que cada coordenada do vector c
B
um
coeficiente de custo associado respectiva varivel bsica coordenada do vector x
B
; e
que cada coordenada do vector c
N
um coeficiente de custo associado respectiva
varivel no bsica coordenada do vector x
N
.

Como B por hiptese um matriz no singular, por (3.5) resulta
) (
N 1 B
Nx b B x =

.
52
3- PROGRAMAO LINEAR (PL)

Substituindo este resultado em (3.4) e (3.6) obtemos o seguinte problema equivalente:

( )
) 10 . 3 (
) 9 . 3 ( b . a . s
) 8 . 3 ( min
N N
B N 1 1
N 1 B N 1 B
u x 0
u x N B B 0
x N B c c b B c


+



Nesta forma, houve no problema PL uma reduo do nmero de variveis, visto que,
nesta forma as variveis de deciso so s as no bsicas. O vector dos coeficientes das
variveis no bsicas dito de vector dos custos reduzidos. N B c c
1 B N

Hiptese: Assumimos para simplificar o estudo que . Tal


corresponde a assumir o que frequentemente se designa por hiptese da no
degenerncia, corresponde a afirmar que as coordenadas bsicas no se encontram com
os valores limites, como tem que acontecer com as coordenadas no bsicas.
B N 1 1
u Nx B b B 0 < <


Consideremos o conjunto de direces , no
espao no bsico. No estudo do algoritmo primal simplex limitaremos a nossa ateno
s direces deste conjunto D com o objectivo de obter sempre uma soluo bsica
possvel.
} - , ... , - , - , , ... , , { D
m n 2 1 m n 2 1
= e e e e e e

O vector uma direco admissvel se , i.e., a varivel de deciso no
bsica inferior ao valor mximo admissvel e ser uma direco admissvel se
, i.e., a varivel de deciso no bsica superior ao valor mnimo
admissvel.
i
e
N
i
N
i
u x <
N
i
x
i
e
0 x
N
i
>
N
i
x

53
3- PROGRAMAO LINEAR (PL)

Recorrendo derivada direccional no espao no bsico mostraremos como escolher
uma direco admissvel de melhoria do valor da funo objectivo. A derivada de g(x)
segundo no ponto y por definio calculada como v
( )
( ) ( )
t
g t g
lim g D
0 t
y v y
y
v
+
=
+


recorrendo ao gradiente a frmula para o clculo desta derivada direccional seguinte:
( ) ( ) v y y
v
g g D =

Assim para o problema (3.8) a (3.10)
( ) ( )
N 1 B N 1 B N
g x N B c c b B c x

+ =
portanto
( ) N B c c y
1 B N
g

=
independente do ponto em que calculado como seria de esperar. A procura de uma
direco admissvel de entre as direces do conjunto D, para melhorar o valor da
funo objectivo, ser segundo o vector e direco admissvel de melhoria da funo
objectivo se e
i
N N
i i
u x < ( ) 0
i
< N B c c
1 B N i N N
ou segundo se e e
i i
u x <
( ) 0
i
N B c c
1 B N
>

.
Para s solues bsicas possveis, { }
N
i
N
i
u , 0 x , as condies que nos permitem
escolher direco admissvel de melhoria da funo objectivo so dadas por
( )
( )

> =
< =

0 e u x :
0 e 0 x :
i
1 B N N
i
N
i
i
i
1 B N N
i
i
N B c c e
N B c c e
.
54
3- PROGRAMAO LINEAR (PL)

Agora, s falta descrever como estabelecer a metodologia para o passo 2 do algoritmo
anterior, obteno de uma nova soluo. Como j conhecido a direco admissvel de
melhoria da funo objectivo no ponto determinada por
N
x
i
e sendo

=
=

u x se , 1
0 x se , 1
N
i
N
i
N
i
falta determinar um translao do ponto corrente segundo o vector da direco
admissvel de melhoria da funo objectivo.

O problema a resolver para estabelecer a metodologia para o passo 2 tem s uma
varivel de deciso, a amplitude do passo, e ento descrito como se apresenta de
seguida
( ) ( ) ( )
B 1 B
N
i
N
i
N
i i
1 B N
i j
N
j j
1 B N 1 B
0
) i (
u x 0 a . s
x x min
u N B x 0
N B c c N B c c b B c

+
+ + +


>


ou seja eliminando a presena das constantes na funo objectivo
( )

>
i
1 B N
0
min N B c c
N
i
N
i
u x 0 a . s + (3.11)
(3.12)
B 1 B
) i ( u N B x 0

de salientar que, devido linearidade da funo ( )
N
g x , qualquer incremento em
resulta num decrscimo no valor da funo objectivo. Assim, interessa-nos fazer o
maior possvel desde que satisfaa (3.11) e (3.12). Se D d , ento se nos deslocarmos
segundo a direco d pode eventualmente acontecer que alguma varivel assuma
valores fora dos limites,
j
x
j j
u x 0 . A primeira varivel para a qual isto ocorra,
designaremos por varivel de bloqueio. Seja:

55
3- PROGRAMAO LINEAR (PL)

} u x 0 : { mx
N
i
N
i
0
1
+ =
>
,
e
} ) i ( : { mx
B 1 B
0
2
u N B x 0 =

>
.

Supondo , ento a varivel de bloqueio a coordenada no bsica
correspondente direco d , e as variveis bsicas continuam a ser bsicas. Se
, ento adicionando a o incremento
2 1

i
e =
2 1
>
N
x d
2
foramos alguma varivel bsica
ou a ser igual ao seu valor mnimo ou a ser igual ao seu valor mximo. Tal obriga a
refazer a partio da matriz A, visto que, esta varivel bsica passa a no bsica e a
varivel no bsica corresponde direco d passa a bsica. Obtemos assim uma nova
soluo bsica possvel. Com a formulao apresentada, podemos construir o algoritmo
primal simplex para os problemas de programao linear como se apresenta em seguida.


ALG 3.2 Algoritmo Primal Simplex

Passo 0 Iniciao
Seja uma soluo bsica possvel, associada com
partio
] | [
N B
x x
[ ] N B A | = .
Passo 1 Avaliao
Seja
( ) { }
( ) { } 0 e u x : i
0 e 0 x : i
i
1 B N N
i
N
i 2
i
1 B N N
i 1
> = =
< = =

N B c c
N B c c


56
3- PROGRAMAO LINEAR (PL)

Em que o conjunto dos das variveis no bsicas que tm valor nulo e a
respectiva coordenada do vector do custo reduzido
1

( ) 0
i
1 B N
<

N B c c e o
conjunto dos ndices das variveis no bsicas que tm valor mximo e a
respectiva coordenada do vector do custo reduzido
2

( ) 0
i
1 B N
>

N B c c .

No ptimo se a coordenada do vector de custo reduzido for negativa a respectiva
varivel no bsica tem que estar no valor mximo, caso contrrio existe
hiptese de melhoria da funo objectivo por aumento desta varivel. Ainda, se
uma coordenada do vector custo reduzido for positiva a respectiva varivel no
bsica tem que estar no valor nulo, caso contrrio existe hiptese de melhoria da
funo objectivo por diminuio desta varivel.

A condio de unio =
2 1
, termina o algoritmo e o ponto ptimo o
ponto corrente . Caso contrrio, o algoritmo prossegue com a
seleco de um , sendo k um ndice que identifica uma varivel no
bsica que por alterao do seu valor permite uma melhoria do valor da funo
objectivo. Ento o ser determinado por
] | [
N B
x x x =
2 1
k




2
1
k se , 1
k se , 1
O significado deste indicar se a coordenada no bsica k vai ser
incrementada ao decrementada, como se constata no passo 3, seguinte, de
actualizao. Caso , a coordenada no bsica k vai ser incrementada. Caso
, a coordenada no bsica k vai ser decrementada.
1 =
1 =

57
3- PROGRAMAO LINEAR (PL)

Passo 2 Determinao do Passo
A coordenada no bsica k vai ser actualizada de acordo com logo o
mximo valor que pode tomar
+
N
k
x
. As coordenadas bsicas so actualizadas
de acordo com
N
k
u


) k (
1 B
N B x
fazendo ( ) tem que se verificar ) k (
1
N B y

= y x
B

B
j j
B
j
u y x 0 isto
B
j j j
B
j
u | y | ) y ( x 0
Ento se o = ) y (
j
o mximo valor que pode tomar dado por
| y |
x
j
B
j
, se
o mximo valor que = ) y (
j
pode tomar dado por
| y |
x u
j
B
j
B
j

.

Finalmente, h que escolher um que esteja de acordo com o que se escreveu
anteriormente. Pelo que o passo 2 consiste em calcular
( ) k y
1
N B

=
e
( )

=
=

,
| y |
x
min
j
B
j
y
m j 1
1
j
,
( )

=
=

,
| y |
x u
min
j
B
j
B
j
y
m j 1
2
j
.
Finalmente calcular o passo { }
N
k 2 1
u , , min = .

Passo 3 Actualizao
O valor da coordenada de x correspondente coluna k da matriz no
bsica actualizado de acordo com
+
N
k
N
k
x x
58
3- PROGRAMAO LINEAR (PL)

e as coordenadas bsicas so actualizadas de acordo com
y x x
B B
.
Se , i.e., igual ao valor mximo da coordenada no bsica k o
algoritmo prossegue para o passo 1. Caso contrrio prossegue com o passo 4.
N
k
u =

Passo 4 Substituio e actualizao da base
Consideremos os conjuntos

( ) { } 0 x e y : j
B
j j 3
= = = e ( ) { }
B
j
B
j j 4
u x e y : j = = =

Em que
3
o conjunto dos ndices das variveis bsicas que tiveram
decremento no seu valor no passo 3, tendo aps esse passo valor nulo; e
o conjunto dos ndices das variveis bsicas que tiveram incremento no seu
valor no passo 3, tendo aps esse passo valor mximo. Seleccionar um
, sendo i o ndice de uma coluna da matriz B, substituir na matriz
B e a coluna B(i) pela coluna N(k) e na matriz N a coluna N(k) pela B(i). O
algoritmo prossegue para o passo 1.
4

4 3
i

Se para cada iterao a convergncia num nmero finito de iteraes garantida.
Pois, o nmero de vrtices do poliedro finito, e em cada iterao selecciona-se um
vrtice a que corresponde um melhor valor da funo objectivo.
0 >

59
3- PROGRAMAO LINEAR (PL)

Uma caracterstica importante deste algoritmo a de convergir para uma soluo ptima
mesmo que a hiptese de no degenerncia no se verifique. A no verificao desta
hiptese, s implica numa prova do algoritmo com maior elaborao matemtica.

Se , simplesmente dever ser feita uma nova partio de A de modo a obter uma
nova matriz B e continuar com aplicao do algoritmo. A nova matriz B corresponde ao
mesmo ponto extremo, de modo a que nenhum progresso feito no sentido de melhorar
o valor da funo objectivo.
0 =

A nica dificuldade que poder suceder ao fim de algumas iteraes, a mesma matriz
B reaparecer com 0 = . Neste caso o algoritmo repete as iteraes, por isso, diz-se que
o mtodo entrou em ciclo (cycling). Felizmente, so raras as situaes em que os
problemas lineares reais entram em ciclo. Contudo, quando isso acontece, pequenas
alteraes no cdigo evitam a entrada em ciclo. Algumas tcnicas simples tm sido
criadas para evitar a entrada em ciclo. Est fora do objectivo deste texto a abordagem
destas tcnicas.

Note-se que os dados necessrios implementao do algoritmo primal simplex so, os
dados originais do problema de programao linear (i.e., c, u, b e A). Mais ainda, B
-1

usado tanto na avaliao como na determinao do passo. S alterada se for necessrio
actualizar B no passo 4 do algoritmo. Para exemplificar o uso deste algoritmo considere
os seguintes exemplos:

60
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

Exemplo 3.1
4 x x
16 x x
a . s
x x max
2 1
2 1
2 1

+
+

10 x 0
1

10 x 0
2
.
Ser necessrio escrever este problema na forma cannica, introduzindo duas variveis
de desvio uma para cada uma das restries de desigualdade. Sejam estas variveis
indicadas por os seus valores mximos tem que verificar respectivamente as
desigualdades
3
x e
4
x
a . s
16 x x max x
2 1 3
_
+

10 x 0
1

10 x 0
2
4 x
3
_

a . s
4 x x max x
2 1
4
_


10 x 0
1

10 x 0
2
6 x4
_


O problema equivalente ao seguinte
4 x x x
16 x x x a . s
) x x ( in m
4 2 1
3 2 1
2 1
=
= +
+

10 x 0
1

10 x 0
2

4 x 0
3

6 x 0
4
.

Ser ento necessrio duas coordenadas bsicas e duas no bsicas.
61
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

Passo 0 Iniciao
Consideremos por escolha o vector das coordenadas no bsicas ,
ento e a matriz A partida em
] x x [ x
2 1
N
=
] x x [ x
4 3
B
=

=
1 0
0 1
B e

=
1 1
1 1
N
Portanto, e sejam feitas as tentativas: I B
1
=

Primeira tentativa, ] 0 0 [ ] x x [
2 1
= logo que no
admissvel, ponto A da Figura 3.4.
] 4 6 [1 ] x x [ x
4 3
B
= =
Segunda tentativa, ] 10 0 [ ] x x [
2 1
= logo no
admissvel, ponto B da Figura 3.4.
] 14 6 [ ] x x [ x
4 3
B
= =
Terceira tentativa, ] 0 0 [1 ] x x [
2 1
= logo no
admissvel, ponto C da Figura 3.4.
] 6 6 [ ] x x [ x
4 3
B
= =
Quarta tentativa, ] 10 0 [1 ] x x [
2 1
= logo no
admissvel, ponto D da Figura 3.4.
] 4 4 [ ] x x [ x
4 3
B
= =
Como se esgotou as tentativas para obter solues bsicas admissveis com esta
base, resta escolher uma nova base B. Seja o vector das coordenadas no bsicas
, ento e a matriz A partida em ] x x [ x
3 1
N
= ] x x [ x
4 2
B
=


=
1 1
0 1
B e


=
0 1
1 1
N
Portanto, e sejam feitas as tentativas:

1 1
0 1
B
1
Primeira tentativa, ] 0 0 [ ] x x [
3 1
= logo que no
admissvel, ponto E da Figura 3.4.
] 20 6 [1 ] x x [ x
4 2
B
= =
62
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Segunda tentativa, ] 4 0 [ ] x x [
3 1
= logo no
admissvel, ponto F da Figura 3.4.
] 24 20 [ ] x x [ x
4 2
B
= =
Terceira tentativa, ] 0 0 [1 ] x x [
3 1
= , logo
admissvel, ponto G da Figura 3.4.
] 0 6 [ ] x x [ x
4 2
B
= =
Pelo que o vector uma soluo bsica admissvel. Caso no fosse,
havia que fazer outra escolha para as coordenadas no bsicas ou escolher uma
nova base B.
] | [
N B
x x

O algoritmo comea com a seguinte soluo bsica admissvel
, a que corresponde a soluo ] 0 6 [ ] x x [ x
4 2
B
= = ] 0 0 [1 ] x x [ x
3 1
N
= =
] 0 0 6 10 [ ] x x x x [
4 3 2 1
=

Iterao 1
Passo 1 Avaliao
Calcular o vector dos custos reduzidos


=

0 1
1 1
1 1
0 1
] 0 1 [ ] 0 1 [ N B c c
1 B N

logo . Pelo que ] 0 2 [ N B c c
1 B N
=

= =
2 1
e , =
2 1
,
ento o algoritmo termina e o ponto corrente ptimo. No Quadro 3.1 seguinte
indicada a evoluo do vector x, deste o passo 0 at ultima iterao.
Quadro 3.1 Evoluo do vector x durante o processo iterativo
iterao
1
x
2
x
3
x
4
x
0
10
N
6
B
0
N
0
B

1 10 6 0 0

63
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Na figura 3.4 ilustrado o conjunto das variveis admissveis para este exemplo.


E
20
-5
x
1
+x
2
>16
x
1
+x
2
=16
15
D C
B
A


x
1
-x
2
>4

(10, 6)
x
1
-x
2
=4
15 10 5 0
10
5
0
ptimo
G
F







20


Figura 3.4 Ilustrao do conjunto das variveis admissveis.
O conjunto das variveis admissveis singular, i.e., Q = {(10, 6)}. Consequentemente,
justifica a dificuldade em encontrar a soluo bsica admissvel inicial, visto que, como
existem quatro variveis, e duas restries de igualdade, o nmero bases possveis no
superior a , cada base est associada a 2 6
2
4
=

2
solues bsicas. Portanto, o nmero
mximo de solues bsicas admissveis no superior 64, mas s existe uma soluo
bsica admissvel para este problema.

Exemplo 3.2: Resoluo grfica.

1 x x
16 x x a . s
x x max
2 1
2 1
2 1

+
+

restries de desigualdade:
10 x 0 , 10 x 0
2 1
.
64
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Na figura 3.5 ilustrado o conjunto das variveis admissveis Q para este exemplo.

20

x
1
-x
2
+1=0
x
1
+x
2
-16=0
15








Figura 3.5 Ilustrao do conjunto das variveis admissveis.
Na figura 3.5, os pontos A, B, C, D, E, F so seis dos pontos que correspondem a
solues bsicas para este problema. No entanto, s os quatro pontos A, B, C, D
correspondem a solues bsicas admissveis para este problema. Caso se escreva o
problema na formula cannica, existem , como mostra o exemplo 3.1, quatro variveis e
duas restries de igualdade, sendo o nmero mximo solues bsicas de 24, mas s 4
so solues bsicas admissveis. Observe que no exemplo 3.1 existia o mesmo nmero
mximo de solues bsicas, mas s existia uma soluo bsica admissvel, visto que, o
conjunto das solues admissveis singular.

A soluo ptima para o exemplo 3.2 corresponde ao ponto soluo bsica admissvel
indicado por C = (10, 10), sendo o valor ptimo para a funo objectivo igual a 20,
como se verifica pela observao da Figura 3.5.

0
5
10
0 5 10 15 20

Q
ptimo
x
1
+x
2
=20
Q
E
D
F C
A
B
65
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Exemplo 3.3

5 x x x
0 x x x
5 x x x a . s
x 10 x 3 x x min
4 3 2
5 2 1
4 3 1
4 3 2 1
=
= + +
= + +
+ + +

4 x 0
1

2 x 0
2

4 x 0
3

10 x 0
4

1 x 0
5
.
Ser ento necessrio ter trs coordenadas bsicas e duas no bsicas.
Passo 0 Iniciao
Consideremos por escolha o vector das coordenadas no bsicas .
e seja , ento e a matriz A particionada
em
] x x [
3 2
N
= x
] 4 0 [ ] x [x
N
2
N
1
= ] x x x [
5 4 1
B
= x

=
0 1 0
1 0 1
0 1 1
B


=
1 1
0 1
1 0
N
sendo

1 1 1
1 0 0
0 0 1
1
B
o vector das coordenadas bsicas
] 0 1 0 [ ] x x x [
B
3
B
2
B
1
B
= = x
Pelo que o vector uma soluo bsica admissvel. Caso no fosse,
havia que fazer outra escolha para as coordenadas no bsicas. O algoritmo
comea com a seguinte soluo corrente

] | [
N B
x x
] 0 1 4 0 0 [ ] x x x x x [
5 4 3 2 1
=

66
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Iterao 1
Passo 1 Avaliao
Calcular o vector dos custos reduzidos

=

1 1
0 1
1 0
1 1 1
1 0 0
0 0 1
] 0 10 1 [ ] 3 1 [
1 B N
N B c c
donde
] 7 8 [
1 B N
=

N B c c .
Pelo que { } = =
2 1
e 1 logo
2 1
, sendo 1 k = como k pertence a
1
. 1 =

Passo 2 Atribuio do Passo
Determinar o vector y
( )

= =

0
1
1
1
1
0
1 1 1
1 0 0
0 0 1
1
1
N B y .
De onde resulta :
( )
{ } { } 1 2 , 4 , 1 min u , , min e 4
1
0 4
, 1
N
1 2 1 2 1
= = = =

= = .

Passo 3 Actualizao
Teremos:
( ) 1 1 1 0 x x
2
N
1
= + = = e,
( ) ] 0 0 1 [ ] 0 1 1 [ 1 1 ] 0 1 0 [ ] x x x [
B
3
B
2
B
1
B
= = = x .
Como e logo , segue-se para o passo 4. 1 = , 2 u u
2
N
1
= =
N
1
u

67
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Passo 4 Substituio
Determinar os conjuntos
3
e
4

e { } 2
3
=
=
4
Pelo que { } 2
4 3
=

vem necessariamente (uma vez que s h este valor, se houve-se vrios
escolhia-se um de entre eles). Ento as colunas
2 j =
( ) 2 B troca com a ( ) 1 N ,
resultando as seguintes parties para o vector x
] x x x [ ] x x x [
5 2 1
B
3
B
2
B
1
B
= = x ] x x [
4 3
N
= x
pelo que se tem
] 0 4 [
N
= x [ ] 0 1 1
B
= x
A partio para a matriz A

=
0 1 0
1 1 1
0 0 1
B e


=
1 1
0 0
1 1
N

sendo agora

1 1 1
1 0 0
0 0 1
1
B

E voltamos ao passo 1.
O vector x da 1 iterao ] 0 0 4 1 1 [ ] x x x x x [
5 4 3 2 1
= .

68
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Iterao 2
Passo 1 Avaliao
Calcular o vector dos custos reduzidos
] 8 1 [
1 1
0 0
1 1
1 1 1
1 0 0
0 0 1
] 0 1 1 [ ] 10 3 [
1 B N
=

=

N B c c

obtemos { } 1 e
2 1
= = , e a unio
2 1
logo 1 k = .

Como k pertence a
2
ser 1 = .

Passo 2 Atribuio do Passo
Determinar y
( )

= =

0
1
1
1
0
1
1 1 1
1 0 0
0 0 1
1 y
1
N B .
de onde resulta
{ } 1 1 / ) 1 2 ( , 1 / ) 1 4 ( min ,
2 1
= = =
e { } { } 1 4 , 1 , min u , , min
N
1 2 1
= = = .

Passo 3 Actualizao
Teremos:
( ) 3 1 1 4 x x
3
N
1
= + = =
( ) ] 0 2 2 [ ] 0 1 1 [ 1 1 ] 0 1 1 [ ] x x x [
5 2 1
B
= = = x .
Como e logo segue-se para o passo 4. 1 = 4 u u
3
N
1
= =
N
1
u

69
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Passo 4 Substituio
Determinando os conjuntos
3
e
4
obtemos:
e =
3
{ } 2
4
=
cuja unio { } 2
4 3
=

Pelo que . Fazemos agora a troca das colunas 2 j = ( ) (1 e 2 N B ) ,
resultando assim as seguintes parties
] 0 2 [ ] x x [ x e ] 0 3 2 [ ] x x x [ x
4 2
N
5 3 1
B
= = = =

=
0 1 0
1 0 1
0 1 1
B sendo


=
1 1
0 1
1 0
N

1 1 1
1 0 0
1 0 1
1
B

O vector x na 2 iterao : ] 0 0 3 2 2 [ ] x x x x x [
5 4 3 2 1
=
E voltamos ao passo 1.

Iterao 3
Passo 1 Avaliao

=

1 1
0 1
1 0
1 1 1
1 0 0
1 0 1
] 0 3 1 [ ] 10 1 [
1 B N
N B c c
] 7 1 [
1 B N
=

N B c c
70
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
obtemos , e a unio = =
2 1
e
2 1
, terminando o algoritmo e
sendo a soluo corrente
] 0 0 3 2 2 [ ] x x x x x [
5 4 3 2 1
=
a ptima. O quadro seguinte apresenta a evoluo do vector x durante o
processo iterativo.
Quadro 3.2 Evoluo do vector x durante o processo iterativo
iterao
1
x
2
x
3
x
4
x
5
x
0
0
B
0
N
4
N
1
B
0
B

1 1 4 0 0 1
passo 4
1
B
1
B
4
N
0
N
0
B

2 2 3 0 0 2
passo 4
2
B
2
N
3
B
0
N
0
B



3.4- Condies de Karush-Kuhn-Tucker para a programao linear

Este subcaptulo apresenta um conjunto de condies para o problema de programao
linear, conhecidas como condies de Karush-Kuhn-Tucker. Estas condies so
condies necessrias para a identificao do ptimo, mas para este problema, visto
que, a funo objectivo uma funo linear e o conjunto das variveis de deciso
admissveis convexo so tambm suficientes para a identificao de uma soluo
ptima. Estas condies so as apresentadas na proposio seguinte.

Preposio 3.9
Seja tal que . Ento um ptimo para o problema
de programao linear sse s se existirem vectores multiplicadores de lagrange , , e
tais que: ,

x u x 0 x A =

e b

x
c A = ( ) 0 =

u x , e 0 =

x . e , 0 0
71
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Prova: Considere o problema de programao linear escrito como um problema de
maximizao, como se segue
0 x
0 x u
0 b Ax
cx




s.a.
max
0 x
0 x u
0 b Ax
cx


=




s.a.
min

A funo de lagrange ser escrita como
x x u b Ax cx x + + + = ) ( ) ( ) , , ; ( L (3.13)
As condies de acordo com o teorema de Karush-Kuhn-Tucker so:
(K_K_T.1) u x 0 b Ax =

e
(K_K_T.2) tal que 0 ,
0 x u =

) (
0 x =




(K_K_T.3) 0 A c = + +
o que prova o teorema.
Ou seja resolver o sistema de Karush-Kuhn-Tucker:
( )
0 0 c A
x u x 0
u x b x A
=
=
= =
, -
0
0

em ordem a x, , , e matematicamente equivalente a resolver o problema PL. Este
sistema ser usado no estudo da programao em redes, para obter o algoritmo da
condio.

72
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Exemplo 3.5: Considere o problema do exemplo 3.4, verifique usando o sistema de
Karush-Kuhn-Tucker que o ponto ptimo obtido por resoluo grfica ptimo. O
problema ser escrito como
1 x x x
16 x x x a . s
) x x ( in m
4 2 1
3 2 1
2 1
=
= +
+

10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4
.

Cuja soluo ptima foi obtida na Figura 3.3 ] 1 4 10 10 [ ] x x x x [
4 3 2 1
= . Caro
que as condies de admissibilidade, K_K_T.1: , so satisfeitas.
As condies K_K_T.2 obrigam a que
u x 0 b Ax =

e
0 = e que 0
4
= . Portanto, basta determinar
0 , ,
3 2 1
e R ,
2 1

tais que , logo , c A = 0
2
= 1
1 1
= , 1
2 1
= e 0
3 1
= . Pelo
que tem que ser , 0 1
1
+ 1
1 2 1
+ = = e 0
3 1
= . Consequentemente, so
soluo do sistema de Karush-Kuhn-Tucker os seguintes vectores
] 1 4 10 10 [ ] x x x x [
4 3 2 1
=
] 0 0 [ ] [
2 1
=
] 0 0 1 1 [ ] [
4 3 2 1
=
] 0 0 0 0 [ ] [
4 3 2 1
= .
Observe que a condio necessria para ter uma soluo do sistema de Karush-Kuhn-
Tucker escolher um tal que
1
0 1
1
. Outra soluo possvel seria fazer
, , 1
1
= 0
2
= ] 0 1 0 0 [ ] [
4 3 2 1
= .


73
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES


3.5- Teoria da dualidade

Associado ao problema de programao linear, que no contexto da teoria da dualidade
tambm dito de problema primal, existe o problema dual. Considere a funo de
lagrange (3.11), o subproblema dual ser descrito pelo seguinte problema sem restries
) , , ; ( L max x
sendo u b x ) A c x + + + = ( ) , , ; ( L
e . 0 ,
A soluo do subproblema dual tem que satisfazer condio 0 x = ) , , ; ( L , i.e.,
c A 0 A c = = + + . Portanto, o problema dual escrito como
0
c A
u) b

=

,
s.a.
( min

O problema dual tem algumas propriedades muito teis sob o ponto de vista da
programao em redes. O problema primal e o seu dual podem ser escritos como

) imal (Pr
PL

a . s
min


=
u x 0
b x A
x c
) Dual (
PLD

a . s
mx

0
c A
u b
No contexto da teoria da dualidade, x o vector das variveis primais e ( o
vector das variveis duais. A hiptese de o domnio das solues possveis para a PL
no ser vazio implica que os problemas so equivalentes, isto , o valor ptimo do
problema primal igual ao valor ptimo do problema dual. Esta equivalncia
traduzida pelas seguintes proposies.
) ,
74
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Preposio 3.10
Seja uma soluo ptima para o PL e seja

x ( )

, uma soluo ptima para o
PLD. Ento .

= u b x c
Preposio 3.11
Seja soluo ptima para o PL, B a matriz bsica e o vector cujas
componentes so as componentes de c correspondentes s coordenadas bsicas.

x
B
c
Sejam e
1 B
= B c
( )

=
=

c. . c 0
u x se c j
j j j
j
A
, ento ( )

,
soluo ptima para o PLD.

Prova: Para provar este teorema, simplificando o formalismo, ser admitido que
a soluo ptima do problema primal no degenerada, hiptese de no
degenerncia, i.e., . Assim, sendo , ento como
pela condio a que o subproblema
dual tem que satisfazer, ser e . Portanto,
e como pela condio anterior (K_K_T.2) e no podem ser
ambos diferentes de zero, facilmente se tem o resultado pretendido.
B B
u x 0 < < 0
B B
= ,
] | [ ] | [ ] | [ ] [
N B N B N B
c c N | B =
B
c B =
N N N
c N =
1 B
= B c
N
i

N
i


A relao entre o problema primal e o respectivo dual obedece ainda ao teorema da
complementaridade. Este teorema significa que a uma restrio no activa do problema
primal, corresponde uma varivel dual nula; e a uma restrio no activa do problema
dual, corresponde uma varivel primal nula. O teorema da complementaridade resulta
directamente da aplicao das condies de Karush-Kuhn-Tucker ao problema primal
ou ao problema dual.
75
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Exemplo 3.6: Escreva, usando o formalismo desenvolvido, o problema dual do seguinte
problema primal
16 x x a . s
in x m
2 1
1
= +

10 x 0
1

10 x 0
2
.

como , e ] 0 1 [ ] c c [
2 1
= ] 1 1 [ = A ] 10 0 [1 ] u u [
2 1
= ento ser
ou seja ] 0 0 [ ] [
] 0 1 [ ] [ - ] 1 1 [ a . s
) ( 10 16 ax m
2 1
2 1
2 1


+
0
0
0 -
1 - a . s
) ( 10 16 ax m
2
1
2
1
2 1




+

Exemplo 3.7: Determine, usando a teoria da dualidade, o problema dual do seguinte
problema primal
. 0
0
0
0 1 a . s
) ( 10 16 ax m
2
1
2
1
2 1



+
+


Sejam os multiplicadores de lagrange para as restries indicados respectivamente por
, ento a funo de lagrange ser
2 1 2 1
, , x , x
.
) ( x
) 1 ( x
) ( 10 16 ) , , x , x ; , , ( L
2 2
1 1
2 2
1 1
2 1 2 1 2 1 2 1
+
+ +
+ +
+ + +
+ + =

O subproblema dual ser ) , , x , x ; , , ( L max
2 1 2 1 2 1
. A soluo do subproblema
dual tem que satisfazer condio 0 ) , , x , x ; , , ( L
2 1 2 1 2 1
= . Pelo que ser
76
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

0 x 10
0 x 10
0 x x 16
2 2
1 1
2 1

= + +
= + +
=
e sendo 0 , , x , x
2 1 2 1
o que equivalente s restries
, , 16 x x
2 1
= + 10 x 0
1
10 x 0
2
. A funo lagrange pode ser escrita como
1 2 2 2 1 1 1
2 1 2 1 2 1 2 1
x ) x 10 ( ) x 10 (
) x x (16 ) , , x , x ; , , ( L
+ + + + + + +
+ =

ento a funo dual ser
1 2 1 2 1 *
x ) , , x , x ( L = . Pelo que o problema dual
16 x x a . s
in x m
2 1
1
= +

10 x 0
1

10 x 0
2


Este exemplo particular confirma a afirmao que o problema dual do problema dual o
problema primal.

Exemplo 3.9: Considere o problema do exemplo 3.4, usando a proposio 3.10
determine as variveis duais ptimas.

Exemplo 3.8: Mostre que o problema dual do problema dual do problema de
programao linear o problema de programao linear.

Seja o problema primal o PLD

0
0 A c
u b

+


a . s
mx
77
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
a funo de lagrange cx x u Ax b x + + + + = ) ( ) ( ) ; ; , , ( L resolvendo o
subproblema dual tem-se e 0 Ax - b = 0 x u = + + , sendo e a funo dual
, ento o problema dual o problema de programao linear.
0 x ,
cx x = ) ; ( L
*
Exemplo 3.9: Considere o problema do exemplo 3.4, usando a proposio 3.10
determine as variveis duais ptimas

A soluo ptima ] 1 4 10 10 [ ] x x x x [
4 3 2 1
= . A ltima coordenada tem que
ser necessariamente no bsica e seja considera a penltima tambm bsica, embora
seja degenerada. Portanto, e .
Consequentemente
] 1 4 [ ] x x [ x
4 3
B
= = ] 10 0 [1 ] x x [ x
2 1
N
= =

=
1 0
0 1
B e

=
1 1
1 1
N
pelo que , sendo , caso contrrio , i.e., 0 c
B
= =

j j j j
u x se c = =

0
j
=

] 0 0 [ ] [
*
2
*
1
= ,
] 0 0 1 1 [ ] [
*
3
*
3
*
2
*
1
= .
78
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Exerccios do Captulo 3

1. Considere os seguintes problemas de programao linear
1 x 10
16 x 10 a . s
x 0 1 in m

+
+

10 x 0

+
+
/ 1 x / 10
/ 16 x / 10 a . s
x 0 1 in m

30 x 0 com . } 0 { \ R
+


Resolva os problemas pelo algoritmo do simplex.
Soluo: x = 0 x = 0.
Observe que o segundo problema equivalente ao primeiro, basta fazer a seguinte
transformao de varivel . = / x x
'

2. Considere os seguintes problemas de programao linear
1 x x
16 x x a . s
x x in m
2 1
2 1
2 1

+
+

10 x 0
1

10 x 0
2

1 x x
16 x x a . s
x x in m
2 1
2 1
2 1

+
+

10 x 0
1

10 x 0
2
com . } 0 { \ R
+


Resolva os problemas pelo algoritmo do simplex. Compare a soluo destes problemas
com os anteriores, justificando os resultado obtidos.
Soluo: x = [10 0] x = [10 0].
Como e , ento 10 x 0
1
1 c
1
= 10 x
1
= admissvel e o menor valor da funo
objectivo obtido com este valor, fixando 10 x
1
= nos problemas anteriores derivam
os problemas indicados em 1.

79
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
3. Considere os seguintes problemas de programao linear
1 x x
16 x x a . s
x x in m
2 1
2 1
2 1

+


10 x 0
1

10 x 0
2

1 x x
16 x x a . s
x in x m
2 1
2 1
2 1

+


10 x 0
1

10 x 0
2
.

Resolva os problemas pelo algoritmo do simplex.
Soluo: x = [10 6] x = [0 1].

4. Considere os seguintes problemas de programao linear
1 x x x
16 x x x a . s
x x x x in m
4 2 1
3 2 1
4 3 2 1
+
+
+ + +

10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4

1 x x x
16 x x x a . s
x x x x in m
4 2 1
3 2 1
4 3 2 1

+
+ + +

10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4
.

Escrevas os problemas na forma cannica.
Soluo:
1 x x x x
16 x x x x a . s
x x x x in m
6 4 2 1
5 3 2 1
4 3 2 1
= +
= + +
+ + +

10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4

20 x 0
5

22 x 0
6

1 x x x x
16 x x x x a . s
x x x x in m
6 4 2 1
5 3 2 1
4 3 2 1
=
= + +
+ + +

10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4

20 x 0
5

22 x 0
6
.


80
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
5. Considere os problemas de programao linear anteriores, resolva os problemas pelo
algoritmo do simplex.
Soluo: x = [10 0 0 0 6 11] x = [10 0 0 0 6 11].
Observe que: no primeiro problema, na segunda restrio adicionado ; no segundo,
subtrado . Como no ptimo do primeiro problema, as solues so iguais,
visto que, somar ou subtrair um valor nulo indiferente.
4
x
4
x 0 x
4
=

6. Considere os problemas de programao linear anteriores, escreva os problemas
duais respectivos.
Soluo: Problemas na forma cannica
1 x x x
16 x x x a . s
x x in m
4 2 1
3 2 1
2 1
=
= + +


10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4

1 x x x
16 x x x a . s
x in x m
4 2 1
3 2 1
2 1
=
= + +


10 x 0
1

10 x 0
2

4 x 0
3

11 x 0
4
.

Problemas duais
0 , , ,
0
0 -
0 1 -
0 1 - a . s
14 4 10 10 6 1 x a m
4 3 2 1
4 2
3 1
2 2 1
1 2 1
2 1 1 1 2 1

+
+
+
+ +


. 0 , , ,
0
0 -
0 1 -
0 1 a . s
14 4 10 10 6 1 x a m
4 3 2 1
4 2
3 1
2 2 1
1 2 1
2 1 1 1 2 1

+
+
+
+ +


81
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
7. Considere o problema de programao linear
1 x x a . s
in x m
2 1
1
=

10 x , x 0
1 1
.
Resolver o problema dual pelo algoritmo do simplex.
Soluo: Problema dual
0 ,
0
0 1 a . s
) ( 10 x a m
2 1
2 1
1
2 1

+
+
+
ptimo .

0
0
1
2
1
=
=
=
8. Considere o problema de programao linear anterior determine a sua soluo
usando a preposio 3.10.

Soluo: x = [1 0]

9. Considere o problema de programao linear 7. e o seu dual obtido em 8., mostre de
pelo sistema de Karush-Kuhn-Tucker, que as solues obtidas para estes problemas
so as ptimas.















82
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

Este captulo apresenta uma especializao sobre o algoritmo primal simplex para o
problema de programao linear em rede. Esta especializao, quando usada permite
que o mtodo primal simplex possa ser resolvido directamente sobre a rede do
problema. Esta especializao tambm conhecido por algoritmo grfico do simplex.

Neste captulo, exclusivamente para as demonstraes considere que a rede no tem
arcos que partem de um n para o mesmo n, ditos laos, nem tem arcos mltiplos em
paralelo. Esta hiptese apenas uma convenincia de exposio, a no condiciona os
resultados que sero apresentados nem a aplicabilidade do algoritmo, visto que, se h
um lao no n i pode ser substitudo por dois arcos, (i, k) e (k, i) onde k um novo n,
se h dois arcos orientados do n i para o n j, um deles pode ser substitudo por dois
arcos, (i, k) e (k, j) onde k um novo n. Por exemplo, para forar a verificao desta
considerao, na rede da Figura 2.1 o arco (1, 2) substitudo pelos arcos (1, 5) e (5, 2)
e introduzido um novo n nmero 5 como ilustra a Figura 4.1.
1
2
4
3
1
2
3
4
5
6
7
5
8

Figura 4.1 Rede que resulta da rede da Figura 2.1, mas sem arcos em paralelo.
83
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
A correspondente matriz de incidncias dos ns nos arcos passa a ser a seguinte:
arcos
1 2 3 4 5 6 7 8
ns
1 1 -1
1
-1 1 1 -1
2
-1 -1 1
3
-1 1 -1 1
4
A=
-1 1
5

Note que as colunas de A so distintas. Portanto, existe uma correspondncia biunvoca
entre aos arcos da rede e as colunas da matriz A.


4.1- Resultados da teoria dos grafos

Este subcaptulo apresenta os resultados da teoria dos grafos que vo ser utilizados na
especializao do algoritmo primal simplex para a programao linear em rede.
Considere uma grafo com I ns e J arcos, ordenando respectivamente de 1, , I , e
de 1, , J . Este grafo pode ser descrito por dois conjuntos o conjunto dos ns N e o
conjunto dos arcos A. Um grafo G fica descrito pelo par ordenado [N, A] .

Seja A a matriz das incidncias dos ns nos arcos associada rede. Para cada arco j,
identificam-se os ns de partida e de chegada do arco atravs da funo n de onde
provm o arco N A : d
se A
ij
=1, d (j)=i
e da funo n para onde vai o arco N A : T
se A
kj
=-1, d(j)=k.
84
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Ento o arco j descrito como o par ordenado de ns (F(j), T(j)), i.e., . As
funes F(j) e T(j) para a rede da Figura 4.1 so apresentadas no Quadro 4.1.
2
N A

Quadro 4.1 Funes de e para grafo da Figura 4.1
Nmero do Arco
j
De N
d(j)
Para N
p(j)
1 1 5
2 1 2
3 2 4
4 2 3
5 4 3
6 3 4
7 4 1
8 5 2

Um grafo dito de prprio se tiver um nmero de ns, , superior ou igual a 2 e um
nmero de arcos superiores ou iguais a um. Dado um grafo ,
um subgrafo de G se e . Um subgrafo de
um subgrafo gerador de G se . Esta definio ilustradas na
Figura 4.2.
N #
A # A] [N, G =
] A , [N G
' ' '
= N N
'
A A
'
] A , [N G
' ' '
=
A] [N, G = N N
'
=

Figura 4.2 Ilustrao de um grafo e subgrafos geradores do grafo.

1 2
4 3
1 2
4 3
1 2
4 3
Grafo

Subgrafo

Subgrafo

85
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Note que qualquer grafo G um subgrafo do grafo G e ainda mais um subgrafo
gerador de G. Ainda, note que um subgrafo gerador do grafo G pode no conter nenhum
arco de G.
Uma sequncia finita de ns s
j
e arcos e
j(i)
{(s
i
, s
i+1
), s
i+1
, s
i
} de um grafo G escrita
como
P = {s
1
, e
j(1)
, s
2
, e
j(2)
, s
3
, e
j(3)
,, s
n
, e
j(n)
, s
n+1
}
tendo pelo menos um arco, define um trajecto de s
1
para s
n+1
. Um trajecto um caminho
no grafo G, se os elementos mpares so ns distintos de G, os elementos pares so
arcos de G, e cada arco
e
j(i)
{(s
i
, s
i+1
), s
i+1
, s
i
}.
Um caminho o percurso que liga o primeiro ao ltimo elemento da sequncia que o
define. No grafo da Figura 4.1, por exemplo, P um caminho
P = {5, e
1
, 1, e
7
, 4, e
5
, 3} = {5, (1, 5), 1, (4, 1), 4, (4, 3), 3}
cuja representao se ilustra na Figura 4.3.
1
4
3
e1
e5
e7
5

Figura 4.3 Ilustrao do caminho P.
86
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Preposio 4.1:
Todos os arcos de um caminho so distintos.

Prova: Se dois arcos de um caminho forem idnticos, os ns desse caminho no podem
ser distintos, portanto, no satisfaz a definio.

Um ciclo num grafo G um trajecto que comea num n e acaba no mesmo n, sendo
indicado pela sequncia C={s
1
, e
j(1)
, s
2
,e
j(2)
,, s
n
, e
j(n)
, s
n+1
} tendo pelo menos dois
arcos. Um ciclo simples num grafo G se a subsequncia {s
1
, e
j(1)
, s
2
, e
j(2)
, s
3
, e
j(3)
,,
s
n
} um caminho em G e e
j(n)
{(s
n
, s
n+1
), (s
n+1
, s
n
)}, sendo s
n
s
n+1
e e
j(n )
e
j(1)
}. Um
exemplo ilustrativo de um ciclo simples no grafo ilustrado na Figura 4.1
C={ 2, e
8
, 5, e
1
, 1, e
2
, 2}.
Preposio 4.2:
Os arcos de um ciclo simples so distintos.
Prova: Suponhamos um ciclo com n arcos, visto que, a subsequncia
{s
1
, e
j1
, s
2
, e
j2
,, s
n-1
, e
jn-1
, s
n
}
um caminho, os primeiros n-1 arcos tm de ser distintos pela Preposio 4.1. A
subsequncia
{s
2
, e
j2
, s
3
, e
j3
,, s
n
, e
jn
, s
n+1
}
tambm satisfaz a definio de caminho, assim os ltimos n-1 arcos so distintos. Visto
que C tem n arcos, a nica possibilidade de duplicao o ltimo arco e
j(n)
ser igual ao
primeiro e
j(1)
, por isso, se impe que tal duplicao no se pode verificar na definio de
ciclo simples.
87
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Na continuao do texto s ser utilizada o conceito de ciclo simples, pelo que se
escrever s ciclo, ficando subentendido que se trata de ciclo simples.
O comprimento de um caminho ou ciclo definido pelo nmero de arcos desse caminho
ou ciclo. Para qualquer caminho ou ciclo P, com comprimento n, definimos a sequncia
de orientao O(P) dos arcos no caminho ou ciclo como sendo a sequncia cujas
elementos so:
+1 se e
j(i)
=(s
i
, s
i+1
),
O
i
(P)=
-1 se e
j(i)
=( s
i+1
, s
i
).

Para o caminho {5, e
1
, 1, e
7
, 4, e
5
, 3} da Figura 4.3 O(P) = {-1, -1, 1}.
Preposio 4.3:
Seja a sequncia finita P={s
1
, e
j(1)
, s
2
, e
j(2)
,, s
n
, e
j(n)
, s
n+1
} um caminho num
grafo prprio G e seja A a matriz de incidncia dos ns nos arcos. Ento:
A(j

=
=
n i
1 i
i
) P ( O
i
) = (4.1)
1 n 1
s s
+
e e
Prova: Seja i {1, , n}.
Caso 1 Suponhamos e
j(i)
= (s
i
, s
i+1
), ento: O
i
(P)A(j
i
)=(+1)( )=
1 i i
s s
+
e e
1 i i
s s
+
e e

Caso 2 Suponhamos e
j(i)
= (s
i+1
, s
i
), ento: O
i
(P)A(j
i
)=(-1)( )=
i 1 i
s s
e e
+ 1 i i
s s
+
e e
Portanto, em qualquer caso O
i
(P)A(j
i
)= . Assim pela propriedade telescpica
1 i i
s s
+
e e
1

da adio, (4.1) verifica-se.

1
Propriedade telescpica da adio:
O
1
(P)A(j
1
)=
2 1
s s
e e
O
2
(P)A(j
2
)=
3 2
s s
e e
O
3
(P)A(j
3
)=
4 3
s s
e e
=
O
n
(P)A(j
n
) =
1 n n
s s
+
e e

=
=
n i
i
i
P O
1
) ( A(j
i
)=
1 n 1
s s
+
e e
88
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Preposio 4.4:
Seja C={s
1
, e
j(1)
, s
2
, e
j(2)
,, s
n
, e
j(n)
, s
n+1
} um ciclo num grafo prprio G e seja A a
matriz de incidncias dos ns nos arcos. Ento:

=
=
n i
1 i
i
) C ( O A(j
i
)=0 (4.2)
Prova:

=
=
n i
i
i
C O
1
) ( A(j
i
)=

=
=
1
1
) (
n i
i
i
C O A(j
i
) +
1 n n
s s
+
e e
Pela Preposio 4.3,

=
=
1
1
) (
n i
i
i
C O A(j
i
)= .
n 1
s s
e e
Ento:

=
=
n i
i
i
C O
1
) ( A(j
i
)= +
n 1
s s
e e
1 n n
s s
+
e e
Como C um ciclo, s
1
=s
n+1
, logo

=
=
n i
i
i
C O
1
) ( A(j
i
)=0.
Corolrio 4.5:
Se C={s
1
, e
j(1)
, s
2
, e
j(2)
,, s
n
, e
j(n)
, s
n+1
} um ciclo num grafo prprio G e A a
matriz de incidncias dos ns nos arcos; ento {A(j
i
): i=1, , n} um sistema de
vectores linearmente dependente.
1 2
4 3
(b) (a)
1 2
4 3
e1
e2
e3
e4
e5
e1
e2 e4
e5
O3(C)=1
O1(C)=1
O4(C)=1 O2(C)=-1

Figura 4.4 Exemplo de um ciclo num grafo prprio. (a) Grafo prprio. (b) Ciclo
simples C = {4, e
5
, 3, e
4
, 1, e
1
, 2, e
2
, 4} num grafo prprio.
89
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Vamos ilustrar o que se afirma no Corolrio 4.5 atravs de um exemplo. Considere o
ciclo C indicado na Figura 4.4. Ento o conjunto das colunas associados aos arcos do
ciclo so:
1
-1
1
-1
1
-1
1
-1

, , ,

e so linearmente dependente, visto que:
1
-1
1
-1
1
-1
1
-1
O1(C) +O2(C) +O3(C) +O4(C) =
1
-1
1
-1
1
-1
1
-1
(1) +(-1) +(1) +(1) =
0
0
0
0

Observe que se multiplicar aos elementos da sequncia de orientao por um nmero
real a relao anterior matem-se. Um grafo G=[N, A] diz-se acclico se no existe um
ciclo usando os elementos do conjunto N e A. Um grafo G=[N, A] diz-se conexo ou
ligado se para qualquer par distinto de ns (i, j) de N, podemos formar, usando os
elementos dos conjuntos N e A, um caminho que ligue esses ns, i.e., se para qualquer
par distinto de ns for ligado por pelo menos um caminho.

Uma rvore , por definio, um grafo acclico conexo. Dado um grafo G=[N, A] uma
rvore [N, ] com uma rvore geradora tambm dita de abrangente ou total
de G, por definio de grafo gerador de G. Estas definies so ilustradas na Figura 4.5.
' A A A'
90
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
1 2
4 3
1 1 2
3
(b)
1 2
4 3
1 2
4 3
(c)
1 2
3
1 2
4 3
(d)
(a)

Figura 4.5 Exemplos de rvores e rvores geradoras. (a) Grafo G. (b) Subgrafos de
G que so rvores, mas no so rvores geradoras. (c) Subgrafos de G que so rvores
geradoras. (d) Subgrafos de G que no so rvores.
Seguidamente, sem prova, enunciam-se um conjunto de preposies importantes que
nos do alternativas para a definio de rvore e propriedades dos grafos e das rvores.

91
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Preposio 4.6:
Para um grafo T=[N, A] com pelo menos um n, as afirmaes seguintes so
equivalentes:
1 T uma rvore.
2 T tem apenas para qualquer par distinto de ns (p, q) de N, um nico
caminho que liga p a q.
3 T tem menos um arco que o nmero de ns e conexo.
4 T tem menos um arco que o nmero de ns e acclico.

Dado um grafo G, grau do n i, D(i), o nmero de arcos de G incidentes no n i. Por
exemplo, o grau do n 3 do grafo da Figura 4.5(a) 3.

Um n de uma rvore cujo grau igual a 1 chamado um ponto extremo da rvore.
Semigrau interior (exterior) de um n o nmero de arcos que incidem para o interior
(exterior) do n.

Preposio 4.7:
A soma dos graus de todos os ns, de um grafo, igual a duas vezes o nmero de
arcos do grafo, i.e.,
iN
D(i) = 2# A.
Prova: Qualquer arco incidente em dois ns, contribui portanto, duas vezes para o
resultado da soma dos graus dos ns.
92
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Preposio 4.8:
Uma rvore com pelo menos dois ns tem pelo menos dois pontos extremos.

Prova: Seja T=[N, A] uma rvore com o nmero de ns m 2. Qualquer n de T
incidente em pelo menos um arco, seno T no seria conexo. Assim o grau de cada n
pelo menos 1. Pela Preposio 4.6, T tem m-1 arcos. Assumindo que T tem menos de
dois pontos extremos, resultam as contradies:

Caso 1 Admita que T no tem pontos extremos. Ento, para cada iN, D(i) 2.
Assim,
iN
D(i) 2m > 2(m-1) o que contradiz a Preposio 4.7.

Caso 2 Admita que T tem s um ponto extremo. Seja j esse ponto extremo,
portanto, D(j)=1 e para cada um dos restantes ns iN-{j}, D(i) 2.
Ento, o
iN
D(i) = D(j) +
iN-{j}
D(i) 1 + 2(m-1) 2(m-1) o que
contradiz a Preposio 4.7.

Portanto, T tem pelo menos dois pontos extremos.

A segunda rvore mostrada na Figura 4.5(c) tem dois pontos extremos respectivamente.
No entanto, uma rvore pode ter mais do que dois pontos extremos. Por exemplo, a
primeira rvore mostrada na Figura 4.5(c) tem trs pontos extremos. fcil concluir que
retirando um arco e um ponto extremo a uma rvore resulta um subgrafo que tambm
uma rvore. Portanto vlida a seguinte preposio.

93
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Preposio 4.9:
Seja T=[N, A] uma rvore com o nmero de ns m 2. Seja i um ponto extremo
de T, e seja e
j
o arco incidente no n i de T. Se =N-{i} e =A-{e
^
N A

j
}, ento
=[ , ] uma rvore. T

^
N A


Prova: Como um subgrafo da rvore T, pela Preposio 4.6, T acclico. Por
construo, tem menos um arco do que o nmero de ns. Portanto, pela Preposio
4.6, T uma rvore.
T

T


Estamos agora aptos a apresentar um resultado importante sobre os arcos de uma rvore
e as correspondentes colunas na matriz de incidncias dos ns nos arcos. Convm
recordar que assumimos que a rede no contem arcos mltiplos. Assim, existe uma
correspondncia biunvoca entre os arcos do um grafo e as colunas da matriz de
incidncias dos ns nos arcos. Isto , a um arco e
j
de A corresponde uma coluna j da
matriz de incidncias dos ns nos arcos A e vice-versa.

Preposio 4.10:
Seja A a matriz de incidncias dos ns nos arcos para um grafo prprio G e seja
T = [N, A] um subgrafo de G que uma rvore com pelo menos dois ns. Ento
{A(j): e
j
A} linearmente independente, i.e., as colunas da matriz A associadas
aos arcos da rvore so linearmente independentes
2
.


2
Diz-se que o sistema de vectores {A
i
: i=1, 2, , n} linearmente independente se no existe uma srie
{
i
}
i=1,2, . . . , n
0 tal que

=
=
n
i
i i
A
1
0 .
94
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Prova: Seja m o nmero de ns da rvore T. Suponhamos m = 2. Ento, pela Preposio
4.6, A contm um arco e
j
, atendendo a que A(j) = e
F(j)
- e
T(j)
0, a preposio verifica-se
para m = 2. Suponhamos m > 2. Seja n o maior dos inteiros tal que, para todos os
subgrafos =[ , ] de G que so rvores com k ns sendo 2 k n, {A(j): e T

^
N A

j
}
linearmente independente. Pelo pargrafo anterior sabemos que n 2, assumindo por
hiptese que n < m conduz a uma contradio. Pela definio de n dever haver uma
rvore =[ , ] com n+1 ns para a qual {A(j): e
A

^
N A

j
} linearmente dependente.
Logo tem de existir um conjunto de constantes {
A

j
: e
j
A} com algum elemento no
nulo tal que

i

j
A(j) = 0. Seja L o conjunto de pontos extremos da rvore T. Pela
Preposio 5.8 L e seja p um ponto qualquer de L sendo e

w
o arco incidente
em p. Seja =[ , ], onde = -{p} e = -{e T N A N
^
N A A

w
}. Pela Preposio 5.9 T
uma rvore. Como, o n p incidente no arco e
w
de , A A

pj
= 0 para todos os e
j
.
Assim, para a componente p
A
e
j

j
A
p j
=
w
A
p,w
+e
jA

j
A
pj
=
w
A
p,w
=0.
Como A
p,w
{+1, -1}, seja
w
=0. Ento
iA

j
A(j)=0 e {
j
: e
j
} no so todos
zeros. Portanto, {A(j): e
A
j
A} linearmente dependente. Mas, uma rvore com n
ns, isto contradiz a definio de n. Consequentemente, n = m, portanto, todos os subgrafos
de G que so rvores com dois ou mais ns tm a propriedade dos {A(j): e
T
j
A} serem
linearmente independente.

Preposio 4.11:
Todo o grafo conexo G = [N, A] com N tem um subgrafo que uma rvore
geradora.
95
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Prova. Seja G conexo, e seja n o nmero de ns de G. Se n = 1, ento o conjunto dos
arcos A = , implica que G uma rvore, sendo ela prpria uma rvore geradora de si mesmo.
Se n 2, seja m o maior inteiro tal que, exista um subgrafo de G que uma rvore e tem m
ns. Qualquer subgrafo de G com um n uma rvore, ento m 1. Ser mostrado que se for
m < n resulta uma contradio.

Pela definio de m, existe um subgrafo de G indicado por T=[ , ], que uma rvore
que tem m ns. Como, tem m < n ns, N- . Seja L o conjunto dos arcos de A
incidentes num n de e noutro de N- . O conjunto L , visto que, caso
contrrio o grafo G no seria conexo. Dado um arco e

^
N A

^
N
^
N
^
N
^
N
i
L, seja j pertence a N-
o n onde o arco i incide e seja
^
N T=[ N, A], onde } j { N N
^
= e } {e A

A
i
= .

Por construo, T um subgrafo de G que uma rvore e tem m+1 ns. Isto
contradiz a definio de m. Logo tem que ser m = n, portanto, existe sempre a rvore
geradora de um grafo G.

As Preposies 4.10 e 4.11 mostram que para um dado grafo G, com a correspondente
matriz de incidncias dos ns nos arcos A, existe uma rvore geradora de G, indicada
por T, tal que as colunas de A correspondentes aos arcos de T so linearmente
independentes.

96
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Mostremos agora em primeiro lugar que a caracterstica de A igual ao nmero de ns
menos um, e em segundo lugar que o conjunto mximo das colunas linearmente
independentes de A corresponde a uma rvore geradora.

Preposio 4.12:
Seja A a matriz de incidncia dos ns nos arcos do grafo prprio G que conexo
e tem n ns. Ento a caracterstica de A igual a n-1.
Prova: Pela Preposio 4.11, G tem uma rvore geradora T. Pela Preposio 4.6, T tem
n-1 arcos. Pela Preposio 4.10, {A(j): e
j
A} so linearmente independentes. Assim, a
caracterstica de A pelo menos n-1. Como 1A=0, a caracterstica de A inferior a n.
Ento a caracterstica de A n-1.

Preposio 4.13:
Seja A a matriz de incidncia dos ns nos arcos do grafo prprio G = [N, A]
com n ns. Seja um subconjunto de A tal que {A(j): e A

j
} linearmente
independente e tem n-1 arcos. Ento T=[N, ] uma rvore.
A

Prova: O Corolrio 4.5, implica que um ciclo no pode ser formado a partir de T, visto
que, {A(j): e
j
} linearmente independente. Como T tem menos um arco que o
nmero de ns e acclico, T uma rvore pela Preposio 4.6.
A


4.2- Caracterizao de uma rede

Na nossa definio do problema PL normalizado, a matriz das restries A tem uma
caracterstica igual ao nmero de linhas. Pela Preposio 4.12, a matriz da incidncia
97
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
dos ns nos arcos para o problema PR tem uma caracterstica igual ao nmero de linhas
menos um. Logo no se pode aplicar ao problema em redes o mtodo do Simplex
usando directamente a formulao anterior.

Existem duas maneiras de proceder, para aplicar o mtodo do Simplex, ambas
reformulando o problema PR de modo que a matriz das restries tenha uma
caracterstica igual ao nmero de linhas, full row rank: (1) podemos fazer desaparecer
uma linha da matriz de incidncias dos ns nos arcos; ou (2) podemos adicionar uma
coluna linearmente independente, i.e., adicionar uma nova varivel que ter de ter o
limite superior igual a zero. Assim consegue-se que a nova matriz das restries tenha
caracterstica igual ao nmero de linhas. Nesta abordagem para o problema PLR
escolhemos a ltima maneira de proceder. Consideremos a seguinte formulao para o
PLR:
min cx
s.a.
A x + a e
k
= r
0 x u
0 a 0
PR

Onde A a matriz de incidncia dos ns nos arcos, e k um inteiro no superior ao
nmero de ns n. Como a est restringido a zero, qualquer ptimo este PLR ser ptimo
para o problema PLR original.

Observe que o coeficiente desta varivel na funo objectivo nulo. No entanto, o
coeficiente no necessita de ser nulo, visto que, o valor que toma a varivel nulo. No
subcaptulo 4.3, esta observao corresponde a afirmar que os potenciais dos ns so
definidos a menos de uma constante aditiva.
98
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Mostraremos que existe um conjunto de n colunas da matriz [A | e
k
] que uma base
para o espao euclidiano n-dimensional .

Preposio 4.14:
Seja A a matriz de incidncia dos ns nos arcos para o grafo G = [N, A] prprio
e conexo, com n ns. Seja T = [N, A], uma rvore geradora de G. Ento
={A(j): e

j
}{e A

k
} uma base para o espao
n
R .

Prova: A prova consiste em mostrar que os versores {e
k
: i = 1, , n} so combinaes
lineares dos vectores de .

O vector e
k
uma combinao trivial. Seja p k e p{1,,n}. Como T uma rvore
geradora de G pela Preposio 4.6, existe um nico caminho P = , e
{
p
1
s {
j1
, s
2
, e
j2
,, s
q
,
e
jq
, em que T liga os ns p e k. Pela Preposio 4.3 sabe-se que
{
} s
k
1 q+

=
q
1 i
i
) P ( O A(j
i
)= e
p
e
k
.
Consequentemente, e
k
+ A(j

=
q
1 i
i
) P ( O
i
) = e
p
, portanto, e
p
uma combinao linear dos
vectores de . Pelo que fica provado que uma base para
n
R .

Assim, conseguimos aumentando a rede que a matriz das restries passe a ter
caracterstica igual ao nmero de linhas. Este elemento que foi introduzido um arco
que nasce num n mas no termina em nenhum outro n.

99
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
1
4
3
2
1
4
3
2
(a) (b)

Figura 4.6 Conceito de razes. (a) Grafo com raiz. (b) rvore com raiz.

Quando nos referimos a um grafo associado com este problema de PLR aumentado, o
arco associado varivel a dito arco raiz e no k um n com raiz. Mais ainda, o grafo
correspondente chamado um grafo com raiz, e um grafo com raiz que seja uma rvore
chamado uma rvore com raiz. Os arcos raiz so representados nos desenhos por um
arco incidente num nico n, saindo do n, visto que, o respectivo elemento associado
com a matriz A aumentada tem valor igual unidade. A Figura 4.6 ilustra um grafo com
raiz e uma sua rvore com raiz.

Preposio 4.15:
Seja A a matriz de incidncia dos ns nos arcos para um grafo prprio com raiz
G = [N, A], com a raiz no n k. Se o conjunto dos vectores que so as
colunas da matriz bsica para [A | e
k
], ento e
k
e T = [ N, ] com = {e A

j
:
A(j)} uma rvore geradora de G.
100
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Prova: Seja uma matriz bsica para [A | e
k
]. Pela Preposio 4.14, a matriz
aumentada [A | e
k
] tem a caracterstica igual ao nmero de linhas. Pela Preposio 4.12,
A no tem a caracterstica igual ao nmero de linhas, ento e
k
. Seja n o nmero de
ns de G. Ento A dever corresponder a n-1 colunas linearmente independentes de A.
Pela Preposio 4.13, T uma rvore geradora de G.


Estamos agora aptos a efectuar a caracterizao da base para o problema PLR.

Preposio 4.16:
Seja A a matriz de incidncia dos ns nos arcos para um grafo prprio, conexo e
com raiz no n k. O conjunto das colunas de A correspondente a uma rvore
geradora de G mais e
k
, uma matriz bsica para [A | e
k
].
Prova: A prova uma consequncia imediata das Preposies 4.14 e 4.15.

Temos assim uma preposio que faz uma caracterizao para uma base do problema
PLR. Seguidamente apresentamos um teorema que caracteriza uma propriedade
algbrica para a matriz bsica de um problema PLR. Estas duas propriedades, em
conjunto proporcionam a especializao do algoritmo primal simplex para o
problema PLR.

Convm recordar que uma matriz, triangular, no singular, uma matriz quadrada com
valores diferentes de zero na diagonal principal e zeros acima da diagonal principal, ou
aquela que levada a ter esta forma pelo troca de linhas e colunas. A prxima
101
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
proposio mostra que a matriz bsica para um problema PLR associado a um grafo
prprio triangular.

Preposio 4.17:
Seja A a matriz de incidncia dos ns nos arcos para um grafo prprio G,
conexo e com raiz no n l. Se B uma matriz bsica de [A | e
l
], ento B
triangular.
Prova: Seja T = [N, A] uma rvore com raiz determinada pela matriz bsica B, e seja n
o nmero de ns de T. Como G um grafo prprio n 2. Pela Preposio 4.8, T tem
pelo menos dois pontos extremos. Seja n
1
um ponto extremo de T que no n raiz. Se
e
j(1)
o arco em T incidente em n
1
, ento a linha n
1
de B tem s um elemento no nulo,
igual +1 se o arco est orientado do n n
1
para outro n, ou

igual -1 se o arco est
orientado de outro n para n n
1
.

Assim, reordenando as linhas e colunas da matriz
bsica, tomando para a primeira linha e para a primeira coluna, a linha correspondente
ao n n
1
e a coluna correspondente ao arco e
j(1)
, podemos representar B da seguinte
maneira

e
j1


1 0 n n
1
.
e
s
B
1


Seja T
1
= [N {n
1
}, A {e
j(1)
}]. Pela Preposio 4.9, T
1
uma rvore com n -1 arcos.
Se n -1 = 1, ento B
1
triangular, visto que, a ltima coluna de B corresponde ao
vector e
k
. Se n -1>1, ento, de novo pela Preposio 4.8, T
1
tem pelo menos dois pontos
extremos. Considere de novo o processo, seja n
2
um ponto extremo de T
1
que no n
102
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
raiz e seja e
j(2)
o arco em T
1
incidente em n
2
. Ento a linha n
2
de B
1
tem s um elemento
no nulo, como anteriormente igual a +1 ou -1.

Assim, tomando, respectivamente, para a segunda linha e para a segunda coluna, a linha
correspondente ao n n
2
e a coluna correspondente ao arco e
j(2)
, podemos representar B
da seguinte maneira

e
j1
e
j2


1 n n
1
1 n n
2
.

e
s
e
t
B
2


Figura 4.7 Processo para transformar a matriz B numa matriz triangular.

Em cada repetio deste processo introduzido na matriz reordenada uma nova linha
e coluna, repetindo o processo o nmero de vezes igual ao nmero de ns do grafo, B
transformada por reordenao das linhas e colunas na forma triangular.

Observe que o ltimo n e arco que escolhido pela reordenao o n raiz e o arco
raiz, visto que, o arco raiz incidente s num n.

Convm recordar que uma matriz triangular permite uma inverso rpida com menos
operaes. Assim, determinada a matriz bsica B para um problema PLR aps a
103
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
reordenao das linhas e colunas, obtendo a forma triangular , mais facilmente a
obteno ds expresses onde existe B
B

-1
.

A Preposio 4.17, no s mostra que a matriz bsica de um problema PLR
triangular, mas tambm permite construir um algoritmo para determinar uma
reordenao das linhas e das colunas que transforma a matriz bsica de um problema
PLR numa matriz na forma triangular.


ALGORITMO 4.1 Algoritmo da transformao para a forma triangular

Passo 0 Iniciar. Dada a matriz B o problema PLR com grafo G. Sejam T = [N, A]
uma rvore geradora para G com n de ns e raiz no n k. Iniciar o ndice de
iterao i = 1.
Passo 1 Encontrar um ponto extremo que no seja n com raiz. Seja r k, um ponto
extremo de T, e seja e
s
um arco de T incidente em r.
Passo 2 Inserir a linha r e a coluna s em . Se i B

n-1 segue para o passo 4.



Passo 3 Reduzir a rvore (podar a rvore). Fazer T = [N {r}, A {e
s
}] e i i + 1,
voltar ao passo 1.

Passo 4 Inserir o n com raiz e o arco raiz.





104
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

Como exemplo de aplicao deste algoritmo considere o problema do exemplo 3.1

5 x x x
0 x x x
5 x x x a . s
x 10 x 3 x x min
4 3 2
5 2 1
4 3 1
4 3 2 1
=
= + +
= + +
+ + +


as restries de no negatividade so as seguintes:
1 x 0 , 10 x 0 , 4 x 0 , 2 x 0 , 4 x 0
5 4 3 2 1
.

O grafo com raiz ilustrado na Figura 4.8. Existem trs rvores geradoras possveis
para o grafo G do exemplo 3.1. As rvores geradoras com raiz, e as matrizes bsicas j
na forma triangular so ilustradas na Figura 4.9.

1 3
2
[1, 2]
[cj, uj]
e2
{-5}
{ri}
n raiz
[1, 4]
e1
[3, 4]
e3
[10, 10]
e4
{5}
{0}


Figura 4.8 Rede do exemplo 3.1 com raiz.
A representao de rvore geradora com raiz associadas com uma matriz bsica do
problema PLR torna possvel e fcil a transformao para a forma triangular.

105
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES


1 3
2
e1
e4
(a)
(b)
1
-1
0
1
0
-1
0
0
1
ns
1
3
2
e1 e4
1 3
2
e1 e2
(c)
(d)
0
1
-1
-1
0
1
0
0
1
3
1
2
e2 e1
1 3
2
e1
e3
(e)
(f)
1
-1
0
1
0
-1
0
0
1
1
3
2
e1 e3
ns
ns


Figura 4.9 rvores geradoras com raiz para o grafo da Figura 4.8 e matriz B.
106
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

4.3- Especializao primal simplex

Considere que a matriz bsica B j est na forma triangular. Convm, recordar o passo
do algoritmo primal simplex que necessita da inverso da base B para saber se uma
varivel no bsica escolhida para uma operao de alterao de fluxo: a
componente i correspondente do vector c
N
i
x
N
c
B
B
-1
N indicada por [c
N
c
B
B
-1
N]
i
tem
que ser calculada (ver passo1 do ALG 3.2 Algoritmo Primal Simplex). A inverso da
base B necessria para o calculo do vector c
B
B
-1
N. Seja = c
B
B
-1
, observe que esta
denominao est de acordo com a Preposio 3.11. As coordenadas do vector , os

i
s, so chamados de variveis duais ou potenciais dos ns. Portanto, a soluo do
sistema das equaes lineares B = c
B
. Como B triangular, pode ser obtido por
substituio de trs para a frente, resolvendo primeiro em ordem ltima componente e
depois, por substituio at a primeira componente.

1 2
3
e1 e2
4
5
e3 e4
1
1
-1
-1
1
1
-1
-1
1
4
1
2
e4 e1 ns
3
5
e2 e3 a
B=

Figura 4.10 rvore geradora com raiz.
107
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
fcil usar a rvore com raiz associada com B, indicada seguidamente por T
B
, na
obteno das componentes do vector . Como exemplo considere a rvore geradora
com raiz com a correspondente base ilustrada na Figura 4.10. O sistema de equaes
para a rvore geradora T
B
, B = c
B
, tem a forma triangular ilustrada na Figura 4.11.

1
-
3
=
B
1
c
-
4
+
5
=
B
4
c
-
2
+
3
=
B
2
c
-
3
+
5
=
B
3
c

5
=
B
5
c


Figura 4.11 Sistema de equaes B = c
B
.

Obviamente, que nulo ou um valor qualquer indeterminado, pelo que j se afirmou
no subcaptulo anterior. O sistema de equaes pode ser resolvido por substituio de
trs para a frente, comeando com
B
5
c
5
= , geralmente considerado nulo o potencial
do n raiz. No entanto, observe que os potenciais so definidos a menos de uma
constante aditiva que o potencial no n raiz. Portanto, concluindo para uma base B
associada rvore T
B
5
c
B
com o n raiz k, resolver em ordem a o sistema B = c
B

conduz a:
B j j ) j ( p ) j ( d
k
T a e pertencent e para c
0
=
=

O algoritmo seguinte determina as coordenadas do vector usando a concluso
anterior.

108
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
ALGORITMO 4.2 Para determinao as variveis duais

Passo 0 Iniciar. Seja T
B
= [N, A] a rvore com raiz no n k associada base B.
Fazer
k
= 0, N
L
= {k} e N
U
= N {k}.

Passo 1 Encontrar um arco com n para onde se dirige no pertencente a N
L
.
Seja e
j
A tal que p(j)N
U
e d(j)N
L
. Se tal arco no existir, seguir para o passo 3.

Passo 2 Calcular o potencial do n para onde se dirige o arco.
Fazer
p(j)
= -c
j
+
d(j)
, N
L
N
L
{p(j)}, N
U
N
U
{p(j)}, seguir para o passo 1.

Passo 3 Encontrar um Arco com n de onde provm o arco no pertencente a N
L
.
Seja e
j
A tal que d(j)N
U
e p(j)N
L
. Se tal arco no existir, o algoritmo termina.

Passo 4 Calcular o potencial do n para onde se dirige o arco.
Fazer
d(j)
= c
j
+
p(j)
, N
L
N
L
{T(j)}, N
U
N
U
{T(j)}, seguir para o passo 1.

Assim, considerando que a varivel dual para o n raiz nula, todas as variveis duais
ficam determinadas unvoca, visto que, o grafo da rvore com raiz conexo e no tem
ciclos. Os conjuntos dos arcos escolhidos para alterao de fluxo passam a ser descrito
em funo

como se segue:

1
={ e
j
: x
j
=0 e c
j

F(j)
+
T(j)
< 0}

2
={ e
j
: x
j
= u
j
e c
j

F(j)
+
T(j)
> 0}.
109
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES

As componentes de c
B
B
-1
N podem ainda ser determinadas de outra modo. Para isso seja
B a base e T
B
a correspondente rvore. A componente i

do vector c
B
B
-1
N determinada
por c
B
B
-1
N(i). Seja A(k) = N(i) e seja y = B
-1
A(k), note que e
k
T
B
, ento [c
B
B
-1
N]
i

igual a c
B
y. Portanto para determinar y h que resolver o sistema
B y = A(k) = e
d(k)
e
p(k)
. (4.3)
Como B triangular, y pode ser obtido facilmente, usando a arvore T
B
para resolver o
sistema de equaes. Seja P={s
1
, e
j1
, s
2
, e
j2
,, s
n
, e
jn
, s
n+1
} o nico caminho em T
B

ligando o n F(k) ao n T(k). Ento pela Preposio 4.3:

=
=
n i
1 i
i
) P ( O A(j
i
)=
p(k) d(k)
e e
Ento c
B
B
-1
N(i)= c
B
y igual a:

=
=
n i
1 i
i j
) P ( O c
i
(4.4)
Qualquer uma destas metodologias pode ser usada, contudo a primeira tem sido
adoptada pela maior parte dos grupos que se dedicam ao desenvolvimento de cdigos
para problemas lineares em rede.

A equao 4.3, serve para determinar y = B
-1
A(k) cujas coordenadas so ento
determinadas pela sequncia de orientao dos arcos no caminho P:
(4.5)

=
=
contrrio caso 0
P e e se ) P ( O
y
j n
k k i
n
Como o clculo de 1 | ) P ( O |
i
=
1
e
2
passa a ser feito atravs de:

1
= {x
= ) (
min
P O
i
ji
, } e
2
= { u
= ) (
min
P O
i
ji
x
ji
, }.

110
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Considere a rvore geradora com raiz da Figura 4.10. O arco e
k
= (2, 4) um arco no
pertence rvore. O caminho P={ 2, e
2
, 3, e
3
,, 5, e
4
, 4} tem a sequncia de orientao
O(P)={-1, -1, 1}. O ciclo formado para o clculo das coordenadas de y ilustrado na
Figura 4.12.
1 2
3
e1 e2
4
5
e3 e4
ek
O1P=-1
O2P=-1
O3P=1

Figura 4.12 Ciclo formado por (2, 4).
O algoritmo primal simplex num grafo descrito pelos passos que de seguida so
indicados.

ALGORITMO 4.3 Mtodo Primal Simplex num Grafo
Passo 0 Inicializao. Seja [x
B
| x
N
] uma soluo bsica possvel sendo rvore T
B
.
Calcular usando o Algoritmo 4.2.
Passo 1 Avaliao. Seja
1
o conjunto dos arcos no bsicos com fluxo igual a zero e

F(j)

T(j)
c
j
> 0, i.e.,
1
={e
j
: x
j
= 0 e
F(j)

T(j)
c
j
> 0}
e
2
o conjunto dos arcos no bsicos com fluxo igual ao seu mximo e

F(j)

T(j)
c
j
< 0, i.e.,
2
={e
j
: x
j
= u
j
e
F(j)

T(j)
c
j
< 0}.
111
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Se
1

2
= o algoritmo termina, sendo [x
B
| x
N
] um ponto ptimo; caso
contrrio seleccionar e
k

2
e fazer:


+
=
2 k
1 k
e se 1
e se 1
.
Passo 2 Atribuio do passo. Seja P={s
1
, e
j1
, s
2
, e
j2
,, s
n
, e
jn
, s
n+1
} o passo em T
B
que
liga F(k) a T(k). Fazer:

1
= { x
= ) P ( O
i
min
ji
, +},
2
= { u
= ) P ( O
i
min
ji
x
ji
, +} e =min{
1
,
2
, u
k
}
Passo 3 Actualizao dos Fluxos. Fazer x
k
= x
k
+ . Para todos os arcos e
j

pertencentes ao caminho P fazer x
ki
= x
ki
O
i
(P). Se = u
k
, seguir para
o passo 1.
Passo 4 Actualizao da rvore e das Variveis Duais. Seja:

3
={e
ji
: x
ji
= 0, onde O
i
(P) = } e
4
={e
ji
: x
ji
= u
ji
, onde -O
i
(P) = }.
Seleccionar um qualquer e
m

4
. Substitui e
k
por e
m
, em T
B
e actualizar
as variveis duais pelo Algoritmo 4.2, seguir para o passo 1.

Como exemplo de aplicao deste algoritmo considere de novo o Exemplo 3.1 que ser
agora resolvido usando o Algoritmo 4.3.

Passo 0 (Inicializao). Seja [x
1
x
2
x
3
x
4
x
5
] = [0 0 4 1 0], sendo
x
B
= [x
1
x
4
x
5
] e x
N
= [x
2
x
3
].
Passo 1 (Avaliao na Iterao 1). Para e
2
:
2

3
c
2
= 0(9) 1 = 8 e
2

1
. Para
e
3
:
1

3
c
3
= 1(9) 3 = 7 e
3

1
e e
3

2
. Assim,
1
={e
2
},
2
=.
logo e
k
= e
2
e = 1.
112
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Passo 2 (Atribuio do Passo).
1
= min{x
4
, +} = min{1, +} = 1

2
= min{ u
1
x
1
, +} = min{40, +}=4, = min{
1
,
2
, u
k
} = min{1, 4, 2} = 1.
Passo 3 (Actualizao dos Fluxos). x
2
= 0 + 1(1) =1
x
1
= 0 1(1)(1)=1, x
4
= 1 1(1)(1)=0.
1 3
2
1
e
1
, c
1
=1, x
1
=0
2
3
e
4
, c
4
=10, x
4
=1

3
=9

1
=1

2
=0
(a)
1
u
1
=4
2
3
e
4
O
2
(P)=10
x
4
=1
(b)
e
1
O
1
(P)=-1
x
1
=0
x
2
=0
u
2
=2
e
1
c
1
=1
x
1
=1
e
2
c
2
=1
x
2
=1

2
=0
(c)

3
=1
1
=1 1 3
2
e
1
O
1
(P)=1
x
1
=1
u
1
=4
e
2
O
2
(P)=1
x
2
=1
u
2
=2
(d)
1
e
1
, c
1
=1, x
1
=2
2
3
e
3
, c
3
=3, x
3
=3

3
=2

1
=1

2
=0
(e)
e
3


Figura 4.13 rvores e ciclos para a resoluo do Exemplo 3.1.
(a) rvore para a iterao 1. (b) Ciclo para a iterao 1.
(c) rvore para a iterao 2. (d) Ciclo para a iterao 2.
(e) rvore para a iterao 3.

113
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
Passo 4 (Actualizao da rvore e das Variveis Duais).
3
= {e
4
},
4
= . Assim,
e
m
= e
4
, x
B
= [x
1
x
2
x
5
], e x
N
= [x
3
x
4
].
Passo 1 (Avaliao na Iterao 2 com [x
1
x
2
x
3
x
4
x
5
] = [1 1 4 0 0]).
Para e
3
:
1

3
c
3
= 1 (1) 3 = -1 e
3

2
.
Para e
4
:
1

3
c
4
= 1 (1) 10 = -8 e
4

1
e e
4

2
.
Assim e
k
= e
3
e = -1.
Passo 2 (Atribuio do Passo). P={1, e
1
, 2, e
2
, 3}.
1
= min{} =

2
= min{41, 21, } = 1, = min{, 1, 4} = 1.
Passo 3 (Actualizao dos Fluxos). x
3
= 4 + 1(-1) = 3
x
1
= 1 1(-1)(1) = 2, x
2
= 11(-1)(1) = 2.
Passo 4 (Actualizao da rvore e das Variveis Duais).
3
=,
4
={e
2
}. Assim,
e
m
= e
2
, x
B
= [x
1
x
3
x
5
], e x
N
= x
2
x
4
].
Passo 1 (Avaliao na Iterao 3 com [x
1
x
2
x
3
x
4
x
5
]= [2 2 3 0 0]).
Para e
2
:
2

3
c
2
= 0(2) 1=1 e
2

1
ou
2
.
Para e
4
:
1

3
c
4
= 1(2) 10=-7 e
4

1
e e
4

2
.
Conclumos assim que, o ptimo foi atingido.

O mtodo primal simplex num grafo um mtodo expedito no s para utilizao
didctica em clculo manual, mas tambm para uma implementao eficiente em
computador, recorrendo a tcnicas computacionais adequadas quer para armazenamento
de dados, quer para processamento eficiente do cdigo ditas de tecnologia de
implementao. Esta tecnologia envolve o desenvolvimento de estruturas de base de
dados, juntamente com algoritmos apropriados execuo dos vrios passos do mtodo,
que no so abordados no mbito deste texto. Para iniciar o algoritmo do simplex
114
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
necessrio conhecer uma soluo bsica possvel. Esta soluo nem sempre fcil de
ser encontrada. Em seguida ser descrita uma tcnica til para determinar uma soluo
bsica possvel para iniciar o algoritmo do simplex.

4.4- Soluo bsica possvel inicial

O passo inicializao do Algoritmo 4.3 exige encontrar uma soluo bsica possvel
com a qual se inicia o algoritmo. O mtodo de all-artificial start um mtodo
sistemtico que permite encontrar uma soluo bsica possvel com a qual se inicia o
algoritmo. Neste mtodo, somente os arcos adicionadas, chamados arcos artificiais, tem
fluxo no nulo. Os arcos da rede determinada pelo problema tm fluxos nulos. Para
apresentar o mtodo, considere uma rede, associada a um problema PLR, com I ns.

O mtodo all-artificial start envolve o aumento da rede pelo acrscimo de um novo
n, I +1 com requisito nulo. Na rede original para cada n fonte i, com requisito r
i

positivo, adicionamos um arco artificial do n i para I +1 com custo unitrio de
transporte nulo e capacidade infinita. O fluxo neste arco igual a r
i
, satisfazendo a lei
de conservao do fluxo no n i. . Na rede original para cada n k com requisito r
k

negativo (procura), adicionamos um arco artificial de I +1 para k com custo unitrio de
transporte e capacidade infinitos. O fluxo neste arco ser igual a | r
k
|, satisfazendo a lei
de conservao do fluxo no n k. Como os custos unitrios de transporte dos ltimos
arcos artificiais so infinitos, qualquer soluo sem fluxo nestes arcos ser melhor que
uma soluo que contemple fluxo no nulo neles. Portanto, fica assegurado que se
existir um ponto ptimo o fluxo nos arcos artificiais tem que ser nulo. Esta formulao
corresponde ao que tradicionalmente se chama, em literatura de programao linear,
115
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
mtodo Big-M, i.e., mtodo do grande M, visto que, o infinito em computao tem
que ser simulado por um nmero grande.

Um exemplo do mtodo all-artificial start apresentado na Figura 4.14. Note-se que
o n 5 serve apenas como um destino fictcio com uma procura nula.
{0}
{10} 1 4
2
3
{r
i
}
{-4}
{0}
{-6}
(a)
2

Figura 4.14 Exemplo de all-artificial start. (a) Rede original. (b) Rede
aumentada com o n e os arcos artificiais. (c) rvore geradora.

1 4
2
[custo, ]
{-4}
[ , ]

{10}
3
{-6}
(b)
{0}
5
[ , ]
[ ] , 0
1 4
[ 6 ]
[fluxo, ]
3
{0}
10]
5
[ 4]
[0]
[
(c)
116
4- MTODO SIMPLEX PARA PROGRAMAO EM REDES
4.5- Estratgias de avaliao
Um arco e
j
pode ter uma alterao de fluxo favorvel se e
j

2
(ver Passo 1 do
Algoritmo 4.3). A estratgia de avaliao selecciona entre vrios arcos dentro do
conjunto
1

2
, o arco no bsico cujo fluxo ser alterado. As estratgias usadas vai
desde a seleco do primeiro arco candidato at seleco, do arco candidato que tenha
o maior valor absoluto de lucro reduzido |
F(j)

T(j)
c
j
|.

Na maior parte das estratgias de avaliao, o ficheiro dos arcos gerido de forma
cronolgica, isto , numa pesquisa anterior o ltimo elemento observado foi o
localizado na posio k ento, a prxima em pesquisa comea na posio k+1. Sempre
que o fim do ficheiro alcanado, a pesquisa continua na posio 1. O mtodo simplex
termina quando a pesquisa atravs do ficheiro dos arcos no consegue encontrar um
arco candidato que por uma alterao de fluxo melhora o valor corrente da funo
objectivo
117
5- ALGORITMO DA CONDIO















5-ALGORITMO DA CONDIO PARA A PROGRAMAO EM REDES

Neste captulo ser apresentado outro mtodo conhecido por Algoritmo da Condio
para a resoluo do problema de PLR. O problema PLR em estudo est escrito na
seguinte formulao cannica:
PR

a . s
min


=
u x 0
r Ax
cx

Onde A a matriz de incidncias dos ns nos arcos e 0 r = 1 , i.e., a soma dos fluxos
que entram nos ns igual soma dos fluxos que saem dos ns. Ainda, neste algoritmo
assume-se que . O Algoritmo da Condio foi desenvolvido, como se disse no
captulo 1, por Delbert Fulkerson em 1961. Contrariamente ao primal simplex, o
algoritmo da condio no mais uma especializao de um mtodo geral. Este
algoritmo foi desenvolvido especificamente para o problema PLR. Alguns estudos
computacionais tm sido efectuadas com o objectivo de comparar o desempenho do
Algoritmo Simplex para problemas em rede com o do Algoritmo da Condio, mas
ainda se mantm dvidas sobre qual dos algoritmos superior.
0 u >

118
5- ALGORITMO DA CONDIO
5.1- Condies de ptimo

Este subcaptulo apresenta um conjunto de condies permitem terminar o algoritmo da
condio com a concluso de que o ptimo foi identificado. Estas condies so uma
especializao das condies de Karush-Kuhn-Tucker apresentadas no captulo 3.4.
Considere o grafo associada ao problema PLR, as condies de Karush-Kuhn-
Tucker para o problema podem ser apresentadas pelo seguinte sistema de Karush-Kuhn-
Tucker:
A] [N,
r x A = u x 0 (5.1)

( ) ( )
c
j j j j T j F
= para todo (5.2)
( ) 0 u x
j j j
= para todo
j
e (5.3)
para todo 0 x
j j
=
j
e (5.4)
e
0 para todo , 0
j j

j
e (5.5)
Caso seja obtido um conjunto de vectores (x, , , ) que satisfaam as condies 5.1 a
5.5, ento x ptimo para o problema PLR, visto que, este problema um problema de
programao matemtica convexo.

A
( ) ( ) j j T j F
j c c = associado o nome de lucro reduzido, o seu simtrico o custo
reduzido. Os vectores e podem ser eliminados do sistema de Karush-Kuhn-Tucker
acima apresentado, introduzido em sua substituio o lucro reduzido, visto que, e
no podem se verificar simultaneamente, atendendo a (5.3) e (5.4). e a que
.
0
j
>
0
j
>
0 u >
119
5- ALGORITMO DA CONDIO
Considere os casos.

Caso 1 Para um arco j com 0 cj < por 5.2 e 5.5 0 >
j
. Logo 5.4 no ser
satisfeito se , para o arco j 5.2 a 5.5 verificam-se se 0
j
x
0 x e 0 , c
j j
j
j
= = = .

Caso 2 Para um arco j com 0 cj > por 5.2 e 5.5 0
j
> . Logo 5.3 no ser
satisfeito se , para o arco j 5.2 a 5.5 verificam-se se
j j
u x
j j j
j
j
u x e 0 , c = = = .
Caso 3 Para um arco
0 c , e j
j
=
por 5.2 e 5.5 verificam-se se , visto
que, e no podem se verificar simultaneamente.
0
j j
= =
0
j
> 0
j
>

As condies de ptimo anteriores escrevem-se como:
(5.6) r x A =
e
para o arco j:

= >
=
= <
j j
j
j j
j
j
j
u x quando 0 c
u x 0 quando 0 c
0 x quando 0 c
(5.7)

com
( ) ( ) j j T j F
j c c =

Se (x, ) satisfazem 5.6 e 5.7, x um ptimo para a PLR.
120
5- ALGORITMO DA CONDIO
5.2- Metodologia para o algoritmo

O algoritmo da condio comea por iniciar o vector , vector cujas coordenadas so as
variveis duais, tambm conhecidas por potenciais dos ns, e o vector dos fluxos x,
satisfazendo , tal como o Algoritmo do Simplex necessita de uma
soluo bsica admissvel inicial. Os fluxos podem ser obtidos de forma sistemtica
pelo mtodo dos arcos e n artificiais, como j se disse em 4.4. Se os fluxos satisfazem
5.6 e 5.7 o algoritmo termina com a concluso que o vector x corrente um ptimo,
caso contrrio os fluxos x, ou as variveis duais ou ambos so alterados.
u x 0 r x A = ,

Se um arco j satisfaz a 5.7, ento dito estar na condio, caso contrrio, est
fora da condio. As vrias condies que podem ocorrer so ilustradas no Quadro 5.1.
j
e
j
e

Quadro 5.1 Condies possveis de um arco
j
e
0 cj < 0 cj = 0 cj >
j j
u x =
Fora da condio Na condio Na condio
j j
u x 0 < <
Fora da condio Na condio Fora da condio
0 x
j
=
Na condio Na condio Fora da condio


Observe-se que das nove condies possveis, cinco delas apresentam na condio.
Para cada uma das nove condies definido um nmero de condio, como se
apresenta no Quadro 5.2.
j
e
121
5- ALGORITMO DA CONDIO
Quadro 5.2 Condies possveis de um arco
j
e

0 cj < 0 cj = 0 cj >
j j
u x =
j
x
0 0
j j
u x 0 < <
j
x
0
j j
x u
0 x
j
=
0 0
j j
x u


Note-se que os nmeros de condio so todos no negativos e so as alteraes de
fluxo necessrio para que o arco esteja em condio. Na primeira coluna o fluxo no arco
tem que decrescer, na segunda indiferente, enquanto que na terceira tem que ser
incrementado. Seja o nmero de condio do arco . O nmero de condio da
soluo corrente, (x, ), definido por
j

j
e


A e
j
j
.
Uma soluo cujo nmero de condio zero resolve o problema PLR, ou seja, quanto
mais prximo o nmero de condio estiver de zero, mais prximo se est da soluo
ptima. O mtodo para o algoritmo da condio envolve alteraes de (x, ) de forma a
que as seguintes condies se verifiquem:

1 O nmero de condio de um arco nunca aumenta.
2 O nmero da condio reduzido, necessariamente em algum arco, aps
um nmero de iteraes finito.
O algoritmo da condio tem duas fases, a fase primal que introduz alteraes nos
fluxos dos arcos, e a fase dual que introduz alteraes nas variveis duais, ditas tambm
122
5- ALGORITMO DA CONDIO
potenciais dos ns. Ambas as fases tem como objectivo reduzir o nmero de condio,
i.e., algoritmo da condio faz iteraes nas duas fases, a primal e a dual, at que se
verifique a condio de paragens:
0
j
j
=




5.3- Fase primal

Durante a fase primal as variveis duais mantm-se fixas. Os fluxos que so alterados
pertencem aos arcos de um ciclo que ser escolhido convenientemente como ser<
esclarecido mais frente. Seja C={ s
1
, e
j(1)
, s
2
, e
j(2)
, s
3
, e
j(3)
, , s
n
, e
j(n)
, s
n+1
}, ,
um ciclo simples no grafo e seja a sequncia de orientao indicada por O(C).
O
1 n 1
s s
+
=
A] [N,
i
(C) o nmero da orientao do arco i e ( )
i
j A o vector coluna da matriz A
corresponde a esse arco, o somatrio dos produtos, do nmero de orientao de cada
arco pelo respectivo vector nulo ( )
i
j A
( ) ( )

=
=
=
n i
1 i
i i
0 j C O A
pela Preposio 4.4
Seja y dado por
( )

=
=
contrrio caso 0
e e que tal C e se C O
y
k j j i
k
i i

O vector y tem como coordenadas diferentes de zero os nmeros de orientaes dos
arcos da rede relativamente a um ciclo C: caso um arco no pertena a este ciclo a
coordenada respectiva nula. Ou seja, se o arco da rede for tambm arco do ciclo C,
ento (orientao do arco no ciclo), caso contrrio
k
e
( ) C O y
i k
= 0 y
k
= . Logo .
Como ilustrao considere a rede na Figura 5.1.
0 y = A
123
5- ALGORITMO DA CONDIO


Figura 5.1 Exemplo de uma rede

Considere o ciclo a orientao dos arcos do ciclo
, sendo
{ 1 , e , 3 , e , 4 , e , 2 , e , 1 C
2 5 4 1
= }
] ( ) { } 1 , 1 , 1 , 1 C O = [ 1 1 0 1 1 y = . A matriz de incidncias dos ns nos
arcos dada por:

=
1 1
1 1 1
1 1 1
1 1
A
e

=
0
0
0
0
0
1
1
0
1
1
1 1
1 1 1
1 1 1
1 1
y A

Considere o vector dos fluxos x possvel. Seja 0 > , dado um ciclo e o correspondente
vector das orientaes y, satisfaz y x x + =
^
r x A =
^
. A transformao de fluxo
124
5- ALGORITMO DA CONDIO
y x x + =
^
no ciclo C diz-se que aumenta o fluxo . No entanto, convm salientar que
tal aumento corresponde para um arco cuja orientao
k
e 1 y
k
= a uma diminuio de
valor no seu fluxo.
Considere o nmero de condio para o arco com fluxo , e o nmero de
condio para o arco com fluxo . Dado o vector dos fluxos x, a fase primal tenta
encontrar um ciclo de modo que para , para todo o arco e
para pelo menos um arco . Por outras palavras, tentar encontrar um ciclo
de modo que um aumento do fluxo nesse ciclo no aumente o nmero de condies de
nenhum arco e diminua o nmero de condies de pelo menos um. No quadro 5.3, so
apresentadas as alteraes de fluxo possveis para os arcos num ciclo.
k

k
e
k
x k
^

k
e k
^
x
y x x + =
^
k
k
^

k
e
m
m
^
<
m
e

Quadro 5.3 Alteraes de fluxo possveis para o arco
j
e


O mtodo usado na fase primal do algoritmo a seguinte: Dado qualquer arco fora de
condio, , encontrar um ciclo que inclua e permita de acordo com o Quadro 5.3
um aumento de fluxo no ciclo. Suponha que para o arco seleccionado fora de condio
s
e
s
e
125
5- ALGORITMO DA CONDIO
0 cs > . O mtodo para verificar se existe um ciclo que inclua e permita de acordo
com o Quadro 5.3 um aumento de fluxo no ciclo, consiste na obteno de uma rvore
do grafo, designada por , e com o n raiz no n F(s). Esta rvore ser de modo que, se
o n , um aumento de fluxo ser apenas permitido no nico caminho que na rvore
ligue o n i ao n raiz. Se
s
e
i
( ) s T , o ciclo o nico caminho na rvore vai do n
T(s) ao n F(s) fechando pelo , usando este caminho e retornando-se a T(s) atravs
do arco encontra-se o ciclo pretendido.

s
e
s
e

O algoritmo para a fase primal iniciado com a escolha de um arco fora da condio,
seja esse arco indicado por .
s
e

ALG 5.1 Fase Primal
Passo 0 Iniciar. Se 0 cs < , ento ; caso contrrio
. Atribuir ao conjunto dos arcos da rvore o
conjunto vazio .
( ) { }
( ) s s T
^
x e s T = =
( ) { }
( ) s s s F
^
x u e s F = =
=
^
Passo 1 Determinar os arcos para a rvore. Seja
( ) ( )

< =
^ ^
j j
j
s j j 1
j T e , j F , u x , 0 c , e e : e
e ( ) ( )

> =
^ ^
j
j
s j j 2
j T e , j F , 0 x , 0 c , e e : e
isto , o conjunto dos arcos diferentes do arco , cujo lucro reduzido
1

s
e
0 cj , tendo fluxo menor que o fluxo mximo e que no partem dos ns
pertencentes rvore, mas terminam num n pertencente rvore; e o
2

126
5- ALGORITMO DA CONDIO
conjunto dos arcos, diferentes do arco cujo lucro reduzido
s
e 0 cj , tendo fluxo
maior que zero e que partem dos ns pertencentes rvore, mas chegam aos ns
no pertencentes rvore. Se =
2 1
, conclui-se que no existe
possibilidade de construir o ciclo pretendido, ento segue-se para o algoritmo da
fase dual.

Passo 2 Juntar rvore um novo arco. Seleccionar um . Se
, fazer
2 1 k
e
1 k
e
( ) ( )
} x - u , min{
k k k T k F
= . Se , fazer
2 k
e
( ) ( )
} x , min{
k k F k T
= . Actualizar o conjunto dos ns e dos arcos,
. Se { , seguir para o passo 3;
caso contrrio seguir para o passo 1.
( ) ( ) { } {
k
^ ^ ^ ^
e e k T , k F = = ( ) ( )}
^
s T , s F }

Passo 3 Calcular os fluxos. Se 0 cs < , aumentar o fluxo no ciclo de ; caso
contrrio aumentar o fluxo no ciclo de
( ) s F

( ) s T
.

5.4- Fase dual

Se a fase primal termina com a concluso de que no existe ciclo, ento alteram-se as
variveis duais de modo a no aumentar o nmero de condio, isto , mantendo os
fluxos dos arcos e ajustando as variveis duais de forma conveniente.

Seja a rvore com que terminou a fase primal indicada por . Na fase dual
reduz-se cada uma das variveis duais associadas com um n em de um valor , onde
] , [
^ ^
=
^

127
5- ALGORITMO DA CONDIO
ser determinado pelo algoritmo seguinte. Seja . Ento aps a reduo das
variveis duais tm-se
^
j
e
( )
( )
( )
( )
= =
r T
r T
^
r F
r F
^
e .
Portanto . ( ) ( )
( ) ( ) r r T r F r
r T
^
r F
^
c c =

Assim, reduzindo o valor de cada varivel dual corresponde a ns em , no afecta o
nmero de condies do arcos de . Os nicos arcos cujos nmeros de condio so
afectados por esta alterao so aqueles que so incidentes num n pertencente e
num outro n pertencente .
^

^


O objectivo da fase dual determinar o valor da reduo para as variveis duais,
associadas com os ns de , de tal modo que nenhum nmero de condio dos arcos
sofra aumento e pelo menos um seja reduzido.


A alterao possvel para um arco , com , dada no quadro
5.4, enquanto que as alteraes possvel para os arcos , com ,
dada no quadro 5.5. as zonas em ambos os quadros sem indicao de valores
correspondem a situaes que no podem ocorrer na fase dual, visto que, correspondem
a situaes de expanso da rvore da fase primal, i.e., correspondem a ter-se
.
j
e ( ) ( )
^ ^
j F e j T
j
e ( ) ( )
^ ^
j T e j F

2 1
128
5- ALGORITMO DA CONDIO
Quadro 5.4 Reduo possvel em
( ) j T


0 < j c 0 = j c 0 > j c
j j
u x =
j c

j j
u x < < 0
j c

0 =
j
x
j c



Quadro 5.5 Reduo possvel em
( ) j F


0 < j c 0 = j c 0 > j c
j j
u x =
j c
j j
u x < < 0
j c
0 =
j
x
j c


O algoritmo da fase dual iniciado com a rvore , obtida na fase primal. ] , [
^ ^
=


129
5- ALGORITMO DA CONDIO
ALG 5.2 Fase Dual
Passo 1 Determinar os arcos incidentes em . Seja
( ) ( )

< = 0 c e , j F , j T : e j
^ ^
j 3

e ( ) ( )

> = 0 c e , j F , j T : e j
^ ^
j 4

isto , o conjunto dos arcos que terminam nos ns pertencentes a , mas
partem de ns no pertencentes a , e tm lucro reduzido
3

^
0 cj < ; e
4
o
conjunto dos arcos que chegam a ns no pertencentes a , mas partem de ns
pertencentes a , e tm lucro reduzido
^

^
0 cj > .

Passo 2 Determinar a alterao mxima possvel. Fazer :
|} c {| min j
e
4 3 j

=
o menor dos mdulos dos lucros reduzidos j c , dos arcos pertencentes
unio dos conjuntos .
4 3
e

Passo 3 Reduzir as variveis duais: Fazer:
=
i i
para todos os .
^
i
Note que um arco , para o qual no passo 2 da fase dual tinha
4 3 k
e = | c | k ,
depois do passo 3, ter um lucro reduzido 0 ck = . Por este motivo, se | c | s e a fase
primal for repetida, a rvore anterior de novo obtida com a adio do arco e de um
novo n que um ponto extremo. Se
k
e
= | c | s , ento estar na condio, tem
s
e
130
5- ALGORITMO DA CONDIO
consequentemente que determinar-se um outro arco fora de condio antes de voltar
fase primal.


5.5- Algoritmo da condio

O algoritmo da condio pode agora ser apresentado da seguinte forma:


ALG: 5.3 Algoritmo da Condio

Passo 0 Iniciar. Seja x uma vector dos fluxos que seja uma soluo possvel.
Uma soluo possvel pode ser sempre obtida usando variveis artificiais, como
se disse em 4.4. Seja um vector de variveis duais.

Passo 1 Encontrar um arco fora da condio. Seja um arco fora da
condio. Se todos os arcos esto na condio, terminar, concluindo que x um
ptimo.
s
e

Passo 2 Chamar a Fase Primal. Executar o algoritmo ALG 5.1 com o arco
(arco fora da condio). Se o algoritmo ALG 5.1 terminar com a concluso de
que no existe ciclo, avanar para o passo 3; caso contrrio voltar ao passo 1.
s
e

131
5- ALGORITMO DA CONDIO
Passo 3 Fase Dual. Executar o algoritmo ALG 5.2 com a rvore desenvolvida
no passo 2. Se est fora da condio, voltar para o passo 2; caso contrrio
voltar para o passo 1.
s
e

Considere novamente o exemplo 4.1. Por comodidade este problema ilustrado na
Figura 5.2. A varivel foi omitida da rede uma vez que a soma das trs restries de
igualdade implica . Na apresentao feita no captulo 4.3 a coluna associada com
foi necessria para assegurar que a caracterstica da matriz das incidncias dos ns
nos arcos fosse igual ao nmero de linhas desta matriz. O algoritmo da condio no
necessita de tal pressuposto, por isso pode ser retirado da formulao do problema.
5
x
0 x
5
=
5
x
5
x

Figura 5.2 exemplo de rede para o algoritmo da condio

Ainda por comodidade, antes de iniciar a resoluo, vamos recordar o enunciado do
problema:

5 x x x
0 x x -

5 x x x a . s
x 10 x 3 x x min
4 3 2
2 1
4 3 1
4 3 2 1
=
= +
= + +
+ + +

com as seguintes restries de no negatividade:
10 x 0 , 4 x 0 , 2 x 0 , 4 x 0
10 3 2 1
.
132
5- ALGORITMO DA CONDIO

ALG 5.3
Passo 0 (Iniciar).
Fazer [ ] [ ]
( )
[ ] [ ] 1 0 5 e 1 4 0 0 x x x x
3 2 1 4 3 2 1
= =


Passo 1 (Encontrar um arco fora da Condio).
Determinar os lucros reduzidos de cada arco:

( ) ( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) 4 10 1 5 c c
3 3 1 5 c c
0 1 1 0 c c
4 1 0 5 c c
4 4 T 4 F
4
3 3 T 3 F
3
2 2 T 2 F
2
1 1 T 1 F
1
= = =
= = =
= = =
= = =

Usando o quadro 5.2 determinar o nmero de condio de cada arco e
usando o quadro 5.1 averiguar se est na condio ou no.
5
condio da fora 1 4 c ; 1 x
condio a n 0 3 c ; 4 x
condio na 0 0 c ; 0 x
condio da fora 4 4 c ; 0 x
4
1 j
j
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =

=

existem dois arcos fora da condio, , escolhendo um qualquer, seja
para o arco escolhido para , passar fase primal.
4 1
e e e
4
e
s
e

ALG 5.1
Passo 0 (Iniciar).
Como 0 c4 < ento e o conjunto dos
arcos .
( )
( )
1 x , } 3 { } 4 T {
3 4 4 T
^
= = = =
=
^
133
5- ALGORITMO DA CONDIO
Passo 1 (Determinar arcos da rvore).
Determinar os arcos dos conjuntos
2 1
e .
( ) ( ) } e { } j T e j F , u x , 0 c , e e : e {
2
^ ^
j j
j
s j j 1
= < = e
( ) ( ) = > = } j T e j F , 0 x , 0 c , e e : e {
^ ^
j
j
s j j 2

como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
, como s existe um arco este ser o escolhido , } e {
2 2 1
=
2 k
e e =
( ) ( ) ( )
1 } 0 2 , 1 min{ } x u , { min e
2 2 2 T 2 2 F k F 1 2
3
= = = = =

3 2 1
,
, (esta rvore apresentada
na Figura 5.3a). Como voltar ao passo 1.
( ) ( ) } e { } e { e } 2 , 3 { } 2 , T 2 F {
2 2
^ ^ ^ ^
= = = =
( ) ( )
^
} 4 T , 4 F {
Passo 1 (Determinar da rvore).
= =
2 1 1
e } e { , como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
1 k
e e = ,
, ( ) ( ) } 2 , 3 , 1 { } 2 , 3 { } 1 T , 1 F { , 1 } 0 4 , 1 min{ e , e e
^ ^
1 1 1 1 k
= = = = =
e . Como seguir para o } e , e { } e { } e { } e {
2 1 1 2 1
^ ^
= = = ( ) ( )
^
} 4 T , 4 F {
passo 3.
Passo 3 (Calcular os Fluxos).
O ciclo , como 1} , e 3, , e 2, , e , 1 {
4 2 1
0 c4 < , os fluxos sero alterados de
(se o sentido do arco igual ao do ciclo o fluxo ser aumentado,
( )
1
1 4 F
= =
134
5- ALGORITMO DA CONDIO
caso contrrio ser diminudo), o novo vector dos fluxos
. Regressar ao passo 1 do ALG 5.3, para
encontrar um arco fora da condio.
[ ] [ 0 4 1 1 x x x x
4 3 2 1
= ]


Figura 5.3 rvores associadas a fases do exemplo

ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
Os lucros reduzidos so os mesmos que foram calculados anteriormente. Os
nmeros de condio de cada arco so agora:
3
condio a n 0 4 c ; 0 x
condio na 0 3 c ; 4 x
condio na 0 0 c ; 1 x
condio da fora 3 4 c ; 1 x
4
1 j
j
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =

=

Agora s existe o arco fora da condio, obviamente
1
e
1 s
e e = , passar
fase primal.
135
5- ALGORITMO DA CONDIO
ALG 5.1
Passo 0 (Iniciar).
Como 0 1 > c ento e o conjunto dos
arcos .
( )
( )
3 x u , } 1 { } 1 F {
1 1 1 1 F
^
= = = =
=
^
Passo 1 (Determinar candidatos para a rvore).
=
2 1
, seguir para a fase dual.

ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
Determinar
3
e
4
.
( ) ( ) = < = } 0 c e , j F , j T : e { j
^ ^
j 3
, e
( ) ( ) } e , e { } 0 c e , j F , j T : e {
3 1
j
^ ^
j 4
= > = .
Passo 2 (Determinar a alterao mxima possvel).
3 } 3 , 4 min{ |} c | |, c min{| 3 1 = = = .
Passo 3 (Reduzir as variveis duais).
2 3 5
1 1
= = = (o n 1 o nico pertencente ao conjunto ). As novas
^

variveis duais so [ ] [ ] 1 0 2
3 2 1
= . E os lucros reduzidos vm:
( ) ( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) 7 10 1 2 c c
0 3 1 2 c c
0 1 1 0 c c
1 1 0 2 c c
4 4 T 4 F
4
3 3 T 3 F
3
2 2 T 2 F
2
1 1 T 1 F
1
= = =
= = =
= = =
= = =

Como est fora da condio, voltar ao passo 0 do ALG 5.1 (fase primal).
1
e
136
5- ALGORITMO DA CONDIO
ALG 5.1
Passo 0 (Iniciar).
}, 1 {
^
= 1 4
1
= , =
^
Passo 1 (Determinar candidatos para a rvore).
} 3 { ,
2 1
= = como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
} e {
3 2 1
= , logo ,
3 k
e e =
( ) ( )
3 } 4 , 3 min{ } x , min{ e
3 3 F 3 3 2 3
= = = =

,
, (esta rvore apresentada na Figura 5.3b). Como
seguir para o passo 1.
} e { e } 3 , 1 { } 3 { } 1 {
3
^ ^
= = =
( ) ( )
^
} 1 , 1 F {
Passo 1 (Determinar candidatos para a rvore).
= =
2 2 1
}, e { como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
1 3} , 1 min{ e , e e
2 1 2 2 k
= = = ,
(esta rvore apresentada na Figura 5.3c). Como seguir para o
passo 3.
( ) ( ) { } } e , e { } e { } e { } e { e 3} 2, , 1 { 3 , 2 3} , 1 { } 2 , 2 F {
3 2 2 3 2
^ ^ ^ ^
= = = = = =
( ) ( )
^
} 1 , 1 F {
Passo 3
O ciclo , como 2} , e 1, , e 3, , e , 2 {
1 3 2
0 c1 > , os fluxos sero alterados de
(se o sentido do arco igual ao do ciclo o fluxo ser aumentado,
caso contrrio ser diminudo), e tomaro os valores
. Realizado o ciclo regressar ao passo 1 do
ALG 5.3, verificar se ainda h algum arco fora da condio.
( )
1
2 1
= =

[ ] [ 0 3 2 2 x x x x
4 3 2 1
= ]
137
5- ALGORITMO DA CONDIO
ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
De acordo com os lucros reduzidos calculados no passo 3 do ALG 5.2, os
nmeros de condio de cada arco so agora:
2
condio a n 0 7 c ; 0 x
condio na 0 0 c ; 3 x
condio na 0 0 c ; 2 x
condio da fora 2 1 c ; 2 x
4
1 j
j
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =

=

O arco contnua fora da condio, portanto
1
e
1 s
e e = seguir para a fase primal.

ALG 5.1
Passo 0 (Iniciar).
Como 0 1 > c ento , ( ) } 1 { } 1 F {
^
= =
( )
2
1 1 1 1
= = x u
F
e o conjunto dos
arcos . =
^
Passo 1 (Determinar candidatos para a rvore).
} e { ,
3 2 1
= = como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
3 k 3 2 1
e e }, e { = = ,
( ) ( )
[ ] [ ] 3 3 , 3 min x , min e
3 3 F 3 3 2 3
= = = =

,
. Como voltar para o passo 1. { } { } } e { e 3 , 1 ] 3 , 1 [ 1
3
^ ^
= = = ( ) ( ) { }
^
1 , 1 F
Passo 1 (Determinar candidatos para a rvore).
=
2 1
, seguir para a fase dual.

138
5- ALGORITMO DA CONDIO
ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
{ }
1 4 3
e e = = .
Passo 2 (Determinar a alterao mxima possvel).
1 ] | c | [ min 1 = = .
Passo 3 (Reduzir as variveis duais).

2 1 1
1 1 2
3 3
1 1
= = =
= = =

As novas variveis duais so [ ] [ ] 2 0 1
3 2 1
= e os lucros reduzidos:
( ) ( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) 7 10 2 1 c c
0 3 2 1 c c
1 1 2 0 c c
0 1 0 1 c c
4 4 T 4 F
4
3 3 T 3 F
3
2 2 T 2 F
2
1 1 T 1 F
1
= = =
= = =
= = =
= = =

Como 1 1 = = c ento
1
e e
s
= fica na condio, voltar ao passo 1 do ALG 5.3.
ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
De acordo com os lucros reduzidos calculados no passo anterior, os nmeros de
condio de cada arco so agora:
0
condio na 0 7 c ; 0 x
condio na 0 0 c ; 3 x
condio na 0 1 c ; 2 x
condio na 2 0 c ; 2 x
4
1 j
j
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =

=

Todos os arcos esto na condio. Terminar com a concluso de que o ptimo
foi alcanado.
139
5- ALGORITMO DA CONDIO
Para iniciar o algoritmo da condio pelo mtodo do n e arcos artificiais a que
proceder de acordo com:
1. Acrescentar um n artificial rvore cujo requisito igual soma dos requisitos
dos outros ns.
2. Criar arcos artificiais dos ns com requisito positivo para o n artificial e criar
arcos artificiais dos ns com requisito negativo para o n artificial.
3. Considerar os arcos criados em 2 que chegam ao n artificial com um custo
zero e capacidade de transporte infinita, [ ] , 0 , e os outros arcos, criados
igualmente em 2, que partem do n artificial com custo infinito e capacidade de
transporte infinita, . [ ] ,
4. Transferir os fluxos pelos arcos fictcios, atribuindo aos fluxos dos arcos do
problema original o valor zero.
Esta iniciao corresponde a uma expanso da rede do problema original. A rede
expandida representada na Figura 5.4, e os clculos so indicados de seguida para os
dois primeiros passos do algoritmo da condio.

Figura 5.4 rvore para o exemplo, n 4 artificial.
140
5- ALGORITMO DA CONDIO
Seja M um nmero positivo, mas muito grande, Big M method, ou considere no que
se segue que + M .
ALG 5.3
Passo 0 (Iniciar).
Fluxos [ ] [ ] 5 5 0 0 0 0 x x x x x x
6 5 4 3 2 1
= .
Potenciais [ ] [ ] 0 0 0 0
4 3 2 1
= .
Passo 1 (Encontrar um arco fora da Condio)

Lucros reduzidos de cada arco:
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
M M 0 0 c c
0 0 0 0 c c
10 10 0 0 c c
3 3 0 0 c c
1 1 0 0 c c
1 1 0 0 c c
6 6 T 6 F
6
5 5 T 5 F
5
4 4 T 4 F
4
3 3 T 3 F
3
2 2 T 2 F
2
1 1 T 1 F
1
= = =
= = =
= = =
= = =
= = =
= = =


Os nmeros de condio so
5
condio a d fora 5 M c ; 5 x
condio na 0 0 c ; 5 x
condio na 0 10 c ; 0 x
condio na 0 3 c ; 0 x
condio na 0 1 c ; 0 x
condio na 0 1 c ; 0 x
6
1 j
j
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =
= = =
= = =

=


141
5- ALGORITMO DA CONDIO
O arco fora da condio e o algoritmo continua. Observe que pelo facto dos
potenciais dos ns serem nulos os lucros reduzidos so o simtrico dos custos unitrios
de transporte nos arcos, sendo estes custos no negativos s o arco com custo unitrio
infinito est fora de condio. Seguidamente, ser feita de novo a resoluo do
problema anterior alterando os requisitos dos ns e usando o mtodo de iniciao por n
e arcos artificiais, pelo que fica ao cuidado do leitor a continuao desta resoluo.
6
e


5.6- Exemplo de iniciar o algoritmo da condio por n e arcos artificiais

Uma empresa pretende proceder ao planeamento de uma subcontratao para transporte
de 10 geradores construdos na fbrica de Lisboa n 1, para um cliente localizado em
Luanda n 3, existindo a alternativa de enviar os transformadores para a frica do Sul
n 2 e da para Luanda. O grafo da rede para o problema representado na Figura 5.5,
sendo o n 2 o n de transbordo situado na frica do Sul e o n 4, um n fictcio para
iniciar a soluo do problema com uma soluo bsica admissvel pelo mtodo dos
arcos e n artificial para o algoritmo da condio.

Figura 5.5 Grafo do problema

142
5- ALGORITMO DA CONDIO
Problema na forma cannica:

0 x x
10 x x x x
0 x x
10 x x x
a . s
x 5 x 3 x x min
6 5
5 4 3 2
3 2
5 4 1
4 3 2 1
= +
=
= +
= +
+ + + +

20 x 0 5, x 0 4, x 0 8, x 0
4 3 2 1
.
ALG 5.3
Passo 0 (Iniciar).
Potenciais [ ] [ ] 0 0 0 0
4 3 2 1
= .
Fluxos [ ] [ ] 10 10 0 0 0 0 x x x x x x
6 5 4 3 2 1
= .
Passo 1 (Encontrar um arco fora da Condio).
Lucros reduzidos de cada arco:
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
M M 0 0 c c
0 0 0 0 c c
5 5 0 0 c c
3 3 0 0 c c
1 1 0 0 c c
1 1 0 0 c c
6 6 T 6 F
6
5 5 T 5 F
5
4 4 T 4 F
4
3 3 T 3 F
3
2 2 T 2 F
2
1 1 T 1 F
1
= = =
= = =
= = =
= = =
= = =
= = =

E os nmeros de condio
10
condio a d fora 10 M c ; 10 x
condio na 0 0 c ; 10 x
condio na 0 5 c ; 0 x
condio na 0 3 c ; 0 x
condio na 0 1 c ; 0 x
condio na 0 1 c ; 0 x
6
1 j
j
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =
= = =
= = =

=

143
5- ALGORITMO DA CONDIO
Arco est fora da condio, seguir para a fase primal.
6
e

ALG 5.1
Passo 0 (Iniciar).
Como 0 c6 < ento , ( ) { } { } 3 6
^
= =
( )
10 x
6 3 6
= = =

e . =
^
Passo 1 (Determinar candidatos para a rvore).
Como =
2 1
, seguir para a fase dual.

ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
{ } = =
4 6 4 3 2 3
e , e , e , e , e .
Passo 2 (Determinar a alterao mxima possvel).
1 ] M , 5 , 3 , 1 [ min = = .
Passo 3 (Reduzir as variveis duais).
1 1 0
3
= =
o vector dos potenciais [ ] [ ] 0 1 0 0
4 3 2 1
= , calcular os lucros
reduzidos:
( ) ( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) ( )
( ) 1 M M 1 0 c c
0 0 0 0 c c
4 5 1 0 c c
2 3 1 0 c c
0 1 1 0 c c
1 1 0 0 c c
6 6 T 6 F
6
5 5 T 5 F
5
4 4 T 4 F
4
3 3 T 3 F
3
2 2 T 2 F
2
1 1 T 1 F
1
+ = = =
= = =
= = =
= = =
= = =
= = =

Voltar ao passo 1 do ALG 5.1.
144
5- ALGORITMO DA CONDIO
ALG 5.1
Passo 1 (Determinar candidatos para a rvore).
{ } = =
2 2 1
e , e . Como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
2
e e
k
= . Como
( )
[ ] [ ] 4 4 , 10 min x u , min e
2 2 3 2 k F 1 2
= = = = ,
. Como voltar para o passo 1. { } {
2
^ ^
e 3 , 2 e = = } ( ) ( ) { }
^
6 , 6 F
Passo 1 (Determinar candidatos para a rvore).
. Como = =
2 1
=
2 1
, seguir para a fase dual.

ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
{ } = =
4 6 4 1 3
e , e , e , e .
Passo 2 (Determinar a alterao mxima possvel) [ ] 1 1 M , 4 , 1 min = + = .
Passo 3 (Reduzir as variveis duais).
1 1 0 e 2 1 1
2 3
= = = = . E para os potenciais vem
[ ] [ 0 2 1 0
4 3 2 1
] = , tomando os lucros reduzidos os valores:
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) ( )
( )

=
=
= + = = =
= = = =
= = = =
= = = =
= = = =
= = = =
6
1 j
j
6 6 6 T 6 F
6
5 5 5 T 5 F
5
4 4 4 T 4 F
4
3 3 3 T 3 F
3
2 2 2 T 2 F
2
1 1 1 T 1 F
1
10
10 2 M M 2 0 c c
0 0 0 0 0 c c
0 3 5 2 0 c c
0 2 3 2 1 c c
0 0 1 2 1 c c
0 0 1 1 0 c c

Voltar ao passo 1 do ALG 5.1.
145
5- ALGORITMO DA CONDIO
ALG 5.1
Passo 1 (Determinar candidatos para a rvore).
{ } = =
2 1 1
e , e . Como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
1 k
e e = . Como
( )
[ ] [ ] 4 8 , 4 min x u , min e
1 1 2 1 k F 1 1
= = = = ,
. Como voltar para o passo 1. { } {
2 1
^ ^
e , e e 3 , 2 , 1 = = } ( ) ( ) { }
^
6 , 6 F
Passo 1 (Determinar candidatos para a rvore).
{ }
5 2 1
e e = = . Como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
5
e e
k
= . Como
( )
[ ] [ ] 4 10 , 4 min x , min e
5 1 4 k 2 5
= = = =

,
. Como seguir para o passo 3. { } {
5 2 1
^ ^
e , e , e e 4 , 3 , 2 , 1 = = } ( ) ( ) { }
^
6 , 6 F
Passo 3 (Calcular os Fluxos).
O ciclo { } 4 , e 3, , e , 2 , e 1, , e , 4 C
6 2 1 5
= e est representado na Figura 5.6, como
0 6 < c , 4
4
= , [ ] [ ] 6 6 0 0 4 4 x x x x x x
6 5 4 3 2 1
= . Voltar ao
passo 1 do ALG 5.3.

Figura 5.6 Ciclo C
146
5- ALGORITMO DA CONDIO
ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
De acordo com os novos fluxos e os ltimos lucros reduzidos os nmeros de
condio so os seguintes:
6
condio da fora 6 2 M c ; 6 x
condio na 0 0 c ; 6 x
condio na 0 3 c ; 0 x
condio na 0 2 c ; 0 x
condio na 0 0 c ; 4 x
condio na 0 0 c ; 4 x
6
1 j
j
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
=
= + = =
= = =
= = =
= = =
= = =
= = =

=

Arco est fora da condio, seguir para a fase primal.
6
e

ALG 5.1
Passo 0 (Iniciar). Como 0 c6 < ento , ( ) { } { } 3 6
^
= =
( )
6 x
6 3 6
= = =

e o
conjunto dos arcos . =
^
Passo 1 (Determinar candidatos para a rvore), = =
2 1
. Como =
2 1
,
seguir para a fase dual.

ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
{ } = =
4 6 4 3 3
e , , , e e e .
Passo 2 (Determinar a alterao mxima possvel).
[ ] 2 2 M , 3 , 2 min = + = .
147
5- ALGORITMO DA CONDIO
Passo 3 (Reduzir as variveis duais).
4 2 2
3
= = .
E para os potenciais vem [ ] [ ] 0 4 1 0
4 3 2 1
= , tomando os
lucros reduzidos os valores:
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) ( )
( )

=
=
= + = = =
= = = =
= = = =
= = = =
= = = =
= = = =
6
1 j
j
6 6 6 T 6 F
6
5 5 5 T 5 F
5
4 4 4 T 4 F
4
3 3 3 T 3 F
3
2 2 2 T 2 F
2
1 1 1 T 1 F
1
6
6 4 M M 4 0 c c
0 0 0 0 0 c c
0 1 5 4 0 c c
0 0 3 4 1 c c
0 2 1 4 1 c c
0 0 1 1 0 c c

Voltar ao passo 1 do ALG 5.1.
ALG 5.1

Passo 1 (Determinar candidatos para a rvore).
{ } = =
2 3 1
e , e . Como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
3
e e
k
= . Como
( )
[ ] [ ] 5 5 , 6 min x u , min e
3 3 3 2 k F 1 3
= = = = ,
. Como voltar para o passo 1. { } {
3
^ ^
e e 3 , 2 = = } ( ) ( ) { }
^
6 , 6 F
Passo 1 (Determinar candidatos para a rvore).
{ } = =
2 1 1
e , e . Como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
1 k
e e = . Como
( )
[ ] [ ] 4 4 - 8 , 5 min x - u , min e
1 1 2 1 k F 1 1
= = = = ,
. Como seguir para o passo 1. { } {
3 1
^ ^
e , e e 3 , 2 , 1 = = } ( ) ( ) { }
^
6 , 6 F
148
5- ALGORITMO DA CONDIO
Passo 1 (Determinar candidatos para a rvore).
. Como { }
5 2 1
e e , = =
2 1
, seguir para o passo 2.

Passo 2 (Juntar rvore um novo arco).
5
e e
k
= . Como
( )
[ ] [ ] 4 6 , 4 min x , min e
5 1 4 k 2 5
= = = =

,
. Como seguir para o passo 3. { } {
5 3 1
^ ^
e , e , e e 4 , 3 , 2 , 1 = = } ( ) ( ) { }
^
6 , 6 F

Passo 3 (Calcular os Fluxos).
O ciclo
{ } 4 , e 3, , e , 2 , e 1, , e , 4 C
6 3 1 5
=
e est representado na Figura 5.7, como 0 6 < c , os fluxos dos arcos do ciclo
viro alterados de 4
4
= e tomam os valores
[ ] [ ] 2 2 0 4 4 8 x x x x x x
6 5 4 3 2 1
= . Voltar ao passo 1 do ALG
5.3.


Figura 5.7 Ciclo C
149
5- ALGORITMO DA CONDIO
ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
De acordo com os novos fluxos e os ltimos lucros reduzidos os nmeros de
condio so os seguintes:
2
condio da fora 2 4 M c ; 2 x
condio na 0 0 c ; 2 x
condio na 0 1 c ; 0 x
condio na 0 0 c ; 4 x
condio na 0 2 c ; 4 x
condio na 0 8 c ; 8 x
6
1 j
j
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
=
= + = =
= = =
= = =
= = =
= = =
= = =

=

Arco est fora da condio, seguir para a fase primal.
6
e

ALG 5.1
Passo 0 (Iniciar).
Como 0 c6 < ento , ( ) { } { } 3 6
^
= =
( )
2 x
6 3 6
= = =

e o conjunto dos arcos


. =
^
Passo 1 (Determinar candidatos para a rvore).
{ } = =
2 3 1
e , e como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
3 k
e e = . Como
( )
[ ] [ ] 1 1 , 2 min x u , min e
3 3 3 2 k F 1 3
= = = = ,
. Como voltar para o passo 1. { } {
3
^ ^
e e 3 , 2 = = } ( ) ( ) { }
^
6 , 6 F
Passo 1 (Determinar candidatos para a rvore).
como = =
2 1

2 1
, seguir para a fase dual.
150
5- ALGORITMO DA CONDIO
ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
{ } = =
4 6 4 3
e , e e .
Passo 2 (Determinar a alterao mxima possvel).
[ ] 1 4 M , 1 min = + = .
Passo 3 (Reduzir as variveis duais).
5 1 4
3
= = .
E para os potenciais vem [ ] [ ] 0 5 1 0
4 3 2 1
= , tomando os
lucros reduzidos os valores:
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) ( )
( )

=
=
= + = = =
= = = =
= = = =
= = = =
= = = =
= = = =
6
1 j
j
6 6 6 T 6 F
6
5 5 5 T 5 F
5
4 4 4 T 4 F
4
3 3 3 T 3 F
3
2 2 2 T 2 F
2
1 1 1 T 1 F
1
2
2 5 M M 5 0 c c
0 0 0 0 0 c c
0 0 5 5 0 c c
0 1 3 5 1 c c
0 3 1 5 1 c c
0 0 1 1 0 c c

Voltar ao passo 1 do ALG 5.1.

ALG 5.1
Passo 1 (Determinar candidatos para a rvore).
{ } = =
2 4 1
e , e . Como
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
4
e e
k
= . Como
( )
[ ] [ ] 2 20 , 2 min x - u , min e
4 4 3 1 k F 1 4
= = = = ,
. Como seguir para o passo 1. { } {
4
^ ^
e e 3 , 1 = = } ( ) ( ) { }
^
6 , 6 F
151
5- ALGORITMO DA CONDIO
Passo 1 (Determinar candidatos para a rvore).
. Como { }
5 2 1
e e , = =
2 1
, seguir para o passo 2.
Passo 2 (Juntar rvore um novo arco).
5
e e
k
= . Como
( )
[ ] [ ] 2 2 , 2 min x , min e
5 1 4 k 2 1
= = = =

,
. Como seguir para o passo 3. { } {
5 4
^ ^
e , e e 4 , 3 , 1 = = }
}
( ) ( ) { }
^
6 , 6 F

Passo 3 (Calcular os Fluxos).
O ciclo e est representado na Figura 5.8, como { 4 , e 3, , e 1, , e , 4 C
6 4 5
=
0 c6 < , os fluxos dos arcos do ciclo viro alterados de 2
4
= e tomam os
valores [ ] [ ] 0 0 2 4 4 8 x x x x x x
6 5 4 3 2 1
= . Voltar ao passo 1
do ALG 5.3.


Figura 5.8 Ciclo C
ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
152
5- ALGORITMO DA CONDIO
De acordo com os novos fluxos e os ltimos lucros reduzidos os nmeros de
condio so os seguintes:
1
condio na 0 4 M c ; 0 x
condio na 0 0 c ; 0 x
condio na 0 0 c ; 2 x
condio da fora 1 1 c ; 4 x
condio na 0 3 c ; 4 x
condio na 0 0 c ; 8 x
6
1 j
j
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
=
= + = =
= = =
= = =
= = =
= = =
= = =

=

Arco est fora da condio, seguir para a fase primal.
3
e

ALG 5.1
Passo 0 (Iniciar).
Como 0 c3 > ento , ( ) { } { } 2 3 F
^
= =
( )
1 x u
3 3 2 3 F
= = = e o conjunto dos
arcos . =
^
Passo 1 (Determinar candidatos para a rvore).
como = =
2 1

2 1
, seguir para a fase dual.
ALG 5.2
Passo 1 (Determinar os arcos incidentes na rvore).
{ }
3 2 4 3
e , e e = = .
Passo 2 (Determinar a alterao mxima possvel).
[ ] 1 1 , 3 min = = .
Passo 3 (Reduzir as variveis duais).
2 1 1
2
= = .
153
5- ALGORITMO DA CONDIO
E para os potenciais vem [ ] [ ] 0 5 2 0
4 3 2 1
= , tomando os
lucros reduzidos os valores:
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( )
( ) ( )
( ) ( )
( )

=
=
= + = = =
= = = =
= = = =
= = = =
= = = =
= = = =
6
1 j
j
6 6 6 T 6 F
6
5 5 5 T 5 F
5
4 4 4 T 4 F
4
3 3 3 T 3 F
3
2 2 2 T 2 F
2
1 1 1 T 1 F
1
1
0 5 M M 5 0 c c
0 0 0 0 0 c c
0 0 5 5 0 c c
1 0 3 5 2 c c
0 2 1 5 2 c c
0 1 1 2 0 c c

Como
3
3 e , 0 c = fica na condio, voltar ao passo 1 do ALG 5.3.

ALG 5.3
Passo 1 (Encontrar um arco fora da Condio).
De acordo com os novos fluxos e os ltimos lucros reduzidos os nmeros de
condio so os seguintes:
0
condio na 0 M c ; 0 x
condio na 0 0 c ; 0 x
condio na 0 0 c ; 2 x
condio na 0 0 c ; 4 x
condio na 0 2 c ; 4 x
condio na 0 1 c ; 8 x
6
1 j
j
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
=
= = =
= = =
= = =
= = =
= = =
= = =

=

Todos os arcos esto na condio de optimalidade, sendo os fluxos e os
potenciais finais os seguintes:
[ ] [ ] 0 0 2 4 4 8 x x x x x x
6 5 4 3 2 1
=
[ ] [ 0 5 2 0
4 3 2 1
] = .
154
5- ALGORITMO DA CONDIO

Assim o problema dado resolvido utilizando o algoritmo da condio. Em anexos a
este captulo, apresenta-se, em anexo 1 a listagem do programa de computador
desenvolvido no mbito deste trabalho, em anexo 2 os resultados dados pelo programa
da resoluo do problema dado e em anexo 3 a resoluo de um segundo problema para
teste do programa.

5.7- Convergncia do Algoritmo da Condio

Para provar que este algoritmo converge num nmero finito de iteraes assume-se que
r, u, c, x, e so vectores cujas coordenadas so inteiros. Assim, cada vez que se obtm
um avano e uma alterao do fluxo na fase primal, o nmero da condio de
reduzido pelo menos de 1. Cada vez que se alteram as variveis duais na fase dual, ou a
rvore desenvolvida na fase primal seguinte tem pelo menos mais um n (e um arco) ou
o nmero da condio do sistema reduzido de pelo menos 1. Por aplicao repetida
das fases primal e dual sobre um arco fora da condio, no ser possvel desenvolver a
rvore indefinidamente. Uma rvore geradora para o grafo pode ser produzida na fase
primal. A rvore geradora juntamente com permite construir um ciclo. Ento, aps
um nmero finito de passos, ser reduzido a zero.
s
e
s
e



j
e
j
155
6- CDIGO LSNNO, CASCATA HDRICA
















6- CDIGO LSNNO, CASCATA HDRICA

Neste captulo no mbito da programao matemtica em redes abordado o problema
da simulao computacional da gesto racional de albufeiras em cascata num horizonte
de curto prazo e para suporte computacional usada a aplicao informtica LSNNO,
Large Scale Nonlinear Network Optimization. O LSNNO foi desenvolvido no
departamento de matemtica ND de la Paix (Blgica) e que est disponvel em
linguagem Fortran na Internet juntamente com um manual do utilizador. No entanto, o
manual do utilizador no est em word pelo que se anexa uma verso deste manual no
fim deste captulo.

6.1- Simulao da Gesto de cascatas hdricas

Uma empresa de sistemas de energia elctrica deve ter a preocupao de decidir com
racionalidade a gesto dos recursos que gere, i.e., o parque de recursos que o seu
sistema a gerir, com o qual obtm os proveitos que justificam e asseguram a sua
existncia. O objectivo a atingir na produo da energia elctrica e a maximizao do
lucro obtido com a venda da energia elctrica dentro das condicionantes quer
156
6- CDIGO LSNNO, CASCATA HDRICA
regulamentadas quer tcnicas. A venda de energia elctrica pode ser realizada quer
directamente aos consumidores por contratos bilaterais, quer num mercado de energia
elctrica onde a empresa tem que caracterizar a sua oferta tambm de acordo com a
regulamentao para o mercado.
O objectivo de atingir, a maximizao do lucro obtido com a venda da energia elctrica,
salvaguarda a viabilidade da empresa e a sua competitividade num mercado competitivo
de energia elctrica. Num aproveitamento hidroelctrico a optimizao da gesto dos
recursos consiste em decidir a gesto da gua que est disponvel. Esta optimizao
sujeita a condicionantes que so impostas quer pelo equipamento, condicionantes
tcnicas, quer por razes ecolgicas e de segurana, condicionantes polticas. Envolve a
determinao do volume de gua a turbinar mais proveitoso em cada perodo, tendo em
conta o valor pago pela energia produzida nesses perodos, que varivel durante o
perodo. A dificuldade em tomar as decises mais adequadas cresce quando a empresa
de produo de energia elctrica tem que gerir mais de que um aproveitamento hdrico e
esses aproveitamentos so em cascata. As variveis ligadas aos trnsitos de volume de
guas ficam relacionadas pelas equaes de balano das guas, complicando o problema
e o gestor tem que recorrer a sistemas de suporte tomada de deciso para conseguir ter
uma gesto adequada, que atinja o melhor proveito.
O recurso simulao computacional do modelo matemtico do sistema a gerir e a
tcnicas de optimizao, permitem gerar um sistema de informao para o suporte das
decises racionais do sistema a gerir. Estes sistemas de informao de gesto so
obviamente de grande interesse para a viabilidade da empresa e a sua competitividade
no mercado de energia elctrica. Actualmente, no se pode conceber a explorao dos
recursos de forma eficiente sem o uso deste tipo de simulao computacional.
157
6- CDIGO LSNNO, CASCATA HDRICA
6.2- Gesto de uma cascatas hdricas no curto prazo

O estudo que apresentado aborda um aproveitamento hdrico com albufeiras em
cascata, que um problema bem adaptado para ser tratado por programao matemtica
em redes cuja formulao do tipo
prazo curto no cascata da gesto a para problema

a . s
) ( f max


=
u x 0
r Ax
x

Onde a funo objectivo pode ser uma funo no linear e os fluxos so os volumes de
gua quer em trnsito quer armazenados nas albufeiras.
Seja a configurao para o problema a do seguinte aproveitamento hdrico em cascata


















Figura 6.1 Configurao do aproveitamento hdrico em cascata.


Tipicamente, o problema da gesto racional de albufeiras em cascata num horizonte de
curto prazo considera as decises tomadas em perodos horrios durante um horizonte
158
6- CDIGO LSNNO, CASCATA HDRICA
temporal de alguns dias at uma semana. Portanto, o horizonte de deciso do ciclo
diria at ao semanal do uso de energia elctrica por parte dos consumidores que
considerado neste problema. No entanto, justificvel em certas situaes um perodo
inferior, quer para obter uma melhor gesto do aproveitamento quer para considerar
tempos de transito da gua entre albufeiras que necessitem de reduzir a amplitude do
perodo. Neste problema existem condicionantes determinadas pelas limitaes fsicas
das albufeiras, das turbinas e condicionantes determinadas quer por razes de segurana
das albufeiras quer por questes ambientais. Os dados que caracterizam a capacidade
produtiva dos recursos ao longo do horizonte temporal so o volume inicial da gua
armazenado nas albufeiras e as sries de afluncias aos reservatrios ao longo dos
perodos do horizonte temporal.

6.3- Limites para as variveis

Os volumes mximos e mnimos das albufeiras so determinados por razes quer
ecolgicas quer de segurana, cujo o estudo no objectivo desta simulao.





Figura 6.2 Volume mximo e mnimo de uma albufeira nvel da gua numa albufeira.
159
6- CDIGO LSNNO, CASCATA HDRICA
Consequentemente, os volumes mximos e os volumes mnimos para as albufeiras so
considerados dados do problema. Nas expresses indicadas de seguida o ndice superior
corresponde ao perodo e o inferior corresponde albufeira. Quando o ndice superior
for nulo, perodo zero, corresponde a valores de iniciais das variveis.
Dados
o
i
v - Volume inicial na albufeira i
k
i
a - Afluncia albufeira i no intervalo de tempo k
i
_
i
_
v , v - Volume mnimo e volume mximo permitido na
albufeira i
i
_
i
_
s , s - Caudal mnimo e caudal mximo que possvel
entornar na albufeira (i);
i
_
i
_
t , t - Caudal mnimo e caudal mximo que possvel
turbinar na albufeira (i);
As limitaes consideradas so:

i
k
i i
v v v - intervalo de variao do volume admissvel na
albufeira i


i
k
i i
s s s - intervalo de variao do caudal descarregado na
albufeira i


i
k
i i
t t t - intervalo de variao dos caudal turbinado na
albufeira i.

Na pgina seguinte na Figura 6.3 est representada a rede para o aproveitamento hdrico
em cascata em estudo. A rede descreve o aproveitamento hidroelctrico em cascata
composto por trs albufeiras. O horizonte de explorao uma semana com perodos de
uma hora, isto , 168 horas de explorao.
160
6- CDIGO LSNNO, CASCATA HDRICA
161




N raiz
Figura 6.3 Rede para o problema com trs albufeiras em cascata.
6- CDIGO LSNNO, CASCATA HDRICA
Com a possvel excepo da central de cabea cada central recebe a gua que provm da
albufeira de montante e envia a gua para jusante. Caso se justifique a gua pode ser
descarregada directamente para jusante, i.e., sem originar produo de energia elctrica
na central.

6.4- Funo objectivo

A funo objectivo que mede o mrito das decises tomadas a soma dos lucros
obtidos na explorao das centrais hidroelctricas, sendo a expresso do lucro para uma
central i dada por
(6.1)
) t , h ( p lucro
k
i
k
i
k
i
k
i
k
i
=
em que o preo unitrio da energia elctrica para a albufeira i no perodo k. No que
respeita produo de energia elctrica , esta depende no s do caudal de
gua turbinada como tambm da altura de queda til existente entre as duas albufeiras
de montante e de jusante. A figura seguinte representa algumas curvas que so
aproximaes lineares das curvas tpicas para p(h, t).
k
i

) t , h ( p
k
i
k
i
k
i

















Figura 6.3 Aproximao linear das curvas de p(h, t).
162
6- CDIGO LSNNO, CASCATA HDRICA
Assim, resulta que so consideradas as expresses do tipo seguinte para a determinao
da produo

) h ( t p
k
i i 0 i
k
i
k
i
+ = 3 , 2 , 1 i =
(6.2)

R ,
i 0 i


Considerando todos os aproveitamentos hdricos, ou sejam todas as trs albufeiras,
obtemos a seguinte funo objectivo

) p p p (
k
3
k
3
k
2
k
2
n
1 k
k
1
k
1
+ +

=
(6.3)

caso o valor unitrio da energia elctrica nas centrais produtoras seja o mesmo a funo
objectivo a seguinte

=
+ +
n
1 k
k
3
k
2
k
1
k
) p p p (

Na equao (6.2), a produo p ser relacionada com o caudal de gua turbinada e a
altura de queda , pela seguinte relao
k
i
t
k
i
h

) h ( t p
k
i i 0 i
k
i
k
i
+ =

onde o valor de depende dos nveis relativos das albufeiras em relao ao mar. Estes
nveis sero calculados em funo dos volumes de gua armazenados nas albufeiras,
sendo consideradas respectivamente as seguintes expresses, para a altura de queda e
nvel da gua nos reservatrios
k
h
i

sendo e (6.4)
k
1 i
k
i
k
i
l l h
+
=
k
i i io
k
i
v m l l + =
k
1 i 1 i 1 i
k
1 i
v m l l
+ + + +
+ =

com R m , l
0 i 0 i

163
6- CDIGO LSNNO, CASCATA HDRICA

A figura seguinte ilustra a conveno utilizada para os indicies e as variveis que
determinam a produo das centrais hidroelctricas.


















Figura 6.4 Representao da altura de queda til para uma albufeira.

6.5- Equaes de balano
Outras restries do problema so as equaes de balano que impe a condio de os
ns no terem capacidade de armazenamento. A soma de todos os fluxos dos arcos
sobre uma superfcie fechada que encerra um n tem que ser igual a zero ou seja

n
i
n
i
n
i
n
1 i
n
1 i
n
i
1 n
i
s t v s t r v + + = + + +

(6.5)


6.6- Construo dos ficheiros para a aplicao LSNNO
Como aplicao informtica para suporte da soluo deste problema decisonal de gesto
de curto prazo de um aproveitamento hidroelctrico em cascata composto por trs
albufeiras, sugere-se o Software designado por LSNNO Large Scale Nonlinear
164
6- CDIGO LSNNO, CASCATA HDRICA
Network Optimization, desenvolvido no departamento de matemtica ND de la Paix
(Blgica) e que est disponvel no site da Internet com o seguinte endereo:
http://www-fp.mes.anl.gov/otc/Guide/SoftwareGuide/Blurbs/lsnno.html

o software pode ser obtido em

ftp://ftp.bilkent.edu.tr/pub/IEOR/Opt/Network

LSNNO uma rotina para resolver problemas de optimizao no linear, com restries
lineares em rede, desenvolvida em Standart ANSI Fortran.
Para utilizar este cdigo LSNNO necessrio alterar em conformidade com os dados do
problema as seguintes sub-rotinas que esto dentro do pacote fornecido pelo autor:
exmain.f,
elfnct.f,
elpr.f,
els.f,
rhs.f,
xlower.f,
xupper.f,
range.f.
O manual do utilizador para este cdigo anexado no fim deste do captulo, sendo
conveniente uma primeira leitura do manual LSNNO, A Fortran Subroutine for Large
Scale Nonlinear Network Optimization Problems (Users Guide) antes da apresentao
que se segue do problema
Para compreender a introduo dos dados neste cdigo, considere-se apenas trs
perodos no horizonte temporal. A rede para a cascata hdrico ento a apresentada na
figura seguinte.

165
6- CDIGO LSNNO, CASCATA HDRICA






































(Mar =>Fim de Cascata)
N raiz

Figura 6.5 Rede para o problema com trs perodos no horizonte.

As expresses matemticas que definem a funo objectivo para as diferentes horas de
funcionamento e para as trs albufeiras, so obtidas usando as expresses do lucro,
produo de energia elctrica e altura de queda, sendo obtidas as equaes seguintes.

166
6- CDIGO LSNNO, CASCATA HDRICA
1hora 2hora 3hora



1

















Na ltima albufeira 3 o nvel constante, i.e, tem-se 0 m
4
= . Aps substituio obtemos
os seguintes elementos pertencentes funo objectivo

1hora 2hora 3hora


















1
1
p
2
1
2
p
3
1
3
p
A
l
b
u
f
e
i
r
a
1
( )
1
1 1 10
1
1
1
1
h t p + = ( )
2
1 1 10
2
1
2
1
h t p + = ( )
3
1 1 10
3
1
3
1
h t p + =
( )
1
2 2 20
1
1 1 10
1
1
v m l v m l h + = ( )
2
2 2 20
2
1 1 10
2
1
v m l v m l h + = ( )
3
2 2 20
3
1 1 10
3
1
v m l v m l h + =
( )
1
2 2 20
1
2
1
2
h t p +
1
2
1
p
=
( )
1
3 3 30
1
2 2 20
1
2
v m l v m l h + =
( )
2
2 2 20
2
2
2
2
h t p + = ( )
3
2 2 20
3
2
3
2
h t p + =
3
2
3
p
2
2
2
p
A
l
b
u
f
e
i
r
a
2
( )
3
3 3 30
3
2 2 20
3
2
v m l v m l h + = ( )
2
3 3 30
2
2 2 20
2
2
v m l v m l h + =
A
l
b
u
f
e
i
r
a
3
( )
1
3 3 30
1
3
1
3
h t p +
1
3
1
p
( )
3
3 3 30
3
3
3
3
h t p + =
3
3
3
p
( )
2
3 3 30
2
3
2
3
h t p + =
2
3
2
p
=
( )
1
4 4 40
1
3 3 30
1
3
v m l v m l h + ( )
2
4 4 40
2
3 3 30
2
3
v m l v m l h + = ( )
3
4 4 40
3
3 3 30
3
3
v m l v m l h + = =
A
l
b
u
f
e
i
r
a
1
( ) [ ]
3
2 2 20
3
1 1 10 1 10
3
1
3
v m l v m l t + +
( ) [ ]
1
2 2 20
1
1 1 10 1 10
1
1
1
v m l v m l t + +
( ) [ ]
2
2 2 20
2
1 1 10 1 10
2
1
2
v m l v m l t + +
A
l
b
u
f
e
i
r
a
2
( ) [ ]
3
3 3 30
3
2 2 20 2 20
3
2
3
v m l v m l t + +
( ) [ ]
1
3 3 30
1
2 2 20 2 20
1
2
1
v m l v m l t + +
( ) [ ]
2
3 3 30
2
2 2 20 2 20
2
2
2
v m l v m l t + +
A
l
b
u
f
e
i
r
a
3
( ) [ ]
40
1
3 3 30 3 30
1
3
1
l v m l t + + ( ) [ ]
40
3
3 3 30 3 30
3
3
3
l v m l t + +
( ) [ ]
40
2
3 3 30 3 30
2
3
2
l v m l t + +
167
6- CDIGO LSNNO, CASCATA HDRICA
Substituindo nestas expresses os caudais de gua turbinada t, descarregados s e os
volumes das albufeiras v por variveis x de acordo com a Figura 6.5, obtemos as
seguintes expresses:
Quadro 6.1- Expresses para a funo objectivo


1hora 2hora 3hora

A
l
b
u
f
e
i
r
a
1


10
x ( ) [ ]
4 2 20 1 1 10 1 10
( ) [ ]
6 2 20 3 1 10 1 10 12
3
x m l x m l x + +
1
x m l x m l + +
( ) [ ]
5 2 20 2 1 10 1 10 11
2
x m l x m l x + +


A
l
b
u
f
e
i
r
a
2


( ) [ ]
7 3 30 4 2 20 2 20 13
1
x m l x m l x + + ( ) [ ]
9 3 30 6 2 20 2 20 15
3
x m l x m l x + +
( ) [ ]
8 3 30 5 2 20 2 20 14
2
x m l x m l x + +




( ) [ ]
40 7 3 30 3 30 16
1
l x m l x + +
A
l
b
u
f
e
i
r
a
3
( ) [ ]
40 9 3 30 3 30 18
3
l x m l x + +

( ) [ ]
40 8 3 30 3 30 17
2
l x m l x + +


Nesta fase da leitura conveniente ler o manual LSNNO, A Fortran Subroutine for
Large Scale Nonlinear Network Optimization Problems (Users Guide), no subcaptulo
6.7, e simular o exemplo que est descrito nele, visto que, ajuda a compreender a
introduo de dados no cdigo. O funo objectivo uma forma quadrtica indefinida
como facilmente se prova pelo facto do trao da matriz hessiana ser nulo, pelo que este
problema deveria ser tratado como uma problema que necessita dos mtodos de
optimizao global. No entanto, pode usar-se este cdigo se for iniciado
convenientemente e averiguado os resultados obtidos. Para a introduo da funo
objectivo no cdigo necessrio decompor estas em termos aditivos ditos elementos
com um nmero reduzido de variveis para que o cdigo tenha um desempenho mais
eficaz. Para obter as variveis dos elementos da funo objectivo a introduzir no
168
6- CDIGO LSNNO, CASCATA HDRICA
ficheiro elpr.f, vai se proceder anlise da distribuio dos ndices das variveis no
grafo seguinte.





































{r }
1
1
{r }
1
2
{r }
1
3
{r }
2
2
{r }
2
3
{r }
3
2
{r }
3
3
{r }
2
1
{r }
3
1
(Mar =>Fim de Cascata)
t
1
1
1
s
1
2
1
s
3
1
s
3
2
s
2
2
s
1
2
s
1
3
s
2
3
s
3
3
s
t
2
1
t
3
1
t
3
2
t
2
2
t
1
2
t
1
3
t
2
3
t
3
3
1
v
1
2
1
v
1
2
v
2
2
v
1
3
v
2
3
v
N raiz
4 i
k
3;3
i=1
k=1
r =v +a
r =a ; k=1
3
3
v
2
3
v
3
1
v
Figura 6.6 Variveis pertencentes a cada elemento da funo objectivo.
Agrupando as variveis de cada elemento da funo objectivo obtemos o seguinte:
) x , x ( elm ) x , x ( elm ) x , x ( elm
) x , x , x ( elm ) x , x , x ( elm ) x , x , x ( elm
) x , x , x ( elm ) x , x , x ( elm ) x , x , x ( elm
18 9 9 17 8 8 16 7 7
15 9 6 6 14 8 5 5 13 7 4 4
12 6 3 3 11 5 2 2 10 4 1 1

169
6- CDIGO LSNNO, CASCATA HDRICA

Em concluso: os elementos associados s duas primeiras albufeiras, em geral os
elementos associados a todas as albufeiras menos a ltima, so compostos por trs
variveis, com a seguinte determinao dos ndices:
A primeira varivel tem o ndice igual ao do elemento;
A segunda tem o ndice dado pela soma do ndice do elemento mais o
nmero de perodos do horizonte temporal em estudo.
A ltima varivel tem o ndice igual ao do elemento somado com o
produto entre o nmero de perodos de funcionamento e o nmero de
albufeiras do sistema hdrico em estudo;
Para os elementos associados ltima albufeira a lei a determinao dos ndices
idntica, mas so compostos por duas variveis, com a seguinte determinao dos
ndices:
A primeira varivel tem o ndice igual ao do elemento;
A ltima varivel tem o ndice igual ao do elemento somado com o
produto entre o nmero de perodos de funcionamento e o nmero de
albufeiras do sistema hdrico em estudo;
Alm da funo objectivo conveniente introduzir no cdigo o gradiente desta funo.
Ainda, a matriz hessiana da funo objectivo pode ser introduzida ou caso contrrio
ser estimada pelo cdigo, sendo dadas opes ao utilizador para a metodologia de
estimao, que sugerimos seja testado pelo leitor o uso dessa estimativa com o fim de
tira concluses. As formulas para o clculo do gradiente e da matriz hessiana so
170
6- CDIGO LSNNO, CASCATA HDRICA
seguidamente indicados a ttulo de exemplo para o primeiro elemento e para o ltimo do
problema em estudo. A expresso do primeiro elemento da funo objectivo dada por


( ) [ ]
4 2 20 1 1 10 1 10 10
1
1
x m l x m l x elm + + =


Gradiente do primeiro elemento da funo objectivo

=
4
1
1
1
10
1
1
x
elm
,
x
elm
,
x
elm
ELM


Sendo as derivadas parciais

( ) [ ]
4 2 20 1 1 10 1 10
1
10
1
x m l x m l
x
elm
+ + =



1 1 10
1
1
1
m x
x
elm
=



2 1 10
1
4
1
m x
x
elm
=



A matriz hessiana do primeiro elemento da funo objectivo

=
2
4
1
2
1 4
1
2
10 4
1
2
4 1
1
2
2
1
1
2
10 1
1
2
4 10
1
2
1 10
1
2
2
10
1
2
1
x
elm
x x
elm
x x
elm
x x
elm
x
elm
x x
elm
x x
elm
x x
elm
x
elm
ELM H












Os elementos da matriz hessiana no nulos so dados por.

1 1
1
10 1
1
2
m
x x
elm
=

2 1
1
10 4
1
2
m
x x
elm
=



171
6- CDIGO LSNNO, CASCATA HDRICA


Para o ltimo elemento ser:




O gradiente ser


as derivadas parciais so






( ) [ ]
40 9 3 30 3 30 18
3
9
l x m l x elm + + =

=
9
9
18
9
1
x
elm
,
x
elm
ELM
( ) [ ]
40 9 3 30 3 30
3
18
9
l x m l
x
elm
+ + =


3 3 18
3
9
9
m x
x
elm
=


A matriz hessiana do ltimo elemento








O elemento da matriz hessiana no nulo dado por

=
2
9
9
2
18 9
9
2
9 18
9
2
2
18
9
2
1
ELM
x
elm
x x
elm
x x
elm
x
elm
H
3 3
3
9 18
1
2
m
x x
elm
=

.

Nota sobre o cdigo LSNNO
Da leitura do manual de utilizar do cdigo LSNNO, verifica-se que o mesmo foi
desenvolvido com vista obteno de solues ptimas para problemas em que o
operador de optimizao a minimizao do tipo

a . s
) ( f min
u x 0
r Ax
x

=
172
6- CDIGO LSNNO, CASCATA HDRICA
logo h necessidade de recorrer da seguinte igualdade



a funo objectivo no o lucro, mas sim o simtrico do lucro, idem para o vector
gradiente e para a matriz hessiana. Alm disto, como o volume de gua armazenado
numa albufeira tem um limite inferior no necessariamente nulo as restries do nosso
problema so do tipo
F F
sa sa
) f( - min - ) f( max

=
x x
x x
L x l
r Ax

=

o que obriga a uma translao do vector das variveis do tipo


' l x x + =

para que as restries se possam escrever como

' '
' '
u x 0
r x A

=

sendo
l A r r = '
' l L u =

e a funo objectivo ser escrita como ) ' ( f l x + .



6.7- Dados para um caso exemplo

Na simulao computacional usaram-se os seguintes dados para as trs albufeiras
consideradas que so uma aproximao dos dados para as albufeiras de Miranda, Picote
e Bemposta. Volumes mnimos e mximos permitidos nas albufeiras em [10
6
m
3
]:

Miranda:



2 , 9 V =
8 , 2 V =
9 , 11 V =
173
6- CDIGO LSNNO, CASCATA HDRICA



Picote:



Bemposta:



- Caudais mnimos e mximos que possvel entornar nas albufeiras em [10
6
m
3
]:
Miranda = Picote = Bemposta:


- Caudais mximos que possvel turbinar nas albufeiras em [m
3
]:
4 , 1 V =
3 , 23 V =
0 V =
10 S
14
=
[ ]
3
0 m S =
400 23 T = Miranda:
800 19 T = Picote:
Bemposta: 200 25 T =


- Requisitos / Afluncias verificadas nas albufeiras em cada hora em [m
3
]:

Albufeira 1h 2h 3h ... 167h 168h
Miranda 0 0 ... 0 0
Picote 0 0 ... 0 0
Bemposta 0 0 ... 0 0




6.8- Manual do utilizador do LSNNO

6
10 x 2 , 9
10 x 4
6
10 x 5
6
O Fortran Subroutine for Large Scale Nonlinear Network Optimization Problems
Users Guide esto s disponveis em LaTeX no ficheiro "lsnno.tex", com o objectivo
de permitir uma leitura o Users' Guide of LSNNO anexado nas folhas seguintes.
174