pesquisa operacional i programação linear - logis.uff.bruchoa/poi/poi-uchoa-3.pdf · 2...
TRANSCRIPT
1
Pesquisa Operacional I
Programação Linear
Prof. Eduardo Uchoa
http://www.logis.uff.br/~uchoa/POI/
2
Programação Linear
� Técnica que se propõe a otimizar (maximizar ou minimizar) o valor de uma função linear, respeitando um conjunto de restrições (equações ou inequações) lineares
� Criada por George B. Dantzig em 1947
� A criação da PL foi motivada por problemas de planejamento da Força Aérea dos EUA
Um modelo de Programação Linear (PL) reduz um sistema real a um conjunto de equações ou inequações lineares.
3
Problema de Programação LinearConsidere o seguinte problema
( )
( )
1 1 2 2
11 1 12 2 1 1
21 1 22 2 2 2
( / ) ...
Sujeito a ... ,
... ,
n n
n n
n n
Maximizar Minimizar Z c x c x c x
a x a x a x b
a x a x a x b
= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )1 1 2 2
... ,
m m mn n ma x a x a x b+ + + ≥ = ≤
M M M M
1 2 , , .... , 0n
x x x ≥
4
Problema de Programação LinearConsidere o seguinte problema
( )
( )
1
11 1 12 2 1 1
21 1 22 2 2
1 2
2
2
Sujeito a ... ,
... ,
( / ) ...
n n
n n
n n
a x a x a
Maximizar Minimizar Z c x c x c
x b
a x x a
x
a x b
= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )1 1 2 2
... ,
m m mn n ma x a x a x b+ + + ≥ = ≤
M M M M
1 2 , , .... , 0n
x x x ≥Z: função objetivo
cj: coeficientes da função objetivo (custo / lucro), j = 1, …, n
xj: variáveis de decisão, j = 1, …, n
aij: coeficientes das variáveis nas restrições, i = 1,…,m e j = 1,…,n
bi: constantes do lado direito (right-hand-side), i = 1,…,m
5
Problema de Programação LinearConsidere o seguinte problema
( )
( )
1 2
11 1 12 2 1 1
21 1 22 2 2
1 2
2
( / )
Sujeito a ... ,
...
...
,
n n
n n
n n
Maximizar Minimizar Z x x x
a x a x a x b
a x a x a x b
c c c= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )1 1 2 2
... ,
m m mn n ma x a x a x b+ + + ≥ = ≤
M M M M
1 2 , , .... , 0n
x x x ≥Z: função objetivo
cj: coeficientes da função objetivo (custo / lucro), j = 1, …, n
xj: variáveis de decisão, j = 1, …, n
aij: coeficientes das variáveis nas restrições, i = 1,…,m e j = 1,…,n
bi: constantes do lado direito (right-hand-side), i = 1,…,m
6
Problema de Programação LinearConsidere o seguinte problema
( )
( )
11 2
11 12 1 1
21 2
2
2 2
1
2
2
1 2
( / )
Sujeito a
...
...
..
,
,
.
n
n
n
n
n
n
Maximizar Minimizar Z c c c
a a a
x x x
x x x
x xa a ax
b
b
= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )11 22
,
...
m m mn mnx x xa a a b+ + + ≥ = ≤
M M M M
1 2 , , , ... 0.n
x x x ≥Z: função objetivo
cj: coeficientes da função objetivo (custo / lucro), j = 1, …, n
xj: variáveis de decisão, j = 1, …, n
aij: coeficientes das variáveis nas restrições, i = 1,…,m e j = 1,…,n
bi: constantes do lado direito (right-hand-side), i = 1,…,m
7
Problema de Programação LinearConsidere o seguinte problema
( )
( )
1 1 2 2
1 2 1
1
11 12 1
21 2 22 22
( / ) ...
Sujeito
...a ,
,
...
n
n n
n
n n
a a a
Maximizar Minimizar Z c x c x
a
c x
x x x b
x x xa ba
= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )11 22
,
...
n mm m mnx x xa a a b+ + + ≥ = ≤
M MM M
1 2 , , .... , 0n
x x x ≥Z: função objetivo
cj: coeficientes da função objetivo (custo / lucro), j = 1, …, n
xj: variáveis de decisão, j = 1, …, n
aij: coeficientes das variáveis nas restrições, i = 1,…,m e j = 1,…,n
bi: constantes do lado direito (right-hand-side), i = 1,…,m
8
Problema de Programação LinearConsidere o seguinte problema
( )
( )
1 1 2 2
11 1 12 2 1
21 1 22 22
1
2
( / ) ...
Sujeito a ... ,
... ,
n n
n n
n n
Maximizar Minimizar Z c x c x c x
a x a x a x
a
b
bx a x a x
= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )1 1 2 2
... ,
mm m mn na x a x a x b+ + + ≥ = ≤
M MM M
1 2 , , .... , 0n
x x x ≥Z: função objetivo
cj: coeficientes da função objetivo (custo / lucro), j = 1, …, n
xj: variáveis de decisão, j = 1, …, n
aij: coeficientes das variáveis nas restrições, i = 1,…,m e j = 1,…,n
bi: constantes do lado direito (right-hand-side), i = 1,…,m
9
Programação LinearConsidere o seguinte problema
( )
( )
1 1 2 2
11 1 12 2 1 1
21 1 22 2 2 2
( / ) ...
Sujeito a ... ,
... ,
n n
n n
n n
Maximizar Minimizar Z c x c x c x
a x a x a x b
a x a x a x b
= + + +
+ + + ≥ = ≤
+ + + ≥ = ≤
( )1 1 2 2
... ,
m m mn n ma x a x a x b+ + + ≥ = ≤
M M M M
1 2 , , .... , 0n
x x x ≥Z: função objetivo
cj: coeficientes da função objetivo (custo / lucro), j = 1, …, n
xj: variáveis de decisão, j = 1, …, n
aij: coeficientes das variáveis nas restrições, i = 1,…,m e j = 1,…,n
bi: constantes do lado direito (right-hand-side), i = 1,…,m
10
Formas de representação de PLs� Forma padrão: todas as restrições são igualdades e todas as
variáveis são não-negativas
� Forma canônica: todas as restrições são do tipo ≥ (se for minimização) ou do tipo ≤ (se for maximização); todas as variáveis são não-negativas
11
Manipulação de PLs
� Transformar equações em inequações:
Uma equação equivale a duas inequações
1
⇒=∑=
i
n
j
jij bxa i
n
j
jij bxa ≥∑=1
i
n
j
jij bxa ≤∑=1
12
Manipulação de PLs
� Transformar equações em inequações:
Uma equação equivale a duas inequações
0,,
123
10
S.a
24Max
321
321
321
321
≥
−=−+
=++
−+
xxx
xxx
xxx
xxx
⇒
0,,
123
123
10
10
S.a
24Max
321
321
321
321
321
321
≥
−≤−+
−≥−+
≤++
≥++
−+
xxx
xxx
xxx
xxx
xxx
xxx
13
Manipulação de PLs
� Transformar inequações em equações:
Adicionar uma nova variável não-negativa, conhecida como variável de folga.
1
⇒≤∑=
i
n
j
jij bxa
01
1
1
≥
=+
+
+
=
∑
n
in
n
j
jij
x
bxxa
14
Manipulação de PLs
� Transformar inequações em equações:
Adicionar uma nova variável não-negativa, conhecida como variável de excesso.
1
⇒≥∑=
i
n
j
jij bxa
01
1
1
≥
=−
+
+
=
∑
n
in
n
j
jij
x
bxxa
15
Manipulação de PLs
� Transformar inequações em equações:
Cada inequação transformada exige uma variável de folga ou de excesso diferente.
0,,
53
102
S.a
3Min Z
321
21
321
31
≥
≥−
≤++
+=
xxx
xx
xxx
xx
⇒
0,,,,
53
102
S.a
3Min Z
54321
521
4321
31
≥
=−−
=+++
+=
xxxxx
xxx
xxxx
xx
16
Manipulação de PLs� Transformar inequações em equações:
0,,
53
102
S.a
3Min Z
321
21
321
31
≥
≥−
≤++
+=
xxx
xx
xxx
xx
⇒
0,,,,
53
102
S.a
3Min Z
54321
521
4321
31
≥
=−−
=+++
+=
xxxxx
xxx
xxxx
xx
5
0
0
67,1
:ótima Solução
3
2
1
=
=
=
=
Z
x
x
x
5
0
33,8
0
0
67,1
:ótima Solução
5
4
3
2
1
=
=
=
=
=
=
Z
x
x
x
x
x
17
Manipulação de PLs
� Transformar Minimização em Maximização :
Não esquecer que o valor da função objetivo do novo problema de maximização deve ser multiplicada por -1 para obter o valor da função objetivo do problema de minimização original.
∑∑==
−=−⇒=n
j
jj
n
j
jj xcZxcZ11
)(Maximizar Minimizar
18
Manipulação de PLs
� Transformar Maximização em Minimização:
Não esquecer que o valor da função objetivo do novo problema de minimização deve ser multiplicada por -1 para obter o valor da função objetivo do problema de maximização original.
∑∑==
−=−⇒=n
j
jj
n
j
jj xcZxcZ11
)(Minimizar Maximizar
19
Manipulação de PLs
0,,
53
102
S.a
3Min Z
321
21
321
31
≥
≥−
≤++
+=
xxx
xx
xxx
xx
⇒
0,,
53
102
S.a
-3ZMax
321
21
321
31
≥
≥−
≤++
−=′
xxx
xx
xxx
xx
5
0
0
67,1
:ótima Solução
3
2
1
=
=
=
=
Z
x
x
x
5
0
0
67,1
:ótima Solução
3
2
1
−=′
=
=
=
Z
x
x
x
20
Manipulação de PLs
� Transformar “variáveis livres” em variáveis não-negativas
Em alguns casos é possível existir variáveis que podem assumir valores positivos ou negativos.
livre
0,
4
52
S.a
Min Z
3
21
31
321
321
x
xx
xx
xxx
xxx
≥
≤−
=++−
++=
21
Manipulação de PLs
⇒
5,0
4
5,4
0
:ótima Solução
3
2
1
=
−=
=
=
Z
x
x
x
livre
0,
4
52
S.a
Min Z
3
21
31
321
321
x
xx
xx
xxx
xxx
≥
≤−
=++−
++=
0,,,
4
52
S.a
Min Z
4321
431
4321
4321
≥
≤+−
=−++−
−++=
xxxx
xxx
xxxx
xxxx
5,0
4
0
5,4
0
:ótima Solução
4
3
2
1
=
=
=
=
=
Z
x
x
x
x
23
Objetivo
� Descrever o procedimento gráfico / geométrico para resolver problemas de programação linear com 2 variáveis
� Obter a solução ótima enumerando os pontos extremos
� Obter a solução ótima pelo gradiente da função objetivo
� Ilustrar os casos da PL: � Solução ótima única
� Múltiplas soluções ótimas
� Soluções ilimitadas
� Problema inviável (não tem solução)
24
Exemplo de PL – Mix de produçãoUma empresa fabrica 2 tipos de porta: de madeira e de alumínio. Cada porta passa por 3 operações: corte, montagem e acabamento. O tempo gasto emcada uma dessas operações, por cada tipo de portaé conhecido. Determine a produção diária de cada tipo de portapara maximizar o lucro da empresa, respeitando as disponibilidades diárias de tempo da máquina queexecuta cada operação.
R$ 6,00
R$ 4,00
Lucro Unitário
8 h21 h24 hDisponibilidade
1,0 h/porta1,5 h/porta4,0 h/portaAlumínio
1,0 h/porta3,0 h/porta1,5 h/portaMadeira
AcabamentoMontagemCorte
25
Variáveis:
xi: qtde a ser produzida, i = porta de madeira, porta de alumínio
Função objetivo:
Maximizar Lucro →Maximizar Z = 4,0 xmad + 6,0 xal
Restrições de capacidade produtiva:
1,5 xmad + 4,0 xal ≤ 24 (corte)
3,0 xmad + 1,5 xal ≤ 21 (montagem)
1,0 xmad + 1,0 xal ≤ 8 (acabamento)
Restrições de não-negatividade:
xmad, xal ≥ 0
Exemplo de PL – Mix de produção
26
Exemplo de PL – Mix de produção
xmad
5 10 15
xal
510
27
Exemplo de PL – Mix de produção
xmad
5 10 15
xal
510
corte →→→→ 1,5 xmad + 4,0 xal ≤ 24
28
Exemplo de PL – Mix de produção
xmad
5 10 15
xal
510
montagem →→→→ 3,0 xmad + 1,5 xal ≤ 21
29
Exemplo de PL – Mix de produção
xmad
5 10 15
xal
510
acabamento →→→→ 1,0 xmad + 1,0 xal ≤ 8
30
Exemplo de PL – Mix de produção
xmad
5 10 15
xal
510
Não-negatividade →→→→ xmad, xal ≥ 0
31
Exemplo de PL – Mix de produção
xmad
5 10 15
xal
510
5 10 15
510
REGIÃO (CONJUNTO) DE SOLUÇÕES VIÁVEIS
→→→→ POLÍGONO CONVEXO
32
Solução por enumeração dos pontos
extremos
xmad5
x al
5
PONTOS EXTREMOS
xmad xal Lucro (Z)
0 0 0
0 6 36
7 0 28
3,2 4,8 41,6
6 2 36
33
Os pontos extremos correspondem a pares
de restriçõesx a
l
xmad53,2
4,8
RESTRIÇÕES ATIVAS: CORTE e ACABAMENTO
xmad
xal
Restrições ativas
0 0 xmad, xal ≥ 0
0 6 xmad ≥ 0, corte: 1,5 xmad + 4,0 xal ≤ 24
7 0 xal ≥ 0, montagem: 3,0 xmad + 1,5 xal ≤ 21
3,2 4,8 corte: 1,5 xmad + 4,0 xal ≤ 24,
acabamento: 1,0 xmad + 1,0 xal ≤ 8
6 2 acabamento: 1,0 xmad + 1,0 xal ≤ 8,
montagem: 3,0 xmad + 1,5 xal ≤ 21
Obs:Montagem - tempo ocioso: 4,2 h/dia
34
Solução gráfica pelo gradiente da função
objetivo
xmad5 10 15
xal
510
Lucro = Z = 4,0 xmad
+ 6,0 xal
35xmad
5 10 15
xal
510
Solução gráfica pelo gradiente da função
objetivo
36
Nesse caso existe uma única solução ótima
xmad
5
x al
3,2
4,8
Z = 41,6
37
Isso nem sempre acontece
� Múltiplas soluções ótimas
Maximizar Lucro = Z = 6,0 xmad + 6,0 xal
x al
6
6
xmad
38
Soluções ilimitadas
Max x1 + x2
S.a x1 + x2 ≥ 4
- x1 + 2 x2 ≤ 4
x1, x2 ≥ 0
x2
510
5 10 x1
39
Soluções ilimitadas
Geralmente indica erro na modelagem, não existe sistema real “ilimitado”
Max x1 + x2
S.a x1 + x2 ≥ 4
- x1 + 2 x2 ≤ 4
x1, x2 ≥ 0
x2
510
5 10 x1
40
Problema inviável (não existe solução)
Max x1 + x2
S.a x1 + x2 ≥ 8
x1 + x2 ≤ 4
x1, x2 ≥ 0
x25
10
5 10 x1
41
Problema inviável (não existe solução)
Nem sempre é erro de modelagem. Pode ser uma indicação real que se estátentando fazer algo impossível!
x25
10
5 10 x1
42
OBSERVAÇÃO
Este material refere-se às notas de aula do curso
TEP117 (Pesquisa Operacional I) da Universidade
Federal Fluminense (UFF) e foi criado a partir das
notas do Prof. Rodrigo A. Scarpel do ITA
(www.mec.ita.br/~rodrigo) e não pode ser
reproduzido sem autorização prévia de ambos os
autores. Quando autorizado, seu uso é exclusivo
para atividades de ensino e pesquisa em
instituições sem fins lucrativos.