Вы находитесь на странице: 1из 55

PLANO DE CURSO

Disciplina: EPS7005 Pesquisa Operacional.


Turma: 5212 e 5212A
Professor: Antnio Srgio Coelho.
Sala: 33, Fone: 7058, a.s.coelho@ufsc.br
Contedo
I. INTRODUO
II. PROGRAMAO LINEAR
2.1. Formulao de modelos de programao linear
2.2. Sistemas de equaes lineares Reviso
2.3. Forma cannica do PPL
2.4. Mtodo simplex primal
2.5. Dualidade em programao linear
2.6. Algoritmo simplex dual e primal-dual
2.7. Anlise de ps-otimalidade
III. PROBLEMAS LINEARES ESPECIAIS
3.1. Problema de atribuio
3.2. Problema de transportes
3.3. Problemas de fluxo em redes
IV. PROGRAMAO INTEIRA
4.1. Programao linear inteira: exemplos
4.2. Tcnica de branch and bound
4.3. Algoritmo de Balas
V. PROGRAMAO DINMICA
5.1. Formulao de modelos de programao dinmica
5.2. Programao dinmica determinstica
5.3. Programao dinmica estocstica
5.4. Deciso com horizonte limitado e ilimitado
VI. PROGRAMAO NO-LINEAR
6.1. Conceitos bsicos de programao no-linear
6.2. Condies de otimalidade de Karush-Kuhn-Tucker
6.3. Problemas mono e multivariados sem restries
6.4. Problemas multivariados com restries
Exerccios:
Avaliao: Prova 1 13/09/2016 Peso 1/3 (T 5212) e
Prova 1 12/09/2016 Peso 1/3 (T 5212A)
Prova 2 20/10/2016 Peso 1/3 (T 5212 e T 5212A)
Prova 3 01/12/2016 Peso 1/3 (T 5212 e T 5212A)
Recuperao 08/12/2016 (Mdia + prova)/2 (T 5212 e T 5212A)
Bibliografia:
[01] TAHA, Hamdy A; Pesquisa Operacional; 8a. Edio; So Paulo;Pearson
Prentice Hall, 2008, 359p.

2
[02] WAGNER, Harvey M. Pesquisa operacional. 2 ed. Rio de Janeiro: PrenticeHall do Brasil, 1986. 851p.
[03] HILLIER, Frederick S.; LIEBERMAN, Gerald J. Introduction to operations
research. 8 ed. New York: McGraw-Hill, 2006. 811p.
[04] GOLDBARG, Marco Cesar; LUNA, Henrique Pacca L. Otimizao
combinatria e programao linear: modelos e algoritmos. Rio de Janeiro:
Campus, 2000. 649p.
[05] ARENALES, Marcos; ARMENTANO, Vinicius; MORABITO, Reinaldo;
YANASSE, Horcio; Pesquisa Operacional para Cursos de Engenharia; Rio de
Janeiro: Editora Campus (Elsevier), 2008. 526p.
[06] BRONSON, Richard; Pesquisa Operacional; So Paulo: Coleo Schaum;
McGraw-Hill.
[07] SHAMBLIN, James E.; STEVENS JR, G. T.; Pesquisa Operacional - Uma
abordagem bsica; Editora Atlas.
[08] LUENBERGER, David G. Linear and nonlinear programming. 2
ed. Massachusetts: Addison-Wesley, c1984. 491p.
[09] HASTINGS, N. A. J; Dynamic Programming with Management Applications;
Butterworth; Hungary; 1973.

1.

Origem da Pesquisa Operacional e sua Importncia

Durante a segunda guerra mundial a escassez de recursos como: pessoal,


rao, suprimentos e equipamentos, levou os estrategistas a reunir um grupo de
cientistas que se organizaram para racionalizar a utilizao dos recursos
existentes. A este tipo de pesquisa deu-se o nome de Pesquisa Operacional
(doravante PO) devido ao seu uso nas operaes de guerra.
Aps a segunda guerra as indstrias, principalmente as Americanas,
perceberam o poder desta nova ferramenta para orientar melhor as tomadas de
decises, comeando desta forma a aplic-la em seus sistemas de tomada de
deciso melhorado com isto o seu desempenho. A PO passou, ento, a ser um
poderoso instrumento para a tomada de deciso das empresas.

3
Atualmente, o uso das ferramentas que passaram a ser utilizadas na PO
de fundamental importncia no desempenho de empresas modernas, que para
competir no mercado precisam otimizar cada passo do seu sistema de produo.
A competitividade vem do fato de que o decisor, atravs das ferramentas de
otimizao, consegue racionalizar os recursos de sua empresa.

2. Modelagem Matemtica
Um problema de otimizao pode ser representado de forma mais genrica
da seguinte forma:

Max f(x)
S.a.

h (x) 0 i 1, ..., m
g (x) 0 j 1, ..., m
i

x n

Em que f : n , h : n e g : n so funes contnuas, geralmente


tratveis em problemas de grande porte.
O campo da programao matemtica enorme e suas tcnicas
consagraram-se em face de sua grande utilidade na soluo de problemas de
otimizao. Em face da grande variedade e peculiaridade inerente aos diversos
contextos de programao (planejamento), os mtodos de soluo sofreram
especializaes para atender a estas diferenas e peculiaridades. O processo de
modelagem matemtica pouco varia, mas as tcnicas de soluo podem ser
agrupadas em vrias subreas como:
Programao Linear:

4
Neste caso, esta tcnica pressupe um modelo matemtico que represente o
objetivo do problema com uma funo objetivo formada por uma funo linear, e
suas limitaes como um conjunto de equaes ou inequaes lineares.
Programao No-Linear
So os modelos de otimizao, em que a funo objetivo no-linear e/ou uma ou
mais de suas restries so no-lineares.
Programao Inteira
Um modelo de otimizao considerado um problema de programa inteira se
alguma de suas variveis s puder assumir valor inteiro.

3. Tomadas de deciso e o contexto da Programao Matemtica


Sem dvida, muitas pessoas estudam as tcnicas ligadas soluo dos
modelos matemticos pelo puro interesse de saber qual a melhor forma de
resolver estas formulaes da melhor maneira possvel. Mas tambm temos outro
nmero de pessoas, to grande ou maior, para as quais esta soluo s tem
interesse caso sua soluo esteja ligada a uma aplicao que permita a elas
tomar melhores decises.
A tomada de deciso o ato de selecionar, dentre vrias opes possveis,
a mais adequada para alcanar certo objetivo. Precede a essa escolha,
normalmente, um processo elaborado de:
-

representao adequada das variveis e restries do problema;

levantamento das alternativas viveis;

estabelecimento de critrios de avaliao dessas alternativas;

comparao das alternativas;

anlise de impacto da tomada de deciso.

Os

seguintes

elementos

so

independente da natureza ou situao:

comuns

em

tomada

de

decises,

5
Decisor: refere-se ao indivduo ou grupo de indivduos responsvel pela
escolha da estratgia a ser seguida.
Objetivo: a especificao do que se pretende alcanar.
Escolha do valor ou preferncia: refere-se ao critrio adotado pelo
decisor para selecionar alguma alternativa, medindo a situao ou valor de
utilidade que o decisor associa a cada resultado.
Soluo

ou

estratgias

alternativas:

corresponde

diferentes

alternativas que o decisor pode escolher.


Estado da natureza ou ambiente: refere-se condio do ambiente em
que as decises esto inseridas, geralmente, fora do controle do decisor.
Resultado ou conseqncia: refere-se ao resultado que pode ocorrer na
implementao de uma determinada estratgia num determinado estado da
natureza ou ambiente.
O objetivo primordial na tomada de deciso empresarial obter a
maximizao da utilidade do decisor. A esquematizao do sistema de deciso
pode ser visto na figura abaixo:
s1
a1 e11
a2 e21
.
.
.
.
.
.
an en1

s1
e12
e22
.
.
.
en2

. . .
. . .
. . .
. . .
. . .
. . .

sm
e1m
e2m
.
.
.
enm

onde, ai a ao a ser tomada, sj a situao do momento (ambiente) e eij o


resultado da ao ai. Dada a situao sj, logo temos:
U(eij) a utilidade de se tomar a ao ai dado que se encontra na situao
sj.
O decisor pode se encontrar em uma das seguintes situaes no momento
de conceber um modelo de apoio tomada de deciso:

6
Situao de certeza: quando se conhece, a priori, o resultado associado a cada
deciso.
Situao de risco ou incerteza: quando cada deciso pode gerar um ou mais
resultados.
Situao de risco: quando se tem um oponente que ao mesmo tempo procura
maximizar a sua utilidade e minimizar a do adversrio.

4. Modelos de Programao Matemtica


Podemos resumir de forma sucinta os passos do processo de anlise
quantitativa como so mostrados a seguir:

Formulao do
Problema

Construo do
Modelo

Execuo das
Anlises

Implementao e
Utilizao

Formulao do problema:
-

definio de variveis controlveis (deciso ou controle) e no


controlveis (externa ou estado);

elaborao da funo objetiva e do critrio de otimizao;

7
-

formulao das restries do modelo.

Construo do modelo:
-

elaborao da estrutura de entrada e sada de informaes;

frmulas de inter relaes;

horizonte de tempo.

Execuo das anlises:


-

anlise de sensibilidade da soluo;

levantamento de preciso dos dados;

estudo da estabilidade computacional;

levantamento das demais especificaes do modelo.

Implementao e utilizao:
-

fazer um feedback repassando as etapas anteriores e vivenciando a


utilizao do modelo.

5. Modelos de Programao Linear

Este modelo bsico para a compreenso de todos os modelos de


programao matemtica. Os modelos de Programao Linear (PL) so um tipo
especial de modelos de otimizao. Para que um determinado sistema possa ser
representado por meio do modelo de PL, ele deve possuir as seguintes
caractersticas:
Proporcionalidade: a quantidade de recursos consumido por uma dada atividade
deve ser proporcional ao nvel dessa atividade na soluo
final do problema. Alm disso, o custo de cada atividade
proporcional ao nvel de operao da atividade.

8
No Negatividade: deve ser sempre possvel desenvolver dada atividade em
qualquer nvel no negativo e qualquer proporo de um
dado recurso deve sempre poder ser utilizado.
Aditividade: o custo total sempre a soma das parcelas associada a cada
atividade.
Separabilidade: pode-se identificar de forma separada o custo (ou consumo de
recursos) especfico de cada atividade.
Um modelo de PL um modelo matemtico de otimizao, em que todas
as funes so lineares.
Formulao Algbrica Geral

Otimizar z

c x
j

j1

Sujeito a :
n

a
j1

ij

x j b i i 1, ..., p

ij

x j b i i d 1, ..., q

ij

x j b i i p 1, ..., m

a
j1
n

a
j1

xj 0

j 1, ..., n

Nomenclatura a ser utilizada


Dado um conjunto de ao (decises) possvel X, x X, e dado um ou mais
critrios de avaliao (funo objetivo)
X f1 ... fk

podemos ter:
Caso k > 1 : mltiplos objetivos;
Caso k = 1 : uma funo objetivo.

9
Classificao dos Problemas
a) A respeito do conjunto X (decises)
i)

{x / Ax b , x 0} um poliedro convexo e representa um problema


linear de deciso, o caso mais aplicado em P. O..

ii)

{x / Ax b , x 0 e x pertence aos inteiros} um problema de


programao linear inteira.

iii)

{x / gi(x) 0, i inteiro, gi funo arbitrria} um problema de


programao no-linear.

iv)

{x / gi(x) 0, i inteiro, gi funo arbitrria e x pertence aos inteiros},


um problema de programao no-linear inteira.

b) a respeito da funo objetivo:


i)

f(x) = cTx + constante, funo objetivo linear; o caso mais usado em


P. O..

ii)

f(x) = xTQx, sendo Q uma matriz quadrada simtrica. Se aparecer


esta F. O. junto com o conjunto {x / Ax b , x 0}, considerado um
problema de programao matemtica.

iii)

f: n

, F. O. arbitrria.

Formulao de Modelos
Exemplo 1: (Produo)
Uma fbrica produz dois produtos, o Z28 e o Z45. A deciso consiste em
determinar o quanto produzir de cada produto de forma a garantir as limitaes
associadas aos produtos e maximizar o lucro da fbrica. A composio dos
insumos necessrios para a produo de uma unidade dada na tabela abaixo:

10
Por unidade produzida
Z28

Z45

Integrado w16

Integrado w20

Integrado w32

Lucro unitrio em R$

25

30

No almoxarifado esto disponveis para a produo:


-

9 unidades de w16;

24 unidades de w20;

12 unidades de w32.

Soluo
xj o quanto produzir de Z28 (x1) e Z45 (x2);
bi a disponibilidade para produo de:
w16 b1 = 9
w20 b2 = 24
w32 b3 = 12.
cj lucro por unidade produzida de Z28 (c1 = 25) e Z45 (c2 = 30).
aij

a quantidade w16 usada na produo de um Z28, a11 = 3

a quantidade w16 usada na produo de um Z45, a12 = 1

a quantidade w20 usada na produo de um Z28, a21 = 4

a quantidade w20 usada na produo de um Z45, a22 = 3

a quantidade w32 usada na produo de um Z28, a31 = 1

a quantidade w32 usada na produo de um Z45, a32 = 3.

11
Formulao matemtica

Max z 25x1 30x 2


s. a.
3x 1 x 2 9

Eq. 02

4x 1 3x 2 24

Eq. 03

x 1 3x 2 12

Eq. 04

Eq. 01

x1 ,x2 0
Representao grfica da soluo

x1

Eq. 04

Eq. 03
Regio vivel

F. O.

Eq. 02

x2

12

Exemplo 2: (Turno de trabalho)


Em um setor de produo de uma fbrica onde os funcionrios trabalham
em turnos de seis horas e o horrio de funcionamento das 07:00 s 19:00 horas,
seus funcionrios podem iniciar o trabalho s 07:00, s 09:00, s 11:00 ou s
13:00 horas. Sabe-se que em certos perodos do dia so necessrios mais
trabalhadores, devido necessidade de suprir outros setores de produo. Das
07:00 s 09:00 so necessrios 20 trabalhadores, das 09:00 s 11:00 so
necessrios 23, das 11:00 s 13:00 so necessrios 30 trabalhadores, das 13:00
s 15:00 so necessrios 28

e das 15:00 s 19:00 so necessrios 20

trabalhadores. O gerente pretende saber o que fazer de modo a minimizar o


nmero de trabalhadores parados.

Exemplo 3: (Produto intermedirio)


Uma Fbrica est planejando sua estratgia de produo. Por informaes
obtidas no setor de planejamento, sabe-se que os produtos x1, x2 e x3 sero os
mais rentveis atualmente. Por experincia, sabe-se que a produtividade de sua
Fbrica para os produtos indicados a constante da tabela abaixo:

Produto

Produtividade unidade/dia

Lucro por unidade

x1

R$ 5,00

x2

R$ 4,00

x3

R$ 2,00

Por falta de um local para armazenamento prprio, a produo mxima de x 2 e x3,


que para o atendimento interno, est limitada a 60 unidades. A disponibilidade
de mquina para a produo dos trs produtos no perodo planejado de 80
dias/mquina.

13
Encontre a formulao que d o lucro mximo.

Formulao matemtica

Max z 5x 1 4x 2 2x 3
s. a.
x 2 x 3 60
x 1 0,5x 2 0,25x 3 80
x 1 , x2, x3 0

Exemplo 4 (PROBLEMA DA SIDERRGICA)


O gerente de uma companhia siderrgica deve decidir quantos quilos de ao puro
e de sucata de metal devem ser usados em uma pea fundida para seus clientes.
Suponha que o custo do quilo de ao puro de R$ 3,00, e o de sucata de R$
6,00 (Porque as impurezas tm de ser retiradas). O cliente expressa um pedido de
necessidade mnima de 5 quilos, mas pode aceitar um lote maior se a siderrgica
exigir. O fornecimento de ao limitado a 4 quilos e o de sucata a 7 quilos. A
relao de sucata para ao puro no pode exceder a 7/8. As instalaes
industriais tm disponveis somente 18 horas de tempo de fundio; um quilo de
sucata requer duas horas de processamento e um quilo de ao 3 horas.
Formule um modelo matemtico para resolver o problema.

Formulao Matemtica

14

Min z 3x 1 6x 2
s. a.
x1 x 2 5
4

x1

x2 7
3x 1 2x 2 18
- 7x 1 8x 2 0
x1 ,x2 0

6. Programao Linear Mtodo Simplex

6.1. Introduo
Os desenvolvimentos na rea de Programao Linear (PL) iniciaram em
1930 quando surgiram os primeiros trabalhos individuais para resolver problemas
de formulao econmica, mas ainda no havendo uma forma de soluo bem
definida. Em 1941 surgiu o algoritmo de Hitchcook que resolveu o problema de
transporte. Em 1947 Dantzig desenvolveu o algoritmo Simplex que resolve o
problema genrico de PL.
Em 1951 Gale, Kuhn e Tucker desenvolveram a teoria da dualidade que
permitiu um salto considervel na eficincia da soluo de problemas de PL.
Atualmente, com o desenvolvimento da informtica e estudos na rea de
PL, temos condies de resolver problemas de grande porte, por exemplo, 5.000
variveis e 3.000 restries, para isto existem pacotes tais como: MPSX, TEMPO,
LINDO, GAMS e outros.

6.2 Mtodo Simplex


O conjunto de decises possveis, formado por um problema de PL, um
conjunto convexo limitado, logo este conjunto contm um sub-conjunto de pontos

15
chamados de vrtices. Pois pesquisando estes vrtices que o algoritmo Simplex
encontra a soluo tima do problema.
Analisando o grfico do exemplo 1 e procurando a soluo tima atravs
dos vrtices vamos encontrar a soluo tima no cruzamento das Eq 02 e Eq 04,
e o valor da soluo tima :
z = 148,125
x1 = 1,875
x2 = 3,375

6.3. Alguns aspectos gerais sobre a formulao


Conhecendo a formulao matemtica do problema de PL, pode ser
necessrio efetuar algumas modificaes para adapt-lo ao algoritmo Simplex
desejado, tais como:
Caso 1 - modificao no sentido da otimizao
n

cx
j1

(- c )x
j

j1

e vice versa.

Caso 2 - modificao no sentido da inequao


n

a
j1

ij

x j bi

(- a
j1

ij

)x j - b i

e vice versa.

Caso 3 converso de inequao em equao

16

j1

j1

n
a ij x j s i b i
a ij x j b i
j1

si 0

Varivel de folga

n
a ij x j - t i b i
Varivel de excesso.
a ij x j b i
j1
t i 0

Caso 4 Converso de equao em inequao

a
j1

ij

x j bi

equivalente :
n

j1

a ij x j b i e

a
j1

ij

x j bi

Caso 5 converso de varivel irrestrita em sinal em varivel no-negativa


Seja - xj ,
faa xj = xj+ - xj-,
onde xj+, xj- 0.

Caso 6 Converso de uma varivel limitada inferiormente em varivel nonegativa


Seja xj b 0
faa xj = xj + b
xj 0.

17
Caso 7 Restrio dupla (Range)
n

d i a ij x j b i

onde bi > di

j1

e equivalente :
n

a
j1

ij

x j si bi

si bi - di
si 0

6.4. Forma cannica


Todo PL pode ser representado da forma cannica, ao representar o PL
desta forma podemos visualizar uma soluo para o sistema que ela est
representando de forma bvia, s que muitas vezes para que possamos encontrar
esta estrutura que permite obter este tipo de soluo necessrio lanar mo de
recursos artificiais que no tem relao nenhuma com o problema original. Ser
considerado como problema padro para trabalhar daqui para frente o problema
que tiver uma Funo Objetivo (FO) linear de maximizao e as restries com
todas as equaes lineares. Para ser ainda um problema na forma cannica ter
de ter na matriz de restries uma partio formada pela matriz identidade que
seja uma base do sistema de equaes formado pelas restries.
Vamos colocar na forma padro o problema do Exemplo 3

Max z 5x 1 4x 2 2x 3
s. a.
x 2 x 3 60
x 1 0,5x 2 0,25x 3 80
x 1 , x2, x3 0

18
Como podemos observar a FO est na forma padro, mas as restries ainda
no. Para colocar as restries na forma padro, vamos usar o caso 3 e adicionar
as variveis de folga nas restries. Ento o problema fica:

Max z 5x 1 4x 2
s. a.
x2

2x 3
x 3 s1

x 1 0,5x 2 0,25x 3

60
s 2 80

x 1 , x 2 , x 3 , s1 , s 2 0
Alm de o problema estar na forma padro tambm existe uma partio da matriz
de restrio formada pelas colunas de s1 e s2 que uma identidade e base do
conjunto de restries. Essa formulao chamada cannica, portanto temos uma
soluo bvia para o problema que :
z = 0, x1 = 0, x2 = 0, x3 = 0, s1 = 60, s2 = 80.
Entretanto, nem todo problema to bem comportado como o do exemplo
anterior, podemos encontrar formulaes matemticas mais complicadas. Vamos
considerar o problema do Exemplo 3. Se o objetivo fosse minimizar os custos e a
preocupao de estoque fosse trocada pela preocupao de atender uma
demanda mnima total de 30 unidades dos produtos, a formulao ficaria a
seguinte:

Min z 5x 1 4x 2
s. a.
x1 x 2

2x 3
x 3 30

x 1 0,5x 2 0,25x 3 80
x 1 , x2, x3 0

O problema padro ficar da seguinte forma:

19

Max (- z) - 5x1 4x 2 - 2x3


s. a.
x 1 x 2 x 3 s1
x 1 0,5x 2 0,25x3

30
s 2 80

x 1 , x 2 , x 3 , s1 , s 2 0
Como podemos observar, no possvel obter uma partio do problema padro
acima que forme a matriz identidade; logo, no temos uma soluo bvia do
problema.
Para resolver o problema de encontrar uma soluo vivel para o problema
acima existem dois tipos de tcnicas:
-

Mtodo do M-grande: consiste em acrescentar uma varivel artificial a


cada uma das restries do problema que no tem uma soluo bvia, e
estas variveis tero na FO coeficientes muito grandes em proporo
aos demais e de sinal negativo. Desta forma, pretende-se que aps
encontrar uma soluo para o problema original estas variveis sejam
eliminadas.

Mtodo das duas fases: consiste, como no mtodo anterior, em colocar


uma varivel artificial em cada restrio onde no exista uma soluo
bvia, s que neste mtodo ser criada uma nova FO com o objetivo de
minimizar os valores das variveis artificiais e com isto zerar os seus
valores de forma a retir-las do problema e poder voltar a FO original.

7. Forma Tableau
A forma Tableau uma forma compacta de representar um problema de
programao linear (PPL). Essa forma muito til na resoluo manual destes
problemas, mas computacionalmente no muito vivel, pois necessrio manter
um nmero muito elevado de elementos na memria do computador, o que pode
inviabilizar a soluo de grandes problemas alm de facilitar a ocorrncia de erros
de clculos.

20
Para aplicar o mtodo Tableau o problema tem de estar na forma cannica,
sua aplicao , na prtica, uma aplicao organizada do mtodo de
transformao de Gaus Jordan na transformao do problema, que ser
representado como um sistema de equaes, onde as colunas que representam
as variveis com valores diferente de zero (variveis bsicas) so vetores
elementares.
A seguir, ser apresentado o problema do exemplo 3 que dado por:

Max z 5x 1 4x 2
s. a.
x2

2x 3
x 3 s1

x 1 0,5x 2 0,25x 3

60
s 2 80

x 1 , x 2 , x 3 , s1 , s 2 0
como um sistema de equaes que fica da seguinte forma:

z - 5x 1 - 4x 2 -

2x 3

x 2 x 3 s1
x 1 0,5x 2 0,25x 3

(1)

60

(2)

s 2 80

(3)

Uma soluo bvia para este sistema de equaes, como j vimos anteriormente,
dada por:
z = 0, x1 = 0, x2 = 0, x3 = 0, s1 = 60 e s2 = 80.
Para aumentar o valor de z e manter a igualdade da equao (1), temos 7
alternativas:
1) aumentar o valor de x1 ;
2) aumentar o valor de x2 ;
3) aumentar o valor de x3 ;
4) aumentar o valor de x1 e x2 simultaneamente;
5) aumentar o valor de x1 e x3 simultaneamente;
6) aumentar o valor de x2 e x3 simultaneamente;
7) aumentar o valor de x1, x2 e x3 simultaneamente;

21
As alternativas 1), 2) e 3) correspondem ao mtodo Simplex que sero estudadas;
as demais correspondem a mtodos no Simplex, estas no sero consideradas.
Como a alternativa 1) d o maior incremento em z por unidade de aumento
da varivel escolhida vamos adotar esta alternativa. Desta escolha temos que:
-

na linha (2) aumentando x1 o valor de s1 no ser alterado;

na linha (3) aumentando x1 o valor de s2 diminui ento temos que x1


80;

Portanto, podemos aumentar o valor de x1 no mximo em 80 unidades. Ento,


fazendo o valor de x1 = 80, pois ele promete um bom aumento de z para que x 1
possa assumir o seu novo valor, o s2 tem de passar a ser zero e, portanto, a nova
soluo, melhor que a anterior, :
z = 400, x1 = 80, x2 = 0, x3 = 0, s1 = 60 e s2 = 0.
Como na nova soluo a coluna da varivel bsica x1 no cannica, temos que
fazer com que esta coluna fique cannica para que a soluo continue sendo
bvia. Isto feito usando transformao de matriz como segue:
Como x1 assumiu o lugar de s2 na base, ento a coluna de x1 tem de ficar
equivalente coluna de s2 no sistema de equaes anterior. Para que isto
acontea, os coeficientes das variveis na equao (3) sero divididos pelo
coeficiente de x1 em (3) com o objetivo de tornar o coeficiente de x1 igual a 1 em
(3). Os passos seguintes so zerar o coeficiente de x1 em (2) e (1), que feito,
como por exemplo para (2), multiplicando (3) pelo negativo do coeficiente de x 1
em (2) e somando o resultado com (2), para obter o novo valor de (2). O mesmo
processo se repete para atualizar (1). Ento, a nova representao do sistema de
equaes para a soluo nova :

- 1,5x 2 - 0,75x 3
x2

5s 2 400

x 3 s1

x 1 0,5x 2 0,25x 3

(1)

60

(2)

s 2 80

(3)

Analisando o sistema de equaes acima, podemos verificar que para aumentar o


valor de z temos 3 opes:

22
1) aumentar o valor de x2 ;
2) aumentar o valor de x3 ;
3) aumentar o valor de x2 e x3 simultaneamente;
Novamente temos mais de uma alternativa que indica aumento de z, mas olhando
as opes disponveis podemos verificar que apenas as alternativas 1) e 2)
atendem ao Simplex e entre elas, a alternativa 1) a que indica maior aumento de
z por unidade aumentada, logo vamos escolher a alternativa 1) de onde temos
que:
-

na linha (2) aumentando x2 o valor de s1 diminui ento temos que x2


60;

na linha (3) aumentando x2 o valor de x1 diminui ento temos que x2


160;

Ento o valor mximo de x2 ser de 60 unidades e a nova soluo ser:


z = 490, x1 = 50, x2 = 60, x3 = 0, s1 = 0 e s2 = 0.
Vamos colocar o problema novamente na forma cannica levando em conta agora
a nova soluo bsica. Transformando o sistema de equaes anterior, lembrando
que x2 entra na base no lugar de s1, temos:

0,75x3 1,5s1 5s 2 490

x2
x1

x3

s1

(1)

60

(2)

0,25x3 - 0,5s1 s 2 50

(3)

Como mais nenhuma varivel pode ser aumentada de forma que o valor de z
aumente, a soluo encontrada a soluo tima do exemplo 3, ou seja, a fbrica
vai produzir:
-

50 unidades de x1;

60 unidades de x2

e com esta produo ter um lucro de R$ 490,00.

23
E o produto x3 no ser produzido e ir consumir todos os recursos de mquina e
disponibilidade de estoque.

7.2. Montagem do Tableau


Vamos montar o Tableau a partir do exemplo 3. A sua formulao
matemtica, como j foi visto anteriormente, a seguinte:

Max z 5x 1 4x 2
s. a.
x2

2x 3
x 3 s1

x 1 0,5x 2 0,25x 3

60
s 2 80

x 1 , x 2 , x 3 , s1 , s 2 0
o Tableau correspondente a esta formulao :
Tableau 1
xB

x1

x2

x3

s1

60

s2

0,5

0,25

80

-5

-4

-2

Algoritmo Simplex (2 fases) Maximizao


Passo 1 : Representar o problema na forma cannica;
a) se o problema possui soluo inicial vivel, faa Fase = 2 e v para o
passo 2;
b) caso contrrio, inclua as variveis artificiais e monte a FO artificial.
Faa Fase = 1 e v ao passo 2.
Passo 2 : Monte o Tableau.

24
Passo 3 : Verifique se existe algum ck < 0 (ck o coeficiente de xk na FO, linha de
z). Em caso negativo, v ao passo 6, seno escolha uma varivel xk a
entrar na base e v ao passo 4.
Passo 4 : Calcule
r = br/ark = min {bi/aik | aik >0} (r indica a varivel bsica a sair da base)
se no existir aik > 0, a soluo ilimitada. PARE.
Passo 5: Pivotao
aij := aij (arj.aik)/ark , i r e j k;
bi := bi (br.aik)/ark , i r;
cj := cj (arj.ck)/ark , j k;
z := z (br.ck)/ark ;
aik := aik/ark ;
ck := ck/ark ;
arj := arj/ark , j k;
br := br/ark ;
ark := 1/ark ,
volte ao passo 3.
Passo 6 : Se Fase =1, verifique se as variveis artificiais so nulas, caso negativo,
no existe soluo vivel. PARE. Caso contrrio, troque a FO artificial
pela FO original, faa Fase = 2 e v ao passo 3.
Se Fase = 2, a soluo tima. PARE.
Conhecendo os passos algortmicos para resolver o PPL usando o Tableau,
vamos encontrar agora a soluo tima do exemplo 3 usando o algoritmo acima.

25

Exemplo 3:
Tableau 1
xB

x1

X2

x3

s1

60

s2

0,5

0,25

80

80/1 = 80

-5

-4

-2

Na clula marcada, que a intercesso da linha da varivel que sai da base,


neste caso s2, com a coluna da varivel que entra na base, neste caso x 1,
encontra-se o valor do piv, que neste caso 1. Como existe cj < 0, o que indica
que podemos aumentar o valor de z, vamos atualizar o Tableau de acordo com a
nova base que : s1 e x1. x1 entra no lugar de s2 que sair da base. Logo, o novo
Tableau ser:
Tableau 2
xB

s2

x2

x3

s1

60

60/1

x1

0,5

0,25

80

80/0,5

-1,5

-0,75

400

Como existe c2 < 0 que indica x2 para entrar na base e existe uma varivel para
sair da base que s1, vamos transformar o Tableau 2 segundo a nova base que
x2 e x1. Logo, o novo Tableau :

26

Tableau 3
xB

s2

s1

x3

x2

60

x1

-0,5

-0,25

50

1,5

0,75

490

Como no existe cj < 0, a soluo encontrada tima:


z = 490, x1 = 50, x2 = 60, s1 = 0 e s2 = 0
Considerando o exemplo 4 temos a seguinte representao cannica:

Min (-z) - 3x1 - 6x 2


s. a.
x 1 x 2 - s1

v1 5
s2

x1
x2

4
s3

3x1 2x 2

7
s4

- 7x1 8x 2

18
s5

x 1 , x 2 , t 1 , s 2 , s3 , s 4 , s5 , v1 0
Tableau 1 (Fase = 1)
xb

x1

x2

t1

V1

-1

5/1

S2

4/1

S3

**

27
S4

18

18/3

S5

-7

**

(-w)

-1

-1

-5

(-z)

Pela FO W entra x1 e pela escolha do mnimo sai o s2.


Tableau 2 (Fase = 1)
xb

s2

x2

S1

v1

-1

-1

1/1

x1

**

s3

6/1

s4

4/2

s5

28

28/8

(-w)

-1

-1

**

(-z)

-3

-12

Pela FO W entra x2 e pela escolha do mnimo sai o v1.

Tableau 3 (Fase = 1)
xb

s2

v1

s1

x2

-1

-1

x1

s3

-1

s4

-1

-2

28
s5

15

-8

20

(-w)

(-z)

-6

-18

Como a FO w zerou e o v 1 saiu da base, a linha da FO w e a coluna da varivel v1


so excludas do Tableau. O Tableau sem a FO w (artificial) sem a varivel
artificial v1 fica da seguinte forma:
Tableau 4 (Fase = 2)
xb

s2

s1

x2

-1

-1

x1

s3

s4

-1

s5

15

20

(-z)

-18

Como no existe cj < 0 na linha (-z) a soluo


z = 18, x1 = 4, x2 = 1, s1 = 0, s2 = 0, s3 = 6, s4 = 4, s5 = 20
uma soluo tima para o problema da metalrgica.

29

8. Dualidade
Consideramos como Duais dois PPLs, que passaremos a denominar de
Primal e Dual, se atenderem s seguintes condies:
Teorema da Dualidade: os nicos inter-relacionamento possveis entre problemas
primais e duais.
a) Possurem FOs simtricas, ou seja, se o Primal for de minimizao, o Dual
ser de maximizao e vice versa.
b) Se a restrio for de no Primal no Dual ser de e vice versa.
c) O vetor de recursos do Primal ser o vetor de custos de Dual e vice versa.
d) O nmero de variveis do Primal ser o nmero de restries do Dual e
vice versa.
e) A matriz de restrio do Primal a transposta da matriz do Dual e vice
versa.
f) Se o Primal tiver soluo tima, o Dual tambm o ter e seus valores de
suas FOs sero os mesmos.
Exemplo:
Primal

Dual

Min z = 12x1 + 8x2

Max u = 10d1 + 6d2 +4d3

s. a.

s. a.
x1 + 2x2 10

d1 - d2

12

30
-x1 + x2 6

2d1 + d2 + d3

x2 4

d1, d2, d3 0

x1, x2 0

Para resolver o problema dual s usar o algoritmo Simplex.


Economicamente, o Dual representa a otimizao dos recursos existentes,
j que ele se preocupa em otimizar uma FO cujos coeficientes so formados pelo
vetor de recursos.

9. Problema de Transporte
O problema de transporte tem como objetivo resolver os problemas de
transportar recursos de m origens para n destinos. A capacidade a1, a2, ... , am
origens (centros fornecedores) e

b1, b2, ... , bn dos destinos (centros

consumidores) so conhecidas. Os custos cij de transporte, da origem i para o


destino j, so conhecidos e a quantidade x ij transportada o que queremos saber.
Logo, o modelo abaixo representa a situao problema:
m

Min z c ij x ij
s. a.
i 1 j1
n

x
j1

ij

x
i 1

ij

ai

(i 1, ..., m)

bj

(j 1, ..., n)

x ij 0

Ao se somarem as m restries de oferta temos:


m

i 1 j1

x ij a i
i 1

31
e as n de demanda temos:
m

i 1 j1

x ij b j
j1

portanto
m

i 1

ai =

j1

bj

Exemplo
Uma fbrica produz um produto em quatro cidades A, B, C e D, o produto
destina-se a trs centros consumidores I, II e III. Sabe-se que:
a) as cidades A, B, C e D dispem respectivamente de 30, 20, 50 e 10 mil
unidades.
b) Os centros de consumo I, II e III necessitam respectivamente de 20, 40 e 50
mil unidades.
c) Os custos em mil R$, por mil unidades, de transporte de cada cidade para
cada centro dado pela tabela abaixo:
Cidade / Centro

II

III

10

12

9.1. Soluo Inicial


Como no mtodo Simplex, este tambm precisa de uma soluo inicial para
resolver o problema, para isto existem vrios mtodos, mas vamos verificar
apenas dois, quais sejam:

32
Mtodo do Custo Mnimo
Neste mtodo, temos:
1) Colocar os custos de transporte em um quadro, como o quadro acima.
2) Encontrar a clula, com oferta e demanda disponvel, de menor custo. Caso
no encontre nenhuma, FIM.
3) Alocar a esta clula o maior valor de transporte possvel e descontar este
valor da oferta e demanda. Volte ao passo 2).
Vamos fazer uma aplicao do exemplo acima:

Cidade / Centro
A

I
1

20

II

III

Oferta

30 / 10

10

12

20

50

10

Demanda

20 / 0

40

50

Como tnhamos dois com o mesmo custo para escolher pegamos o primeiro A I
e alocamos a ele 20 unidades que era o mximo possvel. Como ainda existe
demanda ou oferta disponvel, vamos encontrar um novo custo.

Cidade / Centro

II

III

Oferta

33
A

20

10

30 / 10 / 0

20 / 0

10

12

20

10

Demanda

20 / 0

40 / 30 / 20 / 0

40

50 / 10 / 0

10

10 / 0

50 / 40 / 0

A soluo inicial encontrada transportar


20 unidades de A para I;
10 unidades de A para II;
20 unidades de B para II;
10 unidades de C para II;
40 unidades de C para III;
10 unidades de D para III;
Este mtodo no garante que a soluo inicial obtida seja a soluo tima.

Mtodo de Vogel
Este mtodo, como o anterior, tambm para encontrar a soluo inicial do
problema e desta forma no garante a soluo tima.
Neste mtodo, temos:
1) Montar uma tabela com os custos do problema.
2) Encontrar a diferena entre o menor e o penltimo menor de cada linha e
cada coluna. Caso no exista mais candidatos PARE.
3) Na linha ou coluna que ocorer a maior diferena alocar na clula de menor
custo o maior valor possvel e descontar este valor da demanda e da oferta

34
correspondente e eliminar a linha ou coluna cuja demanda ou oferta seja
zero. Voltar ao passo 2).
Aplicando o mtodo:
Passo1
Cidade /

Centro
A

25

Maior dif.

II

III

Oferta

30

10

12

20

50

10

Demanda

25

35

50

Maior dif.

II

III

Oferta

30 5

20

Passo2
Cidade /
Centro
A

25

20

Maior dif.

10

12

50

10

Demanda

25 0

35 / 25

50

Maior dif.

35

Passo3
Cidade /

Centro
A

25

II

III

Oferta

Maior dif.

30 5

10

12

20

20 0

30

50

10

Demanda

25 0

35

50 30

Maior dif.

II

III

Oferta

30 5

Passo4
Cidade /
Centro
A

25

Maior dif.

10

12

20

20 0

30

50 20

10

Demanda

25 0

35

50 30 0

Maior dif.

36

Passo5
Cidade /

Centro
A

II
25

III
5

Oferta

Maior dif.

30 5 0

10

12

20

20 0

30

50 20

10

Demanda

25 0

35 30

50 30 0

Maior dif.

II

III

Oferta

30 5 0

10

Passo6
Cidade /
Centro
A

25

5
12

Maior dif.

20

20 0

30

50 20 0

10 0

10

20

10

Demanda

25 0

35 30 20 0

50 30 0

Maior dif.

37
Soluo:
De A para I 25; 1
De A para II 5; 2
De B para III 20; 9
De C para II 20; 4
De C para III 30; 2
De D para II 10; 2
Z = 1*25 + 2*5 + 9*20 + 4*20 + 2*30 + 2*10 = 395

9.2. Como achar a soluo tima


Como foi feito no Simplex, aqui tambm ser testada se, partindo de uma
soluo vivel j conhecida, existe alguma varivel fora do conjunto escolhido que
possa melhorar o valor de z.

Min z c ij x ij
s. a.
i 1 j1
n

x
j1

ij

a i ( u i ) (i 1, ..., m)

ij

b j ( v j ) (j 1, ..., n)

x
i 1

x ij 0

Multiplicando cada equao de oferta por u i e cada equao de demanda por vj,
temos:

38

z c ij x ij u i
i 1 j1

i 1

x ij
j1

j1

i 1

i 1

j1

v j x ij u i a i v j b j

Logo

z (c ij - u i - v j ).x ij u i
i 1 j1

i 1

x ij
j1

j1

i 1

i 1

j1

v j x ij u i a i v j b j

Conclui-se, portanto, que


cij ui vj = 0
Para as m + n 1 variveis bsicas. E para diminuir o valor de z temos que
escolher para entrar na base uma varivel cujo valor correspondente
cij ui vj < 0
ou o valor acima mais negativo dentre os valores acima.
Para encontrar os valores de ui e vj temos que resolver o sistema de equaes
criado a partir das equaes
cij ui vj = 0
que correspondem s variveis da base escolhida a partir dos mtodos de custo
mnimo ou de Vogel.
Para escolher a varivel a sair da base, temos que aumentar o valor da
varivel escolhida de forma que o equilbrio da oferta e o da demanda seja
mantido.
Usando os clculos acima, vamos verificar se a soluo inicial encontrada
pelo mtodo de custo mnimo tima. Para aplicar estes clculos vamos usar a
tabela de custos com a soluo inicial alocada nas clulas de custo onde existe
algum transporte indicado. Logo, a tabela fica de seguinte forma:

39
Cidade / Centro
A

I
1

II
25

III

Oferta

30

20

10

12

20

10

Demanda

25

35

40

50

10

10

50

Para testar se esta soluo acima tima temos que verificar se os valores c ij ui
vj so todos positivos, caso exista algum negativo temos que fazer uma troca de
base. Ento, o primeiro passo encontrar os valores de u i e vj calculando cij ui
vj para as variveis bsicas,
xA,I cA,I uA vI = 0

1 uA vI = 0

xA,II cAII uA vII = 0

2 uA vII = 0

xB,II cB,II uB vII = 0 12 uB vII = 0


xC,II cC,II uC vII = 0 4 uC vII = 0
xC,IiI cC,III uC vIII = 0 2 uC vIII = 0
xD,III cD,III uD vIII = 0 1 uD vIII = 0
Como temos 7 variveis e 6 restries, temos que dar um valor inicial para uma
das variveis para viabilizar a soluo do sistema de equaes, ento faremos u A
= 0. Logo, com este valor temos:
xA,I cA,I uA vI = 0

1 uA vI = 0 vI = 1;

com uA = 0, temos:
xA,II cAII uA vII = 0

2 uA vII = 0 vII = 2;

com vI = 1, temos:
xB,II cB,II uB vII = 0 12 uB vII = 0 uB = 10;

40
com uC = 2, temos:
xC,II cC,II uC vII = 0 4 uC vII = 0 uC = 2;
com vIII = 0, temos:
xC,IiI cC,III uC vIII = 0 2 uC vIII = 0 vIII = 0;
com vII = 2, temos:
xD,III cD,III uD vIII = 0 1 uD vIII = 0 uD = 1.
Agora j temos os valores de ui e vj ento s calcular os cij ui vj
para as variveis fora da base para verificar se existe alguma varivel que pode
aumentar o valor de z, ou seja, se algum dos valores calculados negativo.
Para
xA,III cA,III uA vIII 3 0 0 = 3 no candidato a entrar na
base;
xB,I cB,I - uB - vI 10 10 1 = -1 candidato a entrar na base;
xB,III cB,III uB vIII 9 10 0 = -1 candidato a entrar na base;
xC,I

cC,I uC vI

321=0

xD,I

cD,I uD vI 5 1 1 = 3

no candidato a entrar na

base;
no candidato a entrar na

base;
xD,II cD,II uD vII 2 1 2 = -1

candidato a entrar na base;

temos trs variveis que se forem aumentadas de valor aumentam o valor de z.


Como todas tm o mesmo valor para cij ui vj, podemos escolher qualquer uma
delas, vamos escolher para entrar na base xB,I, para aumentar o valor desta
varivel a nova tabela :

Cidade / Centro

II

III

Oferta

41
A

25-20

5+20

30

10

+20

12

20-20

20

10

Demanda

25

35

40

50

10

10

50

Para aumentar o valor de xBI tivemos que diminuir este valor de xBII e xAI e
aumentar em xAII de forma que o equilbrio das ofertas e das demandas fossem
mantidos. Ento, o novo quadro fica da seguinte forma:

Cidade / Centro

II

10

20

25
12

III

Oferta

30

20

10 -10

40+10

50

+10

10-10

10

Demanda

25

35

50

Fazendo os clculos para manter o equilbrio de oferta e demanda, vamos


encontrar duas variveis com valor zero. Como ocorre no Simplex, tambm
podemos trocar apenas uma varivel de cada vez, isto quer dizer que temos de
escolher uma das duas variveis, xCII ou xDIII, para sair da base. Vamos escolher
xCII para sair da base, ento, temos o seguinte quadro:

Cidade / Centro

II

III

Oferta

42
A

10

20

25
12

Demanda

25

10
35

30

20

50

50

10

50

Agora vamos verificar se a nova soluo bsica tima. Fazendo uA = 0,


temos:
xA,I cA,I uA vI = 0

1 uA vI = 0 vI = 1;

xA,II cAII uA vII = 0

2 uA vII = 0 vII = 2;

xB,I cB,I uB vI = 0

10 uB vII = 0 uB = 8;

xC,III cC,III uC vIII = 0 2 uC vIII = 0 vIII = 0;


xD,III cD,III uD vIII = 0 1 uD vIII = 0 uD = 1.
Calculado os valores de ui e vj vamos calcular os cij ui vj para verificar se existe
mais alguma varivel que aumenta o valor de z.
Para
xA,III cA,III uA vIII 1 0 0 = 1 no candidato;
xB,II cB,II uB vII

12 8 2 = 2 no candidato;

xB,III cB,III uB vIII 9 8 0 = 1 no candidato;


xC,I cC,I uC vI

321 =0

no candidato;

xD,I cD,III uD vI

511 =3

no candidato;

como no existe nenhum candidato a entrar na base, a soluo encontrada


tima, ento temos:
-

transportar 5 mil unidades da fbrica A para o centro consumidor I;

transportar 25 mil unidades da fbrica A para o centro consumidor II;

43
-

transportar 20 mil unidades da fbrica B para o centro consumidor I;

transportar 50 mil unidades da fbrica C para o centro consumidor III;

transportar 10 mil unidades da fbrica D para o centro consumidor II;

o custo mnimo para transportar estes produtos :


z = 1x5 + 2x25 + 10x20 + 2x50 + 2x10 = 375

10. Problema de Designao


Se no problema de transporte forem introduzidas as restries:
a) nmero de origens = nmero de destinos (m = n);
b) capacidade das origens = 1 ( ai = 1 para todo i);
c) capacidade dos destinos = 1 (bj = 1 para todo j).
teremos, ento, o modelo de designao:
m

Min z c ij x ij
s. a.
i 1 j1
n

x
j1

ij

1 (i 1, ..., n)

ij

1 (j 1, ..., n)

x
i 1

x ij 0 ou 1
Logo,

44
1, se a origem i for designada para atender o destino j
x ij
0, caso contrrio

Para estudar este problema, analisamos apenas a matriz formulada pelos


coeficientes da FO da matriz de eficincia

como chamada a matriz que

representa os coeficientes da FO do problema.


O processo iterativo baseia-se no seguinte teorema:
Ao se adicionar uma constante a cada elemento de uma linha ou coluna
qualquer da matriz de eficincia de um problema de designao, a soluo tima
da matriz alterada ser a soluo tima da matriz inicial.
Seja ki a constante somada a cada elemento da linha i ( i = 1, ..., n), temos
ento:
n

z k (c ij k 1 )x 1j (c 2j k 2 ) x 2j ... (c nj k n ) x nj
j1

j1

j1

j1

j1

c ij x ij k 1 x 1j ... k n x nj
i 1 j1

como
n

i 1

j1

j1

x 1j x 2j ... x nj 1
temos

zk

i 1 j1

c ij x ij 1 k i
i 1

Portanto
n

zk z ki
i 1

Logo, pela equao acima podemos concluir que transformando a matriz de


eficincia atravs de soma podemos alterar o valor de z.
Exemplo 1:

45
O gerente de produo de uma fbrica tem de alocar quatro empregados
em quatro postos de trabalho diferentes. Sabe-se que a eficincia de cada
empregado diferente para cada posto de trabalho devido ao seu treinamento. A
eficincia, medida em pea por hora, de cada empregado em cada mquina
dada pela tabela abaixo:

Quadro 1:
1

24

13

10

25

23

28

10

17

15

Ajude o gerente a encontrar a alocao mais eficiente para os seus


empregados.
Algoritmo
1) Monte um quadro que permita minimizar a FO.
2) Subtraia o menor valor de cada linha de cada elemento da linha.
3) Subtraia o menor valor de cada coluna do quadro resultante do passo 2).
4) Trace uma linha nas linhas e colunas de forma a cobrir todos os zeros com
o nmero mnimo de traos possveis. Caso o nmero de passos traados

46
seja igual ao nmero de origens ou destinos (alocaes) a soluo tima.
Faa a alocao e PARE.
5) Como a alocao ainda no tima, ento escolha o menor elemento da
matriz que ainda no est coberto por uma linha e subtraia-o de todos que
ainda no foram cobertos e adicione-o onde houver cruzamento de linhas.
Volte ao passo 4).
Soluo do exemplo 1
Quadro 2: Como nosso modelo est preparado para resolver problemas de
minimizao vamos multiplicar a matriz por 1, pois queremos maximizar
a eficincia.

-5

-24

-13

-7

-10

-25

-3

-23

-28

-9

-8

-5

-10

-17

-15

-3

Quadro 3:
1

19

11

17

K = -24

15

22

K = -25

19

20

23

K = -28

14

K = -17

Quadro 4:

47
1

19

15

15

20

19

18

21

12

K=0

K=0

K=2

K=2

19

15

15

20

19

18

21

12

Quadro 5:

Como o nmero mnimo de linha para cobrir todos os zeros igual ao nmero de
origens temos uma alocao tima que :
1

19

15

15

20

19

18

21

48
D

O empregado A executar a tarefa 2;

O empregado B executar a tarefa 4;

O empregado C executar a tarefa 1;

O empregado D executar a tarefa 3;

12

Exemplo 2
O gerente pretende alocar quatro tarefas (1, 2, 3 e 4) a quatro mquinas (A,
B, C e D) com produtividades iguais mais custos de manuteno diferentes. Os
seus custos de manuteno esto na tabela abaixo:
1

Encontre a alocao ideal para as mquinas.

11. Programao Inteira: Algoritmo Branch & Bound

49
Alguns problemas de PL exigem que a resposta a um determinado
problema seja uma soluo com todos ou alguns valores inteiros, como por
exemplo se a resposta for o nmero de carros produzidos por uma montadora
bvio que a montadora no poder entregar 20,3 carros de um determinado tipo.
Para resolver este tipo de problema que surgiram os algoritmos que encontram a
soluo inteira de um PPL. O mais usado o algoritmo Branch & Bound. Para
entender a aplicao deste algoritmo, vamos acompanhar um exemplo.
Exemplo:
Max z = 2x1 + x2
s. a.
x1 + 3x2 13

(P-1)

-x1 + 7x2 8
x1, x2 0

P-1
Z = 15,5
X1 = 6,7
X2 = 2,1
x1 6

x1 7

P-2

P-3

Z = 14,33
X1 = 6
X2 = 2,33

x2 2

Invivel

x2 3

50
P-4

P-5

Z = 14
X1 = 6
X2 = 2

Z = 11
X1 = 4
X2 = 3

O algoritmo consiste em dividir cada problema em dois, criando um novo


problema. Um dos problemas ser o anterior, adicionando uma restrio limitada
ao valor inteiro menor mais prximo, e o outro, uma restrio limitada ao valor
inteiro maior mais prximo. Este processo se repete at que no existam mais
variveis candidatas a serem inteiras e no inteiras.
Como podemos observar, os problemas P-4 e P-5 apresentam solues
inteiras, mas o P-4 tem o maior valor de z. Logo, P-4 que d a soluo tima do
PPL inteiro.
A seguir sero apresentados os respectivos problemas P-2, P-3, P-4 e P-5:
P-2
Max z = 2x1 + x2
s. a.
x1 + 3x2 13
-x1 + 7x2 8
x1

x1, x2 0

P-3
Max z = 2x1 + x2
s. a.
x1 + 3x2 13

51
-x1 + 7x2 8
x1

x1, x2 0

P-4
Max z = 2x1 + x2
s. a.
x1 + 3x2 13
-x1 + 7x2 8
x1

6
x2 2

x1, x2 0

P-5
Max z = 2x1 + x2
s. a.
x1 + 3x2 13
-x1 + 7x2 8
x1

6
x2 3

x1, x2 0

52
12. Programao Inteira Binria: Algoritmo de Balas

Em alguns casos, a soluo do problema de programao linear necessita


de respostas do tipo sim ou no, ou seja, a varivel assume valor 0 ou 1. Como
por exemplo, quando a deciso a ser tomada do tipo executar ou no executar
determinada tarefa.
Todo nmero inteiro pode ser escrito da seguinte forma:
y

2 .x
i

i 1

, com x 1 0 ou 1

por exemplo, se
0 y 13
ento
y = 20x0 + 21x1 + 22x2 + 23x3
ou
y = 1x0 + 2x1 + 4x2 + 8x3
assim para
y = 5, temos:
x0 = 1, x1 = 0, x2 = 1 e x3 = 0.
Em 1963, Egon Balas descobriu um algoritmo para resolver o problema de
programao linear inteira binria, que chamado de aditivo, por s necessitar de
operaes aditivas. Este algoritmo resolve o problema:
n

Max z c j x j
S. a.

j 1

a
j1

ij

x j b i para i 1, ..., m

x j 0 ou 1

para j 1, ..., n

Os passos do algoritmo de Balas so:

53
Passo 1: Considere todos os cij positivos, caso algum no seja positivo troque o xj
correspondente por xj = 1 xj.
Passo 2: A seguir, reescreva as equaes de modo que:
c1 c2 . . . cn 0
Passo 3: Gere uma soluo parcial fixando as k 1as variveis e deixando as n-k
livres. Uma soluo parcial completada quando atribumos valores s
n-k variveis que estavam livres. Uma soluo parcial gera dois outros
problemas quando atribumos:
Xk+1 = 1 e xk + 1 = 0.
Passo 4: Verifique a viabilidade da soluo proposta, calculando
k

b i a ij x j
j1

j k 1

ij

xj

onde as variveis de k + 1 at n so livres.


No passo 4 quando aij 0 fazemos xj = 1 e quando aij > 0 fazemos xj = 0.
Este tipo de anlise nos garante a previso mais otimista de utilizao dos
recursos. Uma forma rpida de verificar esta condio fazendo:
k

b i - a ij x j
j1

min(a

j k 1

ij

,0)

Sempre que esta condio for violada, ser necessrio ramificar, ou seja, testar a
segunda opo do problema.
Exemplo 1:

Max z = - 2x 1 9x 2 8x 3 x 4
s.a.
3x 1 3x 2 - 6x 3 2x 4 1
x 1 + 2x 2 + 3x 3 x 4 5
x j 0 ou 1.
Passo 1 : x1 = 1- x1

54
Passo 2:

Max z = 9x 2 8x 3 2x1, x 4 - 2
s.a.
3x 2 - 6x 3 - 3x1, 2x 4 - 2
2x 2 3x 3 - x 1, x 4 4
x j 0 ou 1.
Passos 3 e 4 esto no quadro abaixo:
k

xk

zk

b i - a ij x j
j1

ij

,0)

Vivel?

-5

-9

Sim

-1

Sim

-3

Sim

-1

-1

Sim

Sim

Sim

Sim

-1

No

Sim

Sim

15

17

18

17

k = 1 j = 2, k = 2 j = 3, k = 3 j = 1 e k = 4 j = 4.

zk o valor da k-sima deciso.

min(a

j k 1

Onde:

55

Como j = 1 k = 3 e fazendo x1= 1 = 1 x1, temos que x1 = 0


Ento a soluo tima do problema :
z = 17, x1 = 0, x2 = 1, x3 = 1 e x4 = 0.

Вам также может понравиться