Você está na página 1de 127

Universidade Federal de Viosa

Departamento de Informtica

Prof. Mauro Nacif Rocha


Prof. Luiz Aurlio Raggi
Prof. Heleno do Nascimento Santos

INF-280
Pesquisa Operacional I

Contedo:
Programao Linear
Programao em Redes

Fevereiro de 2005
ASPECTOS GERAIS DA PESQUISA OPERACIONAL ........................................................................................ 1
EXEMPLOS DE ALGUNS PROBLEMAS COMUNS DA P.O............................................................................................... 5
PARTE I PROGRAMAO LINEAR ................................................................................................................. 8
EXEMPLOS DE MODELOS PARA ALGUNS PROBLEMAS CLSSICOS DE PROGRAMAO LINEAR .................................. 13
PROBLEMAS PARA MODELAGEM ............................................................................................................................ 17
SOLUO DE UM PROBLEMA DE PROGRAMAO LINEAR INTERPRETAO GEOMTRICA ...................................... 19
CASOS ENCONTRADOS NA RESOLUO GRFICA ................................................................................................... 23
O MTODO SIMPLEX.......................................................................................................................................... 27
MODELO MATEMTICO E FORMA PADRO DE UM PPL............................................................................................. 27
DEFINIES BSICAS ............................................................................................................................................. 30
TEOREMAS FUNDAMENTAIS ................................................................................................................................... 35
O ALGORITMO SIMPLEX ........................................................................................................................................ 37
ALGORITMO SIMPLEX MTODO DAS DUAS FASES ................................................................................................ 47
ELEMENTOS DE PS-OTIMIZAO................................................................................................................ 53
MUDANA NO VETOR C .......................................................................................................................................... 55
MUDANA NO VETOR B .......................................................................................................................................... 56
DUALIDADE .......................................................................................................................................................... 57
PARTE II PROGRAMAO EM REDES......................................................................................................... 63
INTRODUO ........................................................................................................................................................ 63
INTRODUO TEORIA DE GRAFOS ............................................................................................................ 65
UMA BREVE HISTRIA DA TEORIA DOS GRAFOS ..................................................................................................... 65
CONCEITOS BSICOS DA TEORIA DE GRAFOS .......................................................................................................... 68
FLUXOS EM REDE ............................................................................................................................................... 74
FORMULAO GERAL (CLSSICA) PARA PROBLEMAS DE FLUXOS EM REDE ............................................................. 75
O PROBLEMA DE FLUXO DE CUSTO MNIMO (PFCM).............................................................................................. 79
O PROBLEMA DE TRANSPORTE (PT) ....................................................................................................................... 87
O PROBLEMA DE DESIGNAO (PD) ...................................................................................................................... 94
O PROBLEMA DO CAMINHO MAIS CURTO (PCMC) ............................................................................................... 100
O PROBLEMA DE FLUXO MXIMO (PFM) ............................................................................................................. 104
O PROBLEMA DA RVORE GERADORA MNIMA (AGM) ........................................................................................ 111
O PROBLEMA DE STEINER EM GRAFOS NO DIRECIONADOS .................................................................................. 115
REDES PERT / CPM ............................................................................................................................................ 117
REDES PERT....................................................................................................................................................... 117
REDES PERT/CPM.............................................................................................................................................. 121
BIBLIOGRAFIA................................................................................................................................................... 125

ii
Aspectos Gerais da Pesquisa Operacional
1. Introduo e Histrico

Durante a II Guerra Mundial, lderes militares da Inglaterra e dos Estados Unidos requisita-
ram um grupo de cientistas de diversas reas de conhecimento para analisarem alguns problemas
militares. Entre esses problemas citam-se: desenvolvimento, operao e localizao de radares, ge-
renciamento e controle de navios de apoio, planejamento de ataques areos, lanamento de bombas
contra submarinos, defesa das comunidades europias contra ataques areos inimigos, abastecimen-
to de tropas com munies e alimentos, operaes de minerao, etc. A aplicao de mtodos ma-
temticos e cientficos para ajudar as operaes militares foi chamada Operational Research ou
Operations Research.

1759 (Quesney), Modelos primitivos de programao matemtica.


1874 (Walras)
1873 (Jordan), Bases matemticas para os modelos lineares.
1896 (Minkowsky), 1903 (Farkas)
1920 (Markov) Modelos dinmicos.
192* (peridicos de negcios e en- Sugestes inovadoras para controle econmico de esto-
genharia industrial) ques.
1920 (Erlang) Estudos pioneiros dos fenmenos das filas de espera.
1937 (Von Neumann), 1939 (Kan- Modelos econmicos mais sofisticados.
torovich)
1938 (RAF viabilidade dos siste- Operational Research RESEARCH into (military)
mas de radar) OPERATIONS
1940 (tomada da Frana pelos ale- Maior conquista da OR na II Guerra.
mes)
1947 (Dantzig) Primeira formulao abstrata de um problema de progra-
mao linear.
a partir de 1947 Aplicaes na engenharia, economia, controle de estoque,
anlise de trfego areo, agricultura, comunicao, plane-
jamento rural e urbano, distribuio de energia e outros

Obs.: U.K. / Europa: Operational Research


E.U.A.: Operations Research

1
2. Definio

Pesquisa Operacional o uso do mtodo cientfico com o objetivo de prover departamentos exe-
cutivos de elementos quantitativos para a tomada de decises, com relao a operaes sob seu
controle (Kittel, 1947).

A Pesquisa Operacional a aplicao do mtodo cientfico, por equipes multidisciplinares, a pro-


blemas envolvendo o controle de sistemas organizados de forma a fornecer solues que melhor
interessam a determinada organizao (Ackoff,1968).

Pesquisa Operacional uma metodologia de estruturar processos aparentemente no estruturados


por meio da construo de modelos. Utiliza um conjunto de tcnicas quantitativas com o intuito de
resolver os aspectos matemticos dos modelos (Ehrlich, 1991).

Hoje, o termo operations research, ou pesquisa operacional, significa um mtodo cientfico


para tomada de deciso, que busca determinar como melhor planejar e operar um sistema, usual-
mente sob condies que requerem alocao de recursos escassos.

3. A Metodologia da Pesquisa Operacional

Geralmente a atividade de uma equipe de P.O. envolve as seguintes fases:

identificao do problema;
construo de um modelo;
obteno da soluo;
teste do modelo e avaliao da soluo;
implantao e acompanhamento da soluo.

Deve-se salientar que tais fases no so distintas, superpondo-se e interagindo entre si, na
tentativa de se obter uma melhor identificao entre o modelo e o real. Quando a pesquisa opera-
cional usada para resolver um problema de uma organizao, o seguinte procedimento, poder ser
seguido:

Passo 1 - Identificao e formulao do problema

Em primeiro lugar deve ser definido claramente o problema da organizao, incluindo a es-
pecificao dos objetivos e as partes da organizao que devem ser estudadas antes que o problema
possa ser resolvido.

Passo 2 - Observao do sistema

Dados devem ser coletados para estimar valores de parmetros que afetam o problema da
organizao. Estes valores so usados para desenvolver e avaliar o modelo matemtico para o pro-
blema.

Passo 3 - Formulao do modelo matemtico para o problema

Consiste no desenvolvimento do modelo matemtico para o problema. Geralmente, existem


vrias tcnicas que podem ser aplicadas na soluo dos modelos matemticos. A tcnica adequada
selecionada em funo das caractersticas do modelo representativo do problema. Algumas situa-
es, no entanto, so to complexas que no existem modelos analticos tratveis que possam repre-

2
sent-las. Quando isso acontece possvel desenvolver modelos de simulao e usar a capacidade
dos computadores para aproximar o comportamento desses sistemas.

Passo 4 - Verificao do modelo e uso do modelo para predio

Verifica-se se o modelo matemtico proposto para o problema uma representao fidedig-


na da realidade. Os dados coletados durante a observao do problema podem ser usados para a va-
lidao do modelo na situao corrente.

Passo 5 - Selecionar uma alternativa aceitvel

Dado o modelo do problema e um conjunto de alternativas (solues viveis) deve-se esco-


lher aquela (se existir) que melhor atende aos objetivos da organizao. Em alguns casos, a seleo
da melhor alternativa possvel um problema de difcil soluo e, nesses casos, aceita-se uma boa
alternativa.

Passo 6 - Apresentao dos resultados e concluses

A partir da definio do modelo e das alternativas determinadas para o problema so feitas


as recomendaes para os gerentes das organizaes para que eles possam tomar as decises que
melhor atendem os objetivos buscados.

Passo 7 - Implementao e avaliao das recomendaes

Se a organizao aceita o estudo realizado e as recomendaes feitas, parte-se para a fase de


implementao da soluo, a qual deve ser constantemente monitorada, e atualizada dinamicamen-
te, fazendo-se mudanas quando necessrias.

4. reas de aplicao

Segundo trabalhos apresentados em reunies da Sociedade Brasileira de Pesquisa Operacio-


nal (SOBRAPO), citam-se abaixo algumas reas onde a P.O. foi aplicada com algum sucesso e on-
de se observa a grande variedade dessas aplicaes:

administrao
agropecuria
economia e planejamento econmico
educao e sade
energia
engenharia
foras armadas
investimentos e finanas
localizao-armazenamento-distribuio
planejamento e controle da produo
planejamento urbano e regional
recursos hdricos
siderurgia
telecomunicaes
transporte

3
5. Tcnicas aplicadas

Os trabalhos de PO desenvolvidos e submetidos para apresentao em congressos e para pu-


blicao revistas cientficas envolvem a utilizao das seguintes tcnicas:

Anlise e previso de sries temporais


Controle e qualidade
Estatstica
Teoria dos grafos
Otimizao
Programao matemtica
Processos estocsticos e teorias das filas
Simulao
Teoria da deciso e teoria dos jogos

Estas tcnicas permitem que se resolva uma variedade enorme de problemas, dentre os quais
so tpicos:

Alocao de recursos
Localizao e distribuio da produo
Estoque
Substituio e reposio de equipamentos
Seqenciamento e coordenao de tarefas
Determinao de caminhos em rede
Situaes de competio (teoria dos jogos)
Busca de informao
Roteamento de veculos
Fluxos em rede
Problemas de caractersticas hbridas

6. Surgimento e desenvolvimento da PO no Brasil

O incio da P.O. no Brasil se deu aproximadamente uma dcada aps sua implantao na
Gr-Bretanha e nos Estados Unidos. Assim, j nos meados da dcada de 50, professores com for-
mao em Engenharia, Matemtica e/ou Estatstica, entusiasmados com as novas tcnicas relacio-
nadas a P.O. que aqui chegavam pela difuso natural do conhecimento humano, comearam a for-
mar equipes de P.O. nas universidades e instituies de ensino (ITA, PUC, COPPE-UFRJ, UFPB,
UNICAMP, UFSC, UFMG, UFV, etc.), reproduzindo-se e induzindo a formao de equipes em
conjunto com as empresas (PETROBRS, ELETROBRS, USIMINAS, CSN, EMBRAPA,
SOUZA CRUZ, TELEBRS, etc.), bem como a formao de consultorias nas grandes cidades.
Atualmente, v-se com certo otimismo as perspectivas da P.O. no Brasil e, em particular, na
Agricultura, Sistemas de Produo e Engenharia de Alimentos, baseando-se nos seguintes fatores:
A crise como elemento propulsor (escassez de recursos);
A exploso da informtica;
Massa crtica existente de analistas de P.O.;
Integrao universidade empresa;
Seminrios de P.O. aplicada agropecuria;
Existncia de cursos de P.O. nas universidades brasileiras;
Cursos e pesquisas em andamento na COPPE, UNICAMP, UFPb, UFSc, EMBRAPA, etc.

4
Exemplos de Alguns Problemas Comuns da P.O.
Problema do Caminho Mnimo (PCM)

Objetivos: determinar a rota de menor caminho (distncia, tempo


ou custo) existente entre um ponto de origem (cidade, endereo,
computador, objeto etc.) e um ponto de destino.

Problemas de Localizao de Facilidades

Objetivos: determinar a localizao e capacidade das faci-


lidades (restaurantes, depsitos, antenas de rdio etc.) de
forma a suprir a demanda da regio toda com um custo
mnimo e/ou lucro mximo (considerando um determinado
perodo). Cada facilidade possui normalmente um custo
fixo de instalao e custos variveis de operao.

Problema da Mochila
Rolando Caio da Rocha, um exuberante alpinista, est se preparando para uma longa escalada nos
Alpes. Ele consegue levar at W quilos em sua mochila. Ele tem N diferentes tipos de itens que po-
de incluir em seu fardo, e cada unidade de item j pesa wj quilos. Para cada item j, ele calculou um
valor numrico Rj representando o valor de sobrevivncia de cada unidade do item. Como exemplo,
se ele levar cinco unidades do item 3 e sete unidades do item 9, o valor para ele desta seleo na
mochila 5R3 + 7R9. O problema do Rolando escolher o nmero de cada tipo para incluir em sua
mochila.

5
Escolha da Mistura para Raes

Gro 1 Gro 2 Gro 3 Necessidades mnimas


Nutriente A 2 3 7 1250
Nutriente B 1 1 0 250
Nutriente C 5 3 0 900
Nutriente D 0,6 0,25 1 232,5
$/peso 41 35 96
Objetivos: formular uma rao formada a partir da mistura dos gros que atenda s necessidades
mnimas e mximas de nutrientes e tenha um custo mnimo.

Bin-packing / Cutting Stock

Barra (bin) = 4100mm


Demanda (mm)
3100
1930
1850 Objetivos: determinar a quantidade mnima possvel de
850 barras para que sejam cortados todos os pedaos neces-
850 srios para suprir a demanda.
795
639

Fornecimento de Produtos atravs de uma Rede de Transportes

Usinas
Depsitos
S1 D1
Fornecimentos S2 D2 Necessidades
disponveis
S3 D3 de demanda
Dn
Sm
Objetivos: determinar a quantidade do produto que cada fornecedor deve enviar para cada depsito,
de forma que o custo total do transporte seja mnimo, que cada depsito tenha sua demanda atendi-
da, e que nenhum depsito estoure sua capacidade de fornecimento.

6
Problemas de Produo
Recursos Especificaes Atividades
INSUMOS PRODUTOS
Mquinas Produto 1
Ferramentas Produto 2
Capital
Matria prima
Decises
.
.
Mo-de-obra Produto n
CUSTOS RECEITA
Objetivos: determinar as atividades que devem ser realizadas ou produzidas de forma a maximizar o
lucro ou minimizar o custo de produo, levando-se em conta a quantidade mxima disponvel para
cada insumo.

O Problema de Designao (caso particular do problema de transporte)

Indivduos ou mqui- Custos cij Tarefas a serem execu-


nas (n) tadas (n)

1 1

2 2

3 3
Objetivos: minimizar o custo total para executar um conjunto de tarefas, onde cada tarefa deve ser
executada por uma nica mquina, e cada mquina executa uma nica tarefa.

7
Parte I Programao Linear
1. O significado da expresso

PROGRAMAO alocao de itens ou entidades

LINEAR relativo a funes, equaes ou inequaes lineares

2. O problema geral

Recursos escassos de- Decises Demandas competem


vem ser so interligadas na entre si na
repartidos entre deman-
das competitivas
tomada de deciso
procura dos
recursos escassos

Objetivos:

Otimizar a distribuio dos recursos limitados no atendimento s demandas competitivas;


Maximizar lucros ou o uso dos recursos;
Minimizar custos, sobras, tempos ou distncias.

8
3. Fases na soluo de um problema de pesquisa operacional

FLUXOGRAMA

FORMULAO
DO
PROBLEMA

OBTENO
DO
MODELO

DEFINIO
DO MTODO
DE SOLUO

OBTENO
E PREPARO EXPERINCIA
DOS DADOS

RESOLUO
DO
PROBLEMA

INTERPRETAO COMPARAO
DOS COM A
RESULTADOS REALIDADE

IMPLEMENTAO
DA
SOLUO

9
4. Modelagem de problemas

MODELOS SO REPRESENTAES DA REALIDADE

GRANDE NME- SELEO DAS VA- SIMPLIFICAO


RO DE VARI- RIVEIS DA
VEIS PRINCIPAIS REALIDADE

SISTEMA INTER- MODELO


RELACIONAMENTO

5. Modelos matemticos

Os modelos matemticos so modelos simblicos - o sistema real representado por EQUAES


E EXPRESSES MATEMTICAS que descrevem suas propriedades relevantes.

n DECISES QUE SO n VARIVEIS DE DECISO


QUANTIFICVEIS E (x1, x2, , xn)
INTERRELACIONADAS

REPRESENTA A MEDIDA FUNO OBJETIVO


DE EFICINCIA DO Z = f(x1, x2, , xn)
SISTEMA

SO RESTRIES AOS REPRESENTADAS POR EQUA-


VALORES DAS VARIVEIS ES OU INEQUAES MA-
DE DECISO TEMTICAS

A REALIDADE UMA APROXIMAO

VALIDADE

ASSOCIADA AO
GRAU DE COR-
RELAO

10
6. Expresso matemtica de um modelo de programao linear

OBJETIVO

Determinar os valores das variveis x1, x2, , xn que otimizam (maximizam ou minimizam) a fun-
o linear

Z = c1 x1 + c2 x2 + + cn xn,

obedecendo s seguintes RESTRIES:

a11x1 + a12x2 + + a1nxn , =, b1


a21x1 + a22x2 + + a2nxn , =, b2

am1x1 + am2x2 + + amnxn , =, bm

e de forma que as variveis sejam NO NEGATIVAS, ou seja:

xn 0, xn 0, xn 0.

Temos que cj, aij e bi so constantes conhecidas, para todo i e todo j.

Os parmetros e variveis do modelo so:

Z - Medida de eficincia do sistema (chamada de Funo Objetivo ou F.O.);


xj - Nvel da atividade j (varivel de deciso);
cj - Taxa de contribuio unitria da atividade j;
bi - Disponibilidade do recurso i;
aij - Coeficiente tecnolgico (quantidade i / consumido por j)
n - Nmero de atividades no modelo;
m - Nmero de restries no modelo.

7. Construo de um modelo de programao linear

ETAPAS A SEGUIR PARA CONSTRUIR UM MODELO DE PL

1. Definio das atividades

Definir as atividades (xj) e escolher uma unidade de medida para o seu nvel.

2. Definio dos recursos

Determinar os recursos consumidos e escolher a unidade de medida conveniente.

3. Determinao das condies externas

Determinar a quantidade de recurso disponvel (bi).

4. Clculo dos coeficientes insumo/produo

Determinar a relao entre atividades e recursos (aij).


11
5. Construo do modelo

Associar x1, x2, , xn s n atividades;


Escrever as equaes de balanceamento por recurso;
Indicar o uso dos recursos;
Estabelecer a funo objetivo como medida de eficincia.

12
Exemplos de Modelos para Alguns Problemas Clssicos de Pro-
gramao Linear

Escolha da Mistura para Raes

Gro 1 Gro 2 Gro 3 Necessidades mnimas


Nutriente A 2 3 7 1250
Nutriente B 1 1 0 250
Nutriente C 5 3 0 900
Nutriente D 0,6 0,25 1 232,5
$/kg 41 35 96

Seja: x1 = qtde. (kg) do Gro 1 usada na rao


x2 = qtde. (kg) do Gro 2 usada na rao
x3 = qtde. (kg) do Gro 3 usada na rao

Custo total da rao: 41x1 + 35x2 + 96x3

Para atender s necessidades mnimas para cada nutriente, devemos ter:

2x1 + 3x2 + 7x3 1250,0 (Nutriente A)


x1 + x2 250,0 (Nutriente B)
5x1 + 3x2 900,0 (Nutriente C)
0,6x1 + 0,25x2 + x3 232,5 (Nutriente D)

Queremos obter uma rao que tenha um custo mnimo. Portanto, o modelo completo fica assim:

Minimizar 41x1 + 35x2 + 96x3 (Funo Objetivo ou F.O.)

Sujeito a: (Restries)

2x1 + 3x2 + 7x3 1250,0 (Nutriente A)


x1 + x2 250,0 (Nutriente B)
5x1 + 3x2 900,0 (Nutriente C)
0,6x1 + 0,25x2 + x3 232,5 (Nutriente D)

e: x1 0, x2 0, x3 0

13
Problema de Produo
A empresa Nova Linha produz artigos de vidro de alta qualidade: janelas e portas, em trs sees de
produo:

Seo de Serralharia: para produzir as estruturas de alumnio


Seo de Carpintaria: para produzir as estruturas de madeira
Seo de Vidro e Montagem: para produzir vidro e montar as portas e janelas
Devido diminuio dos lucros, o gerente geral decidiu reorganizar a produo, e prope produzir
s 2 produtos que tm uma melhor aceitao entre os clientes.
Estes produtos so:

Produto 1: uma porta de vidro com estrutura de alumnio


Produto 2: uma janela grande com estrutura de madeira
O Departamento de Marketing concluiu que a empresa pode vender tanto de qualquer dos dois
produtos, tendo em conta a capacidade de produo disponvel. Como ambos os produtos partilham
a capacidade de produo da seo 3, o dono solicitou ao gerente de produo da empresa a
resoluo deste problema.

O gerente ento levantou os seguintes dados:

a capacidade de produo por minuto de cada seo, a ser utilizada para produzir uma
unidade de cada produto
os lucros unitrios para cada produto

Capacidade por unidade


de produo
Seo N Produto 1 Produto 2 Capacidade
disponvel
1 1 0 4
2 0 2 12
3 3 2 18
Lucro unitrio
3 5
(em R$)

Modelo completo:

Maximizar Z = 3x1 + 5x2,


sujeito a
x1 4
2x 2 12
3x1 + 2x 2 18

x1 0, x2 0

14
Problema da Mochila

Rolando Caio da Rocha, um exuberante alpinista, est se preparando para uma longa escalada nos
Alpes. Ele consegue levar at W quilos em sua mochila. Ele tem N diferentes tipos de itens que po-
de incluir em seu fardo, e cada unidade de item j pesa wj quilos. Para cada item j, ele calculou um
valor numrico Rj representando o valor de sobrevivncia de cada unidade do item. O problema do
Rolando escolher o nmero de cada tipo para incluir em sua mochila.

Modelo:
F.O.: Max. R1x1 + R2x2 + ... + Rjxj + ... + RNxN
s.a.: w1x1 + w2x2 + ... + wjxj + ... + wNxN W
xj 0

ou:

N
Max. R x
j=1
j j

s.a.:
w x
j =1
j j W

xj 0

15
Cutting Stock

Tamanho (mm) Quantidade


3100 26
1530 71
850 47
Tamanho da Barra: 6000 mm

Temos ento as seguintes possibilidades de corte:


x1 x2 x3 x4 x5 x6 Demanda
3100 1 1 0 0 0 0 26
1530 1 0 3 2 1 0 71
850 1 3 1 3 5 7 47
Sobra: 520 350 560 390 220 50

Sendo NB = No total de barras de 6000 mm que sero cortadas,


xj = No de barras de 6000 mm que sero cortadas
segundo o padro de corte j,

F.O.: Min. NB = x1 + x2 + x3 + x4 + x5 + x6
s.a.:
x1 + x2 26
x1 + 3x3 + 2x4 + x5 71
x1 + 3x2 + x3 + 3x4 + 5x5 + 7x6 47
x1 0, x2 0, x3 0, x4 0, x5 0, x6 0

Se: aij = No de pedaos de tamanho i que sero cortados no padro j,


bi = demanda de pedaos i,
m = No de tamanhos diferentes (linhas),
n = No de padres de corte diferentes (colunas).
n
Min. NB = x
j =1
j

n
s.a. a x
j =1
ij j bi , i = 1, 2, ..., m

xj 0 e inteiro, j = 1, 2, ..., n

16
Problemas para Modelagem

Problema de Produo e Alocao de Recursos


Um fazendeiro deseja determinar que rea de sua propriedade deve plantar milho e feijo para ma-
ximizar o seu lucro, e informa o seguinte:
a) o fazendeiro dispe de uma rea mxima de 8 alqueires para o plantio das 2 culturas, 100 m3 de
gua para irrigao por semana, e a semente de feijo lhe permite um plantio de 4 alqueires no
mximo;
b) o lucro por alqueire plantado com milho de R$200,00 e plantado com feijo de R$150,00;
c) cada alqueire plantado com milho requer 10m3 de gua por semana, e com feijo 20m3 ;
d) por questes pessoais, ele deseja plantar no mximo 2/3 da rea total com milho.

Formule o problema como um PPL.

Problema de Alocao de Recursos


Em uma determinada repartio, existem m mquinas disponveis para realizar determinadas tarefas
ou fabricar determinados produtos. Cada mquina, devido idade e ao fabricante, pode ser mais ou
menos adequada que as outras para fabricar um determinado produto, bem como ter um custo de
operao prprio (consumo de energia, manuteno etc.). Seja:
n o nmero de produtos que precisam ser fabricados nessas mquinas,
dij o tempo necessrio para fabricar o produto j na mquina i,
xij o nmero de unidades de j produzido na mquina i,
ai o tempo disponvel para a mquina i,
bj o nmero de unidades de j que precisam ser produzidos, e
cij o custo para fabricar uma unidade do produto j na mquina i.

Modele este PPL de forma a obter uma produo de custo mnimo.

Problema de Alocao de Transportes


O expedidor de vos, Eli Cptero, da companhia Frete Areo Cauda Alta Ltda., que opera de um
terminal central, tem 8 avies do Tipo 1, 15 avies do Tipo 2 e 11 avies do Tipo 3 disponveis para
os vos de hoje. A capacidade de cada avio de 45t, 7t e 5t, respectivamente. O Sr. Cptero deve
expedir avies para as cidades A, B e C. A quantidade mnima de cada produto que deve ser envia-
da para cada cidade de 20t, 28t e 30t, respectivamente. Cada avio pode voar somente uma vez
por dia.

O custo de enviar um avio do terminal a cada cidade dado pelo seguinte quadro:

Tipo 1 Tipo 2 Tipo 3


Cidade A 23 15 1,4
Cidade B 58 20 3,8
Cidade C 64 24 4,2

Denote por xij o nmero de avies do tipo i enviado para a Cidade j (x1A, x1B, x1C, x2A etc.). Formule
um modelo de PL para esse problema.

17
Problema de Planejamento de Tarefas
Uma determinada regio est sendo ameaada pela ruptura de uma barragem e deve ser evacuada
em, no mximo, 10 horas. So no total 8.000 homens, 7.900 mulheres e 1.850 crianas a transpor-
tar. Cada pessoa poder levar at 10 quilos de bagagem pessoal, Toda a regio foi isolada e s cir-
culam veculos autorizados para que se evitem acidentes e engarrafamentos. Para efetuar a evacua-
o esto disponveis os seguintes meios:

Veculo de Veculo de
Veculo
6 ton. do ton. do Helicptero nibus Micronibus
de Passeio
Exrcito Exrcito
Quantidade
de Unidades 10 20 15 10 5 60
Disponveis
Capacidade de
20 pessoas 5 pessoas 10 pessoas 30 pessoas 15 pessoas 5 pessoas
Transporte
Capacidade
1 ton. 20 kg 50 kg 1 ton. 500 kg 100 kg
para bagagem
Custo por
10 u.m. 4 u.m. 75 u.m. 5 u.m. 3 u.m. 2 u.m.
Viagem
Tempo de
1h 45 min. 10 min. 45 min. 30 min. 30 min.
Viagem

Para minimizar o pnico, as crianas devero viajar acompanhadas por suas mes. Existem 10 fam-
lias com 5 filhos, 25 com 4 filhos, 150 com 3, 450 com 2 e 350 com 1. Os carros de passeio s po-
dero fazer uma viagem de evacuao, ficando, por segurana, retidos fora da rea de perigo.

Formular o programa de evacuao que minimize os custos finais da operao.

18
Soluo de um Problema de Programao Linear
Interpretao Geomtrica
Representao no espao de solues duas dimenses (variveis).

Exemplo 1

(1) maximizar 12x1 + 15x2


sujeito a:
(2) 4x1 + 3x2 12
(3) 2x1 + 5x2 10
(4) x1 0 e x2 0

Soluo tima: ponto b, onde x1 = 15/7, x2 = 8/7 e 12x1 + 15x2 = 300/7

19
Exemplo 2

Por determinao mdica, um jovem precisa fazer algum tipo de atividade fsica em uma academia.
Por questes pessoais, ele escolheu fazer natao e/ou plo aqutico. Ele sabe que:
Uma hora de aula de natao custa R$8,00;
Uma hora de aula de plo custa R$5,00;
Seu oramento lhe permite dispor de 100 reais mensais para as atividades de academia;
Seus afazeres escolares lhe do liberdade de gastar mensalmente, no mximo, 18 horas e 40.000
calorias de sua energia para essas atividades;
Cada hora de aula de plo consome 3.300 calorias, e de natao consome 1.600 calorias;
Ele no tem preferncia por nenhuma dessas duas atividades.
Como ele deve planejar as suas atividades fsicas para obter o nmero mximo de horas-aula, con-
siderando o limite dos recursos que tem? Modele o problema como um problema de programao
linear (PPL).

x1  Horas-aula de natao; x2  Horas-aula de plo aqutico

mx. x1 + x2 (1)
s.a.:
x1 + x2 18 (2)
8x1 + 5x2 100 (3)
1600x1 + 3300x2 40000 (4)

(3) (4)
(1) (2)

20
Exemplo 3

Um fazendeiro deseja determinar que rea de sua propriedade deve plantar milho e feijo para ma-
ximizar o seu lucro, e informa o seguinte:
a) o fazendeiro dispe de uma rea mxima de 8 alqueires para o plantio das 2 culturas, 100 m3 de
gua para irrigao por semana, e a semente de feijo lhe permite um plantio de 4 alqueires no
mximo;
b) o lucro por alqueire plantado com milho de R$200,00 e plantado com feijo de R$150,00;
c) cada alqueire plantado com milho requer 10m3 de gua por semana, e com feijo 20m3 ;
d) por questes pessoais, ele deseja plantar no mximo 2/3 da rea total com milho.

x1  Qtde. de alqueires plantados com milho


x2  Qtde. de alqueires plantados com feijo

mx. 200x1 + 150x2


s.a.: x1 + x2 = 8 (1)
x2 4 (2)
x1 16/3 (3)
10x1 + 20x2 100 (4)

21
Exemplo 4

Suponha que, por motivos justificveis, uma certa dieta alimentar esteja restrita a leite desnatado e
uma salada de composio bem conhecida. Sabendo-se ainda que os requisitos nutricionais sero
expressos em termos de vitamina A e clcio e controlados por suas quantidades mnimas (em mili-
gramas). A tabela abaixo resume a quantidade de cada nutriente em disponibilidade nos alimentos e
a sua necessidade diria para a boa sade de uma pessoa.

Nutriente Leite (copo) Salada (500g) Requisito Nutricional


Mnimo
Vit. A 2 mg 50 mg 11 mg
Clcio 50 mg 10 mg 70 mg
Custo/unid. R$ 2,00 R$ 1,20

sendo x1 = qtd. de leite (em copos)


x2 = qtd. de salada (em pores de 500g)

min 2x1 + 1,2x2 ------


s.a.
2x1 + 50x2 11
50x1 + 10x2 70

22
Casos Encontrados na Resoluo Grfica
Continuaremos usando aqui modelos de duas variveis, mantendo um espao bidimensional (pla-
no), facilitando assim a visualizao, para ilustrar todas as situaes possveis de ocorrer para um
modelo de PL qualquer.

1. Uma nica soluo tima.

Exemplo 1:

mx. x1 + x2
s.a.:
8x1 + 5x2 100 (1)
16x1 + 33x2 400 (2)

x2
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2 x1
1
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
F.O.
(1)
(2)

23
Exemplo 2:

min 2x1 + 1,2x2


s.a.
2x1 + 50x2 11 (1)
50x1 + 10x2 70 (2)

(2)

(1)

2. Infinitas solues timas.

mx. 16x1 + 10x2


s.a.:
8x1 + 5x2 100 (1)
16x1 + 33x2 400 (2)
x2
20
19
18
17
16
15
(1)
14
13
12
11
10
9
8
7
6
5 (2)
4
3
2 x1
1
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

24
3. Soluo tima ilimitada.

Exemplo 1:

max 2x1 + 1,2x2


s.a.
2x1 + 50x2 11 (1)
50x1 + 10x2 70 (2)

(2)

(1)

Exemplo 2:

max x1 x2
s.a.
2x1 x2 0 (1)
x2 4 (2)
x2

(1)

(2)

x1

25
Exemplo 3:

min x1 2x2
s.a.
2x1 x2 0 (1)
x1 + 2x2 4 (2)
x2

(1) (2)

x1

Neste caso, embora existam solues timas finitas (qualquer ponto sobre a reta 2, incluindo
e direita do ponto de intercesso dessa reta com a reta 1), limitando o valor timo da F.O.,
o conjunto desses pontos no limitado ou fechado.

4. Problema invivel (nenhuma soluo existente).

min Z = f(x1, x2) (uma funo-objetivo qualquer)


s.a.
x1 + x2 1 (1)
x1 + x2 2 (2)
x2

(2)

(1)
x1

Veja que, neste caso, no existe nenhum ponto (x1, x2) no plano euclidiano que satisfaa si-
multaneamente as expresses (1) e (2).

26
O Mtodo Simplex
O mtodo Simplex, desenvolvido por DANTZIG em 1956, procura, a partir de uma deter-
minada partio da matriz A, resolver o sistema de equaes Ax = b. Veremos a seguir como pode-
mos preparar um modelo de PL qualquer para que seja resolvido pelo Simplex, quais os funda-
mentos tericos do algoritmo, e como ele podemos us-lo para resolver os modelos estudados.

Modelo matemtico e forma padro de um PPL


Considere o seguinte problema de programao linear:

Maximizar Z = c1x1 + c2x2 + + cnxn


Sujeito a: a11x1 + a12x2 + + a1nxn , =, b1
a21x1 + a22x2 + + a2nxn , =, b2

am1x1 + am2x2 + + amnxn , =, bm

xn0, xn0, xn0

A forma apresentada acima a expandida. Outras formas de representar um problema de programa-


o linear so as mostradas a seguir:

a) Forma de Somatrio:

n
Maximizar Z = c
j =1
j xj
n
Sujeito a: a
j =1
ij x j , =, bi, i = 1, , m;

xj 0, j = 1, , n.

b) Forma Matricial

Maximizar Z = cx
Sujeito a: Ax , =, b
x 0

onde A uma matriz retangular de dimenses m n; c um vetor 1 n, b um vetor m 1 e x


um vetor n 1. O uso de uma ou outra forma depende da convenincia da aplicao. As formas ma-
tricial e somatrio so mais usadas para provas e demonstraes diversas. A forma expandida ne-
cessria quando se torna necessrio explicitar os coeficientes aij, bi e cj.

27
Forma Padro de um Modelo de PL
Antes de estabelecermos um algoritmo nico para resolver os modelos matemticos apresentados
anteriormente, necessrio padronizar o formato desses modelos. Usaremos o formato padro de
maximizao, que adotado pela maioria dos livros de P.L.:

Um modelo de PL na forma padro constitudo apenas por equaes lineares, e suas variveis e
termos independentes (bi) devem ser no negativas, como o modelo abaixo:

n
Maximizar Z = c
j =1
j xj
n
Sujeito a: a
j =1
ij x j = bi, i = 1, , m;

xj 0, j = 1, , n;
bi 0, i = 1, , m.

importante salientar que em um problema de programao linear qualquer podem aparecer var-
veis que devem ser deixadas livres em sua formulao, ou seja, variveis irrestritas em sinal. Alm
disso, outras varveis podem representar grandezas que na prtica no podem ser positivas. Para
que um problema com variveis dos tipos mencionados acima seja colocado na forma padro tor-
nam-se necessrios alguns recursos matemticos, os quais sero discutidos a seguir.

Recursos para se obter a forma padro de um modelo de PL

1) Funo Objetivo

Os problemas de programao linear consistem em maximizar ou minimizar uma funo objetivo.


Um problema de minimizar pode ser transformado em maximizar fazendo-se:

[ ]
Mnimo c j x j = Mximo c j x j = Mximo (c j ) x j

Ento, se o problema minimizar e deseja-se trabalhar como maximizar, multiplica-se os coeficien-


tes da funo objetivo por (-1), resolve-se o problema de maximizar e toma-se o negativo do valor
encontrado. Esse valor o mnimo do problema original.

2) Variveis de Folga

Considere a inequao linear do tipo "":

a
j =1
kj x j bk

Utiliza-se uma varivel xk, chamada varivel de folga, em que xk = bk j akj xj, de forma que

a
j =1
kj x j + x k = bk

Para cada restrio do tipo "" deve-se utilizar uma varivel de folga diferente que representa a
folga do recurso disponvel que no foi utilizado.

28
3) Variveis de Excesso

Considere a inequao linear do tipo "":

a
j =1
sj x j bs

Utiliza-se uma varivel xs, chamada varivel de excesso, em que xs = j asj xj, bs, de forma que

a
j =1
sj x j x s = bs

Para cada restrio do tipo "" deve-se utilizar uma varivel de excesso diferente que representa o
excesso do recurso utilizado.

4) Variveis livres ou irrestritas em sinal

Quando uma varivel representa uma grandeza que pode assumir na prtica valores positivos, nulos
ou negativos, ou seja, a varivel deve ser irrestrita em sinal, ento na forma padro essa varivel
substituda pela diferena de duas outras no negativas, e, posteriormente, quando o problema for
resolvido, seu valor real resgatado. Assim, se xl irrestrita em sinal, faz-se: xl = xl' - xl'', onde xl'
0 e xl'' 0. Resolve-se o problema com xl' e xl'', e aps a soluo obtm-se xl.

5) Variveis com valores no positivos

Quando uma varivel xq representa uma grandeza que no deve assumir valores positivos no pro-
blema original, ento, para construir a forma padro do modelo de PL, substitui-se essa varivel, fa-
zendo-se xq = - xq', onde xq' 0. Resolve-se o PPL com xq' e, posteriormente, recupera-se xq.

6) Termos independentes com valores negativos

Se algum bi tiver sinal negativo, basta multiplicar a linha toda por 1:


4x1 3x2 2 4x1 + 3x2 2

Exemplo:
min. 2x1 + 1,2x2
s.a. 2x1 + 50x2 11
50x1 + 10x2 70

Forma padro:
max. 2x1 1,2x2
s.a. 2x1 + 50x2 x3 = 11
50x1 + 10x2 x4 = 70

29
Definies bsicas
Considere o problema de programao linear na forma matricial e padro:

Maximizar Z = cx (1)
Sujeito a: Ax = b (2)
x 0 (3)

Define-se como soluo de um PPL, um vetor x que satisfaz as restries (2); soluo vivel de um
PPL um vetor x que satisfaz as restries (2) e (3); e regio vivel ou conjunto de solues vi-
veis de um PPL o conjunto de vetores x que satisfazem (2) e (3).

Considere o sistema Ax = b no problema acima e suponha que

posto [A | b] = posto [A] = m,

o que significa que o sistema Ax = b compatvel, ou seja, tem soluo. Uma permutao das colu-
nas de A pode ser feita de forma a obter

A = [B,N],

onde B uma matriz quadrada de dimenses m m, e N de dimenses m (n-m). Se o posto (B) =


m, ento B uma matriz inversvel, e uma soluo do sistema pode ser dado por:

x B = B 1b
xN = 0

O vetor x = (xB | xN) chamado uma soluo bsica do sistema de equaes Ax = b. Se x 0, ento
x chamado uma soluo bsica vivel do sistema. A matriz B chamada matriz bsica, ou sim-
plesmente base do sistema e a matriz N chamada matriz no bsica. No vetor x = (xB | xN), as
componentes de xB so chamadas variveis bsicas e as componentes de xN so chamadas vari-
veis no bsicas. Se todas as componentes de xB forem maiores que zero, ento x chamado solu-
o bsica vivel no degenerada, e se pelo menos uma de suas componentes for nula, ento x
chamado soluo bsica degenerada.

Exemplo para ilustrar as definies bsicas

Seja o problema de programao linear com duas variveis e duas restries:

Maximizar z = x1 + 3 x2 (1)
sujeito a: x1 + x2 6 (2)
x2 3 (3)
xj 0

A representao grfica a seguinte:

30
Obtendo-se a forma padro do PPL pela introduo das variveis de folga x3 e x4 nas restries (2) e
(3), respectivamente, tem-se o seguinte sistema de equaes lineares:

x1 + x2 + x3 = 6
x2 + x4 = 3
xj 0

A matriz de coeficientes tecnolgicos A e os vetores colunas correspondentes so os seguintes:

1 1 1 0
A= = [a1 a2 a3 a4 ]
0 1 0 1

Para se obter uma matriz bsica B (2 2) a partir da matriz A, deve-se selecionar 2 vetores, ai e aj,
linearmente independentes. Para uma matriz A (m n), o nmero mximo possvel de matrizes
quadradas de dimenses m m dado por:

n!
m!(n m)!

No caso, n = 4 e m = 2, assim esse nmero mximo 6. No entanto, como os vetores a1 e a3 so i-


guais, ou seja, no so linearmente independentes, o nmero de matrizes bsicas fica reduzido a 5.
A seguir so mostradas todas as matrizes bsicas obtidas a partir do sistema dado, com as respecti-
vas solues bsicas xB e as no bsicas xN.

1)
1 1
B = [a1 a2 ] =
0 1
x 1 1 6 3
x B = 1 = B 1b = =
x2 0 1 3 3
x 0
xN = 3 =
x 4 0
31
2)
1 0
B = [a1 a4 ] =
0 1
x1 1 0 6 6
x B = = B 1b = =
x4 0 1 3 3
x 0
xN = 2 =
x3 0

3)
1 1
B = [a 2 a3 ] =
1 0
x 0 1 6 3
x B = 2 = B 1b = =
x3 1 1 3 3
x 0
xN = 1 =
x 4 0

4)
1 0
B = [a 2 a4 ] =
1 1
x2 1 0 6 6
x B = = B 1b = =
x4 1 1 3 3
x 0
xN = 1 =
x3 0

5)
1 0
B = [a 3 a4 ] =
0 1
x 1 0 6 6
x B = 3 = B 1b = =
x4 0 1 3 3
x 0
xN = 1 =
x 2 0

Das solues bsica obtidas, apenas a soluo nmero 4 no vivel, visto que o componente x4
negativo. Ento so 4 solues bsicas viveis para o PPL, a saber:

3 6 0 0
3 0 3 0
x = ,
1
x = ,
2
x = ,
3
x =
4
0 0 3 6

0 3 0 3

Estes pontos pertencem a R4 . Uma projeo em R2, ou seja, no plano gerado por x1 e x2, tem como
resultante os seguintes pontos:
32
3 6 0 0
x1 = , x2 = , x3 = , x4 =
3 0 3 0

Estes pontos so identificados na soluo grfica do problema, mostrando que eles correspondem
aos pontos extremos do polgono de restries (figura seguinte).

x3 x1

x4 x2

Soluo bsica degenerada


Uma soluo bsica vivel dita degenerada se existir uma ou mais variveis bsicas nulas. A exis-
tncia de uma soluo degenerada afeta o comportamento do algoritmo Simplex, e da a importn-
cia sobre desse tipo de soluo. Um exemplo mostrando a ocorrncia de uma soluo degenerada
dado a seguir.

Seja o seguinte conjunto de restries de um PPL com duas variveis e trs restries (assumiremos
sempre todos os xj 0, a menos que se diga o contrrio):

x1 + x2 6
x2 3
x1 + 2 x2 9

Sua representao grfica a seguinte:

33
Usando variveis de folga o sistema transformado em igualdades, na forma:

x1 + x2 + x3 = 6
x2 + x4 = 3
x1 + 2 x2 + x5 = 9

A matriz de coeficientes do sistema expandido :

1 1 1 0 0
A = [a1 a2 a3 a 4 ] = 0 1 0 1 0
1 2 0 0 1

Considere a matriz bsica formada pelas trs primeiras colunas de A, ou seja, B = [a1 a2 a3]. A so-
luo correspondente dada por:

Variveis bsicas:

1
x1 1 1 1 6 0 2 1 6 3
x B = x 2 = B 1b = 0 1 0 3 = 0 1 0 3 = 3

x3 1 2 0 9 1 1 1 9 0
Variveis no bsicas:

x 4 0
xN = =
x5 0

Tendo em vista que a varivel bsica x3 = 0, ento a soluo degenerada. Veremos as implicaes
disso mais tarde.

34
Teoremas fundamentais
Considere o problema de programao linear na forma padro:

Maximizar Z = cx
Sujeito a: Ax = b
x 0

Relembraremos agora algumas definies bsicas, ilustrando-as de forma um pouco diferente:

Definio 1: Uma base de uma matriz A (m n) uma matriz quadrada de m vetores coluna line-
armente independentes em m. As variveis associadas a essas colunas so chamadas
variveis bsicas.

Ax = b
x = (xB, xR), onde:
xB representa o vetor das variveis bsicas de m componentes, e
xR representa o vetor das restantes n m variveis no bsicas.

xB
x:

B R

A: m

m nm

O sistema pode ento ser reescrito assim:

BxB + RxR = b

Como podemos solucionar o conjunto de equaes somente em funo das variveis bsicas,
temos:

xR = 0 e BxB = b

Definio 2: Seja B uma base associada a uma matriz A. O vetor composto de x B = B 1b e xR = 0


chamado de soluo bsica.

Definio 3: Uma soluo bsica sem componentes negativas denominada soluo bsica vi-
vel.

Definio 4: O conjunto C = {x | Ax = b, x 0} denomina-se conjunto de solues viveis.

35
Teorema 1

O conjunto C das solues viveis de um modelo de programao linear um conjunto convexo.

Demonstrao:
x = x1 + (1 ) x 2 C
{x1 , x 2 } C
0 1
Ax = A[ x1 + (1 ) x 2 ] = Ax1 + (1 ) Ax 2 = b + (1 )b = b

Teorema 2

Toda soluo bsica vivel do sistema Ax = b um ponto extremo do conjunto de solues viveis,
ou seja, um ponto extremo do conjunto C

Teorema 3

Todo ponto extremo x de um conjunto de solues viveis de um sistema Ax = b uma soluo b-


sica vivel.

Corolrio 1: O conjunto de pontos extremos de um conjunto de solues viveis finito e limitado


em C nm .

Corolrio 2: Se existe uma soluo vivel, ento existe uma soluo bsica vivel.

Teorema 4

1. Se o PPL tem soluo tima (mximo ou mnimo de Z) finita, ento pelo menos uma soluo -
tima ocorre em um ponto extremo (vrtice) do conjunto C;
2. Se a soluo tima ocorre simultaneamente em mais de um ponto extremo, ento qualquer com-
binao convexa desses pontos extremos tambm soluo tima.

36
O Algoritmo Simplex
O algoritmo Simplex um procedimento computacional desenvolvido para resolver problemas de
programao linear. Podemos dividi-lo em duas fases distintas:

Fase 1 - consiste em determinar uma soluo bsica vivel do PPL ou, ento, mostrar que tal solu-
o no existe. Neste ltimo caso, no havendo soluo bsica vivel, no existe soluo para o
problema, ou seja, o conjunto de restries inconsistente. Quando uma soluo bsica vivel pu-
der ser identificada facilmente, a Fase 1 no precisa ser usada;

Fase 2 - consiste em determinar a soluo tima para o PPL ou, ento, mostrar que a soluo ili-
mitada, ou seja, que o valor de Z pode crescer ou decrescer infinitamente. A Fase 2 inicia a partir de
uma soluo bsica vivel do PPL, que pode ser obtida usando-se a Fase 1.

Ilustrao

Caso tpico de problema em que necessrio o uso da Fase 1:

Maximizar 1 x1 + 2 x2
sujeito a: -1 x1 + 3 x2 9
1 x1 - 2 x2 0
2 x1 + 1 x2 10
2 x1 + 1 x2 5

Soluo grfica

Colocando o problema na forma padro tem-se:

Maximizar 1 x1 + 2 x2
sujeito a: -1 x1 + 3 x2 + x3 = 9
1 x1 - 2 x2 + x4 = 0
2 x2 + 1 x2 + x5 = 10
2 x1 + 1 x2 - x6 = 5

37
Tomando-se x1 e x2 como variveis no bsicas, tem-se x1 = 0 e x2 = 0. Os valores das variveis b-
sicas so obtidas de forma trivial, ou seja: x3 = 9, x4 = 0, x5 = 10 e x6 = -5. A soluo bsica corres-
pondente x = (0, 0, 9, 0, 10, -5), que no vivel, pois existe uma componente negativa (x6 = -5).
Neste caso, para se obter uma soluo bsica inicial necessrio usar a Fase 1 do Simplex. Vere-
mos como isso pode ser feito mais adiante.

Caso de problema em que no necessrio usar a Fase 1:

Maximizar 5 x1 + 2 x2
sujeito a: 1 x1 3
1 x2 4
1 x1 + 2 x2 9

Soluo grfica

Colocando o problema na forma padro tem-se:

Maximizar 5 x1 + 2 x2
sujeito a: 1 x1 + x3 = 3
1 x2 + x4 = 4
1 x2 + 2 x2 + x5 = 9

Tomando-se x1 e x2 como variveis no bsicas, tem-se x1 = 0 e x2 = 0. Os valores das variveis b-


sicas so obtidas de forma trivial, ou seja: x3 = 3, x4 = 4 e x5 = 9. A soluo bsica correspondente
x = (0, 0, 3, 4, 9), que vivel, pois todas componentes so no negativas. Neste caso, para se obter
uma soluo bsica inicial no necessrio usar a Fase 1 do Simplex.

38
O Algoritmo Simplex Detalhamento

Passo 1

Determine uma soluo bsica vivel (SBV) inicial. Se necessrio usar a Fase 1;

Passo 2

Testar se a SBV corrente tima. Se sim, pare, o problema est resolvido; se no, v ao pas-
so seguinte;

Passo 3

Fazer a mudana de base, ou seja:


(i) Determinar a varivel no bsica que deve entrar na base a varivel no bsica a
entrar na base deve ser aquela que mais aumenta o valor da funo objetivo no mo-
mento corrente, ou seja, aquela que tem o maior coeficiente;
(ii) Determinar a varivel bsica que deve sair da base a varivel a sair da base deve
ser aquela que primeiro assumir valores negativos como conseqncia do aumento
do valor da varivel escolhida para entrar na base. O propsito no permitir que al-
guma varivel assuma valores negativos, tornando o problema invivel;
(iii) Processar a mudana de base fazendo-se a operao de pivoteamento e retornar ao
Passo 2.

Podemos tambm descrever o algoritmo em forma de fluxograma, como mostra a figura seguinte:

39
40
Exemplo 1

Uma grande fbrica de mveis dispe em estoque de 250m de tbuas, 600m de pranchas e 500m de
painis de conglomerado. A fbrica normalmente oferece uma linha de mveis composta por um
modelo de escrivaninha, uma mesa de reunio, um armrio e uma prateleira. Cada tipo de mvel
consome uma certa quantidade de matria prima, conforme a tabela abaixo. A escrivaninha vendi-
da por R$100, a mesa por R$80, o armrio por R$120 e a prateleira por R$20. Modele e resolva o
problema pelo simplex, de forma a maximizar a receita com a venda dos mveis.

Quantidade de material em metros Disponibilidade


consumidos por unidade de produto do Recurso (m)
Escrivaninha Mesa Armrio Prateleira
Tbua 1 1 1 4 250
Prancha 0 1 1 2 600
Painis 3 2 4 0 500
Valor de 100 80 120 20
Revenda (R$)

Considerando as seguintes variveis de deciso:

xE = N de escrivaninhas a ser produzido;


xM = N de mesas a ser produzido;
xA = N de armrios a ser produzido;
xP = N de prateleiras a ser produzido.

Podemos ento escrever o modelo de PL:

Max. Z = 100xE + 80xM + 120xA + 20xP


s.a.
xE + xM + xA + 4xP 250
xM + xA + 4xP 600
3xE + 2xM + 4xA 500

Passando para a forma padro, temos:

Max. Z = 100xE + 80xM + 120xA + 20xP


s.a.
xE + xM + xA + 4xP + x1 = 250
xM + xA + 4xP + x2 = 600
3xE + 2xM + 4xA + x3 = 500

A nossa soluo bsica vivel inicial pode ser obtida, neste caso, de forma trivial:
x1 = 250; x2 = 600; x3 = 500; xE = xM = xA = xP = 0.

Podemos agora montar o quadro simplex. Para isso, trataremos a equao da F.O. como se
fosse apenas mais uma equao do nosso sistema linear:

Z + 100xE + 80xM + 120xA + 20xP = 0


xE + xM + xA + 4xP + x1 = 250
xM + xA + 4xP + x2 = 600
3xE + 2xM + 4xA + x3 = 500

41
Essa linha ser destacada no quadro, e sua importncia ser vista no decorrer do algoritmo.
Alm disso, usaremos a 1 coluna para fazer a numerao das linhas, somente para facilitar
as explicaes a seguir. A 2 coluna serve para relacionarmos as variveis bsicas (V.B.):

V.B. xE xM xA xP x1 x2 x3 b
L0 Z 100 80 120 20 0 0 0 0
L1 x1 1 1 1 4 1 0 0 250
L2 x2 0 1 1 2 0 1 0 600
L3 x3 3 2 4 0 0 0 1 500

Para entrar na base, devemos escolher a varivel que possui o maior coeficiente na linha L0.
Esses coeficientes indicam a contribuio que cada varivel d Funo Objetivo. para cada
unidade de aumento de seus respectivos valores. No quadro acima, vemos que cada unidade
de aumento da varivel xA resulta em um aumento de 120 unidade no valor da F.O. Essa a
varivel que mais contribui localmente para o processo de maximizao da F.O., e portan-
to a escolhida para entrar na base. Esse processo de escolha representado no fluxograma da
seguinte maneira:

cj* = max(cj)

onde j* representa a coluna correspondente varivel que deve entrar na base.

Para que a varivel xA entre na base, preciso que uma varivel bsica saia da base (por
que?). Para determinar isso, s fazer com que o valor de xA cresa o mximo possvel. Po-
demos ver pelos valores do quadro acima que, se xA for maior que 125 (ou 4xA > 500), ento
teremos para a ultima restrio o seguinte:

4xA + x3 = 500
x3 = 500 4xA

e o valor de x3 seria negativo, o que seria invivel. Com isso, o maior valor que xA pode as-
sumir sem violar nenhuma das restries xA = 125. Nesse caso, o valor de x3 seria igual a
zero, e ele ento sai da base. Todo esse processo de escolha representado no fluxograma da
seguinte maneira:

Escolher i* | min(bi / aij*), aij* > 0

onde i* representa a linha correspondente varivel que deve sair da base.

O significado desse procedimento bem simples: divida todos os bi pelos valores de aij*
que forem maiores que zero, e pegue o menor valor dessa diviso, que corresponder linha
i*. No caso acima, teramos:

L1: 250 / 1 = 250


L2: 600 / 1 = 600
L3: 500 / 4 = 125 i*

Agora podemos representar a mudana de base usando setas no quadro:

42
V.B. xE xM xA xP x1 x2 x3 b
L0 Z 100 80 120 20 0 0 0 0
L1 x1 1 1 1 4 1 0 0 250
L2 x2 0 1 1 2 0 1 0 600
L3 x3 3 2 4 0 0 0 1 500

O elemento destacado representa o nosso pivot. Observe que os vetores-coluna das variveis
bsicas na matriz A formam uma matriz identidade, e seus coeficientes da linha L0 so nulos.
Esse padro ser mantido durante todo o decorrer do algoritmo. Dessa forma, os valores das
V.B. so obtidos diretamente na ltima coluna (b), e o valor de Z obtido na posio b0.

O pivoteamento consiste ento em transformar a coluna correspondente varivel que est


entrando na base em um vetor cannico, substituindo o vetor cannico da varivel que est
saindo da base. Fazemos isso por meio das operaes bsicas de linha.

Primeiro, fazemos L3 L3 4:

V.B. xE xM xA xP x1 x2 x3 b
L0 Z 100 80 120 20 0 0 0 0
L1 x1 1 1 1 4 1 0 0 250
L2 x2 0 1 1 2 0 1 0 600
L3 xA 1 0 0 0 125

Depois, fazemos:

L0 -120 L3 + L0
L1 -1 L3 + L1
L2 -1 L3 + L2

e obtemos o segundo quadro simplex:

V.B. xE xM xA xP x1 x2 x3 b
L0 Z 10 20 0 20 0 0 -30 -15.000
L1 x1 0 4 1 0 - 125
L2 x2 - 0 2 0 1 - 475
L3 xA 1 0 0 0 125

Temos agora a soluo bsica x1 = 125; x2 = 475; xA = 125; xE = xM = x3 = xP = 0. Passamos


de um lucro igual a zero para um lucro de R$15.000, correspondente produo de 125 ar-
mrios.

Observe que ainda existem variveis que podem contribuir para o crescimento da F.O. Co-
mo existe um empate no maior valor, entre xM e xP, escolheremos xM para entrar na base.
Nesse caso, haver tambm um empate entre x1 e xA para sair da base. Escolheremos xA para
sair da base (depois discutiremos as implicaes desses empates).

43
Executamos ento o 2 pivoteamento:

L1 L1
L0 -20 L1 + L0
L2 - L1 + L2
L3 - L1 + L3

e obtemos o terceiro quadro simplex:

V.B. xE xM xA xP x1 x2 x3 b
L0 Z 0 0 0 -140 -40 0 -20 -20.000
L1 xM 1 0 8 2 0 - 250
L2 x2 -1 0 0 -1 1 1 0 350
L3 xA 0 1 -4 -1 0 0

Temos agora a soluo bsica xM = 250; x2 = 350; xA = 0 (VB); xE = xP = x1 = x3 = 0 (VNB).


O lucro agora aumentou para R$20.000, correspondente produo de 250 mesas. Essa so-
luo tima, j que no existe VNB que possa contribuir para o crescimento da F.O. Todas
elas possuem coeficiente nulo ou negativo na linha da F.O. A soluo tima pode ser repre-
sentada assim:

x* = (0; 250; 0; 0; 0; 350; 0) Z* = 20.000

A varivel de folga x2 representa a folga do recurso Pranchas. A soluo tima para esse
problema, consiste em fabricar somente 250 mesas, tendo uma sobra de 350m de pranchas, e
obtendo um lucro mximo de R$20.000,00.

Veja que, apesar da varivel xA estar na base, seu valor nulo, indicando que essa soluo
degenerada.

Degenerao (ou degenerescncia) e Ciclagem


Em casos espordicos (alguns autores dizem que esses casos so raros ou muito difceis de ocorrer
na prtica), o algoritmo simplex pode entrar em loop, ou em processo de ciclagem. Nesses ca-
sos, ocorrem mudanas de base, mas a cada pivoteamento, o algoritmo retorna ao mesmo ponto do
espao de solues, representado por vetores diferentes, mas linearmente dependentes. Isso ocorre
quando h empate nos critrios de entrada e de sada da base, normalmente devido a alguma VB
possuir valor nulo.

Para evitar o processo de ciclagem, normalmente recorre-se a uma das duas regras mais conhecidas:

Regra Lexicogrfica. Veja detalhes em (Bazaraa, 1990).

Regra de Bland

Entre todas as candidatas a entrar na base, selecione a varivel xk que possui o menor ndice.
Entre todas as candidatas a sair na base, selecione a varivel xr que possui o menor ndice.

44
Exemplo 2

Uma sorveteria produz dois tipos de sorvete: no palito e no copinho. Na sorveteria, o nico ponto
crtico a mo-de-obra disponvel. O sorvete no copinho consome 50% a mais de mo-de-obra do
que no palito. Sabe-se que se todo sorvete produzido fosse no palito a companhia poderia produzir
400 toneladas por dia. No entanto, o mercado tem condies de absorver, diariamente, apenas 300
toneladas de sorvete no palito e 150 toneladas de sorvete no copinho.

1. Modele o problema de modo a maximizar a produo de sorvete.

Considerando Xp igual quantidade de sorvete em palito, e Xc igual quantidade de sorve-


te em copinho produzido (em toneladas), temos:

max. Xp + Xc
s.a.
Xp 300
Xc 150
Xp + 1,5Xc 400

2. Resolva-o graficamente.

Xc

400

300

200

100
Soluo tima: (Xp=300; Xc=66,67; Z=366,67)

0 100 200 300 400 Xp

Pela inclinao e sentido de crescimento da F.O. (linha pontilhada), vemos que a soluo -
tima a interseo das retas Xp = 300 e Xp + 1,5Xc = 400. Isso nos d as seguintes coorde-
nadas:

Xp* = 300;
Xc* = (400 Xp) / 1,5 = 100 / 1,5 = 66,67;
Z* = 366,67.

45
3. Resolva-o pelo mtodo simplex.

Marcando os pivs em negrito, temos os seguintes quadros do simplex (alguns valores apa-
recem arredondados no quadro):

====================================================
| Xp Xc X3 X4 X5| b
----------------------------------------------------
-Z| 1.0 1.0 0.0 0.0 0.0| 0.0
----------------------------------------------------
X3| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 1.0 0.0 1.0 0.0| 150.0
X5| 1.0 1.5 0.0 0.0 1.0| 400.0
====================================================
-Z| 0.0 1.0 -1.0 0.0 0.0| -300.0
----------------------------------------------------
Xp| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 1.0 0.0 1.0 0.0| 150.0
X5| 0.0 1.5 -1.0 0.0 1.0| 100.0
====================================================
-Z| 0.0 0.0 -0.3 0.0 -0.7| -366.7
----------------------------------------------------
Xp| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 0.0 0.7 1.0 -0.7| 83.3
Xc| 0.0 1.0 -0.7 0.0 0.7| 66.7
====================================================
Solucao otima:
Z* = 366.67
x* = (300; 66,67; 0; 83.33; 0; 0)

Observe que a varivel X4 representa a folga em termos de mercado para o sorvete em copi-
nho (ou seja, o tanto que estamos produzindo abaixo do valor mximo permitido).

4. Agora observe de novo a soluo grfica e observe o que acontece, graficamente, a cada itera-
o do Simplex.

46
Algoritmo Simplex Mtodo das Duas Fases

Primeiro Exemplo (extrado de Goldbarg&Luna,2000):

Considere o seguinte modelo de P.L.:

Minimizar Z = -3x1 - 5x2


sujeito a:
x1 4
x2 6
3x1 + 2x2 18
x1 0 e x2 0

Passando para a forma padro, temos:

Maximizar Z = 3x1 + 5x2


s.a.:
x1 + x3 = 4
x2 + x4 = 6
3x1 + 2x2 - x5 = 18
x1 0, x2 0, x3 0, x4 0, x5 0

x2

6 A B

3
C

0 2 4 x1

Observe que, neste caso, no podemos considerar a soluo inicial contendo somente as variveis
de folga, o que resultaria em uma soluo invivel. Isso pode ser visto na representao grfica do
problema, mostrado acima. A soluo trivial x1 = 0 e x2 = 0 no pertence ao espao de solues.

Nessas situaes, normalmente opta-se por usar um dos seguintes mtodos para solucionar o mode-
lo de P.L.:

Mtodo do grande M
Mtodo das duas fases

Veremos aqui o mtodo das duas fases (o outro ser discutido em sala de aula).

47
Na FASE 1, utilizamos o simplex sobre o problema modificado, e tentamos encontrar uma soluo
bsica vivel inicial do problema original.

Na FASE 2, de posse da base encontrada na 1a Fase, aplicamos o mtodo simplex tradicional em


busca da soluo tima do problema.

FASE 1
1. Introduzimos uma varivel artificial x aj para cada restrio do problema, ou somente para as
restries que tiverem varivel de folga com coeficiente negativo.

2. Resolvemos o problema para a seguinte F.O. modificada:


Min. q = x aj
3. Se q* = 0, ento existe uma soluo bsica vivel para o problema original. Neste caso, elimi-
namos as variveis artificiais, substitumos a F.O. modificada pela original e prosseguimos com
o simplex.

Introduzindo uma varivel artificial x 6a , e mudando a funo objetivo de forma a conter somente as
variveis artificiais, temos:

Minimizar q = x 6a
s.a.:
x1 + x3 = 4
x2 + x4 = 6
3x1 + 2x2 - x5 + x 6a = 18
x1 0, x2 0, x3 0, x4 0, x5 0, x 6a 0

V.B. x1 x2 x3 x4 x5 x 6a
q 0 0 0 0 0 -1
x3 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
x 6a 3 2 0 0 -1 1 18

Reduzindo a coluna 6 forma cannica, temos:


V.B. x1 x2 x3 x4 x5 x 6a
q 3 2 0 0 -1 0 18
x3 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
a
x6 3 2 0 0 -1 1 18

Iterao 1:
V.B. x1 x2 x3 x4 x5 x 6a
q 3 2 0 0 -1 0 18
x3 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
a
x6 3 2 0 0 -1 1 18

48
Iterao 2:
V.B. x1 x2 x3 x4 x5 x 6a
q 0 2 -3 0 -1 0 6
x1 1 0 1 0 0 0 4
x4 0 1 0 1 0 0 6
a
x6 0 2 -3 0 -1 1 6

V.B. x1 x2 x3 x4 x5 x 6a
q 0 0 0 0 0 -1 0
x1 1 0 1 0 0 0 4
x4 0 0 3/2 1 1/2 -1/2 3
x2 0 1 -3/2 0 -1/2 1/2 3

Fim da Fase 1. Retirando as partes sombreadas acima, e re-introduzindo a funo objetivo original,
temos:

FASE 2

V.B. x1 x2 x3 x4 x5
-Z 3 5 0 0 0 0
x1 1 0 1 0 0 4
x4 0 0 3/2 1 1/2 3
x2 0 1 -3/2 0 -1/2 3

Reduzindo as colunas 1 e 2 forma cannica, temos:


V.B. x1 x2 x3 x4 x5
-Z 0 0 9/2 0 5/2 -27
x1 1 0 1 0 0 4
x4 0 0 3/2 1 1/2 3
x2 0 1 -3/2 0 -1/2 3

Iterao 3:
V.B. x1 x2 x3 x4 x5
-Z 0 0 9/2 0 5/2 -27
x1 1 0 1 0 0 4
x4 0 0 3/2 1 1/2 3
x2 0 1 -3/2 0 -1/2 3

Iterao 4:
V.B. x1 x2 x3 x4 x5
-Z 0 0 0 -3 1 -36
x1 1 0 0 -2/3 -1/3 2
x3 0 0 1 2/3 1/3 2
x2 0 1 0 1 0 6

49
Quadro final (timo):
V.B. x1 x2 x3 x4 x5
-Z 0 0 -3 -5 0 -42
x1 1 0 1 0 0 4
x5 0 0 3 2 1 6
x2 0 1 0 1 0 6

x2

Z = -36
6 A B
Z = -42

3 C q=0
Z = -27

q = 18 q=6
0 2 4 x1

Segundo Exemplo: Escolha da Mistura para Raes

Gro 1 Gro 2 Necessidades mnimas


Nutriente A 2 3 650
Nutriente C 5 3 1050
$/kg 32 35

Seja: x1 = qtde. (kg) do Gro 1 usada na rao


x2 = qtde. (kg) do Gro 2 usada na rao

Minimizar 32x1 + 35x2

Sujeito a:

2x1 + 3x2 650


5x1 + 3x2 1050
x1 0, x2 0

50
FASE 1
Introduzindo as variveis de folga e as variveis artificiais, temos o seguinte modelo artificial, j na
forma padro:

Maximizar q = x5a x6a


s.a.:
2x1 + 3x2 x3 + x5a = 650
5x1 + 3x2 x4 + x 6a = 1050

V.B. x1 x2 x3 x4 x5a x 6a
q 0 0 0 0 -1 -1
x5a 2 3 -1 0 1 0 650
x 6a 5 3 0 -1 0 1 1050

Reduzindo as colunas 5 e 6 forma cannica, temos:


V.B. x1 x2 x3 x4 x5a x 6a
q 7 6 -1 -1 0 0 1700
a
x5 2 3 -1 0 1 0 650
x 6a 5 3 0 -1 0 1 1050

Iterao 1:
V.B. x1 x2 x3 x4 x5a x 6a
q 7 6 -1 -1 0 0 1700
a
x5 2 3 -1 0 1 0 650
x 6a 5 3 0 -1 0 1 1050

Iterao 2:
V.B. x1 x2 x3 x4 x5a x 6a
q 0 1,8 -1 0,4 0 -1,4 230
a
x5 0 1,8 -1 0,4 1 -0,4 230
x1 1 0,6 0 -0,2 0 0,2 210

V.B. x1 x2 x3 x4 x5a x 6a
q 0 0 0 0 -1 -1 0
x2 0 1 -0,56 0,22 0,56 -0,22 127,78
x1 1 0 0,33 0,13 -0,33 -0,13 133,33

Fim da Fase 1. Retirando as partes sombreadas acima, e re-introduzindo a funo objetivo original,
temos:

51
FASE 2

V.B. x1 x2 x3 x4
-Z 32 35 0 0 0
x2 0 1 -0,56 0,22 127,78
x1 1 0 0,33 0,13 133,33

Reduzindo as colunas 1 e 2 forma cannica, temos:


V.B. x1 x2 x3 x4
-Z 0 0 -8,78 -12,04 -8.738.89
x2 0 1 -0,56 0,22 127,78
x1 1 0 0,33 0,13 133,33

O quadro acima j contm a soluo tima:

x1 = 133,33 kg
x2 = 127,78 kg
Custo mnimo = $ 8.738.89

As iteraes do algoritmo so representadas na figura abaixo:

Mistura de Rao
x2
400

360

320

280

240

200

160

120

80

40 x1

0
0 40 80 120 160 200 240 280 320 360 400
F.O.
Nutr.A
Nutr.C

52
Elementos de Ps-Otimizao
Seja o PPL dado pela Forma Padro:

Max. Z = cx
s.a.
Ax = b,
x0

e suponha que a aplicao do mtodo Simplex encontrou uma soluo tima associada a uma matriz
bsica B.

Podemos ter ento as seguintes situaes:

1. Mudana no vetor c
2. Mudana no vetor b
3. Mudana na matriz A
4. Adio de nova atividade
5. Adio de uma nova restrio.

Se a anlise no permite mudana na base B, tem-se uma Anlise de Sensibilidade. Caso contrrio,
uma Anlise Paramtrica. Neste mdulo, ser feita uma abordagem da primeira situao.

 Em que faixa podem variar os custos e os meus recursos de modo que a minha soluo no
mude?

Max. Z = cx
s.a.
Ax = b,
x0

equivalente a:
Max. Z = cB xB + cR xR
s.a.
BxB + RxR = b ,
xB 0, xR 0

Como j foi visto anteriormente, o mtodo Simplex procura, a partir de uma determinada
partio da matriz A, resolver o sistema de equaes Ax = b, sendo que a soluo, para xR = 0 , de-
nominada soluo bsica. Se esta soluo atende a restrio x 0, ela denominada de soluo b-
sica vivel. Se ela minimiza a F.O. Z, ela chamada de soluo tima do PPL.

O Quadro Simplex na Forma Cannica:

xB xR
-Z 0 cj zj cB B 1b

xB I B 1 R B 1b
onde zj = c B B 1 a j
53
Condio de Otimalidade (maximizao):
(cj zj) 0
para toda varivel no bsica.

Um exemplo:
Considere o modelo do PPL visto na pgina 45 (com Xp e Xc sendo substitudos por x1 e x2, respec-
tivamente):
max. x1 + x2
s.a.
x1 + x3 = 300
x2 + x4 = 150
x1 + 1,5x2 + x5 = 400
xj 0
sendo
x1
x
1 0 1 0 0 300 2
A = 0 1 0 1 0 b = 150 c = [1 1 0 0 0] x = x3

1 1,5 0 0 1 400 x4
x5

Vimos que a soluo tima para este PPL :

Z* = 366.67
x* = (300; 66,67; 0; 83.33; 0; 0)

Temos, portanto, que x1, x2 e x4 so atividades bsicas, e x3, x5 so atividades no bsicas. Expres-
sando isso em termos das equaes matriciais vistas anteriormente, temos...

1 0 0 1 0 1 0 0
B = 0 1 1 R = 0 0 B = 0, 67 0 0, 67
1
1 1, 5 0 0 1 0,67 1 0, 67

x1
x3
cB = [1 1 0] cR = [ 0 0] xB = x2
xR =
x4 x5

cR cB B 1R = [ 0,333 0,667 ]

xB = B 1b = [300 66, 67 83,33]

cB xB = 366, 67

...que precisamente o resultado que obtivemos na resoluo do PPL atravs do Simplex:

54
====================================================
-Z| 0.0 0.0 -0.3 0.0 -0.7| -366.7
----------------------------------------------------
Xp| 1.0 0.0 1.0 0.0 0.0| 300.0
X4| 0.0 0.0 0.7 1.0 -0.7| 83.3
Xc| 0.0 1.0 -0.7 0.0 0.7| 66.7
====================================================

Mudana no vetor c
A anlise feita considerando-se a variao no coeficiente de cada varivel na funo objetivo, exi-
gindo-se que as condies de otimalidade:

(cj zj) 0
sejam atendidas para toda VNB. Neste caso, se a varivel em questo for no bsica resolve-se uma
desigualdade linear, enquanto que se ela for varivel bsica resolve-se um sistema de desigualdades
lineares.

Exemplo:

Considere a VNB x3 no quadro SIMPLEX timo visto anteriormente. O coeficiente de x3 na F.O.


c3 = 0.

Deve-se ter:

(c3 + ) z3 0 (c3 + ) cB B 1a3 0


1 0 0 1
(0 + ) [1 1 0] 0, 67 0 0, 67 0 0

0, 67 1 0, 67 0
0,333 0
0,333

Isso permite uma variao para c3 de at 0,333. Neste intervalo, x3 continuar sendo VNB. Mais
ainda, os conjuntos de VB e de VNB no mudam.

Para fazer a mesma anlise considerando uma VB (e.g. x1), poderamos fazer assim:

cR cB B 1 R 0
1 0 0 1 0
[ 0 0] [ (1 + ) 1 0] 0, 67 0 0,67 0 0 0

0, 67 1 0, 67 0 1
0,333

55
Mudana no vetor b
Qualquer mudana no vetor b deve ser feita de modo que as VB continuem no negativas, ou seja:

B-1b 0

Exemplo:

Considere o elemento b1=300. Temos ento que:

b1 + 1 0 0 300 +
B
1
b 0 0, 67 0 0, 67 150 0

2
b3 0, 67 1 0, 67 400
300 + 0

66, 67 0.67 0
83,33 + 0.67 0

125 100

o que permite uma variao para o elemento b1 de 175 a 400.

56
Dualidade
L
i

e(t) C i(t) e R L C

R
Circuito 1 Circuito 2

Relacionamentos entre a corrente i e a tenso e:

di 1
Circuito 1: L + Ri + idt = e(t )
dt C
de 1
Circuito 2: C + Gi + edt = i (t )
dt L

onde G = 1 R

dx
Forma geral: a + bx + c xdt = y (t )
dt

Dizemos que os Circuitos 1 e 2 so duais.

Circuito 1: primal
Circuito 2: dual

(ou vice-versa)

Seja o modelo de PL:

n
Max. c x
j =1
j j (1)
n
s.a. a j =1
ij x j bi , para i = 1, 2, ..., m (2)

xj 0 para j = 1, 2, ..., n (3)

Chamamos esse modelo de primal. O modelo dual relacionado a ele :

m
Min. b u
i =1
i i (4)
m
s.a. a u
i =1
ij i c j , para j = 1, 2, ..., n (5)

ui 0 para i = 1, 2, ..., m (6)

Usando a notao matricial, temos:

57
Primal (P) Dual (D)
Max. cx Min. ub
s.a. Ax b s.a. uA c
x0 u0
x: (1 n) u: (m 1)

Exemplo:

Primal (P) Dual (D)


Max. 3x1 + 1x2 + 2x3 Min. 6u1 + 8u2
s.a. 2x1 + 4x2 + 3x3 6 s.a. 2u1 + 3u2 3
3x1 + 3x2 + 1x3 8 4u1 + 3u2 1
x1 0, x2 0, x3 0 3u1 + 1u2 2
u1 0, u2 0

Teorema 1:

Se x e u so solues viveis dos problemas (P) e (D), respectivamente, ento cx u b

Teorema 2:

Se x e u so solues viveis dos problemas (P) e (D), respectivamente, e cx = u b , ento essas so-
lues so timas, ou seja, cx * = u *b

Teorema da Existncia
Para um par de problemas duais, uma e somente uma das alternativas abaixo verdadeira:

Nenhum dos problemas tem soluo.


Um deles no tem soluo vivel e o outro tem soluo tima ilimitada.
Ambos possuem soluo tima finita.

Ex:

(P) Max. 3x1 + 2x2 (D) Min. 3u1 + 0u2


s.a. x1 3 s.a. u1 + u2 3
x1 x2 0 3u2 2
x1 0, x2 0 u1 0, u2 0

Teorema das Folgas Complementares


Dado um par de problemas duais, uma condio necessria e suficiente para que as solues x e u
sejam timas que se verifiquem as seguintes relaes de complementaridade de folga:

u(Ax b) = 0
(c uA)x = 0

Prova:

58
Ax b Ax b 0 u ( Ax b) 0

u A c c u A 0 ( c u A) x 0

Fazendo

= u ( Ax b)

= (c u A) x

Teremos:

+ = u ( Ax b) + (c u A) x = cx u b 0

Se x e u forem solues timas, teremos:

cx = u b

Logo,

= =0

Relacionamentos entre o Problema Primal e seu Dual


Na prtica, muitos modelos de PL contm restries do tipo , bem como outras restries do tipo
e outras ainda do tipo =. Podemos ainda ter variveis irrestritas ou at mesmo negativas no
modelo original (no padro), como vimos anteriormente. A tabela abaixo mostra como podemos
converter imediatamente esses modelos mistos em seus respectivos duais, sem que seja necess-
rio passar fazer o modelo passar por transformaes intermedirias.

Problema de Problema de

Restries
Maximizao Minimizao
Variveis

0
0
Irrestrito =
Restries

Variveis

0
0
= Irrestrito

Feita essa primeira transformao, podemos ento aplicar as regras usuais para passar o modelo du-
al para a forma padro, caso, seja necessrio.

59
Exemplo

Uma fbrica pode produzir trs produtos: televisores, DVDs e cmeras de vdeo. Na tabela abaixo
esto apresentados os consumos dos principais recursos da fbrica por produto, bem como a dispo-
nibilidade destes recursos, a contribuio unitria de cada produto para o lucro da empresa, e a de-
manda mnima do mercado.

Recursos da Fbrica Consumo de Recursos (horas / unid.) Disponibilidade


(Setores de Produo) Televisor DVD Cmera (horas / ms)
Produo de Circuitos 0,151 0,210 0,120 22,500
Produo de Mecanismos 0,000 0,345 0,450 17,200
Produo de Gabinetes 0,078 0,056 0,045 10,500
Montagem de Produtos 0,340 0,450 0,370 35,000
Expedio 0,057 0,030 0,045 6,800
Lucro (R$ / unid.) 45,00 115,00 216,00
Demanda mnima (unid. / ms) 55,800 15,500 23,200

Para o problema acima foi obtida a seguinte soluo tima atravs do Lindo:
OBJECTIVE FUNCTION VALUE

1) 9578.494

VARIABLE VALUE REDUCED COST


X1 55.800000 0.000000
X2 15.500000 0.000000
X3 24.467567 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


2) 7.883092 0.000000
3) 0.842095 0.000000
4) 4.178559 0.000000
5) 0.000000 583.783813
6) 2.053360 0.000000
7) 0.000000 -153.486481
8) 0.000000 -147.702698
9) 1.267568 0.000000

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES


VARIABLE CURRENT ALLOWABLE ALLOWABLE
COEF INCREASE DECREASE
X1 45.000000 153.486481 INFINITY
X2 115.000000 147.702698 INFINITY
X3 216.000000 INFINITY 121.444443

RIGHTHAND SIDE RANGES


ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
2 22.500000 INFINITY 7.883092
3 17.200000 INFINITY 0.842095
4 10.500000 INFINITY 4.178559
5 35.000000 0.692389 0.469000
6 6.800000 INFINITY 2.053360
7 55.800000 1.379412 2.036438
8 15.500000 1.042222 4.162659
9 23.200000 1.267568 INFINITY

60
1. Construa um modelo matemtico para este problema de produo.

Observando a tabela com os parmetros, e mais a seqncia na qual esto dispostas as cons-
tantes do lado direito (RHS) na soluo dada, podemos construir o modelo exato que foi u-
sado para obter a soluo pelo Lindo:

maximizar 45x1 + 115x2 + 216x3 (1)


sujeito a:
0,151x1 0,210x2 + 0,120x3 22,5 (2)
0,345x2 0,450x3 17,2 (3)
0,078x1 + 0,056x2 0,045x3 10,5 (4)
0,340x1 0,450x2 0,370x3 35,0 (5)
0,057x1 0,030x2 0,045x3 6,8 (6)
x1 55,8 (7)
x2 15,5 (8)
x3 23,2 (9)

2. Descreva a soluo obtida (variveis de deciso, variveis de folga e funo objetivo).

O lucro mximo obtido foi de R$ 9578,494 / ms;


Para obter esse lucro, preciso fabricar uma mdia de 55,8 televisores, 15,5 DVDs e
24,47 Cmeras por ms;
Pelo resultado das variveis de folga, vemos que:
O setor de Montagem de Produtos trabalhar sem qualquer folga;
O setor de Produo de Circuitos o que est com uma folga maior (7,88 h/ms), se-
guido pelo setor de Produo de Gabinetes (4,18 h/ms);
Sero fabricadas exatamente as quantidades mnimas possveis de televisores e
DVDs, e uma mdia de 1,27 cmeras / ms a mais que o mnimo de 23,2.

3. O que aconteceria com o lucro da empresa se a demanda de televisores passasse para:

i) 57 unid. / ms?

Pela anlise de sensibilidade, vemos que, para que a mesma base seja mantida, a demanda de
televisores precisa estar entre (55,8 2,036438) e (55,8 + 1.379412), ou seja, entre 53,76 e
57,18. Portanto, com uma demanda de 57 unid./ms, podemos considerar o preo dual para a
restrio de demanda de televisores, que de cerca de 153,48. Isso significa que o lucro da
empresa piora de R$ 153,48 para cada unidade de aumento da demanda de televisores. Para
uma demanda de 57, teramos um aumento na demanda de 1,2, e portanto o lucro sofreria
um decrscimo de 1,2 153,48 = R$ 184,17 / ms.

ii) 60 unid. / ms?

Neste caso, a demanda ultrapassaria o limite estabelecido pela anlise de sensibilidade, e te-
ramos uma mudana de base. No podemos, neste caso, fazer qualquer anlise quantitativa
com base somente nas informaes fornecidas na soluo do problema.

4. Faa sugestes para o superintendente da empresa, de modo que se possa aumentar ainda mais o
lucro total.

Para o superintendente da empresa, provavelmente seria difcil alterar as demandas mnimas


dos produtos, pois esses so estabelecidos pelo mercado. Aumentar o lucro para cada produ-
61
to seria uma sugesto bvia, mas isso provavelmente j teria sido feito se fosse possvel. A-
nalisando as variveis de folga e os preos duais, vemos que, para cada unidade que aumen-
tarmos a capacidade do Setor de Montagem de Produtos, o lucro aumenta em R$ 583,78 /
ms. Podemos tentar obter essa capacidade adicional usando um pouco de mo de obra ocio-
sa dos setores de Produo de Circuitos e de Produo de Gabinetes. Se no for possvel des-
locar essa mo de obra, teramos ainda grande chance de contratar mo de obra adicional a
um custo menor do que R$ 583,78 / hora. Deve ser notado, no entanto, que esse aumento no
lucro s vlido para uma capacidade desse setor 0,62 horas / ms acima da capacidade atu-
al. Portanto, seria interessante fazer algumas simulaes para ter uma idia melhor das con-
seqncias da contratao de um novo funcionrio para esse setor.

62
PARTE II Programao em Redes
Introduo
No contexto da Pesquisa Operacional, chamamos de Programao em Redes o estudo dos proble-
mas que utilizam a Teoria dos Grafos como um dos principais recursos de modelagem. Neste con-
texto, o termo rede pode se referir no somente a uma rede de computadores, mas tambm a
uma rede de transportes, de distribuio etc. Exemplos:

Redes de computadores
Redes ferrovirias
Redes de telecomunicaes
Redes de estradas
Redes Eltricas
Redes de esgotos
Redes de transportes
Redes de atividades

scheduling de atividades em grandes projetos

Neste escopo, portanto, uma rede pode se referir a qualquer conjunto de entidades (computadores,
lojas, fbricas, mquinas, pessoas etc.) interligadas por meio de cabos, estradas, caminhos etc., ou
que possuem algum inter-relacionamento. Esse tipo de problema se encaixa perfeitamente na mode-
lagem por meio de grafos, como veremos mais adiante.

Redes / Grafos
ESTRUTURA
TOPOLGICA

INFORMAES QUANTITATIVAS
SOBRE OS ELEMENTOS

Antes de estudarmos formalmente o que so grafos, considere o seguinte exemplo: Um vendedor


ambulante deve sair de uma cidade de origem, visitar vrias outras cidades, e depois retornar ci-
dade de origem, passando por cada uma dessas cidades uma nica vez. Sabendo que existem muitas
formas diferentes de realizar essas visitas, ele deseja descobrir o itinerrio que proporciona a menor
distncia (ou tempo ou custo) total percorrida. Esse problema clssico da P.O. chamado de Pro-
blema do Caixeiro Viajante (PCV). Podemos exemplificar o problema considerando somente 5 ci-
dades e a rede de interligaes (estradas) ilustrada na figura a seguir, onde os valores nas linhas re-
presentam as distncias entre as cidades.

63
2 300 3
300
250

1 200
200 200
350
350 200

4 150 5

Como podemos resolver esse problema? A forma mais simples seria enumerar todas as rotas poss-
veis e calcular a distncia de cada uma. Como a posio da cidade-origem no itinerrio fixo, esse
mtodo envolveria analisar todas as permutaes possveis dentre as n1 cidades restantes, ou seja,
analisar (n1)! possveis rotas.

Com 5 cidades, teramos 4! = 24 rotas, o que seria trivial de analisar (podendo at mesmo ser feito
mo). Com 10 cidades, teramos cerca de 362 mil rotas, o que seria perfeitamente possvel com a
ajuda de um micro-computador. Aumentando esse nmero para 20 cidades, teramos cerca de 1017
rotas. Se pudssemos implementar um programa que pudesse analisar uma soluo (permutao) a
cada ciclo de relgio de um computador, ento usando um computador de 4 GHz gastaramos:

1017
= 2,5 107 segundos = 9,5 meses!
4 10 9

Com 50 cidades, teramos cerca de 1062 rotas, requerendo cerca de 1045 anos de processamento!

Embora o uso de uma tcnica dessas de fora bruta no fosse a maneira mais inteligente de en-
contrar uma soluo tima para esse problema (a no talvez para um pequeno nmero de cidades),
nesse caso no existe realmente uma tcnica apropriada para fazer isso, seja ela por meio de mode-
lagem matemtica em forma de PL, ou usando um outro algoritmo qualquer. Diferente dos proble-
mas de PL que estudamos anteriormente, que dispem do eficiente mtodo Simplex, todos os mto-
dos disponveis para a obteno de uma soluo tima para o PCV possuem dificuldade exponenci-
al com o tamanho do problema (nmero de cidades).

Assim como o PCV, diversos outros problemas de programao em redes so extremamente difceis
de resolver. Nesses casos, o mais indicado o uso de heursticas, ou seja, algoritmos buscam en-
contrar uma soluo boa para o problema, mas no necessariamente a soluo tima, dentro de um
intervalo de tempo vivel.

No entanto, outros problemas de programao em redes, embora possam ser modelados como PLs e
resolvidos pelo Simplex, possuem mtodos de soluo bem mais eficientes e que permitem resolver
problemas bem maiores do que seria possvel se usssemos a modelagem matemtica. Isso poss-
vel graas aos desenvolvimentos obtidos na Teoria dos Grafos. Alm de vermos alguns desses pro-
blemas, a nossa preocupao ser tambm identificar aqueles problemas que, assim como o PCV,
so mais difceis de resolver e, portanto, requerem a busca de solues no-timas ou aproxima-
das.

64
Introduo Teoria de Grafos
Teoria dos grafos uma ferramenta para formular problemas, tornando-os precisos, e definindo in-
ter-relaes fundamentais. Algumas vezes, uma formulao simples e precisa de um problema nos
ajuda a compreend-lo melhor. O maior trunfo de uma ferramenta de formulao a possibilidade
de compreender o modelo matemtico de modo simplificado. Deste modo, na Teoria dos Grafos, a
maior unidade de aprendizado que se usa a assistncia a colocaes e possveis encaminhamentos
futuros a um problema. Uma vez que um problema seja formulado em linguagem terica de grafos,
os conceitos de Teoria dos Grafos podem ser usados para definir o que necessrio para analisar o
problema. Tambm, a Teoria dos Grafos pode nos levar a novos conceitos tericos os quais podem
ser usados para construir teorias sobre problemas da sociedade. No entanto, alguns problemas po-
dem ser modelados somente em parte por grafos - problemas de telecomunicaes, dentre outros,
nos levando a crer que esta teoria algo que complementa com elegncia a anlise de vrios pro-
blemas de nosso dia a dia.

Problemas de Grafos surgem geralmente em:

Caminhos;
Redes de comunicao;
Localizao de facilidades (Depsitos, Hospitais, Escolas, etc.);
Desenhos de circuitos impressos;
Desenho e/ou layout de revistas, jornais, etc;
Distribuio de produtos;
Telecomunicaes;
Limpeza urbana;
Controle de trfego;
Atribuio de rdio freqncia mvel, etc.

Teoria dos grafos, sem abusar muito do princpio, uma ferramenta que s vezes resolve problemas
e algumas vezes nos d idias sobre como resolv-los. Ela, em geral, tem que ser usada em conjunto
com muitas outras ferramentas, matemticas ou estatsticas, etc. Felizmente, o uso da teoria dos gra-
fos pode nos ajudar a compreender em poucas palavras o significado de grandes problemas liga-
dos nossa vida social, e algumas de suas possveis solues.

Uma Breve Histria da Teoria dos Grafos


Os problemas de Percurso em Arcos so os mais antigos relacionados a grafos. A primeira refern-
cia que se conhece sobre eles vem do famoso problema das sete pontes de Knigsberg (Figura 1).
Buscava-se saber se havia um caminho fechado que atravessasse exatamente uma vez sete pontes
sobre o rio Pregel em Knigsberg, hoje Kaliningrad (Figura 2). O problema foi solucionado em
1736 pelo matemtico suo Leonhard Euler, que encontrou as condies para a existncia de um
percurso fechado (grafo euleriano), e mostrou que no havia soluo que satisfizesse aquele caso
particular (Figura 3).

A preocupao de Euler, na demonstrao da soluo, foi exclusivamente sobre a existncia do ca-


minho fechado, j a questo de determin-lo s foi resolvida em 1873 (ou seja, 137 anos mais tarde)
por Heierholzer.

65
Figura 1: Visualizao de Knigsberg, e indicao das sete pontes sobre o rio Pregel.

Figura 2: A cidade de Kaliningrad hoje reconstruda aps a 2a Guerra Mundial.

Figura 3: Representao de Euler do problema.

66
Muitos anos mais tarde, em 1962, um matemtico da Universidade Normal de Shangtun, Kwan
Mei-Ko, quando de sua passagem como funcionrio dos correios durante a revoluo cultural chi-
nesa, preocupou-se com uma situao semelhante de Euler e Heierholzer, porm adequada ao per-
curso dos carteiros que atenderiam ruas de sua cidade. Neste caso, Kwan mostrou-se interessado em
definir alm da travessia, a forma mais fcil de faz-la, percorrendo a menor distncia possvel.
Kwan, definiu assim o problema: Um carteiro tem que cobrir seu local de trabalho, antes de retor-
nar ao posto. O problema encontrar a menor distncia de percurso para o carteiro. Esse proble-
ma conhecido como o Problema do Carteiro Chins.

Dentre as muitas e famosas histrias da Teoria dos Grafos, sem dvida uma das mais curiosas a
do matemtico William Rowan Hamilton. Hamilton j fazia parte da Royal Astronomia Irlandesa
aos 22 anos, foi condecorado Cavalheiro aos 30 anos, e foi reconhecido como um dos lderes mate-
mticos de sua poca. Uma de suas descobertas mais significativas foi a existncia da lgebra no
comutativa, ou seja, a lgebra onde a multiplicao xy no necessariamente igual a yx. H muitos
sistemas de lgebra no comutativa, e um deles, descoberto por Hamilton foi chamado por ele de O
Clculo Icosiano, o qual pode ser interpretado em termos de caminhos sobre um grafo descrito por
um dodecaedro regular.

Hamilton comunicou sua descoberta em uma carta datada de 7 de outubro de 1856, e posteriormen-
te publicou dois artigos sobre o assunto. Ele usou uma representao grfica como base de um que-
bra-cabeas, que ele chamou de O Jogo Icosiano. Hamilton exps orgulhosamente o seu jogo na
Associao Britnica em Dublin, 1857. A idia foi vendida por 16 pounds para um comerciante de
jogos e quebra-cabeas.

O jogo foi comercializado em 1857, acompanhado por um guia de instrues, escrito pelo prprio
Hamilton. O leitor logo veria que o objetivo do jogo era encontrar caminhos e circuitos sobre o gra-
fo formado pelo dodecaedro, satisfazendo certas condies especficas. Particularmente, o primeiro
problema era o de encontrar um circuito passando somente uma vez por cada vrtice do dodecaedro,
que exatamente o PCV descrito anteriormente (Figura 4).

Figura 4: (a) Dodecaedro para o Jogo Icosiano. (b) Uma soluo ou ciclo hamiltoniano.

67
Conceitos Bsicos da Teoria de Grafos

GRAFO

Um grafo G(V,A) definido pelo par de conjuntos V e A, onde:

V - conjunto no vazio: os vrtices ou nodos do grafo;


A - conjunto de pares ordenados a=(v,w), v e w V: as arestas do
grafo.

Seja, por exemplo, o grafo G(V,A) dado por:

V = { p | p uma pessoa }
A = { (v,w) | < v amigo de w > }

Esta definio representa toda uma famlia de grafos.


Um exemplo de elemento desta famlia (ver G1) da-
do por:
G1:
V = { Maria, Pedro, Joana, Luiz }
A = { (Maria, Pedro) , (Joana, Maria) ,
(Pedro, Luiz) , (Joana, Pedro) }

Neste exemplo estamos considerando que a relao <v amigo de w> uma rela-
o simtrica, ou seja, se <v amigo de w> ento <w amigo de v>. Como conse-
qncia, as arestas que ligam os vrtices no possuem qualquer orientao

DIGRAFO (Grafo Orientado)

Considere, agora, o grafo definido por:

V = { p | p uma pessoa da famlia Castro }

A = { (v,w) | < v pai/me de w > }

Um exemplo de deste grafo (ver G2) :

V = { Emerson, Isadora, Renata,


Antonio, Rosane, Ceclia, Alfredo }
G2:
A = {(Isadora, Emerson), (Antonio,
Renata), (Alfredo, Emerson), (Cec-
lia, Antonio), (Alfredo, Antonio)}

A relao definida por A no simtrica pois se <v pai/me de w>, no o caso


de <w pai/me de v>. O grafo acima dito ser um grafo orientado (ou digrafo),
sendo que as conexes entre os vrtices so chamadas de arcos.

68
ORDEM

A ordem de um grafo G dada pela cardinalidade do conjunto de vrtices, ou seja,


pelo nmero de vrtices de G. Nos exemplos ao lado:

ordem(G1) = 4
ordem(G2) = 6

ADJACNCIA

Em um grafo simples (a exemplo de G1) dois vrtices v e w so adjacentes (ou vizi-


nhos) se h uma aresta a=(v,w) em G. Est aresta dita ser incidente a ambos, v e w.
o caso dos vrtices Maria e Pedro em G1. No caso do grafo ser dirigido (a exem-
plo de G2), a adjacncia (vizinhana) especializada em:

Sucessor: um vrtice w sucessor de v se h um arco que parte de v e chega em w.


Em G2, por exemplo, diz-se que Emerson e Antonio so sucessores de Alfredo.

Antecessor: um vrtice v antecessor de w se h um arco que parte de v e chega em


w. Em G2, por exemplo, diz-se que Alfredo e Ceclia so antecessores de Antonio.
GRAU

O grau de um vrtice dado pelo nmero de arestas que lhe so incidentes. Em G1,
por exemplo:

grau(Pedro) = 3
grau(Maria) = 2

No caso do grafo ser dirigido (a exemplo de G2), a noo de grau especializada


em:

Grau de emisso: o grau de emisso de um vrtice v corresponde ao nmero de ar-


cos que partem de v. Em G2, por exemplo:

grauDeEmissao(Alfredo) = 2

Grau de recepo: o grau de recepo de um vrtice v corresponde ao nmero de


arcos que chegam a v. Em G2, por exemplo:

grauDeRecepo(Alfredo) = 0

FONTE

Um vrtice v uma fonte se grauDeRecepo(v) = 0. o caso dos vrtices Isadora,


Alfredo e Ceclia em G2.

SUMIDOURO

Um vrtice v um sumidouro se grauDeEmisso(v) = 0. o caso dos vrtices Rena-


ta e Emerson em G2.

69
GRAFO REGULAR

Um grafo dito ser regular quando todos


os seus vrtices tm o mesmo grau.
G4:
O grafo G4, por exemplo, dito ser um
grafo regular-3, pois todos os seus vrtices
tem grau 3.
GRAFO COMPLETO

Um grafo dito ser completo quando h


uma aresta entre cada par de seus vrtices.
Estes grafos so designados por Kn, onde n
a ordem do grafo.
Um grafo Kn possui o nmero mximo possvel de arestas para um dado nmero de
ns n. Ele , tambm regular-(n-1), pois todos os seus vrtices tem grau n-1.
GRAFO BIPARTIDO

Um grafo dito ser bipartido quando seu conjunto de vrtices V puder ser particio-
nado em dois subconjuntos V1 e V2, tais que toda aresta de G une um vrtice de V1 a
outro de V2.
Para exemplificar, sejam os conjuntos
H={h | h um homem} e M={m | h um
mulher} e o grafo G(V,A) (ver o exemplo
G5) onde:
G5:
V=HUM
A = {(v,w) | (v H e w M) ou (v
M e w H) e <v foi namorado
de w>}

O grafo G6 uma K3,3, ou seja, um grafo


bipartido completo que contm duas par-
ties de 3 vrtices cada. Ele completo
G6:
pois todos os vrtices de uma partio es-
to ligados a todos os vrtices da outra par-
tio. K3,3

70
GRAFO VALORADO

Um grafo G(V,A) dito ser valora-


do quando existe uma ou mais funes rela-
cionando V e/ou A com um conjunto de n-
meros.

Para exemplificar (ver o grafo G7), seja


G7:
G(V,A) onde:

V = {v | v uma cidade com aero-


porto}
A = {(v,w,t) | <h linha area ligan-
do v a w, sendo t o tempo esperado
de vo>}

MULTIGRAFO

Um grafo G(V,A) dito ser um multigra-


fo quando existem mltiplas arestas entre
G8:
pares de vrtices de G. No grafo G8, por e-
xemplo, h duas arestas entre os vrtices A e
C e entre os vrtices A e B, caracterizando-o
como um multigrafo.

SUBGRAFO

Um grafo Gs(Vs, As) dito ser subgrafo de G9:


um grafo G(V,A) quando Vs V e As A. O
grafo G9, por exemplo, subgrafo de G8.

CADEIA

Uma cadeia uma seqncia qualquer de arestas


adjacentes que ligam dois vrtices. O conceito de
cadeia vale tambm para grafos orientados, bas-
tando que se ignore o sentido da orientao dos G11:
arcos. A seqncia de vrtices (x6, x5, x4, x1) um
exemplo de cadeia em G11.

Uma cadeia dita ser elementar se no passa du-


as vezes pelo mesmo vrtice.

dita ser simples se no passa duas vezes pela


mesma aresta (arco).

O comprimento de uma cadeia o nmero de a-


restas (arcos) que a compe.

71
CAMINHO

Um caminho uma cadeia na qual todos os arcos possuem a mesma orientao. A-


plica-se, portanto, somente a grafos orientados. A seqncia de vrtices (x1, x2, x5,
x6, x3) um exemplo de caminho em G11.
CICLO

Um ciclo uma cadeia simples e fechada (o vrtice inicial o mesmo que o vrtice
final). A seqncia de vrtices (x1, x2, x3, x6, x5, x4, x1) um exemplo de ciclo ele-
mentar em G11.
CIRCUITO

Um circuito um caminho simples e fechado. A seqncia de vrtices (x1, x2, x5, x4,
x1) um exemplo de circuito elementar em G11.
FECHO TRANSITIVO

O fecho transitivo direto (ftd) de um vrtice v o conjunto de todos os vrtices que


podem ser atingidos por algum caminho iniciando em v. O ftd do vrtice x5 do grafo
G17, por exemplo, o conjunto: {x1, x2, x3, x4, x5, x6}. Note que o prprio vrtice faz
parte do ftd j que ele alcanvel partindo-se dele mesmo.

O fecho transitivo inverso (fti) de um vrtice v o conjunto de todos os vrtices a


partir dos quais se pode atingir v por algum caminho. O fti do vrtice x5 do grafo G17,
por exemplo, o conjunto: {x1, x2, x4, x5, x7}. Note que o prprio vrtice faz parte do
fti j que dele se pode alcanar ele mesmo.

GRAFO CONEXO G12:

Um grafo G(V,A) dito ser conexo se


h pelo menos uma cadeia ligando ca-
da par de vrtices deste grafo G.
G13:

GRAFO DESCONEXO

Um grafo G(V,A) dito ser desconexo


G14:
se h pelo menos um par de vrtices
que no est ligado por nenhuma ca-
deia.
PONTE

Uma aresta dita ser um a ponte se sua remoo provoca um reduo na conexidade
do grafo. As arestas (x1, x2) em G13 e G14 so exemplos de pontes.

72
RVORE

Uma rvore um grafo conexo sem ciclos.

Seja G(V,A) um grafo com ordem n > 2; as proprie-


dades seguintes so equivalentes para caracterizar G
como uma rvore:

1. G conexo e sem ciclos;


G20:
2. G sem ciclos e tem n-1 arestas;
3. G conexo e tem n-1 arestas;
4. G sem ciclos e por adio de uma aresta se
cria um ciclo e somente um;
5. G conexo, mas deixa de s-lo se uma aresta
suprimida (todas as arestas so pontes);
6. todo par de vrtices de G unido por uma e
somente uma cadeia simples.

ARBORESCNCIA
G21:
Uma arborescncia uma rvore que possui uma ra-
iz. Aplica-se, portanto, somente a grafos orientados.

FLORESTA
G22:
Uma floresta um grafo cujas componentes conexas
so rvores.

73
Fluxos em Rede
Uma rede definida como um grafo orientado G(V,A) atravessado por um fluxo F = {f1, f2, ..., fm}
que circula em seus m arcos. Em uma rede, normalmente temos trs tipos de ns:

Ns de oferta ou fontes, que representam entidades que produzem ou distribuem um determinado


produto;

Ns de demanda ou sumidouros, que representam entidades que consomem ou requerem uma de-
terminada demanda do produto;

Ns de transbordo, que representam somente pontos de passagem para os produtos. So cruza-


mentos, cidades, computadores ou quaisquer outras entidades que no produzem e nem consomem
nada, mas so somente pontos intermedirios entre as ofertas e as demandas.

Temos abaixo alguns exemplos de redes, onde os ns s representam as ofertas, os ns t representam


as demandas, e os demais ns so ns de transbordo. Os valores em cada arco representam, em ge-
ral, custos de transporte, distncias ou tempos de viagem entre cada par de ns.

Figura 1
Figura 2

Figura 3

Repare que na Figura 1 temos o caso mais simples, onde h somente um n de oferta e um de de-
manda. Essa topologia usada, por exemplo, na determinao de um caminho mais curto entre dois
ns, em problemas de fluxo mximo, e em redes PERT.

Na Figura 2, temos diversos ns de oferta e de demanda. Esse grafo poderia representar, por exem-
plo, um caso tpico onde temos diversas fbricas ou atacadistas que desejam distribuir um ou mais
produtos para determinadas cidades ou lojas.
74
Na Figura 3, o n de oferta (e.g. uma fbrica) possui diversos centros de distribuio (s1, s2 e s3),
que por sua vez distribuem o produto pela rede at outros centros intermedirios (e.g. atacadistas ou
armazns), que por sua vez abastassem o consumidor (que poderia ser mais de um, no caso).

Em todos esses tipos de problema, no entanto, o que normalmente se busca determinar o fluxo da
rede tal que o custo, o tempo ou a distncia total de transporte seja minimizado, ou que o fluxo total
seja maximizado. Para isso, devemos determinar o fluxo em cada arco que liga cada par de ns i e j:

xij
i j

Conhecendo o custo cij em cada arco para se transportar cada unidade desse fluxo, podemos calcular
o custo total do transporte no grafo todo como sendo:

n n
Custo Total = cij xij , (i, j ) A
i =1 j =1

ou:
Custo Total =
( i , j )A
cij xij

onde A o conjunto de arcos do grafo.

Alm do custo ou distncia em cada arco, como mostra as figuras anteriores, comum tambm re-
presentarmos os limites mnimos e mximos dos fluxos nos arcos, como na figura abaixo. Chama-
mos essas restries de capacidade nos arcos.

(cij, lij, uij)


i j

onde devemos ter, obrigatoriamente,

lij xij uij (i, j ) A

Da mesma forma, podemos ter restries de capacidade nos ns. Um exemplo seria o da Figura 3
mostrado anteriormente, onde os centros de distribuio s1, s2 e s3 e os armazns t1 e t2 teriam ca-
pacidades mnimas e/ou mximas associadas a elas (como poderamos modelar isso?).

Formulao Geral (Clssica) para Problemas de Fluxos em Rede


Para modelarmos um problema de fluxo em rede, podemos usar o mesmo princpio de conservao
de fluxo que usado, por exemplo, para circuitos eltricos. Para isso, consideremos um n i qual-
quer para onde chegam e de onde saem determinados arcos (fluxos):

75
Podemos calcular a soma total dos fluxos que saem do n i como sendo:

Fluxo total que sai do n i =


( i , j ) A
xij

Da mesma forma, podemos calcular a soma total dos fluxos que chegam ao n i como sendo:

Fluxo total que chega ao n i =


( k ,i ) A
xki

Para os ns de oferta, temos que o fluxo total que sai do n no poder exceder a sua capacidade
mxima de oferta si. Alm disso, podemos enxergar o fluxo que chega ao n de oferta como sendo
um aumento de sua capacidade de produo ou oferta. Portanto, para cada n de oferta dever exis-
tir uma restrio com o seguinte formato:

(fluxo total que sai do n i) si + (fluxo total que chega ao n i)


ou...


( i , j ) A
xij si +
( k ,i ) A
xki

ou...

( i , j ) A
xij
( k ,i ) A
xki si (1)

Para os ns de demanda, temos que o fluxo total que chega ao n dever ser exatamente igual sua
demanda di. Alm disso, podemos enxergar o fluxo que sai do n de demanda como sendo um au-
mento de sua demanda. Em outras palavras, devemos fazer com que o fluxo resultante ou que efeti-
vamente permanece no n de demanda seja igual a di. Portanto, para cada n de demanda dever e-
xistir uma restrio com o seguinte formato:

(fluxo total que chega ao n i) = di + (fluxo total que sai do n i)


ou...


( k ,i )A
xki = d i +
( i , j )A
xij

ou...

( k ,i )A
xki
( i , j ) A
xij = di

Podemos ainda fazer com que o lado esquerdo da equao acima fique igual Eq.1, bastando mul-
tiplic-la por (-1):


( i , j ) A
xij
( k ,i ) A
xki = di (2)

Para os ns de transbordo, temos que o fluxo total que sai do n dever ser exatamente igual ao
fluxo que chega ao n, j que no h produo nem consumo no n. Portanto, para cada n de
transbordo dever existir uma restrio com o seguinte formato:

(fluxo total que sai do n i) = (fluxo total que chega ao n i)


ou...

76

( i , j ) A
xij =
( k ,i ) A
xki

ou...

( i , j ) A
xij
( k ,i )A
xki = 0 (3)

Com isso, o modelo completo pode ser escrito da seguinte forma:

Minimizar Custo Total =


( i , j )A
cij xij

s.a.

( i , j ) A
xij
( k ,i ) A
xki si i S


( i , j ) A
xij
( k ,i ) A
xki = di i D


( i , j ) A
xij
( k ,i )A
xki = 0 i T

lij xij uij (i, j ) A

onde:

A = conjunto dos arcos do grafo G = (V, A);


S = conjunto dos ns de oferta;
D = conjunto dos ns de demanda;
T = conjunto dos ns de transbordo;
xij = fluxo no arco (i, j);
cij = custo por unidade do fluxo no arco (i, j);
si = capacidade mxima de oferta dos ns i S;
di = demanda dos ns i D;
lij = limite mnimo para o fluxo no arco (i, j);
uij = limite mximo para o fluxo no arco (i, j).

A ltima restrio, que limita o fluxo nos arcos, poder existir ou no. Quando existir, dizemos que
o problema capacitado. Caso contrrio, o problema no-capacitado, e essa restrio poder ser
substituda por:

xij 0 (i, j ) A

Veja que, para que o modelo seja vivel, devemos ter, obrigatoriamente:

s d i j i S , j D

77
Sistemas Equilibrados
Em sistemas ditos equilibrados, temos que:

s = d
i j i S , j D

Nesses casos, podemos escrever o modelo da seguinte forma:

Minimizar
( i , j ) A
cij xij

s.a.
si i S

xij xki = di i D
( i , j ) A ( k ,i ) A 0 i T

Uma outra forma de escrever as restries de conservao de fluxo a seguinte:

Fluxo que Fluxo produzido Fluxo que Fluxo consumido


+ = +
chega ao n i no n i sai do n i pelo n i

Podemos considerar o fluxo produzido em um n como sendo a sua capacidade mxima de ofer-
ta, caso o n seja de oferta. Caso contrrio, o fluxo produzido no n igual a zero. Da mesma for-
ma, podemos considerar o fluxo consumido por um n como sendo a sua demanda, caso o n seja
de demanda. Caso contrrio, o fluxo consumido pelo n igual a zero. Alguns ns podem inclusive
ter, ao mesmo tempo, uma capacidade de oferta e uma demanda interna, o que facilmente resolvi-
do na expresso acima.

Veja que, seja ou no o sistema equilibrado, teremos sempre uma varivel xij para cada arco do
grafo, e tambm uma restrio para cada n do grafo.

78
O Problema de Fluxo de Custo Mnimo (PFCM)
Este problema possui papel principal entre os modelos de otimizao em redes, uma vez que ele en-
globa uma enorme quantidade de aplicaes e pode ser resolvido de maneira extremamente eficien-
te. O Problema de Transporte, de Designao, de Caminho Mais Curto e de Fluxo Mximo, que ve-
remos mais adiante, so casos especiais do PFCM.

Todos esses problemas citados acima so Problemas de Programao Linear, logo o Simplex pode
ser utilizado para sua resoluo. No entanto, uma verso especfica do Simplex, denominada Mto-
do Simplex de Redes, pode ser utilizada de maneira ainda mais eficiente do que o prprio Simplex.

Algumas Consideraes
1. A rede representada por um Dgrafo (orientada) e conectada.
2. No mnimo um dos ns um n de oferta (origem).
3. No mnimo um dos ns um n de demanda (destino).
4. Todos os ns restantes so ns de transbordo (entreposto, intermedirio, transshipment).
5. A rede possui arcos, tanto quanto forem necessrios, com capacidade suficiente para habilitar
todos os fluxos gerados nos ns de fornecimento para alcanar os ns de demanda.
6. O custo do fluxo atravs de cada arco proporcional quantidade daquele fluxo, onde o custo
por unidade de fluxo conhecido (cij).
7. O objetivo minimizar o custo total de enviar o fornecimento disponvel atravs da rede para
satisfazer a demanda dada (um objetivo alternativo maximizar o lucro total para fazer isto).

Exemplos de Aplicaes
A mais importante aplicao est em planejar a operao de uma rede de distribuio de uma com-
panhia. Este tipo de aplicao envolve determinar um plano para transportar bens a partir das fontes
(fbricas, etc.) para locais de armazenagem intermedirias (quando necessrio) e ento para os cli-
entes (demanda).

Ns de Ns de Ns de
Tipo de Aplicao
Fornecimento Transbordo Demanda
Operao de uma rede Locais de armazena-
Fontes de bens Clientes
de distribuio gem intermedirias
Gerenciamento de detri- Instalaes de pro- Locais de depsitos de
Fontes de resduos
tos slidos cessamento resduos slidos
Operaes de uma rede Estoques intermedi- Instalaes de proces-
Vendedores
de fornecimento rios samento
Necessidades de dinhei-
Gerenciamento de fluxo Fontes de dinheiro em Opes de investi-
ro em um tempo espec-
de dinheiro um tempo especfico mento
fico
Coordenao de mistura Produo de um pro- Mercado para um pro-
Plantas
de produtos em plantas duto especfico duto especfico

Exemplo 1:

Considere a rede representada pelo grafo a seguir, onde temos:


Dois ns de oferta (A e B), com capacidade de 60 e 50 unidades, respectivamente;
Dois ns de demanda (D e E), com capacidade de 30 e 60 unidades, respectivamente;
Um n de transbordo (C).
79
Temos tambm os custos de transporte cij e as capacidades mximas de fluxo dos arcos AB e CE.
sA = 60 dD = 30
cAD = 9
A D

cAC = 4
cED = 2
cAB = 2
C cDE = 3
uAB = 10
cCE = 1

cBC = 3 uCE = 80

B E

sB = 50 dE = 60

Podemos tambm representar a mesma rede da seguinte forma:

bA = 60 bD = 30
(9, 0, )
A D

(4, 0, )
(2, 0, )
(2, 0, 10)
C (3, 0, )
(1, 0, 80)

(3, 0, )
B E

bB = 50 bE = 60

onde os bi representam as ofertas nos ns, sendo que ofertas negativas so, na realidade, demandas.

Podemos ento escrever o modelo usando a formulao geral vista anteriormente:

Minimizar Z = 2xAB + 4xAC + 9xAD + 3xBC + xCE + 3xDE + 2xED


s.a.
N A) xAB + xAC + xAD 60
N B) xBC xAB 50
N C) xCE xAC xBC = 0
N D) xDE xAD xED = 30
N E) xED xCE xDE = 60
xAB 10
xCE 80
xij 0

A soluo dada pelo Lindo segue abaixo:

80
OBJECTIVE FUNCTION VALUE

1) 480.0000

VARIABLE VALUE REDUCED COST


XAB 0.000000 1.000000
XAC 30.000000 0.000000
XAD 10.000000 0.000000
XBC 50.000000 0.000000
XCE 80.000000 0.000000
XDE 0.000000 5.000000
XED 20.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


N A) 20.000000 0.000000
N B) 0.000000 1.000000
N C) 0.000000 4.000000
N D) 0.000000 9.000000
N E) 0.000000 7.000000
7) 10.000000 0.000000
8) 0.000000 2.000000

Esta soluo pode ser vista com mais clareza se usarmos o prprio grafo para ilustr-lo, como visto
na figura abaixo. As linhas tracejadas representam arcos (variveis) no usados na soluo.

bA = 60 bD = 30
10
A D

30

20
C

80

50
B E

bB = 50 bE = 60

Exemplo 2:

Considere agora a rede representada pelo grafo a seguir, diferindo do anterior somente por ser um
sistema equilibrado e totalmente no-capacitado. Nesse caso, os arcos so rotulados somente com
seus custos cij:

81
bA = 50 bD = 30
9
A D

4
2
2
C 3

1
3
B E

bB = 40 bE = 60

Podemos ento escrever o modelo usando a formulao geral vista anteriormente:

Minimizar Z = 2xAB + 4xAC + 9xAD + 3xBC + xCE + 3xDE + 2xED


s.a.
N A) xAB + xAC + xAD = 50
N B) xBC xAB = 40
N C) xCE xAC xBC = 0
N D) xDE xAD xED = 30
N E) xED xCE xDE = 60
xij 0

A soluo segue abaixo:

OBJECTIVE FUNCTION VALUE

1) 470.0000

VARIABLE VALUE REDUCED COST


XAB 0.000000 1.000000
XAC 50.000000 0.000000
XAD 0.000000 2.000000
XBC 40.000000 0.000000
XCE 90.000000 0.000000
XDE 0.000000 5.000000
XED 30.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


N A) 0.000000 0.000000
N B) 0.000000 1.000000
N C) 0.000000 4.000000
N D) 0.000000 7.000000
N E) 0.000000 5.000000

82
bA = 50 bD = 30
A D

50

30
C

90

40
B E

bB = 40 bE = 60

Transformando Sistemas No Equilibrados em Sistemas Equilibrados

Caso o sistema no seja equilibrado, fcil transform-lo em um sistema equilibrado. Basta acres-
centarmos um n de demanda artificial, cuja demanda ser igual diferena entre a oferta total e a
demanda total do sistema. Depois, ligamos todos os ns de oferta a esse n artificial por meio de ar-
cos com custo igual a zero. Fazendo isso, a funo-objetivo original no ser afetada, e a oferta ex-
cedente ser naturalmente escoada dos ns de oferta para esse n artificial. Podemos ver isso u-
sando o Exemplo 1 visto anteriormente:

bA = 60 bD = 30
cAD = 9
A D
cAr = 0
cAC = 4
br = 20
cED = 2
r cAB = 2
C cDE = 3
uAB = 10
cCE = 1
cBr = 0
cBC = 3 uCE = 80

B E

bB = 50 bE = 60

Essa nova rede ter, em seu modelo de PL, uma restrio adicional, correspondendo ao n artificial
r, e duas novas variveis, devido ligao desse n com os dois ns de oferta:

Minimizar Z = 2xAB + 4xAC + 9xAD + 3xBC + xCE + 3xDE + 2xED


s.a.
N A) xAB + xAC + xAD + xAr = 60
N B) xBC + xBr xAB = 50
N C) xCE xAC xBC = 0
N D) xDE xAD xED = 30
N E) xED xCE xDE = 60
N r) xAr xBr = 20
xAB 10; xCE 80; xij 0
83
Resolvendo o modelo atravs do Lindo, vemos que a folga que existia para o N A agora trans-
formada no fluxo xAr:

OBJECTIVE FUNCTION VALUE

1) 480.0000

VARIABLE VALUE REDUCED COST


XAB 0.000000 1.000000
XAC 30.000000 0.000000
XAD 10.000000 0.000000
XBC 50.000000 0.000000
XCE 80.000000 0.000000
XDE 0.000000 5.000000
XED 20.000000 0.000000
XAR 20.000000 0.000000
XBR 0.000000 1.000000

ROW SLACK OR SURPLUS DUAL PRICES


N A) 0.000000 0.000000
N B) 0.000000 1.000000
N C) 0.000000 4.000000
N D) 0.000000 9.000000
N E) 0.000000 7.000000
N R) 0.000000 0.000000
8) 10.000000 0.000000
9) 0.000000 2.000000

PFCM Formulao Restrita

Uma outra maneira de modelar esse tipo de problema fechando ou curto-circuitando a rede,
como se fosse um circuito eltrico contnuo. Para fazermos isso, basta acrescentar dois novos ns:
um n fonte f que servir como super-oferta, ou seja, abastecer todos os ns de oferta i S (com
fluxos xfi fixos ou constantes), e um n sumidouro s que servir como super-demanda, ou seja,
escoar a demanda de todos os ns de demanda j D (tambm com fluxos xjs fixos ou constantes).
J que nessa rede no haver aumento nem diminuio do fluxo total (assim como num circuito el-
trico fechado a corrente total constante), devemos ter, a princpio, um sistema equilibrado. Caso o
sistema no seja equilibrado, devemos adicionar ainda um terceiro n de demanda artificial, como
descrito anteriormente.

Com esses procedimentos, teremos uma rede dita conservativa, e podemos utilizar um conceito
de conservao de fluxo (ou corrente) perfeita em cada n (conhecida como a primeira Lei de
Kirschoff), e a restrio de fluxo de cada n seguir o seguinte formato:

Soma dos fluxos Soma dos fluxos


=
que chegam ao n i que saem do n i

Para exemplificar o uso da formulao restrita, usaremos a rede do Exemplo 2, que j equilibrada,
e acrescentaremos somente os ns f e s, juntamente com os arcos correspondentes:

84
bA = 50 bD = 30
9
A D
0 0
4
bf = 90 2
bs = 90
2
f C 3 s

1
0
3
0
B E

bB = 40 bE = 60
0
Podemos ento escrever o modelo da seguinte maneira:

Minimizar Z = 2xAB + 4xAC + 9xAD + 3xBC + xCE + 3xDE + 2xED


s.a.
N A) xAB + xAC + xAD xf A = 0
N B) xBC xAB xf B = 0
N C) xCE xAC xBC = 0
N D) xDE + xDs xAD xED = 0
N E) xED + xEs xCE xDE = 0
N f) xf A + xf B xsf = 0
N s) xsf xDs xDs = 0
xf A = 50
xf B = 40
xDs = 30
xEs = 60
xij 0

Propriedades da Matriz A de Coeficientes Tecnolgicos

Considere novamente a rede vista anteriormente no Exemplo 2:

bA = 50 bD = 30
9
A D

4
2
2
C 3

1
3

B E

bB = 40 bE = 60

85
Iremos agora escrever o modelo de PL, colocando cada varivel em uma coluna distinta, j em um
formato que se assemelha ao quadro simplex:

Minimizar Z = 2xAB + 4xAC + 9xAD + 3xBC + xCE + 3xDE + 2xED


s.a.
N A) xAB + xAC + xAD = 50
N B) xAB + xBC = 40
N C) xAC xBC + xCE = 0
N D) xAD xDE xED = 30
N E) xCE xDE + xED = 60

Escrevendo a matriz A separadamente, em forma de tabela, somente com os coeficientes das vari-
veis, temos:

Arcos
Ns
xAB xAC xAD xBC xCE xDE xED
A +1 +1 +1
B 1 +1
C 1 1 +1
D 1 +1 1
E 1 1 +1

Repare que, como temos exatamente uma varivel xij para cada arco do grafo, e como cada arco (i,
j) sai do n i e entra no n j, temos ento que cada vetor-coluna da matriz A associado vari-
vel xij ter a forma:

ei ej

onde ei e ej so vetores unitrios.

A principal propriedade da matriz A a total unimodularidade. Dizemos que uma matriz total-
mente unimodular quando qualquer sub-matriz quadrada de A possui determinante igual a 0, 1 ou
1. Por causa dessa propriedade, as solues timas obtidas pelo algoritmo Simplex levando-se em
conta o sistema linear Ax = b, sero sempre inteiras, desde que os valores de bi sejam tambm intei-
ros.

Como j vimos tambm, a soluo juntamente com a respectiva Base segue abaixo:

bA = 50 bD = 30
A D Arcos
Ns
50 xAC xBC xCE xED
A +1
30 B +1
C 1 1 +1
C D 1
E 1 +1
90

40
B E

bB = 40 bE = 60
86
O Problema de Transporte (PT)
O problema de transporte um caso especial do PFCM, onde a rede pode ser representada por um
grafo bipartido. Isso significa que no existem ns de transbordo (intermedirios ou de transi-
o) para o fluxo. Alm disso, no existem arcos ligando entre si os ns de oferta ou os ns de de-
manda. O objetivo nesse caso descobrir somente as quantidades do produto que cada n de oferta
enviar para cada n de demanda. A maneira como esses fluxos sero enviados (os trajetos) j co-
nhecida de antemo.

cij d1
o1

d2

o2

d3

o3
d4

o4 d5

ns de oferta ns de demanda
(m) (n)
Na viso clssica desse problema, os arcos no possuem limite de capacidade para o fluxo (mas
possvel que esses limites existam em alguns casos prticos). O PT consiste ento em determinar o
fluxo entre cada par de ns (i, j), onde i = 1, 2, ..., m, e j = 1, 2, ..., n, de tal forma a obter o menor
custo (ou o maior lucro) total de transporte. Para que o fluxo global seja vivel, devemos observar
tambm as mesmas restries j vistas para o PFCM, ou seja:

As capacidades dos ns de oferta no devem ser ultrapassadas;


As demandas devem ser atendidas.

Formulao Geral (Clssica) para o PT


Para o PT, podemos usar o mesmo modelo geral usado para o PFCM. No entanto, podemos fazer
algumas simplificaes, j que, para esse problema,

No existem ns de transbordo;
S existem arcos saindo dos ns de oferta;
S existem arcos chegando aos ns de demanda.

Com isso, o modelo pode ser escrito assim:


87
Minimizar Custo Total =
( i , j )A
cij xij

s.a.

( i , j ) A
xij si i S


( i , j ) A
xij = d j j D

lij xij uij (i, j ) A

onde:

A = conjunto dos arcos do grafo G = (V, A);


S = conjunto dos ns de oferta;
D = conjunto dos ns de demanda;
xij = fluxo no arco (i, j);
cij = custo por unidade do fluxo no arco (i, j);
si = capacidade mxima de oferta dos ns i S;
dj = demanda dos ns j D;
lij = limite mnimo para o fluxo no arco (i, j);
uij = limite mximo para o fluxo no arco (i, j).

Para os problemas no-capacitados, a ltima restrio poder ser substituda por:

xij 0 (i, j ) A

Apesar do modelo acima ser vlido e seguir o padro dos problemas de fluxo em rede, uma outra
forma, talvez mais natural ou intuitiva de escrev-lo mostrado abaixo (para problemas no-
capacitados):

Min.
( i , j ) A
cij xij

s.a.

( i , j ) A
xij si i = 1, 2,3,..., m


( i , j ) A
xij = d j j = 1, 2, 3,..., n

xij 0 (i, j ) A

Para sistemas equilibrados, podemos ainda escrever:

Min.
( i , j ) A
cij xij

s.a.

( i , j ) A
xij = si i = 1, 2,3,..., m


( i , j ) A
xij = d j j = 1, 2, 3,..., n

xij 0 (i, j ) A

88
Exemplo 1:
Considere o Problema de Transporte representado pelo grafo abaixo. Note que os valores ao lado
dos ns so as ofertas (si) e as demandas (dj), e os valores nos arcos so os custos cij.

4 1 20
50 1
3
4
5 2 15

50 2
7
6 3 18
2
50 3
4
4 25

Usando a forma clssica, o modelo de PL que resolve esse problema pode ser escrito assim:

Min. Z = 4x11 + 3x12 + 4x21 + 5x22 + 7x23 + 6x24 + 2x33 + 4x34


s.a.
s1) x11 + x12 50
s2) x21 + x22 + x23 + x24 50
s3) x33 + x34 50
d1) x11 + x21 = 20
d2) x12 + x22 = 15
d3) x23 + x33 = 18
d4) x24 + x34 = 25
xij 0

A soluo dada pelo Lindo segue abaixo:

OBJECTIVE FUNCTION VALUE

1) 261.0000

VARIABLE VALUE REDUCED COST


X11 20.000000 0.000000
X12 15.000000 0.000000
X21 0.000000 0.000000
X22 0.000000 2.000000
X23 0.000000 5.000000
X24 0.000000 2.000000
X33 18.000000 0.000000
X34 25.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


S1) 15.000000 0.000000
S2) 50.000000 0.000000
S3) 7.000000 0.000000
D1) 0.000000 -4.000000
D2) 0.000000 -3.000000
D3) 0.000000 -2.000000
D4) 0.000000 -4.000000

89
O grafo que representa essa soluo dado abaixo:

20 1 20
50 1
15

2 15

50 2

3 18
18
50 3
25
4 25

Exemplo 2:
Nesse caso, podemos lanar mo do mesmo artifcio apresentado no PFCM para equilibrar sistemas
cuja oferta maior que a demanda, simplesmente introduzindo um n artificial de demanda, como
mostra o grafo abaixo.

4 1 20
50 1
3
0 4
5 2 15

50 2
7
0 6 3 18
2
50 3
4
4 25
0

5 72

No exemplo acima, o n 5 representa um n de demanda artificial, cuja demanda (72) a diferena


entre a soma das ofertas e a soma das demandas dos ns reais.

Usando o modelo equilibrado, podemos formular o problema assim:

Min. Z = 4x11 + 3x12 + 4x21 + 5x22 + 7x23 + 6x24 + 2x33 + 4x34


s.a.
s1) x11 + x12 + x15 = 50
s2) x21 + x22 + x23 + x24 + x25 = 50
s3) x33 + x34 + x35 = 50

90
d1) x11 + x21 = 20
d2) x12 + x22 = 15
d3) x23 + x33 = 18
d4) x24 + x34 = 25
d5) x15 + x25 + x35 = 72
xij 0

A soluo dada pelo Lindo segue abaixo:

OBJECTIVE FUNCTION VALUE

1) 261.0000

VARIABLE VALUE REDUCED COST


X11 20.000000 0.000000
X12 15.000000 0.000000
X21 0.000000 0.000000
X22 0.000000 2.000000
X23 0.000000 5.000000
X24 0.000000 2.000000
X33 18.000000 0.000000
X34 25.000000 0.000000
X15 15.000000 0.000000
X25 50.000000 0.000000
X35 7.000000 0.000000

O grafo que representa essa soluo dado abaixo:

20 1 20
50 1
15
15
2 15

50 2
50
3 18
18
50 3
25
4 25
7

5 72

Vale lembrar que possvel tambm usar o modelo restrito para o PT, assim como foi feito para o
PFCM, e a propriedade de total unimodularidade tambm vlida, o que significa que, mesmo
que as variveis xij tenham restries de integralidade, podemos resolver o modelo usando qualquer
software que implementa o simplex (PROLIN, LINDO, LINGO, CPLEX etc.), ignorando essas res-
tries, e com isso aproveitando outros recursos importantes, como os valores dos custos reduzidos,
preos duais e a anlise de sensibilidade.

91
Exemplo 3:
Uma companhia enlata ervilhas nas suas unidades C1, C2 e C3, e transporta as latas por caminho
para as suas unidades de estocagem W1, W2, W3 e W4. A tabela abaixo mostra os custos de trans-
porte, a disponibilidade das unidades Ci e as necessidades dos estoques Wj. Deseja-se determinar a
distribuio das unidades Ci para os estoques Wj, de modo a minimizar o custo do transporte.

Custo do Transporte ($ / caminho)


W1 W2 W3 W4 Disponibilidade
C1 464 513 654 867 75
Origem C2 352 416 690 791 125
C3 995 682 388 685 100
Demanda 80 65 70 85

Nesse caso temos um grafo bipartido completo K3,4, pois cada unidade Ci pode enviar caminhes
para qualquer um dos estoques Wj. Com isso, teremos 3 4 = 12 variveis, e 3 + 4 = 7 restries. J
que o modelo tambm equilibrado, podemos escrev-lo assim:

Min. Z= 464x11 + 513x12 + 654x13 + 867x14 +


352x21 + 416x22 + 690x23 + 791x24 +
995x31 + 682x32 + 388x33 + 685x34
s.a.
C1) x11 + x12 + x13 + x14 = 75
C2) x21 + x22 + x23 + x24 = 125
C3) x31 + x32 + x33 + x34 = 100
W1) x11 + x21 + x31 = 80
W2) x12 + x22 + x32 = 65
W3) x13 + x23 + x33 = 70
W4) x14 + x24 + x34 = 85
xij 0

A soluo dada pelo Lindo segue abaixo:


OBJECTIVE FUNCTION VALUE

1) 152535.0

VARIABLE VALUE REDUCED COST


X11 0.000000 15.000000
X12 20.000000 0.000000
X13 0.000000 84.000000
X14 55.000000 0.000000
X21 80.000000 0.000000
X22 45.000000 0.000000
X23 0.000000 217.000000
X24 0.000000 21.000000
X31 0.000000 728.000000
X32 0.000000 351.000000
X33 70.000000 0.000000
X34 30.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


C1) 0.000000 0.000000
C2) 0.000000 97.000000
C3) 0.000000 182.000000
W1) 0.000000 -449.000000
W2) 0.000000 -513.000000
W3) 0.000000 -570.000000
W4) 0.000000 -867.000000

92
O grafo que representa essa soluo dado abaixo:

W1
C1 80
20

45 W2

C2
55
W3
70
C3
30
W4

Apesar de ser possvel o uso do Simplex Primal tradicional para a resoluo do PT, existem varia-
es do Simplex que normalmente so usados de maneira muito mais eficiente, o que possibilita re-
solver problemas bem maiores sem a necessidade da modelagem explcita. Uma das simplificaes
pode ser observada no incio do algoritmo. Ao invs de usar o mtodo das duas fases ou do grande
M para obter uma SBV inicial, podemos usar o mtodo do canto noroeste. Esta , na verdade, uma
heurstica gulosa, que busca uma soluo simples por meio da prpria tabela de ofertas demandas:

W1 W2 W3 W4 Disponibilidade
C1 75 75
C2 5 65 55 125 120 55
C3 15 85 100 85
Demanda 80 5 65 70 15 85

Essa soluo inicial, no tima, teria um custo de transporte de $165.595,00 (contra um timo de
$152.535,00). Com isso, os pivoteamentos comeariam dessa soluo inicial.

5 W1
C1 75

65 W2

C2
55
W3
15
C3
85
W4

93
O Problema de Designao (PD)
Este problema, tambm chamado de Problema de Atribuio, de Alocao ou de Casamento (1-
Matching), um caso especial do Problema de Transporte. O enunciado clssico desse problema
segue abaixo:

Dado um conjunto de n mquinas, numeradas como 1, 2, ..., n, e um conjunto de n tarefas, tam-


bm numeradas como 1, 2, ..., n, e o custo da designao de cada tarefa para cada mquina (cij),
deseja-se determinar uma designao que minimize o custo total de alocao das tarefas, obser-
vadas ainda as seguintes restries:
Cada mquina s poder realizar uma nica tarefa;
Cada tarefa s poder ser realizada por uma nica mquina.

Mquinas Tarefas
(ofertas) (demanda)

1 1

2 2

3 3

4 4

Esse problema tem uma ampla gama de aplicaes, como designao de tarefas, alocao de vagas,
alocao de professores em turmas e salas de aula, agncias de casamento, distribuio de mdicos
entre hospitais, alocao dinmica de txis entre clientes, entre outros. Este problema tambm pode
ser visto com caso especial do Problema de Emparelhamento (PE), os as mesmas alocaes so
feitas entre pares de ns, mas no necessariamente em um grafo bipartido.

Podemos enxergar esse problema como se fosse um PT equilibrado, onde todas as ofertas e de-
mandas so unitrias, ou seja, si = di = 1, i = 1, 2, ..., n. Com isso, podemos escrever o modelo
de PL da seguinte forma:

n n
Min. c x
i =1 j =1
ij ij

s.a.
n

x
j =1
ij =1 i = 1, 2, 3,..., n
n

x
i =1
ij =1 j = 1, 2, 3,..., n

xij {0,1} i, j

Veja que a nossa varivel de deciso binria, ou seja, teremos:

94
1 se a mquina i estiver designada tarefa j;
xij =
0 caso contrrio.

Isso significa que a varivel de deciso xij ir simplesmente determinar a existncia ou no de um


arco no grafo que representa a soluo. Novamente aqui temos tambm a propriedade de total uni-
modularidade da matriz A, e portanto essa restrio de integralidade pode ser relaxada se quisermos
resolver o problema usando o modelo matemtico.

Algoritmo Hngaro ou Algoritmo de Rotulao


Um algoritmo comumente encontrado na literatura para a resoluo do PD na verdade uma varia-
o bastante simples do simplex primal-dual. Usaremos um exemplo para mostrar o funcionamento
desse algoritmo.

Exemplo 1:
Encontre uma soluo tima para o PD contendo 4 mquinas e 4 tarefas, onde a matriz de custos
mostrada abaixo.

Tarefas
cij 1 2 3 4
1 1 3 4 5
Mquinas

2 4 2 4 7
3 6 7 8 3
4 5 4 2 1

Aplicao do Algoritmo:

1. Determinar o menor valor para cada linha da matriz:

Valor Mnimo
na Linha (ui)
1 3 4 5 1
4 2 4 7 2
6 7 8 3 3
5 4 2 1 1

2. Subtrair do valor em cada linha, o mnimo ui daquela linha:

0 2 3 4
2 0 2 5
3 4 5 0
4 3 1 0

3. Determinar o menor valor para cada coluna dessa matriz resultante:

95
0 2 3 4
2 0 2 5
3 4 5 0
4 3 1 0
Valor Mnimo
0 0 1 0
na Coluna (vj)

4. Subtrair do valor em cada coluna, o mnimo vj daquela coluna:

0 2 2 4
2 0 1 5
3 4 4 0
4 3 0 0

Essa matriz obtida chamada de matriz reduzida. As designaes que minimizam o custo total so
aquelas cujo custo reduzido cij igual a zero. Como nesse caso n = 4, devemos escolher um fluxo
contendo 4 designaes que minimizam o custo. Temos ento as seguintes opes:

0 2 2 4 0 2 2 4 0 2 2 4
2 0 1 5 2 0 1 5 2 0 1 5
3 4 4 0 3 4 4 0 3 4 4 0
4 3 0 0 4 3 0 0 4 3 0 0
Configurao 1 (invivel) Configurao 2 (tima) Configurao 3 (invivel)

O nmero mximo de clulas com custo reduzido zero tal que no mais de duas ocupem a mesma
linha igual ao nmero mnimo de linhas horizontais e/ou verticais necessrias para cobrir todas as
clulas nulas da matriz. Essas clulas so chamadas independentes. Temos ento o seguinte teore-
ma:

O nmero mximo de clulas independentes em um quadro reduzido do problema de designao


igual ao nmero mnimo de linhas necessrias para cobrir todos os zeros da matriz.

No exemplo acima, veja que necessrio no mnimo 4 linhas para cobrir todas as clulas nulas da
matriz. Exemplos dessa cobertura so dados abaixo:

0 2 2 4 0 2 2 4 0 2 2 4
2 0 1 5 2 0 1 5 2 0 1 5
3 4 4 0 3 4 4 0 3 4 4 0
4 3 0 0 4 3 0 0 4 3 0 0

Neste exemplo temos ento uma nica soluo tima, mostrada acima na Configurao 2, que
fornece um custo total igual a 12. O grafo que representa essa soluo mostrado seguir (nos arcos
foram colocados os custos das designaes, obtidos da matriz original do problema):

96
Mquinas Tarefas
1
1 1

2
2 2

3 8 3

1
4 4

Exemplo 2:
Considere agora o seguinte PD, tambm contendo 4 mquinas e 4 tarefas:

Tarefas
cij 1 2 3 4
1 94 1 54 68
Mquinas

2 74 10 88 82
3 62 88 8 76
4 11 74 81 21

Aplicao do Algoritmo:

Subtraindo o menor valor de cada linha, temos:

93 0 53 67
64 0 78 72
54 80 0 68
0 63 70 10

Agora subtramos o menor valor de cada coluna, obtendo a seguinte matriz reduzida:

93 0 53 57
64 0 78 62
54 80 0 58
0 63 70 0

Observando os valores nulos da matriz, vemos que h duas violaes de ortogonalidade da soluo:

97
93 0 53 57
64 0 78 62
54 80 0 58
0 63 70 0

1. As mquinas 1 e 2 s podem realizar a tarefa 2 (sem desempate);


2. As tarefas 1 e 4 s podem ser realizadas pela mquina 4 (sem desempate).

Com isso no possvel obter uma soluo vivel. Essa mesma concluso pode ser obtida tambm
com a cobertura (ou rotulao) dos zeros da matriz. Vemos que possvel cobrir todos os zeros
com apenas trs linhas. Uma das formas de se fazer isso assim:

93 0 53 57
64 0 78 62
54 80 0 58
0 63 70 0

No importa como os zeros so cobertos ou rotulados, contanto que usemos somente linhas hori-
zontais e/ou verticais, e o nmero dessas linhas seja mnimo. Com a rotulao feita acima e usando
o teorema visto anteriormente, chegamos concluso que nessa matriz reduzida encontramos no
mximo trs clulas (ou variveis) independentes, o que no suficiente, pois precisamos de quatro
variveis para solucionar o problema.

Passamos ento etapa de rotulao propriamente dito. Para cada fluxo invivel (como o visto aci-
ma), teremos uma iterao do algoritmo. Essa iterao feita da seguinte maneira:

5. Fazer a cobertura dos zeros usando o menor nmero de linhas possvel (j feito acima):

93 0 53 57
64 0 78 62
54 80 0 58
0 63 70 0

Como o menor nmero de linhas menor que n, no temos portanto uma soluo tima vivel, e
prosseguimos ao passo seguinte:

6. Determinar o menor valor descoberto. No exemplo acima, esse valor igual a 53.

7. Subtrair esse valor de todos os valores descobertos, e som-lo a todas as clulas que tm interse-
o entre uma linha horizontal e uma vertical:

40 0 0 4
11 0 25 9
54 133 0 58
0 116 70 0

98
Retornamos agora ao passo 5, onde encontramos o segundo fluxo invivel:

40 0 0 4
11 0 25 9
54 133 0 58
0 116 70 0

Prosseguindo novamente com os passos 6 e 7, obtemos a seguinte matriz reduzida:

36 0 0 0
7 0 25 5
50 133 0 54
0 120 74 0

Dessa matriz podemos extrair o fluxo vivel indicado pelas clulas sombreadas acima. Seguindo es-
se algoritmo, todo fluxo vivel produzido ser timo. Portanto, a soluo acima tima, com so-
ma total mnima igual a 97. O grafo que representa essa soluo dado abaixo:

1 1
68

10
2 2

3 8 3

11
4 4

Obs.: Nos exemplos acima, obtivemos uma nica soluo tima, mas comum obtermos matrizes
reduzidas contendo vrios fluxos viveis. Nesses casos, todos os fluxos viveis obtidos sero ti-
mos, obviamente com valores idnticos para as funes-objetivo.

Podemos resumir o algoritmo completo da seguinte maneira:

Algoritmo Hngaro ou de Rotulao


1. Reduzir a matriz de custos, subtraindo das linhas o menor valor de cada linha, e depois sub-
traindo das colunas o menor valor de cada coluna.
2. Fazer a cobertura dos zeros usando o menor nmero de linhas possvel. Se o menor nmero
de linhas for igual a n, ento pare, pois a matriz contm pelo menos uma soluo tima, se-
no prossiga ao passo 3.
3. Determinar o menor valor descoberto. Subtrair esse valor de todos os valores descobertos, e
som-lo a todas as clulas que tm interseo entre uma linha horizontal e uma vertical. Re-
tornar ao passo 2.
99
O Problema do Caminho Mais Curto (PCMC)
Este problema, tambm chamado de Problema do Caminho Mnimo, um caso especial do Pro-
blema de Fluxo de Custo Mnimo. Como o prprio nome indica, o problema consiste em identificar
o caminho mais curto entre dois ns de uma rede.

2 20 4

10 30

s t
15
1 40 6
35

20
25

3 35 5

Aplicaes:
Encontrar um caminho de distncia mnima.
Encontrar um caminho de tempo de viagem mnimo.
Encontrar um caminho de custo mnimo.
Encontrar um caminho de confiabilidade mxima.

Podemos enxergar esse problema como se fosse um PFCM equilibrado, com as seguintes particula-
ridades:
S existe um n de oferta, correspondente ao local ou ponto de origem;
S existe um n de demanda, correspondente ao local ou ponto de destino;
A oferta e a demanda so unitrias, ou seja, ss = dt = 1, onde s e t so os ns de origem e des-
tino, respectivamente.

Com isso, podemos escrever o modelo de PL da seguinte forma:

Minimizar
( i , j ) A
cij xij

s.a.
1 se i = s

xij xki = 1 se i = t
( i , j ) A ( k ,i ) A 0 caso contrrio

xij {0,1} i, j

Veja que, assim como no PD, a nossa varivel de deciso binria, ou seja, teremos:

1 se o caminho mais curto contiver o arco (i, j );


xij =
0 caso contrrio.
100
Isso significa que a varivel de deciso xij ir simplesmente determinar quais os arcos por onde se
deve passar para que a distncia, tempo ou custo total do percurso seja mnimo. Novamente aqui
temos tambm a propriedade de total unimodularidade da matriz A e, portanto, essa restrio de in-
tegralidade pode ser relaxada se quisermos resolver o problema usando o modelo matemtico.

Algoritmos de Soluo Exata


Apesar de ser possvel utilizar a modelagem matemtica, variaes do simplex e algoritmos de flu-
xo em redes para resolver esse problema, os algoritmos mais eficientes hoje usam abordagens sim-
ples em grafos. Os mais conhecidos so listados no quadro abaixo:

Autores Ano Descrio Complexidade


Dijkstra 1959 Seleciona o n de menor potencial O(n)
Ford-Moore-Bellman 1956 Tcnica de rotulao FIFO O(mn)
Ford-Fulkerson 1962 Tcnica de rotulao FIFO O(mn)
Floyd-Warshall 1962 Tcnica da operao trplice O(n)

O problema da determinao do menor caminho entre os vrtices de um grafo pode ser definido
como um dos seguintes casos:

a) Determinar o menor caminho entre dois vrtices dados;


b) Determinar o menor caminho entre um vrtice dado e os demais vrtices do grafo;
c) Determinar o menor caminho entre todos os pares de vrtices do grafo.

Entre os algoritmos citados acima, destacam-se o algoritmo de Dijkstra e o algoritmo de Floyd. O


algoritmo de Dijkstra foi projetado para determinar o menor caminho entre um vrtice dado e os
demais vrtices do grafo, e o algoritmo de Floyd se aplica na determinao do menor caminho entre
todos os pares de vrtices do grafo. O algoritmo de Dijkstra pode ainda ser aplicado na determina-
o do menor caminho entre dois vrtices dados, entre todos os vrtices e um vrtice-destino e,
tambm, entre todos os pares de vrtices do grafo. Para isso necessrio apenas um pequeno ajuste.
um algoritmo muito eficiente e de fcil implementao, sendo um dos mais empregado na deter-
minao de caminhos mais curtos em grafos.

Algoritmo de Dijkstra
Esse algoritmo bastante simples de implementar e entender e, apesar de no ser o mais eficiente
em termos de tempo de execuo, nem por isso deixa de ser muito rpido. Veremos aqui a sua for-
ma clssica, que calcula o caminho mais curto entre um n origem e todos os demais ns da rede.
No entanto, uma desvantagem desse algoritmo que ele no funciona na presena de arestas ou ar-
cos de custo negativo, o que no problema em aplicaes de logstica, por exemplo, mas pode no
ser adequado para outras aplicaes.

Algoritmo: Seja G(V,A) um grafo orientado e s um vrtice de G:

1. Atribua valor zero estimativa do custo mnimo do vrtice s (a raiz da busca) e infinito s de-
mais estimativas;
2. Atribua um valor qualquer aos precedentes (o precedente de um vrtice t o vrtice que precede
t no caminho de custo mnimo de s para t);
3. Enquanto houver vrtice aberto:
Seja k um vrtice ainda aberto cuja estimativa seja a menor dentre todos os vrtices aber-
tos;
101
Feche o vrtice k
Para todo vrtice j ainda aberto que seja sucessor de k faa:
o Some a estimativa do vrtice k com o custo do arco que une k a j;
o Caso esta soma seja melhor que a estimativa anterior para o vrtice j, substitua-
a e anote k como precedente de j.

A seqncia de diagramas a seguir ilustra o funcionamento do Algoritmo de Dijkstra:

Inicialmente todos os nodos tem um custo infinito,


exceto s (a raiz da busca) que tem valor 0:

vrtices s u v x y
estimativas 0
precedentes - - - - -

selecione s (vrtice aberto de estimativa mnima)


feche s
recalcule as estimativas de u e x

vrtices s u v x y
estimativas 0 10 5
precedentes s s - s -

selecione x (vrtice aberto de estimativa mnima)


feche x
recalcule as estimativas de u,v e y

vrtices s u v x y
estimativas 0 8 14 5 7
precedentes s x x s x

102
selecione y (vrtice aberto de estimativa mnima)
feche y
recalcule a estimativa de v

vrtices s u v x y
estimativas 0 8 13 5 7
precedentes s x y s x

selecione u (vrtice aberto de estimativa mnima)


feche u
recalcule a estimativa de v

vrtices s u v x y
estimativas 0 8 9 5 7
precedentes s x u s x

selecione v (vrtice aberto de estimativa mnima)


feche v

vrtices s u v x y
estimativas 0 8 9 5 7
precedentes s x u s x

Quando todos os vrtices tiverem sido fechados, os valores obtidos sero os custos mnimos dos
caminhos que partem do vrtice tomado como raiz da busca at os demais vrtices do grafo. O ca-
minho propriamente dito obtido a partir dos vrtices chamados acima de precedentes.

Para exemplificar, considere o caminho de custo mnimo que vai de s at v, cujo custo mnimo 9.
O vrtice precedente de v na ltima das tabelas acima u. Sendo assim, o caminho :

s ... u v

Por sua vez, o precedente de u x. Portanto, o caminho :

s ... x u v

Por ltimo, o precedente de x o prprio vrtice s. Logo, o caminho de custo mnimo :

sxuv

103
O Problema de Fluxo Mximo (PFM)
Considere uma rede direcionada (dgrafo) conexa, com dois ns especiais denominados Origem (n
fonte do grafo) e Destino (n sumidouro do grafo) e ainda, associada a cada arco, capacidades m-
nima e mxima para o seu fluxo. O objetivo maximizar o fluxo entre a Origem e o Destino.

Exemplos de Aplicaes:
Maximizar o fluxo de uma rede de distribuio de produtos de uma companhia a partir de suas
fbricas para os seus clientes.
Maximizar o fluxo de leo (ou gua, gs etc.) atravs de um sistema de dutos.
Maximizar o fluxo de veculos atravs de uma rede de transporte.

Exemplo 1:
Considere a rede abaixo, onde os ns O e T representam tanques de armazenamento de gua de ori-
gem e destino, respectivamente, e os valores dos arcos representam o fluxo mximo de cada arco
(em m/s). Determine o fluxo total mximo nessa rede.

5 3
1

7 4
O B D 9
T
4 2 5 1 6
4
C E

Uma soluo vivel enviar um total de 7 m/s, sendo:


5 m/s usando a rota O B E T,
1 m/s usando a rota O B C E T, e
1 m/s usando a rota O B C E D T

Essa soluo, apesar de vivel, no a tima. Nesse caso, duas solues timas so dadas abaixo:

4 3
1

7 4
O B D 8
T
3 4 1 6
3
C E

104
A

3 3

7 4
O B D 8
T
4 3 1 6
4
C E

O modelo de PL para problemas de fluxo mximo difere um pouco do modelo geral visto para os
outros problemas de fluxo que estudamos anteriormente. Para este tipo de problema, podemos es-
crever o modelo assim:

Maximizar
( O , j ) A
xOj (ou Maximizar
( i ,T ) A
xiT )

s.a.

( O , j ) A
xOj
( i ,T ) A
xiT = 0


( i , j ) A
xij
( k ,i )A
xki = 0 i O, T

lij xij uij (i, j ) A

onde:

A = conjunto dos arcos do grafo G = (V, A);


O = n de Origem;
T = n de Destino;
xij = fluxo no arco (i, j);
lij = limite mnimo para o fluxo no arco (i, j);
uij = limite mximo para o fluxo no arco (i, j).

A primeira restrio faz com que o fluxo total que sai do n de Origem seja igual ao fluxo total que
chega ao n de Destino. O segundo conjunto de restries deve existir para cada um dos demais ns
(de transbordo), mantendo a conservao do fluxo.

Observe que esse problema inerentemente capacitado, onde pelo menos as capacidades mximas
dos arcos devem existir (como no exemplo visto acima).

Construindo o modelo para o Exemplo 1, usando a sintaxe do Lindo, temos:

105
max xOA + xOB + xOC
st
T) xOA + xOB + xOC - xDT - xET = 0
A) xAB + xAD - xOA = 0
B) xBC + xBD + xBE - xOB - xAB = 0
C) xCE - xOC - xBC = 0
D) xDT - xAD - xBD - xED = 0
E) xED + xET - xBE - xCE = 0
end
sub xOA 5
sub xOB 7
sub xOC 4
sub xAB 1
sub xAD 3
sub xBC 2
sub xBD 4
sub xBE 5
sub xCE 4
sub xDT 9
sub xED 1
sub xET 6

Veja que as restries de capacidade dos arcos foram dadas separadamente, no sendo contadas
como restries normais. Esse recurso normalmente existe para os softwares de PL, e permite que o
modelo seja resolvido de forma muito mais eficiente. No caso do Lindo, podemos usar os comandos
SLB (Simple Lower Bound) para designar os valores de lij, e SUB (Simple Upper Bound) para de-
signar os valores de uij.

Como podemos ver, o Problema de Fluxo Mximo em uma Rede pode ser formulado como um
Problema de Programao Linear e, portanto, o algoritmo Simplex pode ser utilizado para obteno
da soluo tima. Assim como no PFCM e no PT, existem tambm verses simplificadas do Sim-
plex para lidar com este problema, que aproveitam as caractersticas especficas da matriz A e con-
ceitos aproveitados da Teoria dos Grafos.

Entretanto, existem algoritmos mais eficientes para a soluo do PFM. Um deles, bastante conheci-
do, chamado de Algoritmo do Caminho de Aumento (Augmenting Path Algorithm). O algoritmo
do Caminho de Aumento baseado em dois conceitos intuitivos: uma Rede Residual e um Caminho
de Aumento (propriamente dito).

Rede Residual
Considere os dois grafos mostrados na figura a seguir, representando uma soluo vivel, mas no
tima, para o Exemplo 1 visto anteriormente. Os valores dos arcos da rede da esquerda representam
as capacidades mximas e seus respectivos fluxos (capacidade, fluxo). Os valores dos arcos da rede
da direita representam os resduos, ou seja, a diferena entre a capacidade e o fluxo do arco.

A A 0
3,3
5,4 1
1,1 0
7,7 0 0
4,4 O
O B D B D 2
9,7
5,4 1
2,0 2 2 1
4,2 1,0 T
T
C E 6,6 C E 0
4,2 2

106
Caminho de Aumento
Um Caminho de Aumento um caminho a partir da origem para o destino na Rede Residual tal que
todo arco sobre este caminho possui resduo estritamente positivo. O valor mnimo destes resduos
chamado de Capacidade Residual do Caminho de Aumento, uma vez que este representa a quan-
tidade vivel de fluxo que pode ser adicionado ao caminho todo.

A 0
1 O caminho:
0
OCEDT
0 0
O B D 2
um Caminho de Aumento com Capacidade Resi-
1 dual 1 (menor resduo neste caminho).
2 2 1
T
C E 0
2

Existem diversas verses do Algoritmo do Caminho de Aumento. A mais conhecida o Algorit-


mo de Ford-Fulkerson (1962), modificado depois por Dinic (1970) e Edmonds & Karp (1972) para
evitar casos patolgicos que tornam o algoritmo original muito ineficiente.

Outro algoritmo interessante, de desenvolvimento posterior, o de Malhotra, Pramodh-Kamar e


Maheshwari (MPM) (1978), baseado no conceito de potencial de fluxo. A idia deste algoritmo
esgotar a capacidade dos ns da rede, ao invs da capacidade de suas arestas. Os melhores limites
(de desempenho) da atualidade so, no entanto, os algoritmos de Ahuja & Orlin (1986) e Goldberg
& Tarjan (1988).

O fluxograma a seguir resume os passos do algoritmo MPM:

Calcular o Potencial dos vrtices vj

Escolher o vrtice de referncia


vk = mn{ vj}

Fluir vj de O para T por saturao

Eliminar os arcos saturados

Eliminar vrtices sem sucessores


e seus arcos adjacentes

Atualizar as capacidades na rede residual

N N O S
eliminado? FIM

107
Aplicaremos a seguir o algoritmo MPM rede mostrada no Exemplo 1:

5 3
1

7 4
O B D 9
T
4 2 5 1 6
4
C E

Iterao 1:

Calculando o potencial dos vrtices, temos:

j: O A B C D E T
vj: 16 4 8 4 8 7 15

O vrtice de referncia ser ento o vrtice A. Forando um fluxo de 4 unidades atravs desse vrti-
ce, temos o primeiro fluxo parcial e a rede residual obtida subtraindo as capacidades originais desse
fluxo:

f1: A 3
R1 : A
4 1
1
7 4
O B D O B D
3 6
1 4
4 2 1
T T
1 4 5
C E C E

Nesse momento, podemos eliminar o vrtice A e seus arcos adjacentes, j que no existe mais ca-
minho de O at T passando por A.

Iterao 2:

Recalculando o potencial dos vrtices, temos:

j: O B C D E T
vj: 12 7 4 5 6 11

O vrtice de referncia ser agora o vrtice C. Forando um fluxo de 4 unidades atravs desse vrti-
ce, temos o segundo fluxo parcial e a rede residual obtida subtraindo as capacidades de R1 desse
fluxo:

108
f2: R2 : A
A
1

7 4
O B D O B D 6
4
4 2 1
T 1 T
4 4
C E C E

Da mesma forma, podemos eliminar o vrtice C e seus arcos adjacentes, j que no existe mais ca-
minho de O at T passando por C.

Iterao 3:

Recalculando o potencial dos vrtices, temos:

j: O B D E T
vj: 7 7 5 2 7

O vrtice de referncia ser agora o vrtice E. Forando um fluxo de duas unidades atravs desse
vrtice, temos o terceiro fluxo parcial e a rede residual obtida subtraindo as capacidades de R2 desse
fluxo:

f3: R3 : A
A
1

2 5 4
O O B D
B D 1 5
2 2
2
1 T
1 T
C E C E

Dessa vez, o vrtice que ficou isolado, juntamente com seus arcos adjacentes, foi o vrtice E.

Iterao 4:

Observando o grafo R3 acima, fica claro que o nico fluxo agora possvel o seguinte:

f4: R4 : A
A
1

4 1
4 O B D
O B D 1
4
2
2
T T
C E C E

Nesse ponto, o algoritmo termina, j que no h mais caminho de O at T. Somando os quatro flu-
xos parciais, temos ento a seguinte soluo tima:

109
A

4 3
1

6 4
O B D 8
T
4 3 1 6
4
C E

Veja que essa soluo diferente das outras duas solues timas mostradas anteriormente para o
Exemplo 1.

110
O Problema da rvore Geradora Mnima (AGM)
Considere uma rede no-direcionada, representada por um grafo G = (V,A) no-orientado, conexo,
onde associado a cada aresta temos uma distncia (custo, tempo, etc.) no negativa. Deseja-se en-
contrar um subgrafo de G que tambm seja conexo, e cuja soma total das arestas (distncias, custos,
tempos) seja o menor possvel. O objetivo manter uma ligao ou caminho entre cada par de vr-
tices, gastando a menor quantidade de conexes possvel.

Esse problema, embora no seja modelado como um problema de fluxo em redes, encontra diversas
aplicaes que envolvem fluxos ou transferncias de produtos, informaes etc.

Exemplos de Aplicaes:
Projeto de redes de telecomunicao (redes de computadores, redes de fibra-tica, redes de tele-
fonia, redes de televiso a cabo, etc).
Projeto de rodovias, ferrovias, etc.
Projeto de redes de transmisso de energia.
Roteamento de veculos.

J vimos que uma rvore um grafo conexo e sem ciclos. Uma rvore geradora (AG) de uma
grafo G qualquer um subgrafo de G, conexo e sem ciclos, e que contm todos os vrtices de G (e
obviamente s um subconjunto das arestas de G). Um grafo pode conter muitas rvores geradoras,
como mostra a figura abaixo (repare que no so mostradas todas as AGs).

G AG1 AG2 AG3

Este problema, portanto, consiste em encontrar pelo menos uma das rvores geradoras cuja soma
das arestas seja mnima. Um modelo matemtico para esse problema dado a seguir:

Min.
( i , j ) A
cij xij

s.a.

( i , j ) A
xij = n 1


( i , j )S
xij S 1 S G

xij {0,1} (i, j ) A

A primeira restrio faz com que a AGM tenha exatamente n1 arestas. O outro conjunto de restri-
es significa que, para cada subgrafo S do grafo, o nmero de arestas escolhidas deve ser igual ao
nmero de ns em S menos 1. Isso implica na no existncia de ciclos na AGM.

Apesar desse modelo de PL ser teoricamente possvel para obter a AGM, diferentemente dos pro-
blemas de fluxo vistos anteriormente, ele impraticvel, porque o nmero de restries cresce ex-
ponencialmente com o tamanho do grafo. No entanto, existem tambm algoritmos muito eficientes
111
que resolvem o problema usando somente a Teoria de Grafos. Os mais comuns so o algoritmo de
Kruskal (1956), o de Prim (1957), e o de Borvka. Veremos dois deles a seguir:

Algoritmo de Kruskal:

Seja G = (V, A) um grafo conexo de n vrtices e arestas valoradas.


Ordenar as arestas pelos valores de peso.
T = (lista de arestas contidas na AGM)
Enquanto existir aresta na lista de arestas ordenadas, faa:
a = prxima aresta de menor peso de A.
Se a adio de a em T no formar um ciclo,
ento acrescente a em T.

Exemplo 1:
Determinar uma AGM do grafo abaixo usando o algoritmo de Kruskal.

5 3
1

7 4
O B D 3
T
4 2 5 1 6
4
C E

Soluo:
A 3 A
5 3
5
1 1
7 4 7
O 4
B D 3 O B D 3
5 5
4 2 1 2
T 4 1
T
C E 6 C E 6
4 4

A 3 A
5 3
5
1 1
7 4 7
O 4
B D 3 O B D 3
5 5
4 2 1 2
T 4 1
T
C E 6 C E 6
4 4

112
A 3 A
5 3
5
1 1
7 4 7
O 4
B D 3 O B D 3
5 5
4 2 1 2
T 4 1
T
C E 6 C E 6
4 4

A 3
1

O B D Soluo tima. Comprimento total = 14.


3
4 2 1
T
C E

O algoritmo de Prim usa uma abordagem diferente. Ao invs de adies sucessivas de arestas at
que pequenas rvores formadas isoladamente se juntem numa nica rvore geradora, o algoritmo de
Prim inicia a partir de um vrtice qualquer do grafo, e vai sucessivamente unindo os outros vrtices
atravs das arestas de menor peso. Assim, temos uma nica rvore que vai crescendo at conter to-
dos os vrtices de G.

Algoritmo de Prim:

Seja G = (V, A) um grafo conexo de n vrtices e arestas valoradas.


B = Um vrtice inicial qualquer de G.
T = (lista de arestas contidas na AGM)
Enquanto B no contm todos os vrtices
Escolher (u,v) = aresta de menor peso tal que u (V B) e v B
T = T {(u,v)}
B = B {u}

Em outras palavras, temos:

Selecionar qualquer n e conect-lo (isto , adicionar um arco) para o n mais prximo.


Identificar o n desconectado mais prximo para um n conectado e ento conectar estes dois
ns. Repetir este passo at que todos os ns tenham sido conectados.

Observao: no caso de empate de dois ou mais ns no conectados mais prximos de um n co-


nectado, escolher arbitrariamente um dos ns no conectados. Ainda assim, a soluo tima ga-
rantida, porm este fato pode ser um sinal da existncia de mltiplas solues timas. Todas as so-
lues timas podem ser obtidas executando novamente o algoritmo com decises diferentes nos
casos de empate. Isso vlido tambm para o algoritmo de Kruskal.

Exemplo 2:
O grafo abaixo representa diversos computadores posicionados em um laboratrio, juntamente com
as ligaes (e suas respectivas distncias em metros) possveis de serem feitas entre eles. Deseja-se
ligar todos os computadores em rede, usando a menor quantidade em cabos coaxiais possvel, de
forma que os usurios possam compartilhar dados e recursos, alm de brincar com jogos interativos.

113
2

5 3
1

7 4
1 3 6 3
7
4 2 5 1 6
4
4 5

Soluo: usando o algoritmo de Prim, e iniciando do vrtice 1, temos:


2 3 2 3
5 5
1 1
7 4 7 4
1 3 6 1 3 6
3 3
5 5
4 2 1 4 2 1
7 7
4 5 6 4 5 6
4 4

2 3 2 3
5 5
1 1
7 4 7 4
1 3 6 1 3 6
3 3
5 5
4 2 1 4 2 1
7 7
4 5 6 4 5 6
4 4

2 3 2 3
5 5
1 1
7 4 7 4
1 3 6 1 3 6
3 3
5 5
4 2 1 4 2 1
7 7
4 5 6 4 5 6
4 4

2 3
1

1 3 6 Soluo tima. Comprimento total = 14.


3

4 2 1
7
4 5

114
O Problema de Steiner em Grafos no Direcionados
O problema de Steiner em grafos no direcionados o problema de conectar, a custo mnimo, um
conjunto especfico de ns do grafo. Considere, por exemplo, uma regio de plantio de lavouras on-
de existem diversos pontos de irrigao posicionados segundo determinados critrios tcnicos e e-
conmicos (inclinao do terreno, tipo de lavoura, caractersticas do terreno etc.). O grafo abaixo
representa essa rede:

10
3

13
1 8
11
4

14
2 7 12

15
6 9

Suponha agora que os pontos de irrigao, representados pelos vrtices 8, 12, 13 e 14, precisam ser
interligados e abertos. Essa interligao poderia ser feita de vrias formas diferentes. A figura a-
baixo mostra duas formas de se fazer isso:

10 10
3 3

13 13
1 8 1 8
4 11 11
4

14 14
2 7 12 2 7 12

15 15
6 9 6 9

Veja que, na primeira soluo, o subgrafo formado foi uma rvore contendo somente os pontos que
precisavam ser interligados. J na segunda soluo, a rvore formada contm, alm dos pontos o-
brigatrios, um outro ponto (vrtice 11) que, nesse caso, serve apenas de ponto de interligao en-
tre os demais. Esse ponto, que pode ser usado na interligao, mas no precisa obrigatoriamente fa-
zer parte da rvore-soluo, chamado de Ponto de Steiner. A soluo da esquerda, portanto, no
contm pontos de Steiner, enquanto que a da direita contm um ponto de Steiner.

Embora no tenham sido dados os pesos (custos, distncias) das arestas, o objetivo do problema a-
cima seria interligar os quatro pontos acima usando a menor soma total das arestas (para, por exem-
plo, minimizar a perda de presso por atrito). fcil demonstrar que a soluo ser sempre uma r-
vore contendo um subconjunto de vrtices e arestas do grafo original. Por isso, esse problema
tambm chamado de Problema da rvore de Steiner.

115
Dentre as vrias aplicaes para esse problema, destacamos as seguintes:

Projeto de circuitos eletrnicos e VLSI.


Redes de comunicao.
Redes de trfego.
Tubulaes de gs e leo.
Distribuio de gua para irrigao e redes de drenagem.
Projetos de instalaes eltricas e mecnicas.
Projetos de edificaes

Iremos agora caracterizar o problema formalmente, no contexto da Teoria de Grafos:

Seja o grafo G = (V,A), e e conjuntos resultantes de uma partio do conjunto V, ou seja,


V e V, sendo que = V e = , = r e = s. Determinar um subconjunto de
arestas B A que ligue todos os vrtices xi em um grafo conexo, onde i = 1, 2, ..., r, de modo a
minimizar c j , onde cj o custo ou o comprimento das arestas de B. Os vrtices pertencentes ao
jB

conjunto (pontos de Steiner) podem ser usados ou no pela estrutura de ligao.

Observe que esse problema possui trs situaes distintas:

1) = 2, ou seja, deseja-se interligar dois pontos do grafo a um custo mnimo.

Nesse caso, o problema torna-se um PCMC e pode ser facilmente resolvido (e.g. usando o algorit-
mo de Dijkstra visto anteriormente).

2) = N ou = , ou seja, deseja-se interligar todos pontos do grafo a um custo mnimo.

Nesse caso, o problema se resume em achar uma AGM do grafo, que tambm pode ser facilmente
resolvido (e.g. usando os algoritmos de Kruskal ou Prim vistos anteriormente).

3) > 2 e .

Nesse caso, o problema cai numa classe de problemas chamada de NP-Difcil, o que na prtica sig-
nifica que no existe algoritmo que possa resolver qualquer instncia do problema de maneira efici-
ente. Nesse caso, especialmente para problemas maiores, recomendado o uso de heursticas, ou se-
ja, algoritmos de soluo aproximada (que no garantem a obteno da soluo tima), porm mais
eficientes em termos de tempo de execuo. Entre as solues adotadas, podemos destacar as se-
guintes:

Algoritmos de Soluo Exata


Enumerao baseada em rvores geradoras;
Enumerao topolgica (para o Steiner euclidiano);
Programao Dinmica (ou o desenvolvimento de sub-rvores de Steiner);
Outros.

Heursticas
Baseadas no PCMC;
Baseadas na AGM;
Outras.

116
Redes PERT / CPM
As tcnicas denominadas PERT (Program Evaluation and Review Technique) e CPM (Critical Path
Method) foram desenvolvidas independentemente para o Planejamento e Controle de Projetos em
torno de 1950, porm a grande semelhana entre estas fez com que o termo PERT/CPM seja utili-
zado corriqueiramente como uma nica tcnica.

Exemplos de Projetos que podem utilizar PERT/CPM:


Construo Civil
Projetos de Engenharia
Pesquisa e desenvolvimento de um produto
Produo de filmes
Construo de navios, avies etc.
Instalao de um sistema de informaes
Conduo de campanhas publicitrias, entre outras.

PERT e CPM utilizam principalmente os conceitos de Redes (grafos) para planejar e visualizar a
coordenao das atividades ou tarefas do projeto. Um exemplo clssico de aplicao de
PERT/CPM o planejamento e gerenciamento da construo civil. Veremos a seguir dois exemplos
dessa aplicao: a primeira usando uma Rede PERT tradicional e a segunda usando uma Rede
PERT/CPM orientada a eventos.

Redes PERT
Exemplo 1 (Hiller/Lieberman, pg 468):
Suponha que uma empreiteira ganhou uma concorrncia de $5,4 milhes para construir uma planta
industrial. O contrato inclui:

Uma penalidade de $300.000,00 se a empreiteira no completar a construo em 47 semanas.


Um bnus de $150.000,00 se a empreiteira completar a construo em 40 semanas.

De acordo com a experincia da empreiteira, a seguinte lista foi elaborada para este projeto:

Tabela 1 - Tarefas, Tarefas Precedentes e Durao Estimada


Tarefas Durao Estimada
Tarefa Descrio
Precedentes (semanas)
A Escavao e Terraplanagem - 2
B Fundao A 4
C Paredes B 10
D Telhado C 6
E Encanamento Exterior C 4
F Encanamento Interior E 5
G Muros D 7
H Pintura Exterior E, G 9
I Instalao Eltrica C 7
J Divisrias F, I 8
K Piso J 4
L Pintura Interior J 5
M Acabamento Exterior H 2
N Acabamento Interior K, L 6
117
A durao para a execuo da obra 79 semanas se cada tarefa for realizada uma por vez. No en-
tanto, existem tarefas que podem ser realizadas simultaneamente com outras tarefas, podendo com
isso, reduzir a durao da execuo da obra.

2. Construo da Rede

A rede pode ser construda utilizando os arcos para representar as tarefas e os nos para separar as ta-
refas de suas tarefas precedentes, porm utilizar os nos para representar as tarefas e os arcos para
representar as relaes de precedncia parece ser mais intuitivo. A figura abaixo ilustra a rede para
o exemplo dado:

Incio 0

A 2

B 4

C 10

D E 4 I 7
6

G 7 F 5

H 9 J 8

K 4 L 5

M 2
N 6

Fim 0

Figura 1 Rede PERT para o exemplo dado.

A partir da lista de tarefas e das relaes de precedncia, a rede pode ser facilmente construda. Para
isto, dada uma tarefa (n), basta procurar na lista quais tarefas so suas tarefas precedentes. Por e-
xemplo, na rede da Figura 1, a tarefa J possui as tarefas F e I como precedentes, as quais devem ser
conectadas atravs de arcos orientados, indicando assim, a precedncia.

Atravs da anlise da rede, varias informaes podem ser obtidas, entre elas, as respostas para duas
perguntas cruciais para 0 planejamento do projeto:

1. Qual o tempo total requerido para completar o projeto se nenhum atraso ocorrer?
2. Quais as tarefas que no podem sofrer atrasos para que o projeto seja executado sem atraso
(Atividades Gargalos)?

2.1 Caminho Crtico

Um caminho atravs de uma rede uma rota seguindo os arcos a partir do no INICIO at o FIM. O
comprimento de um caminho a soma das duraes das tarefas sobre o caminho. Na rede da Figura
118
1 existem 6 caminhos, que so dados na tabela abaixo, juntamente com seus respectivos compri-
mentos:

Tabela 2 - Caminhos e seus respectivos Comprimentos


Caminho Comprimento (semanas)
Inicio-A-B-C-D-G-H-M-Fim 2+4+10+6+7+9+2 = 40
Inicio-A-B-C-E-H-M-Fim 2+4+10+4+9+2 = 31
Inicio-A-B-C-E-F-J-K-N-Fim 2+4+10+4+5+8+4+6 = 43
Inicio-A-B-C-E-F-J-L-N-Fim 2+4+10+4+5+8+5+6 = 44
Inicio-A-B-C-l-J-K-N-Fim 2+4+10+7+8+4+6 = 41
Inicio-A-B-C-1-J-L-N-Fim 2+4+10+7+8+5+6 = 42

O caminho com maior comprimento o Caminho Critico, uma vez que todos os demais caminhos
devero alcanar o FIM antes do Caminho Critico. Isto responde a questo 1 dada acima, ou seja, o
tempo total requerido 44 semanas para completar o projeto.

As tarefas sobre este caminho so as Atividades Criticas (Atividades Gargalos), ou seja, qualquer
atraso em uma dessas tarefas ir atrasar a durao de todo o projeto. J as demais tarefas, se sofre-
rem algum atraso, podero ou no atrasar a durao de todo o projeto. A Figura 2 mostra o Caminho
Critico:

Incio 0

A 2

B 4

C 10

D E 4 I 7
6

G 7 F 5

H 9 J 8

K 4 L 5

M 2
N 6

Fim 0

Figura 2 Caminho Crtico.

2.2 Programao de Tarefas (Scheduling)

A Programao das Tarefas na tcnica PERT consiste em determinar em que tempo (por exemplo,
em que dia, em qual semana) uma tarefa deve comear e terminar. A principio, o tempo inicial de
uma tarefa deveria ser igual ao tempo final da tarefa precedente. No entanto, tarefas que possuem
duas ou mais tarefas precedentes necessitam que todas as tarefas precedentes estejam completadas
para s ento dar incio tarefa em questo. J para Atividades No Criticas, o tempo inicial no
119
precisa ser necessariamente igual ao tempo final da sua tarefa precedente, uma vez que esta tarefa
possui folga (no pertence ao Caminho Critico da Rede). A fim de formalizar este raciocnio, a tc-
nica PERT utiliza quatro variveis, a saber:

TIC = Tempo Inicial Mais Cedo


TFC = Tempo Final Mais Cedo
TIT = Tempo Inicial Mais Tarde
TFT = Tempo Final Mais Tarde

De posse dessas variveis, as seguintes regras podem ser definidas:

Regra do Tempo Inicial Mais Cedo:

O Tempo Inicial Mais Cedo TICi de uma tarefa i igual ao maior Tempo Final Mais Cedo
TFCj das tarefas precedentes j.

TICi = max (TFCj), j i (1)

onde i o conjunto de todas as tarefas precedentes tarefa i.

Regra do Tempo Final Mais Cedo:

TFCi = TICi + Di, (2)

onde Di a durao da tarefa i.

Regra do Tempo Inicial Mais Tarde:

TITi = TFTi Di, (3)

onde TFTi definido abaixo.

Regra do Tempo Final Mais Tarde:

O Tempo Final Mais Tarde TFTi de uma tarefa i igual ao menor Tempo Inicial Mais Tar-
de TITk das tarefas sucessoras k.

TFTi = min (TITk), k i (4)

onde i o conjunto de todas as tarefas sucessoras tarefa i.

Exemplo: Clculo de TIC, TFC, TIT e TFT para a tarefa J (divisrias) da rede do exemplo anterior:

TICJ = max( TFCF, TFCI ) = max( 25, 23 ) = 25

TFCJ = TICJ + DJ = 25 + 8 = 33

TFTJ = min( TITK, TITL ) = min( 34, 33 ) = 33

TITJ = TFTJ DJ = 33 8 = 25

Podemos ver que o clculo do Tempo Inicial Mais Cedo (TIC) funo dos Tempos Finais Mais
Cedos (TFCs) precedentes. Portanto, a sua obteno realizada calculando os TICs e TFCs no sen-
120
tido do n Incio at o n Fim. J o clculo do Tempo Final Mais Tarde (TFT) funo dos Tem-
pos Iniciais Mais Tardes (TITs) sucessores, e devem ser obtidos calculando os TITs e TFTs no sen-
tido do n Fim para o n Incio.

Alm disso, podemos observar tambm que o TICJ igual ao TITJ, o que mostra que no h folga
para iniciar essa tarefa. O mesmo acontece com o par TFCJ e TFTJ, o que coerente, j que essa ta-
refa faz parte do Caminho Crtico da rede. Com uma anlise mais detalhada, poderamos mostrar
que:

Si = TFTi TFCi = TITi TICi

onde Si corresponde folga da tarefa i, ou seja, o atraso que essa tarefa pode sofrer sem comprome-
ter o tempo total do projeto ou o tempo do(s) caminho(s) crtico(s).

Na tabela a seguir mostramos os clculos j prontos para todos os ns da rede. Repare que o cami-
nho crtico, j mostrado na Figura 2, corresponde ao caminho formado pelas tarefas (ns) com folga
Si = 0. Dependendo da topologia da rede e dos tempos Di, podemos ter mais de um caminho crtico.

Tabela 3 Valores calculados para as variveis de todos os ns da rede do Exemplo 1.


Tarefa (i) Di TICi TITi TFCi TFTi Si
Incio 0 0 0 0 0 0
A 2 0 0 2 2 0
B 4 2 2 6 6 0
C 10 6 6 16 16 0
D 6 16 20 22 26 4
E 4 16 16 20 20 0
F 5 20 20 25 25 0
G 7 22 26 29 33 4
H 9 29 33 38 42 4
I 7 16 18 23 25 2
J 8 25 25 33 33 0
K 4 33 34 37 38 1
L 5 33 33 38 38 0
M 2 38 42 40 44 4
N 6 38 38 44 44 0
Fim 0 44 44 44 44 0

Redes PERT/CPM
Vimos que, nas redes PERT tradicionais, as tarefas so representados por ns no grafo, e com isso
temos uma rede orientada por tarefa. Na rede PERT/CPM, as tarefas so representadas por arcos
no grafo, sendo que os ns nesse caso representam os incios e os trminos de uma ou mais tarefa.
Dizemos ento que a rede PERT/CPM orientada por evento, j que os ns representam um de-
terminado evento do processo, que pode ser o incio ou o trmino de uma ou mais tarefas. Podemos
tratar a rede PERT/CPM como sendo a verso dual da rede PERT (mas no iremos entrar nos as-
pectos de dualidade aqui, apenas mostrar como obtemos o(s) caminho(s) crtico(s), como fizemos
para rede PERT).

Vamos considerar o mesmo exemplo usado anteriormente. A tabela correspondente aos tempos e
precedncias das tarefas replicada abaixo:

121
Tabela 1 - Tarefas, Tarefas Precedentes e Durao Estimada
Tarefas Durao Estimada
Tarefa Descrio
Precedentes (semanas)
A Escavao e Terraplanagem - 2
B Fundao A 4
C Paredes B 10
D Telhado C 6
E Encanamento Exterior C 4
F Encanamento Interior E 5
G Muros D 7
H Pintura Exterior E, G 9
I Instalao Eltrica C 7
J Divisrias F, I 8
K Piso J 4
L Pintura Interior J 5
M Acabamento Exterior H 2
N Acabamento Interior K, L 6

Construindo a rede, temos o grafo mostrado na Figura 3. Desta vez, so os arcos que recebem os va-
lores dos tempos de execuo de cada tarefa, e no os ns. Note tambm que foram inseridos arcos
adicionais, representados por linhas pontilhadas. Esses arcos so chamados de arcos-fantasma. To-
dos possuem valores de tempo iguais a zero, e servem para separar os eventos de incio e trmino de
determinadas tarefas. Dessa forma, no teremos nenhum n representando o incio ou o trmino de
mais de uma tarefa distinta.

G
7 10
7
D H M
6 12 15 19 Fim
9 2
4

A B C E
Incio 1 2 3 5 8
2 4 10 4
23
11
6 F K
I 17 20
5 4 N 6
7 13
9
22
J L
14 16 18 21
8 5

Figura 3 Rede PERT/CPM para o Exemplo 1.

J que, para a rede PERT/CPM, os eventos de incio e trmino representados pelos ns no possuem
tempo ou durao envolvida, podemos obter o caminho crtico usando somente duas variveis para
cada n da rede, a saber:

TC = Tempo Mais Cedo


TT = Tempo Mais Tarde

As regras que definem essas variveis podem ser dadas da seguinte forma:

122
Regra do Tempo Mais Cedo:

TCIncio = 0 (5)
TCj = max (TCi + Dij), i j (6)

onde j o conjunto de todos os eventos precedentes ao evento i, e Dij igual ao tempo da


tarefa representada pelo arco (i, j). Para os arcos-fantasma, Dij = 0.

Regra do Tempo Mais Tarde:

TTFim = TCFim (7)


TTi = min (TTk Dik), k i (8)

onde i o conjunto de todos os eventos precedentes ao evento i.

Podemos expressar essas mesmas regras de outra forma um pouco mais simples:

Regra do Tempo Mais Cedo:

Para calcular o Tempo Mais Cedo de cada n, basta percorrer todos os caminhos da origem (Incio)
ao destino (Fim), somando os tempos e guardando sempre o maior valor.

Regra do Tempo Mais Tarde:

Para calcular o Tempo Mais Tarde de cada n, basta percorrer todos os caminhos do destino (Fim)
origem (Incio), subtraindo os tempos e guardando sempre o menor valor.

Terminado o clculo dessas duas variveis, podemos obter a folga em cada n subtraindo os dois
tempos obtidos:

Si = TTi TCi

Para a rede representada pela Figura 3, temos ento o seguinte resultado:

123
Tabela 4 Valores calculados para as variveis de todos os ns da rede do Exemplo 1.
Evento (i) TCi TTi Si
Incio 0 0 0
1 2 2 0
2 6 6 0
3 16 16 0
4 16 20 4
5 16 16 0
6 16 18 2
7 22 26 4
8 20 20 0
9 23 25 2
10 29 33 4
11 20 20 0
12 29 33 4
13 25 25 0
14 25 25 0
15 38 42 4
16 33 33 0
17 33 34 1
18 33 33 0
19 40 44 4
20 37 38 1
21 38 38 0
22 38 38 0
23 44 44 0
Fim 44 44 0

Podemos ver que o resultado obtido com a rede PERT/CPM orientada por eventos o mesmo que o
obtido pela rede PERT orientada por tarefas, com apenas um caminho crtico passando pelas ativi-
dades A, B, C, E, F, J, L e N, e tempo total do projeto igual a 44 semanas.

124
Bibliografia
AHUJA, R.K., MAGNANTI, T.L., ORLIN, J.B., Network Flows: Theory, Algorithms, and Appli-
cations. Prentice Hall, 1993.

BAZARAA, M.S., JARVIS, J.J., SHERALI, H.D., Linear Programming and Network Flows, 2nd
Edition. John Wiley & Sons, 1990.

BREGALDA, P.F., OLIVEIRA, A.F., BORNSTEIN, C.T., Introduo Programao Linear. Edi-
tora Campus, 1988.

CAIXETA-FILHO, J.V., Pesquisa Operacional: Tcnicas de Otimizao Aplicadas a Sistemas A-


groindustriais, 2 Edio. Editora Atlas, 2004.

HILLIER, F.S., LIEBERMAN, G.J., Introduo Pesquisa Operacional, Editora Campus, Rio de
Janeiro. Editora USP, 1988.

LAW, A.M., KELTON, W.D., Simulation Modeling & Analysis, McGraw-Hill, 1991.

LUNA, H.P.L., GOLDBARG, C.M., Otimizao Combinatria e Programao Linear. Editora


Campus, 2000.

MEDEIROS da SILVA, E., et. al., Pesquisa Operacional: Para os Cursos de Economia, Administra-
o e Cincias Contbeis, 3 Edio. Editora Atlas, 1998.

PRADO, D., Teoria das Filas e da Simulao. EDG, 1999.

RARDIN, R.L. Optimization in Operations Research, Prentice Hall, 1994.

ROSS, S.M., Simulation Second Edition. Academic Press, 1997.

RUBINSTEIN, R.Y., Monte Carlo Optimization, Simulation and Sensitivity of Queuing Networks.
Krieger Publishing Company, 1992.

SAIGAL, R., Linear Programming: A Modern Integrated Analysis. Kluwer Academic Pub., 1995.

SHIMIZU, T., Pesquisa Operacional em Engenharia, Economia e Administrao: Modelos Bsicos


e Mtodos Computacionais. Editora Guanabara Dois, 1984.

WAGNER, H.M., Pesquisa Operacional, Prentice Hall, 1985.

WINSTON, W.L. Operations Research: Applications and Algorithms, 3rd Edition. Wadsworth,
1997.

125

Você também pode gostar