programacao linear

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.

Upload: sdwe

Post on 15-Jan-2016

237 views

Category:

Documents


2 download

DESCRIPTION

Programacao Linear

TRANSCRIPT

Page 1: 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.

Page 2: Programacao Linear

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

Page 3: Programacao Linear

Parte I

Introdução à Pesquisa Operacional

Histórico

Definição

Abordagem da PO

Princípios de modelagem

Validação de modelos

Page 4: Programacao Linear

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

Page 5: Programacao Linear

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

Page 6: Programacao Linear

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".

Page 7: Programacao Linear

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

Page 8: Programacao Linear

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.

Page 9: Programacao Linear

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

Page 10: Programacao Linear

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

Page 11: Programacao Linear

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

Page 12: Programacao Linear

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

Page 13: Programacao Linear

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}.

Page 14: Programacao Linear

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

Page 15: Programacao Linear

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 !!!

Page 16: Programacao Linear

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

Page 17: Programacao Linear

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

Page 18: Programacao Linear

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

Page 19: Programacao Linear

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

Page 20: Programacao Linear

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

Page 21: Programacao Linear

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

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

Page 22: Programacao Linear

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

Tratamento de limites de variáveis

Page 23: Programacao Linear

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.

Page 24: Programacao Linear

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

Page 25: Programacao Linear

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

Page 26: Programacao Linear

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

Page 27: Programacao Linear

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

Page 28: Programacao Linear

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

Page 29: Programacao Linear

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.

Page 30: Programacao Linear

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 ?

Page 31: Programacao Linear

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?

Page 32: Programacao Linear

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

Page 33: Programacao Linear

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

Page 34: Programacao Linear

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

Page 35: Programacao Linear

Programação LinearMétodo Simplex - Forma Matricial

Particionando...Particionando...

Page 36: Programacao Linear

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

Page 37: Programacao Linear

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

Page 38: Programacao Linear

Programação LinearMétodo Simplex - Forma Matricial

Resumindo, até aqui tem-se ...

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

Page 39: Programacao Linear

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

Page 40: Programacao Linear

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.

Page 41: Programacao Linear

Programação LinearMétodo Simplex - Forma Matricial

Resumo...

Solução

Teste de entrada

Teste de saída

Page 42: Programacao Linear

Programação LinearExemplo (1)

Page 43: Programacao Linear

Programação LinearExemplo (1.a)

1a. Iteração

Page 44: Programacao Linear

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

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

Page 45: Programacao Linear

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

Page 46: Programacao Linear

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

Page 47: Programacao Linear

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

2

1

S

xxR

Entra na base Entra na base

Page 48: Programacao Linear

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

Page 49: Programacao Linear

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

Page 50: Programacao Linear

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

Page 51: Programacao Linear

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

Page 52: Programacao Linear

Parte III

Problemas Lineares Especiais

Problema de Atribuição

Problema de Transportes

Problemas de Fluxo em Redes

Page 53: Programacao Linear

Parte IV

Programação Inteira

Modelagem

Algoritmo de branch and bound

Algoritmo de Balas

Page 54: Programacao Linear

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

Page 55: Programacao Linear

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