Programação Linear - Prof. Sérgio Mayerle

Download Report

Transcript Programação Linear - Prof. Sérgio Mayerle

Slide 1

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


Slide 2

Programação Linear
Sumário – Parte I








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


Slide 3

Programação Linear
Exemplo 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.

Produto
Janelas

Portas

Capacidade
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

Setor Produtivo


Slide 4

Programação Linear
Modelagem Conceitual e Matemática
Produto
Janelas

Portas

Capacidade
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

Setor Produtivo

 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

Max Z  3 x1  5 x2
s.a :

x1  4
2 x2  12
3 x1  2 x2  18
x1 , x2  0


Slide 5

Programação Linear
Solução Gráfica

Max Z  3 x1  5 x2
s.a :

x2

x1  4

9

x1  4

8

2 x2  12

7

3 x1  2 x2  18

2 x2  12

6

x1 , x2  0

5
4

x1  0

3

2

3 x1  2 x2  18

1
0
0

1

2

x2  0

3

4

5

6

7

8

9

x1


Slide 6

Programação Linear
Dificuldades 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 ...


Slide 7

Programação Linear
Lista 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



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









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


Slide 8

Programação Linear
Sumário – Parte II








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


Slide 9

Programação Linear
Forma Padrão (1)

Max

z  c1 x1  c2 x2    cn xn

s.a :

a11 x1  a12 x2    a1n xn  b1
a21 x1  a22 x2    a2 n xn  b2

am1 x1  am 2 x2    amn xn  bm
x1 , x2 ,, xn  0


Slide 10

Programação Linear
Forma Padrão (2)

n

Max

z  cjxj
j 1

n

s.a :

aij x j  bi

j 1
xj  0

i  1,, m

j  1,, n


Slide 11

Programação Linear
Forma Padrão (3)

Max

z  c1

 a11
a
s.a :  21
 
a
 m1

c2

a12
a22

am 2

 x1 
x 
 cn   2 

x 
 n
a1n   x1   b1 
 a2 n   x2   b2 
   e
    
 amn   xn  bm 


 x1  0
 x  0 
 2   
   
x   
 n  0 


Slide 12

Programação Linear
Forma Padrão (4)

Max

z  cT x

s.a :

Ax  b
x0

 c1 
c 
2


c

c 
 n

 x1 
 b1 
x 
b 
2
2




x
b


x 
b 
 n
 m

 a11
a
21

A
 
a
 m1

a12
a22

am 2

 a1n 
 a2 n 

  
 amn 


Slide 13

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

n

Max

z  cjxj

 Min

j 1

n

Min z   c j x j
j 1

 z     c j  x j
n

j 1

 Max

 z     c j  x j
n

j 1


Slide 14

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



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

n

a
j 1

ij

n

a
j 1

ij

x j  bi

n
 aij x j  Si  bi
  j 1
0  S  

i

x j  bi

n
 aij x j  Si  bi
  j 1
0  S  

i


Slide 15

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



Tratamento de limites de variáveis

 x j  LB  xj  x j  xj  LB
x j  LB  0  
 xj  0
UB  x j  xj  x j  UB  xj
x j  UB  
 xj  0
 x j  xj  xj
   x j    
 xj  0 e xj  0


Slide 16

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.


Slide 17

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

x2
9
8
7
6



n!finito de soluções
Existe
m um número
Cn em vértices, não maior que...
factíveis
m!(n  m)!



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

5
4
3

2
1
0
0

1

2

3

4

5

6

7

8

9

x1


Slide 18

Programação Linear
Estrutura do Método Simplex

1.

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

x2
Solução
Ótima

9
8

2.

3.

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.
Passo iterativo: movimente
em direção de uma solução
factível melhor, em um
vértice adjacente; volte ao
passo 2.

7
6
5
4
3

2
1
0
0

1

2

3

4

5

6

7

8

9

x1


Slide 19

Programação Linear
Sumá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


Slide 20

Programação Linear
Solução Inicial Viável (caso trivial)

Max

z  3 x1  5 x2

Max

z  3 x1  5 x2

s.a :

x1  4

s.a :

x1  S1  4

2 x2  12

2 x2  S 2  12

3 x1  2 x2  18

3 x1  2 x2  S3  18

x1 , x2  0

x1 , x2 , S1 , S 2 , S3  0

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

S1  4

x1  0

S 2  12 x2  0
S3  18

z0


Slide 21

Programação Linear
Método Simplex na Forma Tableau (1)
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 ?

Max

S2

z  3 x1  5 x2

Base

Z

X1

X2

S1

S3

RHS

S1

0

1

0

1

X2

0

0

1

0

1/2

2 x20 S 2 612

S3

0

3

0

0

-1

Z

1

-3

0

0

5/2

3 x1 1 2 x2 6 S3 +2
18

s.a : 0 x1  0S1  4

0

4

30

+4
+inf

x1 , x2 , S1 , S 2 , S3  0


Slide 22

Programação Linear
Mé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?


Slide 23

Programação Linear

Custo marginal
mais negativo

Método Simplex – Algoritmo
Início

Escolher variável
para entrar na base

Montar tableau com
solução básica
inicial viável

Menor razão
não negativa

Calcular razão
RHS / coluna (entra)

Escolher variável
para sair da base

1
Existe custo
marginal < 0 ?

Sim

Existe
razão  0
finita ?

Não

Não

Solução
ótima

Solução
ilimitada

Sim

Fazer troca de
base e recalcular
o tableau

1
Fim


Slide 24

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



Max z  c x
T

s.a :

Ax  b
x0

 xB 
Max z  c c  
 xR 
 xB 
s.a : B R     b
 xR 
 x B  0 
 x   0 
 R  

Particionando...

T
B

T
R




Slide 25

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


Como resolver o sistema de equações lineares ?

 xB 
B R    b
 xR 

B xB  R xR  b
B xB  b  R xR
xB  B 1 b  R xR 



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

xˆ R  0

Solução Particular

xˆ B  B 1b


Slide 26

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


E o valor da função objetivo ?



z c



T
B

c

T
R



z  cBT xB  cRT xR
z  cBT B 1 b  R xR   cRT xR

 xB 
x 
 R

z  cBT B 1b  cRT  cBT B 1 R  xR
z  cBT xˆ B  cRT  cBT B 1 R  xR

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

xˆ R  0
1

xˆ B  B b

Solução Particular

zˆ  cBT xˆ B


Slide 27

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


Resumindo, até aqui tem-se ...

xB  B

1

b  R xR  

 xˆ R  0

1
x

B
b
ˆ
 B

z  cBT xˆ B  cRT  cBT B 1 R  xR




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

z  zˆ  cRT  cBT B 1 R  xR  0

zˆ  cBT xˆ B


Slide 28

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


Como melhorar ...

z  zˆ  cRT  cBT B 1 R  xR  0

z  zˆ  



Escolher para aumentar (entrar
na base) uma variável não
básica associada a uma
componente positiva do vetor

 xR ,1 
 x

R ,k

0

0 
  
x

 R ,nm 

cRT  cBT B 1 R


Slide 29

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


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

xB ,i  xˆ B ,i  Rk ,i xR ,k  0
xB  B 1 b  R xR 

Rk ,i xR ,k  xˆ B ,i

xB  xˆ B  B 1 Rk xR ,k

xˆ B ,i

Rk ,i

xB  xˆ B  Rk xR ,k

xR ,k

 xB ,1   xˆ B ,1   Rk ,1 
0 
 x   xˆ   R 
0 
 B , 2    B , 2    k , 2  xR ,k   
        


 x   xˆ  
0 
R
 
 B ,m   B ,m   k ,m 

i  1,..., m

i  1,..., m

somente para

Rk ,i  0

Escolher para sair da base
uma variável básica
associada ao menor valor
calculado.


Slide 30

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


Resumo...

x
ˆ B  B 1b

zˆ  cBT xˆ B

z  zˆ  cRT  cBT B 1 R  xR  0

Solução

Teste de entrada

Rk  B 1Rk

xR ,k

 xˆ B ,i

 min 
| Rk ,i  0
 Rk ,i


Teste de saída


Slide 31

Programação Linear
Exemplo (1)

c RT

c BT

 x1 
x 
 2
Max z  3 5 0 0 0  S1 
S 
 2
 S3 
R
B

s.a :

 x1 
 
1 0 1 0 0  x2   4 
0 2 0 1 0  S   12

  1  
3 2 0 0 1  S 2  18
 S3 

xR

xB

b
 x1  0
 x  0 
 2  
 S1   0
S   
 2  0 
 S3  0


Slide 32

Programação Linear
Exemplo (1.a)
1a. Iteração

 S1 
xB   S 2 
 
 S3 

 x1 
xR   
 x2 

4
b  12
 
18

1 0 0 
B  0 1 0 


0 0 1

1 0 
R  0 2 


3 2

cTB  0 0 0

cTR  3 5


Slide 33

Programação Linear
Exemplo (1.b)
1

 x1  0
xˆ R      
 x2  0

 S1 
1 0 0  4   4 
xˆ B   S2   B 1b  0 1 0 12  12
 

    
 S3 
0 0 1 18 18

4
zˆ  cBT xˆ B  [0 0 0] 12  0
 
18

cRT  cBT B 1 R  3 5  0
cRT  cBT B 1 R  3 5

1

1 0 0 1
0 0 0 1 0  0
 na base  
x2 Entra
0 0 1 3

0
2

2


Slide 34

Programação Linear
Exemplo (1.c)
1

1 0 0   0   0 
Rk  B 1 Rk  0 1 0 2  2

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

S2

Sai da base

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

Coluna de

x2


Slide 35

Programação Linear
Exemplo (2.a)
2a. Iteração

 S1 
xB   Sx2 
 
 S3 

 x1 
xR   
 Sx2 

4
b  12
 
18

1 0 0 
B  0 12 0


0 02 1

1 0 
2
R  0 1


0
3 2

cTB  0 50 0

cTR  3 05


Slide 36

Programação Linear
Exemplo (2.b)
 x1  0
xˆ R      
 S 2  0 

zˆ  cTB xˆ B  [0

 S1 
1
xˆ B   x2   B 1b  0
 

 S3 
0
5

0
2
2

 4
0] 6   30
 
6 

1
cRT  cBT B 1 R  3 0  0 5 0 0

x1 Entra na base
0
5

T
T
1
cR  cB B R  3  
2


0
2
2

0
0

1

1

0
0

1

 4   4
12  6
   
18 6

1

1
0

3

0
1

0


Slide 37

Programação Linear
Exemplo (2.c)
1

1 0 0   1  1 
Rk  B 1 Rk  0 2 0 0  0

    
0 2 1 3 3

 s1   4
xˆ B   x2   6 
   
 s3  6 

4 1
0 
xB  xˆ B  Rk xR ,k  6  0 xR ,k  0
   
 
6 3
0
4 6 6
xR ,k  min  , ,   2
1 0 3
S3

Coluna de

Sai da base

x1


Slide 38

Programação Linear
Exemplo (3.a)
3a. Iteração

 S1 
xB   x2 
 
 Sx13 

 Sx13 
xR   
S 2 

4
b  12 
 
18

0
1 0 1
B  0 2 0 


0 2 13

0
0 1
R  0 1
0


3
1 0

cTB  0 5 30

cTR  0 03


Slide 39

Programação Linear
Exemplo (3.b)
1

1 0 1  4  2
xˆ B  B 1b  0 2 0 12  6

    
0 2 3 18 2

 2
zˆ  cBT xˆ B  [0 5 3] 6  36
 
2

Solução ótima

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
3

T
T 1
cR  cB B R   1  
2



Slide 40

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


Slide 41

Programação Linear
Solução Inicial Viável (caso não trivial)
n

Max

z  cj xj

Não tem solução trivial

j 1

n

s.a :

aij x j  bi

j 1
xj  0

i  1,..., mn
Max z   c j x j
j 1
j  1,..., n
n

s.a :

a
j 1

Sempre tem solução trivial

ij

x j  d i  bi

i  1,..., m

xj  0

j  1,..., n

di  0

i  1,..., m

Ambas formulações são equivalentes quando

di  0, i  1,..., m


Slide 42

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

Max

n

m

j 1

i 1

z   c j x j   M di
n

s.a :

a
j 1

ij

x j  d i  bi

i  1,..., m

xj  0

j  1,..., n

di  0

i  1,..., m

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 é suficiente mente grande


Slide 43

Programação Linear
Solução Inicial Viável – Método das 2 Fases

Max w  

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.

m

d

Fase 1

i

i 1

n

s.a :

a

ij

x j  di  bi

i  1,..., m

j 1

xj  0

j  1,..., n

di  0

i  1,..., m

Max

z

n

c

j

xj

Fase 2

j 1

Se w = 0, usar solução ótima
da fase 1 como solução inicial
viável para a fase 2.

n

s.a :

a

ij

x j  bi

i  1,..., m

j 1

xj  0

j  1,..., n


Slide 44

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