Sei sulla pagina 1di 29

Disciplina: Pesquisa Operacional em Engenharia 1.

Aula 4
Programao Linear (Reviso).
(Captulo 3 Hillier & Lieberman)

Professor: Reinaldo C. Garcia


email: rcgarcia@unb.br

Engenharia de Produo
Faculdade de Tecnologia - Universidade de Braslia

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Reviso (Aulas 1, 2, 3).

Histria de P.O. (aplicaes militares para civis).


Simplex: Dantzig (Dcada de 40).
Formulao de Problemas e soluo: modelo
linear (sempre que possvel), soluo grfica,...
Implementao de PL (Excel, SAS e Matlab).
Implementao de Programao Linear (PL) em
Excel.
MatLab Comandos de PL e o OptSolver do SAS.
OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Problema: Escala de Pessoal (Cap. 3 Hillier & Lieberman).
A Union Aiways est acrescentando mais vos de/para seu
aeroporto central porm precisa contratar mais pessoal. A
gerncia necessita controlar os custos e fornecer um nvel de
servio adequado. Para isso, uma equipe de P.O. est
estudando como programar as escalas desses agentes para
fornecer bons servios aos clientes com o menor custo
possvel em termos de pessoal.

OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Problema: Escala de Pessoal (Cap. 3 Hillier & Lieberman).
A partir da escala de vos, foi realizada uma anlise do
nmero mnimo de agentes de atendimento que precisam
estar em servio em diferentes horas do dia. Clusulas
contratuais com os sindicatos determinam que os agentes
podem trabalhar cinco dias por semana em turnos de 8 horas
e os turnos autorizados so:
Turno 1: 6h 14h

Turno 2: 8h 16h

Turno 4: 16 h meia noite.

OR em Engenharia 1: Aula 4.

Turno 3: 12h 20h

Turno 5: 22h 6h

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Problema: Escala de Pessoal (Cap. 3 Hillier & Lieberman).
Alm disso o seguinte mnimo (pelo menos) nmero de
pessoal deve satisfazer a escala de acordo com o horrio:
das 6 s 8 hrs. da manh: 48 agentes necessrios; das 8 s 10
hrs. da manh: 79 agentes necessrios; das 10 s 12 hrs. (meiodia) da manh: 65 agentes necessrios; das 12 s 14 hrs.: 87
agentes necessrios; das 14 s 16 hrs. da manh: 64 agentes
necessrios.
Das 16 s 18 hrs.: 73 agentes necessrios; das 18 s 20 hrs.: 82
agentes necessrios; das 20 s 22 hrs.: 43 agentes necessrios;
das 22 s 24 hrs. (meia-noite): 52 agentes necessrios; das 24 s
6 hrs. da manh: 15 agentes necessrios.
OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Problema: Escala de Pessoal.

OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Problema: Escala de Pessoal (Cap. 3 Hillier &
Lieberman).

OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema: Escala de Pessoal.
Minimizar Z = 170 x1+ 160 x2 + 175 x3 + 180 x4 + 195 x5

OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


(Baseado no Livro do Harvey Wagner, Principles of
Operations Research, Prentice Hall, 2nd. Edition, 1975)

Problema de seleo de Rotas (Route Selection Problem).

Perguntas a serem respondidas:


Qual a rota que possui o menor custo do n 1 ao n 5 ?
Qual o custo da rota que tem o menor custo ?
Aplicaes (vrias) :American Airlines, Correio, Vale do Rio
Doce,
9
OR em Engenharia 1: Aula 4.

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).
Perguntas para serem resppondidas:
Qual a rota que possui o menor custo do n 1 ao n 5 ?
Qual o custo da rota que tem o menor custo ?

Primeira rota (trivial): 1

OR em Engenharia 1: Aula 4.

5.

10

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).
Perguntas para serem resppondidas:
Qual a rota que possui o menor custo do n 1 ao n 5 ?
Qual o custo da rota que tem o menor custo ?

Primeira rota (trivial): 1


Segunda rota: 1

5.

5.
OR em Engenharia 1: Aula 4.

11

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).
Perguntas para serem resppondidas:
Qual a rota que possui o menor custo do n 1 ao n 5 ?
Qual o custo da rota que tem o menor custo ?

Primeira rota (trivial): 1


2
3
4
5.
Segunda rota: 1
5.
Adicionando s variveis para as duas rotas j obtidas, obtm-se a
figura acima.
OR em Engenharia 1: Aula 4.

12

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).
Perguntas para serem resppondidas:
Qual a rota que possui o menor custo do n 1 ao n 5 ?
Qual o custo da rota que tem o menor custo ?

Primeira rota (trivial): 1


Segunda rota: 1
5.

OR em Engenharia 1: Aula 4.

5.

13

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).
Perguntas a serem respondidas:

Qual a rota que possui o menor custo do n 1 ao n 5 ?

Qual o custo da rota que tem o menor custo ?


OR em Engenharia 1: Aula 4.

14

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).

Funo Objetivo:
Minimizar

c12 x12 +c13 x13 + c14 x14 + c15 x15 +


+ c23 x23 + c24 x24 + c25 x25 +
+ c34 x34 + c35 x35 +
+ c45 x45
OR em Engenharia 1: Aula 4.

15

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).

Funo Objetivo:
Minimizar

c
i 1 j i 1

e restries:

s.a.

ij ij

x12 + x13 + x14 + x15 = 1


- x12 + x23 + x24 + x25 = 0
- x13 - x23 + x34 + x35 = 0
- x14 - x24 - x34 + x45 = 0

A adio da restrio de que o flow de todos os arcos entrando no n 5


tem de ser igual a 1 seria redundante.
OR em Engenharia 1: Aula 4.

16

Pesquisa Operacional em Engenharia 1: Aula 4.


Problema de seleo de Rotas (Route Selection Problem).
Funo Objetivo:
4

Min.

c
i 1 j i 1

ij ij

s.a. x12 + x13 + x14 + x15 = 1


- x12 + x23 + x24 + x25 = 0
- x13 - x23 + x34 + x35 = 0
- x14 - x24 - x34 + x45 = 0
Pode ser demonstrado que possvel obter a soluo tima em
que quaisquer dos xij tem valor de 0 (zero) ou 1 (um). Portanto, por
exemplo, se x13 = x35 = 1, e todos os outros xij assumem valores 0
(zero), isto significa que a rota tima dada por (1, 3) e (3, 5).
OR em Engenharia 1: Aula 4.

17

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Implementao de Programao Linear (PL) em Excel.
MatLab Comandos de PL e o OptSolver do SAS.

OR em Engenharia 1: Aula 4.

18

Pesquisa Operacional em Engenharia 1: Aula 4.


Implementao de Programao Linear (PL) em Excel.
Formule o Modelo em uma planilha.
clulas de dados.
nome de faixa: nome descritivo dado a um bloco de
clulas.

quais so as decises a serem tomadas.


quais so as restries sobre as decises.
qual a medida de desempenho global para estas
usando o Solver do Excel -decises (lucro...).

Se estiver usando o Solver do Excel pela primeira


vez, clique em Add-in e escolha solver para ele ser
instalado.
OR em Engenharia 1: Aula 4.

19

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Para o problema da Wyndor Glass Co.

As taxas de produo nas Clulas C12 e D12 (quanto ser


produzido de janelas e portas) => inicialmente valor 0 (zero)
variveis de deciso, clulas variveis.
Entre com os dados de vendas, preos, (clulas C4 e D4), de
horas para produzir em cada fbrica (C7:D10) e disponveis
(F7:G9).
Nmero total de horas de produo disponvel para cada
fbrica., clulas E7, E8 e E9 => E7=C7*C12+D7*D12,....
estas clulas so chamadas clulas de sada (clculo direto ou aplique
SUMPRODUCT(C7:D7;C12:D12), OU SOMARPRODUTO(C7:D7;C12:D12)

Para introduzir um nome de faixa, selecione uma faixa de


clulas, com o mouse clique o boto direito e nomeie a faixa de
clulas.
OR em Engenharia 1: Aula 4.

20

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Para o problema da Wyndor Glass Co.
Lucro Total: G12= SOMARPRODUTO(C4:D4;C12:D12) , ou se
tivermos definido as faixas de clulas C7:D7, e C12:D12 como
LucroPorLote e LotesProduzidos respectivamente, teramos:

SOMARPRODUTO(LucroPorLote ; LotesProduzidos )

=> G12 a clula de destino.


Utilizando o Excel Solver:
Selecione Ferramentas (dados), e ento solver;
Defina a clula objetivo (G12), Clulas Variveis, adicione
restries (horas utilizadas menor ou igual a horas disponveis) e
clique em opes (linear e variveis no-negativas).

OR em Engenharia 1: Aula 4.

21

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Alguns Comandos de Matlab
Linprog e QuadProg functions:

x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
Min fT x

such that:

A.xb
Aeq . x = beq
lb x ub

where A and, Aeq are matrices, and f, b, beq, lb, ub, and x0 are
vectors.
Options possibilita vrias escolhas: tipo de algoritmo para
resolver o problema, mximo nmero de iteraes,.

OR em Engenharia 1: Aula 4.

22

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Alguns Comandos de Matlab
Linprog e QuadProg functions:
Min xT H x + fT x

such that:

A.xb
Aeq . x = beq
lb x ub

where H, A, and Aeq are matrices, and f, b, beq, lb, ub, and x are
vectors.
Comando: x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) .

OR em Engenharia 1: Aula 4.

23

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Alguns Comandos de SAS.
O OPTModel do SAS capaz de resolver diferentes problemas
tais como (apresentao da SAS Company no Informs, San
Diego CA, Oct. 10, 2009):
Founded in 1976.
Worlds largest privately held software company.
Over 400 offices globally.
Over 45,000 customer sites in 120 countries.
SAS customers or affiliates: 92 of top 100 companies on 2009
Fortune Global 500.
Hundreds of local user groups.

OR em Engenharia 1: Aula 4.

24

Pesquisa Operacional em Engenharia 1: Aula 4.


Alguns Comandos de SAS.
O OPTModel do SAS (apresentao da SAS Company no
Informs, San Diego CA, Oct. 10, 2009):
Linear Programming:
Primal Simplex, Dual Simplex, Interior Point

Mixed-Integer Linear Programming:


Branch and Bound with heuristics, cutting planes
Quadratic Programming:
Interior Point
Nonlinear Programming:
Unconstrained: Fletcher-Reeves, LBFGS, Polak-Ribire
Linearly constrained: Conjugate Gradient, Trust Region, Newtontype w/line search, CGTR
General nonlinear: Sequential Quadratic Programming, Interior
Point Nonlinear, Quasi-Newton.
OR em Engenharia 1: Aula 4.

25

Pesquisa Operacional em Engenharia 1: Aula 4.


Programao Linear (PL)
Alguns Comandos de SAS.
O OPTModel do (apresentao da SAS Company no Informs,
San Diego CA, Oct. 10, 2009):
SAS/OR Center of Excellence engagement model
Banking: ATM replenishment
Finance: credit scoring

Retailer: pricing optimization


Consumer Goods: production optimization
Pharmaceutical: portfolio optimization
Wake County Public Schools: student reassignment.

OR em Engenharia 1: Aula 4.

26

Pesquisa Operacional em Engenharia 1: Aula 4.

Alguns Comandos de SAS Currency Exchange.

/* Declare arc flow variables */


var Flow{<i,j> in ARCS} >= 0 <= capacity[i];
/* Declare flow balance constraints for each currency node */
constraint balance{i in NODES diff {'SOURCE','SINK'}}:
sum{<(i),j> in ARCS} Flow[i,j]
= sum{<j,(i)> in ARCS} exchange_rate[j,i] * Flow[j,i];
/* Declare objective function */
max Revenue = sum {<i,'SINK'> in ARCS}
exchange_rate[i,'SINK'] * Flow[i,'SINK'];

OR em Engenharia 1: Aula 4.

27

Pesquisa Operacional em Engenharia 1: Aula 4.


UCLA (University of California at Los Angeles)
Website - Tutorial SAS
http://www.ats.ucla.edu/stat/sas/modules/
ou acesse:
http://www.ats.ucla.edu/stat/sas/
para ter uma viso ampla das sees gerais do SAS
disponveis neste mesmo Website.
OR em Engenharia 1: Aula 4.

28

Pesquisa Operacional em Engenharia 1: Aula 4.

Instalar e ativar as Ferramentas de Anlise e o Solver


Clique na guia Arquivo.
Clique em Opes e, em seguida, clique na categoria Suplementos.
Prximo ao final da caixa de dilogo Opes do Excel, verifique se
Suplementos do Excel est selecionado na caixa Gerenciar e clique em
Ir.
Na caixa de dilogo Suplementos, marque as caixas de seleo de
Ferramentas de Anlise e Solver; em seguida, clique em OK.
Se o Excel exibir uma mensagem declarando que no pode executar
esse suplemento e solicitar que voc o instale, clique em Sim para
instal-lo.
Observao Nesse caso, como voc est instalando dois
suplementos, o Excel solicita a instalao duas vezes; uma vez para o
Analysis ToolPak e uma para o Solver.
Na guia Dados, observe que um grupo Anlise foi adicionado. Esse
grupo contm botes de comando de Anlise de Dados e do
suplemento Solver.
Agora voc est pronto para comear a usar esses suplementos.
29
OR em Engenharia 1: Aula 4.

Potrebbero piacerti anche