Você está na página 1de 55

EPS7005 – Pesquisa Operacional

Prof. Sérgio Mayerle

Ementa: Introdução: histórico, objetivos, restrições e modelos.


Condições de otimalidade. Programação linear: modelos de
programação linear, método simplex, dualidade, análise de
sensibilidade e pós-otimalidade. Problemas lineares especiais.
Programação não linear; otimização multivariada; otimização sem
restrições. Programação Inteira, binária e mista: algoritmos e
modelos. Programação dinâmica determinística e estocástica.
Pesquisa Operacional
Sumário

 Parte I – Introdução à Pesquisa Operacional

 Parte II – Programação Linear

 Parte III – Problemas Lineares com estruturas especiais

 Parte IV – Programação Inteira

 Parte V – Programação Dinâmica

 Parte VI – Programação Não Linear


Parte I
Introdução à Pesquisa Operacional

Histórico
Definição
Abordagem da PO
Princípios de modelagem
Validação de modelos
Introdução à Pesquisa Operacional
Histórico

 II Guerra Mundial
• Problemas complexos
• Envolvimento multidisciplinar de cientistas (UK)
• Desenvolvimento de técnicas matemáticas (USA)
• Eficiência e sucesso na área militar
 Transferência dos conhecimentos adquiridos para a área civil
• Retorno dos cientistas para as universidades
• Adaptação e aplicação das técnicas em atividades econômicas
(empresas petrolíferas e grandes coorporações)
• PO Vantagem Competitiva
• Padronização dos problemas generalização do uso da PO
 Década de 50
• 1952 - Operations Research Society of America (ORSA)
• 1953 - Institute of Management Sciences (TIMS)
• Operations Research e Management Sciences
Introdução à Pesquisa Operacional
Histórico

 Década de 60
• computadores resolução de problemas grandes e complexos
• introdução da PO como disciplina nas universidades
• cursos de pós-graduação (M.Sc. e Ph.D.)
 Atualmente
• IFORS - International Federation of Operations Research Society
• ALAIO - Associación Latino Americana de Investigación Operativa
• SOBRAPO - Sociedade Brasileira de Pesquisa Operacional
• Existem congressos, simpósios: "Production planning", "OR in
community health planning", "OR models of the criminal justice system",
"Transportation and mass transit studies", "Travel and tourism",
"Energy", "Education models", "OR applications in sports".
• Aplicações na indústrias, bancos, hospitais, instituições governamentais,
universidades, comércio, agricultura, informática
Introdução à Pesquisa Operacional
Definição

 Definição histórica
• "É um conjunto de problemas, técnicas de resolução e soluções, com
características bem definidas, acumuladas sob o termo PO desde a
década de 40 do século passado".

 Definição filosófica
• "Pesquisa Operacional é o conjunto de conhecimentos relacionados com
o processo científico de tomada de decisão, aplicados no projeto e
operação de sistemas homem-máquina, em um ambiente com recursos
restritos".
Introdução à Pesquisa Operacional
Abordagem da PO

Formulação: liberdade, Modelo é uma representação


arbitrariedade e coerência simplificada / idealizada, que
visa obter informações sobre o
sistema real com economia de
tempo e recursos

Sistema Formulação
Modelo
Real

Abordagem Direta Dedução

Solução Solução do Dedução: uso de


Interpretação técnicas dependentes
Real Modelo do modelo formulado,
rigor matemático e
precisão, uso de
computadores
Interpretação: julgamento humano,
reavaliação do modelo
Introdução à Pesquisa Operacional
Princípios de Modelagem

1. Não construir modelos complicados quando um modelo simples é suficiente.


2. Evitar a construção de modelos de modo que estes se ajustem a uma
técnica de solução previamente definida.
3. Conduzir a fase de dedução com o máximo rigor possível.
4. Os modelos devem ser validados a priori em relação a implementação.
5. Não confiar cegamente no resultado do modelo, de modo a perder de vista a
realidade do problema.
6. Modelos não devem ser utilizados, nem tão pouco criticados por não
resolver situações para as quais não foram desenvolvidos.
7. Não sobrevalorizar o modelo diante do usuário.
8. Sempre envolver o usuário no processo de desenvolvimento e validação do
modelo.
9. Os resultados de um modelo nunca podem ser melhores que os dados nele
introduzidos.
10. Modelos não podem substituir tomadores de decisão.
Introdução à Pesquisa Operacional
Validação de Modelos

 Aspectos a considerar
• não existe modelo perfeito
• não existe um critério absoluto de verificação de modelos
• não se pode "provar" ou "verificar" o modelo

 Validar o modelo
• adquirir a convicção de que o modelo é útil para aquilo a que foi
proposto
• convencer o usuário de que os resultados são úteis dentro de um
determinado contexto
Parte II
Programação Linear

Formulação de modelos
Solução gráfica
Forma padrão e relações de equivalência
Propriedades dos PPL’s
Solução inicial viável
Método Simplex – Forma tableau
Método Simplex – Algoritmo
Método Simplex – Forma matricial
Dualidade em Programação Linear
Análise de pós-otimalidade
Programação Linear
Formulação de Modelos

A WINDOR GLASS Inc. dispõe de capacidade extra para produzir dois novos
produtos. A demanda é muito maior que a capacidade disponível (toda
produção poderá ser vendida).
Pergunta-se: (a) o que produzir? (b) quanto produzir? (c) qual será o lucro? (d)
qual o valor, em $/hora, da capacidade disponível em cada setor produtivo?
Os dados estão na tabela abaixo.

Produto
Capacidade
Setor Produtivo
Janelas Portas Disponível

Montagem 1 hora/unid. - 4.000 horas/mês


Laminação - 2 hora/unid. 12.000 horas/mês
Corte 3 hora/unid. 2 hora/unid. 18.000 horas/mês
Lucro Unitário $ 3,00 $ 5,00
Programação Linear
Formulação de Modelos

Produto
Capacidade
Setor Produtivo
Janelas Portas Disponível

Montagem 1 hora/unid. - 4.000 horas/mês


Laminação - 2 hora/unid. 12.000 horas/mês
Corte 3 hora/unid. 2 hora/unid. 18.000 horas/mês
Lucro Unitário $ 3,00 $ 5,00
 Variáveis
X1 = qtde. de janelas, em milhares de unidades;
X2 = qtde. de portas, em milhares de unidades;
Z = lucro total obtido com novos produtos.
 Restrições
a) disponibilidade do setor de montagem;
b) disponibilidade do setor de laminação;
c) disponibilidade do setor de corte;
d) quantidades não negativas.
 Objetivo
Maximizar o lucro total da empresa
Programação Linear
Formulação de Modelos

 Produção  Estratégia militar


 Logística  Engenharia estrutural
 Mistura  Operação de dutos
 Finanças e investimentos  Dimensionamento de linhas de
 Carregamento de navios produção
 Corte de chapas e barras  Alocação de mão-de-obra
 Aquisição de máquinas  Programação de operações
 Problemas dinâmicos  Controle de emissão de poluentes
 Câmbio

 Alguns do problemas acima apresentam variáveis discretas que somente


podem assumir valores do conjunto de inteiros, e em casos mais particulares
o conjunto de inteiros se limita a {0,1}.
Programação Linear
Solução Gráfica

x2
9

8 x1  4
7

6 2 x2  12
5

x1  0 3

3 x1  2 x2  18
1

0
0 1 2 3 4 5 6 7 8 9 x1
x2  0
Programação Linear
Solução Gráfica

 O que fazer se além de portas e janelas a WINDOR puder fabricar, também,


mesas e armários?
Resolver graficamente o problema torna-se inviável ... É necessário usar
métodos numéricos mais eficazes e eficientes.

 Quantos produtos diferentes uma fábrica pode produzir?


5, 10, 100, 1000, ...

 Quantos setores de produção uma fábrica possui?


5, 10, 100, 1000, ...

 E se existem restrições adicionais em relação ao uso de matéria-prima,


energia, estoques, mão-de-obra, cadeia de suprimento e distribuição?
Outros modelos, mais complexos, poderão ser formulados ...

A solução gráfica não se aplica a estas outras situações !!!


Programação Linear
Forma padrão e relações de equivalência
Programação Linear
Forma padrão e relações de equivalência
Programação Linear
Forma padrão e relações de equivalência
Programação Linear
Forma padrão e relações de equivalência
Programação Linear
Forma padrão e relações de equivalência

 Qualquer que seja a estrutura do PPL, sempre é possível transformá-lo no


formato padrão apresentado.

 Relação entre maximização e minimização


Programação Linear
Forma padrão e relações de equivalência

 Relação entre inequações e equações


Programação Linear
Forma padrão e relações de equivalência

 Tratamento de limites de variáveis


Programação Linear
Propriedades dos PPL’s

Suposições da modelagem

 Proporcionalidade
Custos e quantidades de recursos consumidos na produção são
proporcionais às quantidades produzidas
 Aditividade
Custos totais e quantidades totais de recursos são determinados pela soma
de custos e recursos consumidos na produção de todos items
 Divisibilidade
É possível produzir quantidades fracionárias de cada um dos produtos
 Certeza
Todos os parâmetros do modelo são determinados e conhecidos

Perspectiva das suposições da modelagem


Existe a possibilidade de todas estas suposições não serem verdadeiras.
Programação Linear
Propriedades dos PPL’s

 Se existe exatamente uma solução


ótima, então deve ser uma solução x2
factível em um vértice
9

 Se existem soluções ótimas múltiplas, 8


então ao menos duas delas devem ser
soluções factíveis em vértices 7
adjacentes
6
 Existe um número finito de soluções 5
factíveis em vértices, não maior que...
4
nn!!factível em um vértice

 melhor (segundo o valor de
Semmuma solução
CéCnigual
n ou
3
Z) que todas nsoluções
mm!!((nas mm)!)! factíveis nos
2
vértices adjacentes a ela, então é igual
ou melhor que todas as demais
1
soluções factíveis existentes nos
vértices, isto é, é uma solução ótima 0
0 1 2 3 4 5 6 7 8 9 x1
Programação Linear
Propriedades dos PPL’s

Estrutura do Método Simplex


x2
 Passo inicial: iniciar com Solução
9
uma solução em um vértice Ótima
(solução básica viável). 8

7
 Teste de otimalidade: se
não existe um vértice 6
adjacente, melhor que o
vértice atual, então PARE. 5
O vértice atual corresponde 4
à solução ótima. Em caso
contrário, vá ao passo 3. 3

2
 Passo iterativo: movimente
em direção de uma solução 1
factível melhor, em um
vértice adjacente; volte ao 0
passo 2.
0 1 2 3 4 5 6 7 8 9 x1
Programação Linear
Solução Inicial Viável - Caso trivial

Caso trivial
a) variáveis não negativas
b) restrições com limite superior
Solução
 variáveis nulas
 folgas iguais ao RHS
Programação Linear
Solução Inicial Viável - Caso não trivial

Não
Nãotem
temsolução
soluçãotrivial
trivial

Sempre
Sempretem
temsolução
soluçãotrivial
trivial

Ambas formulações são equivalentes quando di  0, i  1,..., m


Programação Linear
Solução Inicial Viável - Método do M-grande

m
 M d
i 1
i

Se di  0, i  1,..., m  encontrou a solução ótima


não existe solução viável, ou
Se di  0  
M não é suficientemente grande
Programação Linear
Solução Inicial Viável - Método das 2 fases

Resolver o problema da
Fase
Fase11
fase 1 usando as variáveis
artificiais para formar uma
base inicial viável.
Se w = 0, então uma
solução inicial viável foi
obtida para o problema.

Fase
Fase22

Se w = 0, usar solução ótima


da fase 1 como solução inicial
viável para a fase 2.
Programação Linear
Método Simplex - Forma Tableau

Base Z X1 X2 S1 S2 S3 RHS
S1 0 1 0 1 0 0 4 +inf
S2 0 0 2 0 1 0 12 +6
S3 0 3 2 0 0 1 18 +9
Z 1 -3 -5 0 0 0 0

O que fazer para melhorar a solução? Quanto aumentar X2 ?

Base Z X1 X2 S1 S2 S3 RHS
S1 0 1 0 1 0 0 4 +4
X2 0 0 1 0 1/2 0 6 +inf
S3 0 3 0 0 -1 1 6 +2
Z 1 -3 0 0 5/2 0 30
Programação Linear
Método Simplex - Forma Tableau

Base Z X1 X2 S1 S2 S3 RHS
S1 0 0 0 1 1/3 -1/3 2
X2 0 0 1 0 1/2 0 6
X1 0 1 0 0 -1/3 1/3 2
Z 1 0 0 0 3/2 1 36

Var. Decisões Valor Marg. Pergunta-se:


X1 Janelas 2 0 (a) o que produzir?
(b) quanto produzir?
X2 Portas 6 0 (c) qual será o lucro?
S1 Montagem 2 0 (d) qual o valor da capacidade
S2 Laminação 0 1,5 disponível em cada setor?

S3 Corte 0 1
Z Lucro 36 1
Programação Linear Custo
Customarginal
mais
marginal
negativo
Método Simplex – Algoritmo mais negativo

Início
Escolher variável Menor
Menorrazão
razão
para entrar na base não negativa
não negativa

Montar tableau com


solução básica Calcular razão
inicial viável RHS / coluna (entra)

1 Escolher variável
para sair da base
Existe custo Sim Existe Sim
marginal < 0 ? razão  0
finita ?

Não Não Fazer troca de


base e recalcular
o tableau
Solução Solução
ótima ilimitada

Fim
Programação Linear
Método Simplex – Algoritmo

Supondo que a troca de base será realizada com o pivo localizado na r-ésima
linha e k-ésima coluna, o novo tableau poderá ser obtido pré-multiplicando o
tableu da iteração corrente pela inversa da matriz elementar formada pela k-ésima
coluna do tableau corrente, posicionada na r-ésima coluna desta matriz
elementar, isto é:

T (t 1)  Er,1k  T (t )
Programação Linear
Método Simplex – Algoritmo

0 1 0 1 0 0 4
 
 0 0 2 0 1 0 12 
T (0) 
0 3 2 0 0 1 18 
 
 1 2 5 0 0 0 0 

1
1 0  0 1 0 1 0 0 4  0 1 0 1 0 0 4
  0 0 2 0 1
 
0 12   0 0 1 0 1/ 2 0 6

2  
T (1)  
 2 1  0 3 2 0 0 1 18   0 3 0 0 1 1 6
     
 5 1   1 2 5 0 0 0 0   1 3 0 0 5/ 2 0 30 

1
1 1  0 1 0 1 0 4  0
0 0 0 1 1/ 3 1/ 3 2
  0 0  
1 0 1/ 2 0 6   0 0 1 0 1/ 2 0 6

1 0  
T (2)
 
 3  0 3 0 0 1 1 6   0 1 0 0 1/ 3 1/ 3 2
     
 3 1   1 3 0 0 5 / 2 0 30   1 0 0 0 3/ 2 1 36 
Programação Linear
Método Simplex - Forma Matricial

Particionando...
Particionando...
Programação Linear
Método Simplex - Forma Matricial

 Como resolver o sistema de equações lineares ?

 No caso particular em que as variáveis não básicas são nulas ...

Solução
SoluçãoParticular
Particular
Programação Linear
Método Simplex - Forma Matricial

 E o valor da função objetivo ?

 No caso particular em que as variáveis não básicas são nulas ...

Solução Particular
Programação Linear
Método Simplex - Forma Matricial

 Resumindo, até aqui tem-se ...

 É possível melhorar o valor da função objetivo ? ...


Programação Linear
Método Simplex - Forma Matricial

Escolher
Escolherpara
paraaumentar
aumentar(entrar
(entrar
 Como melhorar ... na base) uma variável não
na base) uma variável não
básica
básicaassociada
associadaaauma
uma
componente
componente positiva dovetor
positiva do vetor

cRT  cBT B 1 R
Programação Linear
Método Simplex - Forma Matricial

 Aumentar a k-ésima variável não básica (escolhida) ... até quanto ?

Escolherpara
Escolher parasair
sairda
dabase
base
umavariável
uma variávelbásica
básica
associadaao
associada aomenor
menorvalor
valor
calculado.
calculado.
Programação Linear
Método Simplex - Forma Matricial

 Resumo...

Solução

Teste de entrada

Teste de saída
Programação Linear
Exemplo (1)
Programação Linear
Exemplo (1.a)

1a. Iteração
Programação Linear
Exemplo (1.b)
1
 S1  1 0 0   4   4 
 x1  0
xˆ R       xˆ B   S 2   B 1b  0 1 0 12  12
 x2  0        
 S3  0 0 1 18 18

4
zˆ  cBT xˆ B  [0 0 0] 12  0
 
18
1
1 0 0   1 0
cRT  cBT B 1 R  3 5  0 0 0na base
0 Entra 1 0  0 2
 na base  
Entra 
0 0 1 3 2
cRT  cBT B 1 R  3 5
Programação Linear
Exemplo (1.c)

1
1 0 0   0   0   S1   4 
Rk  B 1 Rk  0 1 0 2  2 xˆ B   S 2   12
         
0 0 1 2 2  S3  18

 4  0  0 
xB  xˆ B  Rk xR ,k  12  2 xR ,k  0
     
18 2 0 Coluna
Colunade
de
 4 12 18 
xR ,k  min , ,   6
0 2 2 

Sai
Saida
dabase
base
Programação Linear
Exemplo (2.a)

2a. Iteração

 S1  4
 x1 
xB   Sx2  xR    b  12
   Sx2   
 S3  18

1 0 0 1 0 
B  0 12 0 R  0 12
   
0 02 1 3 2
0

cTB  0 50 0 cTR  3 05


Programação Linear
Exemplo (2.b)

1
 S1  1 0 0  4   4
 x1  0
xˆ R       xˆ B   x2   B 1b  0 2 0 12  6
 S 2  0         
 S3  0 2 1  18 6
 4
zˆ  cTB xˆ B  [0 5 0] 6  30
 
6
1
1 0 0 1 0
c RT  c BT B 1 R  3 0  0 5 0 0 2 0 0 1
   
Entra
Entrana
nabase
0
base 2 1  3 0
1  5
c R  c B B R  3  
T T

 2
Programação Linear
Exemplo (2.c)

1
1 0 0  1  1   s1   4
Rk  B 1 Rk  0 2 0 0  0 xˆ B   x2   6
         
0 2 1 3 3  s3  6

 4  1  0 
xB  xˆ B  Rk xR ,k  6  0 xR ,k  0
      Coluna
Colunade
de
6 3 0
4 6 6
xR ,k  min , ,   2
1 0 3
Sai
Saida
dabase
base
Programação Linear
Exemplo (3.a)

3a. Iteração

 S1  4
 Sx13 
xB   x2  xR    b  12 
  S 2   
 Sx13  18

1 0 1 0 0 10
B  0 2 0  R  0 10
   
0 2 13 1 0
3

cTB  0 5 30 cTR  0 03


Programação Linear
Exemplo (3.b)

1
1 0 1   4   2 
xˆ B  B 1b  0 2 0 12  6 Solução
Soluçãoótima
ótima
     
0 2 3 18 2

 2
zˆ  cBT xˆ B  [0 5 3] 6  36
 
2
1
1 0 1   0 0 
cRT  cBT B 1 R  0 0  0 5 3 0 2 0 0 1
   
0 2 3 1 0
T 1  3
cR  cB B R   1  
T

 2
Programação Linear
Exemplo (4)

Var. Decisões Valor Marg.


X1 Janelas 2 0
X2 Portas 6 0
S1 Montagem 2 0
S2 Laminação 0 -1,5
S3 Corte 0 -1
Z Lucro 36 1
Parte III
Problemas Lineares Especiais

Problema de Atribuição
Problema de Transportes
Problemas de Fluxo em Redes
Parte IV
Programação Inteira

Modelagem
Algoritmo de branch and bound
Algoritmo de Balas
Parte V
Programação Dinâmica

Formulação de modelos
Programação Dinâmica Determinística
Programação Dinâmica Estocástica
Programação Dinâmica com horizonte ilimitado
Parte VI
Programação Não Linear

Formulação de modelos
Condições de Karush-Kuhn-Tucker (KKT)
Problemas não lineares monovariados
Problemas mutivariados não lineares
Problemas multivariados não lineares com restrições

Você também pode gostar