Download - Programacao Linear
EPS7005 – Pesquisa OperacionalProf. 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 OperacionalSumá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 OperacionalHistó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 OperacionalHistó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 OperacionalDefiniçã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 OperacionalAbordagem da PO
Sistema Real
Modelo
Solução Real
Solução do Modelo
Formulação
Interpretação
DeduçãoAbordagem Direta
Modelo é uma representação simplificada / idealizada, que visa obter informações sobre o sistema real com economia de tempo e recursos
Dedução: uso de técnicas dependentes do modelo formulado, rigor matemático e precisão, uso de computadores
Formulação: liberdade, arbitrariedade e coerência
Interpretação: julgamento humano, reavaliação do modelo
Introdução à Pesquisa OperacionalPrincí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 OperacionalValidaçã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 modelosSolução gráficaForma padrão e relações de equivalênciaPropriedades dos PPL’sSolução inicial viávelMétodo Simplex – Forma tableauMétodo Simplex – AlgoritmoMétodo Simplex – Forma matricialDualidade em Programação LinearAnálise de pós-otimalidade
Programação LinearFormulaçã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.
Setor Produtivo
ProdutoCapacidade DisponívelJanelas Portas
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 LinearFormulação de Modelos
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
Setor Produtivo
ProdutoCapacidade DisponívelJanelas Portas
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 LinearFormulação de Modelos
Produção Logística Mistura Finanças e investimentos Carregamento de navios Corte de chapas e barras Aquisição de máquinas Problemas dinâmicos Câmbio
Estratégia militar Engenharia estrutural Operação de dutos Dimensionamento de linhas de
produção Alocação de mão-de-obra Programação de operações Controle de emissão de poluentes
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 LinearSolução Gráfica
2x
9
8
7
6
5
4
3
2
1
00 1 2 3 4 5 6 7 8 9
1x
122 2x
41x
1823 21 xx
02 x
01x
Programação LinearSoluçã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 LinearForma padrão e relações de equivalência
Programação LinearForma 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 modelagemExiste 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 factível em um vértice
Se existem soluções ótimas múltiplas, então ao menos duas delas devem ser soluções factíveis em vértices adjacentes
Existe um número finito de soluções factíveis em vértices, não maior que...
Se uma solução factível em um vértice é igual ou melhor (segundo o valor de Z) que todas as soluções factíveis nos vértices adjacentes a ela, então é igual ou melhor que todas as demais soluções factíveis existentes nos vértices, isto é, é uma solução ótima
2x
9
8
7
6
5
4
3
2
1
00 1 2 3 4 5 6 7 8 9
1x
)!(!
!
mnm
nCmn
)!(!
!
mnm
nCmn
Programação Linear Propriedades dos PPL’s
Estrutura do Método Simplex
Passo inicial: iniciar com uma solução em um vértice (solução básica viável).
Teste de otimalidade: se não existe um vértice adjacente, melhor que o vértice atual, então PARE. O vértice atual corresponde à solução ótima. Em caso contrário, vá ao passo 3.
Passo iterativo: movimente em direção de uma solução factível melhor, em um vértice adjacente; volte ao passo 2.
2x
9
8
7
6
5
4
3
2
1
00 1 2 3 4 5 6 7 8 9
1x
Solução Ótima
Programação LinearSolução Inicial Viável - Caso trivial
Caso triviala) variáveis não negativasb) restrições com limite superior
Solução variáveis nulas folgas iguais ao RHS
Programação LinearSolução Inicial Viável - Caso não trivial
Não tem solução trivialNão tem solução trivial
Sempre tem solução trivialSempre tem solução trivial
Ambas formulações são equivalentes quando midi ,...,1,0
Programação LinearSolução Inicial Viável - Método do M-grande
m
iidM
1
ótima solução a encontrou Se midi ,...,1,0
grande mentesuficiente é não
ou viável,solução existe não Se
Mdi 0
Programação LinearSolução Inicial Viável - Método das 2 fases
Resolver o problema da 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 1Fase 1
Fase 2Fase 2
Se w = 0, usar solução ótima da fase 1 como solução inicial viável para a fase 2.
Programação LinearMétodo Simplex - Forma Tableau
Base Z X1 X2 S1 S2 S3 RHS
S1 0 1 0 1 0 0 4
S2 0 0 2 0 1 0 12
S3 0 3 2 0 0 1 18
Z 1 -3 -5 0 0 0 0
+inf
+6
+9
Base Z X1 X2 S1 S2 S3 RHS
S1 0 1 0 1 0 0 4
X2 0 0 1 0 1/2 0 6
S3 0 3 0 0 -1 1 6
Z 1 -3 0 0 5/2 0 30
+4
+inf
+2
O que fazer para melhorar a solução? Quanto aumentar X2 ?
Programação LinearMé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.
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
Pergunta-se: (a) o que produzir?(b) quanto produzir? (c) qual será o lucro? (d) qual o valor da capacidade
disponível em cada setor?
Programação LinearMétodo Simplex – Algoritmo
Início
Fim
Montar tableau com solução básica
inicial viável
Existe customarginal < 0 ?
Não
Escolher variável para entrar na base
Calcular razãoRHS / coluna (entra)
Sim
Solução ótima
Fazer troca de base e recalcular
o tableau
Existe razão 0
finita ?
Solução ilimitada
Não
Sim
1
1 Escolher variávelpara sair da base
Custo marginal mais negativoCusto marginal mais negativo
Menor razão não negativaMenor razão não negativa
Programação LinearMé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 é:
( 1) 1 ( ),
t tr kT E T
Programação LinearMétodo Simplex – Algoritmo
(0)
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
1 2 5 0 0 0 0
T
1
(1)
0 1 0 1 0 0 4 0 1 0 1 0 0 41 00 0 2 0 1 0 12 0 0 1 0 1/ 2 0 620 3 2 0 0 1 18 0 3 0 0 1 1 62 11 2 5 0 0 0 0 1 3 0 0 5/ 2 0 305 1
T
1
(2)
0 1 0 1 0 0 4 0 0 0 1 1/3 1/3 21 10 0 1 0 1/ 2 0 6 0 0 1 0 1/ 2 0 61 00 3 0 0 1 1 6 0 1 0 0 1/3 1/3 231 3 0 0 5/ 2 0 30 1 0 0 0 3/ 2 1 363 1
T
Programação LinearMétodo Simplex - Forma Matricial
Particionando...Particionando...
Programação LinearMé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 ParticularSolução Particular
Programação LinearMé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 LinearMétodo Simplex - Forma Matricial
Resumindo, até aqui tem-se ...
É possível melhorar o valor da função objetivo ? ...
Programação LinearMétodo Simplex - Forma Matricial
Como melhorar ...Escolher para aumentar (entrar
na base) uma variável não básica associada a uma
componente positiva do vetor
Escolher para aumentar (entrar na base) uma variável não básica associada a uma
componente positiva do vetor
RBcc TB
TR
1
Programação LinearMétodo Simplex - Forma Matricial
Aumentar a k-ésima variável não básica (escolhida) ... até quanto ?
Escolher para sair da base uma variável básica
associada ao menor valor calculado.
Escolher para sair da base uma variável básica
associada ao menor valor calculado.
Programação LinearMétodo Simplex - Forma Matricial
Resumo...
Solução
Teste de entrada
Teste de saída
Programação LinearExemplo (1)
Programação LinearExemplo (1.a)
1a. Iteração
0
18
12
4
]000[ˆˆ
B
TB xcz
18
12
4
18
12
4
100
010
001
ˆ
1
1
3
2
1
bB
S
S
S
xB
Programação LinearExemplo (1.b)
0
0ˆ
2
1
x
xxR
53
23
20
01
100
010
001
00053
1
1
1
RBcc
RBcc
TB
TR
TB
TR Entra na base Entra na base
62
18,
2
12,0
4min
0
0
0
2
2
0
18
12
4
ˆ
,
,,
kR
kRkRkBB
x
xxRxx
2
2
0
2
2
0
100
010
0011
1kk RBR
Programação LinearExemplo (1.c)
18
12
4
ˆ
3
2
1
S
S
S
xB
Sai da base Sai da base
Coluna deColuna de
03050
03
10
01
120
020
001
18
12
4
2
1
3
2
1
TR
TB
RB
cc
RB
bS
xx
S
x
S
x
53000
23
20
01
100
010
001
18
12
4
2
1
3
2
1
TR
TB
RB
cc
RB
bx
xx
S
S
S
x
Programação LinearExemplo (2.a)
2a. Iteração
2
53
03
10
01
120
020
001
05003
1
1
1
RBcc
RBcc
TB
TR
TB
TR
30
6
6
4
]050[ˆˆ
B
TB xcz
6
6
4
18
12
4
120
020
001
ˆ
1
1
3
2
1
bB
S
x
S
xB
Programação LinearExemplo (2.b)
0
0ˆ
2
1
S
xxR
Entra na base Entra na base
23
6,0
6,1
4min
0
0
0
3
0
1
6
6
4
ˆ
,
,,
kR
kRkRkBB
x
xxRxx
6
6
4
ˆ
3
2
1
s
x
s
xB
3
0
1
3
0
1
120
020
0011
1kk RBR
Programação LinearExemplo (2.c)
Coluna deColuna de
Sai da base Sai da base
00350
01
10
00
320
020
101
18
12
4
2
3
1
2
1
TR
TB
RB
cc
RB
bS
Sx
x
x
S
x
30050
31
00
10
120
020
001
18
12
4
2
1
3
2
1
TR
TB
RB
cc
RB
bS
xx
S
x
S
x
Programação LinearExemplo (3.a)
3a. Iteração
2
31
01
10
00
320
020
101
35000
1
1
1
RBcc
RBcc
TB
TR
TB
TR
36
2
6
2
]350[ˆˆ
B
TB xcz
2
6
2
18
12
4
320
020
101
ˆ
1
1bBxB
Programação LinearExemplo (3.b)
Solução ótimaSolução ótima
Programação LinearExemplo (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