programação linear teoria e modelagem matemática prof. antônio sérgio coelho...

44
Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho ([email protected]) Prof. Sérgio Fernando Mayerle ([email protected])

Upload: internet

Post on 18-Apr-2015

117 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear

Teoria e Modelagem Matemática

Prof. Antônio Sérgio Coelho ([email protected])

Prof. Sérgio Fernando Mayerle ([email protected])

Page 2: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearSumário – Parte I

Exemplo introdutório Modelagem conceitual e matemática Solução gráfica Dificuldades adicionais Lista de exercícios adicionais

Page 3: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearExemplo de Introdutório

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 4: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearModelagem Conceitual e Matemática

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 5: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 6: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearDificuldades Adicionais ao Problema...

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

Page 7: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearLista de Exercícios de Formulação

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 8: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearSumário – Parte II

Forma padrão Relações de equivalência Suposições da Programação Linear Propriedades Estrutura do método Simplex

Page 9: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearForma Padrão (1)

Page 10: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearForma Padrão (2)

Page 11: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearForma Padrão (3)

Page 12: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearForma Padrão (4)

Page 13: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear Relações de Equivalência (1)

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 14: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear Relações de Equivalência (2)

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

Page 15: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear Relações de Equivalência (3)

Tratamento de limites de variáveis

Page 16: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear Suposições

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

Existe a possibilidade de todas estas suposições não serem verdadeiras.

Page 17: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear Propriedades

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

)!(!

!

mnm

nCmn

)!(!

!

mnm

nCmn

2x

9

8

7

6

5

4

3

2

1

00 1 2 3 4 5 6 7 8 9

1x

Page 18: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação Linear Estrutura do Método Simplex

1. Passo inicial: iniciar com uma solução factível em um vértice.

2. Teste de otimalidade: se não existe solução factível em um vértice adjacente, melhor que a solução atual, então PARE. A solução atual é ótima. Em caso contrário, vá ao passo 3.

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 19: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearSumário – Parte III

Solução inicial viável (caso trivial) Método Simplex na forma tableau

Algoritmo

Exemplo da WINDOR Método Simplex na forma matricial

Formulação matemática

Exemplo da WINDOR Obtenção da solução inicial viável (caso não trivial)

Inclusão de variáveis artificiais

Solução inicial pelo método das duas fases

Solução inicial pelo método do M-grande

Page 20: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 21: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Tableau (1)

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 22: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Tableau (2)

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 23: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 24: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (1)

Particionando...Particionando...

Page 25: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (2)

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 26: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (3)

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 27: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (4)

Resumindo, até aqui tem-se ...

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

Page 28: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (5)

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 29: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (6)

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 30: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearMétodo Simplex na Forma Matricial (7)

Resumo...

Solução

Teste de entrada

Teste de saída

Page 31: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearExemplo (1)

Page 32: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Programação LinearExemplo (1.a)

1a. Iteração

Page 33: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 34: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 35: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 36: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 37: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 38: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 39: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 40: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 41: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 42: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 43: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

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 44: Programação Linear Teoria e Modelagem Matemática Prof. Antônio Sérgio Coelho (coelho@deps.ufsc.br) Prof. Sérgio Fernando Mayerle (mayerle@deps.ufsc.br)

Exemplo

Uma empresa tem três tipos de máquinas de processamento, tendo cada uma delas velocidade e taxas de defeitos diferentes. Devem ser processadas 3500 peças por dia (8 horas/dia). Cada peça defeituosa custa à empresa US$ 1,00. Formule um modelo de PL para determinar a solução ótima para este problema.

Tipo Máquina Peças / hora Defeitos US$ / hora # Máquinas

I 20 5% 2,00 8

II 15 10% 1,75 10

III 10 0% 1,50 20