Post on 25-Jun-2015
AAAccceeetttaaatttooosss dddeee aaapppooo iii ooo àààsss
aaauuu lll aaasss TTTeeeóóórrr iii cccooo---ppprrráááttt iii cccaaasss dddeee
OOOpppttt iiimmmiii zzzaaaçççãããooo LLL iii nnneeeaaarrr
Estes acetatos destinam-se exclusivamente a apoiar as aulas teórico-
práticas da disciplina de Optimização Linear, são baseados nos livros
e sebenta constantes da bibliografia da disciplina, nomeadamente:
• Elementos de apoio às aulas de Programação Matemática", "Enunciados de Exercícios de
Programação Matemática", Ruy A. Costa
• "Programação Linear", Guerreiro, Magalhães & Ramalhete, Mc Graw Hill.
e não dispensam a consulta dos mesmos.
Acetatos de Optimização Linear Cecília Rodrigues
1
PPPrrrooobbbllleeemmmaaa gggeeerrraaalll dddeee PPPrrrooogggrrraaammmaaaçççãããooo MMMaaattteeemmmáááttt iii cccaaa
Maximizar (ou minimizar) F (x1, x2, ...xn)
sujeito a:
f1 (x1, x2, ...xn) ≤ ; ≥; = b1
f2 (x1, x2, ...xn) ≤ ; ≥; = b2
.
fm (x1, x2, ...xn) ≤ ; ≥; = bm
Se a função objectivo F e as restrições f1, f2,..., fm forem funções
lineares em relação às variáveis não negativas x1, x2, ...xn estamos
perante um caso particular do problema anterior - um problema de Programação Linear
Max (ou Min) F = c1 x1 + c2 x2 + ... + cN xN
Sujeito a :
a11 x1 + a12 x2 + … + a1N xN ≤ ; ≥; = b1
a21 x1 + a22 x2 + … + a2N xN ≤ ; ≥; = b2
...
...
aM1 x1 + aM2 x2 + … + aMN xN ≤ ; ≥; = bM
As variáveis devem ser não negativas (xi ≥ 0), não positivas (xi ≤ 0) ou
ainda variáveis livres (xi ∈ℜ).
O conjunto dos n-uplos ( v1, v2, ... , vn) associado às variáveis (x1,
x2, ... ,xn) que verificam todas as restrições e a condição de não
negatividade designa-se por Espaço de Soluções Admissíveis .
Acetatos de Optimização Linear Cecília Rodrigues
2
Formulação de problemas de Programação Linear
Exemplo F01 : Um jovem empresário está a pensar montar uma empresa de
transporte de passageiros, para a sua pequena cidade. Para tal terá de adquirir
autocarros de tipo A e B, com lotações, respectivamente, de 30 e 40 passageiros.
Tipo de autocarro Preço (u.m.) Lotação A 15 000 30 B 25 000 40
Dispõe de uma verba de 150 000 u.m. para adquirir os veículos e a frota adquirida
deverá garantir uma lotação de, pelo menos, 200 passageiros. Além disto, deve
ser adquirido, pelo menos, um veículo de tipo B.
Pretende minimizar o custo total de aquisição dos autocarros.
a) Formule o problema com um modelo de Programação Linear adequado
b) Resolva o problema, recorrendo ao método gráfico.
• Qual o objectivo?
minimizar o custo total de aquisição dos autocarros
• Que decisões deverão ser tomadas?
quantos veículos comprar de tipo A e de tipo B
• Que recursos / condicionalismos existem?
dispõe de uma verba de 150 000 u.m. para adquirir os veículos;
a frota adquirida deverá garantir uma lotação de, pelo menos, 200
passageiros;
deve ser adquirido, pelo menos, um veículo de tipo B
Definição das variáveis
xA - nº de autocarros a adquirir do tipo A
xB - nº de autocarros a adquirir do tipo B
Acetatos de Optimização Linear Cecília Rodrigues
3
a)
Min F = 15 000 xA + 25 000 xB (u.m.) Função Objectivo
s.a.
15 000 xA + 25 000 xB ≤ 150 000 u.m. restrição financeira
30 xA + 40 xB ≥ 200 restrição de lotação mínima
xB ≥ 1 restrição de aquisição mínima
xA, xB ≥ 0 e inteiros domínio das variáveis
b) Resolução gráfica
No caso de duas variáveis:
• à função objectivo corresponde uma família de rectas todas com o mesmo
declive, neste caso, -3/5;
• a cada restrição corresponde uma região do plano delimitada por uma recta;
• a não negatividade das variáveis reduz-nos ao 1º quadrante;
• o conjunto dos pontos que respeitam simultaneamente as restrições e a
condição de não negatividade e integralidade designa-se por Espaço de
Soluções Admissíveis.
2
-0.6
Acetatos de Optimização Linear Cecília Rodrigues
4
Interpretação Gráfica
• Num problema de programação Linear, a Função Objectivo
representa um hiperplano.
• Cada restrição representa também um hiperplano.
• Um hiperplano é um conjunto convexo e, a intersecção de
conjuntos convexos é também um conjunto convexo. Logo, o
Espaço de Soluções Admissíveis de um problema de Programação
Linear é um conjunto convexo. Como todas as restrições são
lineares, em termos geométricos, o Espaço de Soluções
Admissíveis é um Politopo Convexo .
Prova-se que o máximo/mínimo de uma função linear sobre um
politopo convexo corresponde a, pelo menos, um vértice do
politopo.
Forma Standard e Forma Canónica
Um problema de Programação Linear diz-se na Forma
Standard se se pretender maximizar a função objectivo, todas as
restrições estiverem na forma de igualdade e todas as variáveis
forem não negativas (xi ≥ 0).
Se se pretender maximizar a função objectivo, sendo todas as
restrições do tipo ≤ e todas as variáveis não negativas (xi ≥ 0), o
problema de Programação Linear diz-se na Forma Canónica.
Acetatos de Optimização Linear Cecília Rodrigues
5
Utilização de variáveis binárias na formulação de p roblemas de Programação Linear Mista
Por vezes não é possível formular um problema de Programação Linear apenas com variáveis não negativas. Neste caso, é comum utilizar-se variáveis binárias - que tomam apenas os valores 0 e 1 - conduzindo a um modelo de Programação Linear Mista , dado que se utilizam variáveis não negativas e binárias. Lote mínimo Esta situação ocorre normalmente quando, ou não se produz um determinado artigo, ou então produz-se, pelo menos, um determinado valor - o lote mínimo . Admita-se, por exemplo que o lote mínimo é de 20. Isto significa que, ou se produz 0 unidades de um artigo, ou então tem de se produzir, pelo menos 20. Seja x a variável que representa o nº de unidades do artigo a produzir. Pretende-se representar a condição x = 0 ou x ≥≥≥≥ 20. Seja z uma variável binária, isto é, z ∈ {0, 1} e M um valor numérico positivo muito elevado (relativamente aos outros coeficientes intervenientes no problema). A condição x = 0 ou x ≥ 20 pode representar-se pela conjunção das condições:
se z = 0, então x ≥ 0 e x ≤ 0, isto é, x = 0 se z = 1, então x ≥ 20 e x ≤ M, isto é, x ≥ 20. Note-se que, como M é um valor muito grande, em termos práticos, x ≤ M nada restringe.
x ≥ 20.z x ≤ M.z z ∈ {0, 1} x ≥ 0
Acetatos de Optimização Linear Cecília Rodrigues
6
Custo de arranque de produção Por vezes a função objectivo de um problema de Programação Linear pode exprimir-se como: Min F = c1.x1 + c2.x2 +...+ cn.xn, ou seja, cada parcela Pi = ci.xi. Se a função F representar o custo mensal, de produção de determinadas peças, é natural que, para se iniciar a produção seja necessário despender um custo fixo de arranque (que não depende do nº de peças a produzir). Relativamente à parcela i, se ki e ci representarem, respectivamente, o custo fixo e o custo unitário, ter-se-á: Pi = 0, se xi = 0 , ou alternativamente, Pi = ki + ci.xi, se xi > 0. Esta condição pode representar-se pela conjunção das condições: se zi = 0, então xi ≤ 0 e xi ≥ 0, isto é, xi = 0 Min F = ... + ki.0+ ci.0 + ... = 0, ou seja Pi = 0 se zi = 1, então xi ≤ M e xi ≥ 0, isto é, xi ≥ 0, ou seja, Min F = ... + ki.1 + ci.xi + ... , ou seja Pi = ki + ci.xi. Recorde-se que, como M é um valor muito grande, em termos práticos, xi ≤ M nada restringe, daí que, xi ≤ M e xi ≥ 0 equivale a xi ≥ 0.
Min F = ... + ki.z + ci.xi + ...
xi ≤ M.z zi ∈ {0, 1} xi ≥ 0
Acetatos de Optimização Linear Cecília Rodrigues
7
Variável que toma valores num dado conjunto discret o Em muitas situações reais, uma variável só pode tomar valores num determinado conjunto discreto. Admita-se que X ∈ { x1, x2, ..., xk}. Esta situação pode modelar-se com a conjunção das seguintes condições: De notar que a conjunção das duas últimas condições obriga a que uma, e só uma, das variáveis z1, z2 , ... , zk tome o valor 1, tomando as restantes variáveis o valor 0. De um modo geral, se zi = 1, então X = xi ( i = 1, 2, ..., k).
X = z1.x1 + z2.x2 + ... + zk.xk z1 + z2 + ... + zk = 1 z1, z2 , ... , zk ∈ {0, 1}
Acetatos de Optimização Linear Cecília Rodrigues
8
Função objectivo com secções lineares de diferentes inclinações
Considere-se a situação em que a função objectivo de um problema de Programação Linear é do tipo: F = ... + ki + ci.xi + ... , em que, Pi = ki + ci.xi. Pretende-se agora representar a situação em que a parcela Pi seja representada por troços lineares de diferentes inclinações. Exemplo F02 : Considere-se a seguinte secção Pi da função objectivo de um problema de P.L.: 0 5 12 20
y1 y2 y3 Admita-se que uma fábrica vende determinado produto em função da quantidade adquirida. Assim, o custo por unidade, será: • 1.0 u.m se a quantidade adquirida for menor ou igual a 5 unidades; • 0.5 u.m para as 7 unidades seguintes (além das 5); • 0.7 u.m. para as 8 unidades seguintes (além das 12). Vamos admitir que a variável xi se exprime como a soma de três variáveis não negativas xi = y1 + y2 + y3, em que:
y1 é a variável correspondente ao intervalo [0, 5] y2 é a variável correspondente ao intervalo [5, 12] y3 é a variável correspondente ao intervalo [12, 20]
Este exemplo pode modelar-se com a introdução de duas variáveis binárias z1 e z2 e conjugando as seguintes condições:
Pi
xi
Acetatos de Optimização Linear Cecília Rodrigues
9
Pi = 1.0. y1 + 0.5. y2 + 0.7 y3 xi = y1 + y2 + y3 se z1 = z2 = 0, então
0 ≤ y1 ≤ 5 0 ≤ y2 ≤ 0 ⇒ y2 = 0 0 ≤ y3 ≤ 0 ⇒ y3 = 0
Pi = 1.0 y1 se z1 = 1, z2 = 0, então
5 ≤ y1 ≤ 5 ⇒ y1 = 5 0 ≤ y2 ≤ 7 0 ≤ y3 ≤ 0 ⇒ y3 = 0
Pi = 1.0 x 5 + 0.5 y2 se z1 = z2 = 1, então
5 ≤ y1 ≤ 5 ⇒ y1 = 5 7 ≤ y2 ≤ 7 ⇒ y2 = 7 0 ≤ y3 ≤ 8
Pi = 1.0 x 5 + 0.5 x 7 + 0.7 y3
Pi = 1.0. y1 + 0.5. y2 + 0.7 y3 xi = y1 + y2 + y3 5.z1 ≤ y1 ≤ 5 7.z2 ≤ y2 ≤ 7.z1 0 ≤ y3 ≤ 8.z2 z1, z2 ∈ {0,1}
Acetatos de Optimização Linear Cecília Rodrigues
10
Activação de uma entre duas restrições (disjunção) Admita-se que se pretende cumprir, pelo menos uma, de entre duas restrições de um problema de Programação Linear. Exemplo F03 : Considere-se, por exemplo
ou 3.x1 + 2.x2 ≤ 18 ou x1 + 4.x2 ≤ 16
Se somarmos ao segundo membro de uma restrição de "≤" um valor positivo muito elevado, M, estamos, em termos práticos a "anular" a restrição. Por exemplo 3.x1 + 2.x2 ≤ 18 + M , nada restringe em termos práticos, já que por muito elevados que sejam os valores de x1 e x2, a restrição continua a ser verificada, já que a quantidade M é ainda maior. A situação de escolha de uma de entre duas restrições, relativa ao exemplo apresentado, pode modelar-se com a conjunção das condições: se z = 0, vem
3.x1 + 2.x2 ≤ 18, isto é, exige-se o cumprimento da 1ª restrição; x1 + 4.x2 ≤ 16 + M, isto é, a 2ª restrição é sempre verificada.
se z = 1, vem 3.x1 + 2.x2 ≤ 18 + M, isto é, a 1ª restrição é sempre verificada; x1 + 4.x2 ≤ 16, isto é, exige-se o cumprimento da 2ª restrição. Notas: • De notar que nada impede a verificação de ambas as restrições; • Se uma restrição for do tipo "≥", a parcela M.z (ou, M.(1-z) ) deverá ser subtraída ao segundo membro da desigualdade.
3.x1 + 2.x2 ≤ 18 + M.z x1 + 4.x2 ≤ 16 + M.(1-z) z ∈ {0, 1}
Acetatos de Optimização Linear Cecília Rodrigues
11
Activação de k restrições de entre um grupo de rest rições Esta situação corresponde à generalização do caso anterior, pretendendo-se agora garantir que, de entre um grupo de mais de k restrições, sejam verificadas, pelo menos k restrições de um problema de Programação Linear. Admita-se que de entre as N restrições seguintes se pretende activar, pelo menos k (k < N)
f1 (x1, x2, ...xn) ≤ d1, f2 (x1, x2, ...xn) ≤ d2,
.
.
. fN (x1, x2, ...xn) ≤ dN.
Tal consegue-se do seguinte modo: De notar que, se zi = 0, a restrição fi (x1, x2, ...xn) ≤ di é activada. Por outro lado a conjunção das condições z1 + z2 + ... + zN = N - k e z1, z2 , ... , zN ∈ {0, 1} garante-nos que exactamente k variáveis zi tomem o valor 0, isto é que exactamente k restrições sejam activadas.
f1 (x1, x2, ...xn) ≤ d1 + M.z1 f2 (x1, x2, ...xn) ≤ d2 + M.z2
.
.
. fN (x1, x2, ...xn) ≤ dN + M.zN z1 + z2 + ... + zN = N - k z1, z2 , ... , zN ∈ {0, 1}
Acetatos de Optimização Linear Cecília Rodrigues
12
Implicação de restrições A utilização de variáveis binárias permite também modelar a implicação entre restrições.
a ⇒ b ⇔ ~a v b Exemplo F04 : Considere-se por exemplo,
Se ( x + y > 15), então (z ≥ 3 ∧ w ≤ 6) Esta implicação é equivalente a
( x + y ≤ 15) v (z ≥ 3 ∧ w ≤ 6),
o que pode representar-se com a conjunção das condições: se z = 0,
x + y ≤ 15, (activada) z ≥ 3 - M, (desactivada) w ≤ 6 + M, (desactivada)
se z = 1
x + y ≤ 15 + M, (desactivada) z ≥ 3, (activada) w ≤ 6, (activada)
x + y ≤ 15 + M.z z ≥ 3 - M.(1-z) w ≤ 6 + M.(1-z) z ∈ {0, 1}
Acetatos de Optimização Linear Cecília Rodrigues
13
Conceitos fundamentais em Programação Linear
Considere o seguinte problema de Programação Linear, na forma
standard:
Max F = c1 x1 + c2 x2 + ... + cn xn [1]
Sujeito a :
a11 x1 + a12 x2 + … + a1n xn = b1
a21 x1 + a22 x2 + … + a2n xn = b2 [2]
...
am1 x1 + am2 x2 + … + amn xn = bm
x1, x2 , … , xn ≥ o [3]
Relativamente a um problema de Programação Linear expresso na forma standard, com n variáveis e m restrições (sendo n > m ), podem apresentar-se as seguintes definições:
Solução é todo o n-uplo ( v1, v2, ... , vn) associado às variáveis (x1, x2, ... ,xn) que verificam as restrições [2].
Solução admissível é toda a solução que verifica as condições de não negatividade [3].
O conjunto das soluções que verificam as condições [2] e [3] designa- -se por Espaço de Soluções Admissíveis . Se as n-m variáveis (xm+1, … , xn ) forem todas iguais a zero, a solução diz-se solução básica admissível . Neste caso, as variáveis x1, … , xm designam-se por variáveis básicas e as variáveis xm+1, … , xn designam-se por variáveis não básicas . Solução básica (s.b.) é toda a solução constituída por, n-m variáveis não básicas (variáveis com valor nulo), sendo as restantes m variáveis básicas determinadas univocamente.
Acetatos de Optimização Linear Cecília Rodrigues
14
Relativamente a uma solução básica, designa-se por base o conjunto das variáveis básicas.
Solução básica admissível (s.b.a.) é toda a solução básica que verifica as condições de não negatividade [3] . Solução básica admissível não degenerada é toda a solução básica admissível cujas variáveis básicas tomem valores estritamente positivos. Se alguma variável de uma s.b.a. for nula, estar-se-á perante uma solução básica admissível degenerada . Solução óptima é toda a solução que torna máximo o valor da função objectivo [1].
Teorema Fundamental da Programação Linear Dado um problema Programação Linear na forma:
Max F = c1 x1 + c2 x2 + ... + cn xn [1]
Sujeito a :
a11 x1 + a12 x2 + … + a1n xn = b1
a21 x1 + a22 x2 + … + a2n xn = b2 [2]
...
am1 x1 + am2 x2 + … + amn xn = bm
x1, x2 , … , xn ≥ o [3]
se existe uma solução admissível , então existe uma solução básica admissível , e se existe uma solução óptima admissível então existe uma solução básica óptima admissível .
Acetatos de Optimização Linear Cecília Rodrigues
15
Quantas soluções básicas admissíveis tem um problema Programação Linear? Num problema de Programação Linear expresso na forma standard, com n variáveis e m restrições (sendo n > m ), uma solução é básica se tiver m variáveis básicas e n-m variáveis não básicas (nulas).
(x, x, x, ... , x, 0, 0, 0, ..., 0)
m n-m O número de soluções básicas de um problema Programação Linear será
nmC =
m)!(n m!n!
−
Mas nem toda a solução básica é admissível, logo o número de soluções básicas admissíveis de um problema Programação Linear é menor ou igual a n
mC . Exemplo PL01 : Considere o seguinte problema de optimização: Max F = 5x + 6y s.a 2x + 3y ≤ 16 3x + 2y ≤ 17 Utilizando método gráfico, resolva-o, considerando:
a) x ≥ 0, y ≥ 0 (Programação Linear) e identifique as soluções básicas admissíveis; b) x ∈ N0, y ≥ 0; (Programação Linear Mista) c) x ≥ 0, y ∈ N0; (Programação Linear Mista) d) x ∈ N0, y ∈ N0; (Programação Linear Inteira)
Acetatos de Optimização Linear Cecília Rodrigues
16
a) Max F = 5x + 6y s.a
2x + 3y ≤ 16 3x + 2y ≤ 17
x ≥ 0, y ≥ 0
Forma Standard Max F = 5x + 6y + 0F1 + 0F2 s.a 2x + 3y + F1 = 16 3x + 2y + F2 = 17 x ≥ 0, y ≥ 0, F1 ≥ 0, F2 ≥ 0 n - nº variáveis = 4; m - nº restrições = 2 Qualquer solução básica terá m = 2 variáveis básicas e (n-m) = 2 variáveis não básicas (nulas). O número máximo de soluções básicas para este problema será
42C =
2)!(4 2!4!−
= 6
mas nem todas as soluções básicas são necessariamente admissíveis.
(x*, y*) = (3.8, 2.8) F* = 35.8
Acetatos de Optimização Linear Cecília Rodrigues
17
O Espaço de Soluções Admissíveis (E.S.A.) deste problema é um poligono convexo e as soluções básicas admissíveis situam-se nos seus vértices.
vértice x y F1 F2 F (0,0) 0 0 16 17 0
(0, 5.3) 0 5.3 0 6.4 31.8 (5.7, 0) 5.7 0 17.3 0 28.5
(3.8, 2.8) 3.8 2.8 0 0 35.8 Pelo Teorema Fundamental da Programação Linear se existe uma solução óptima admissível então existe uma solução básica óptima admissível, pelo que a solução óptima estará entre estas 4. Como já vimos a solução óptima é (x*, y*) = (3.8, 2.8)
Acetatos de Optimização Linear Cecília Rodrigues
18
b) Max F = 5x + 6y s.a
2x + 3y ≤ 16 3x + 2y ≤ 17
x ∈ N0, y ≥ 0
c) Max F = 5x + 6y s.a
2x + 3y ≤ 16 3x + 2y ≤ 17
x ≥ 0, y ∈ N0
(x*, y*) = (3, 10/3) e (x*, y*) = (4, 5/2) F* = 35.0
(x*, y*) = (3.5, 3) F* = 35.5
Acetatos de Optimização Linear Cecília Rodrigues
19
d) Max F = 5x + 6y s.a
2x + 3y ≤ 16 3x + 2y ≤ 17
x ∈ N0, y ∈ N0
Comparando os resultados obtidos: Max F = 5x + 6y s.a
2x + 3y ≤ 16 3x + 2y ≤ 17
Tipo de variaveis (x*, y*) F* x ≥ 0, y ≥ 0 (3.8, 2.8) 35.8 x ∈ N0, y ≥ 0 (3, 10/3) e (4, 5/2) 35.0 x ≥ 0, y ∈ N0 (3.5, 3) 35.5
x ∈ N0, y ∈ N0, (2, 4) 34.0
(x*, y*) = (2, 4) F* = 34
Acetatos de Optimização Linear Cecília Rodrigues
20
Dado um problema de Programação Linear Inteira, chama-se
Problema Relaxado ao correspondente problema de Programação
Linear, resultante da relaxação da condição de integralidade das
variáveis.
O Espaço de Soluções Admissíveis do problema de Programação
Linear Inteira, está contido no Espaço de Soluções Admissíveis do
correspondente problema relaxado. Logo, o valor óptimo da função
objectivo do problema de Programação Linear Inteira será
sempre "pior ou igual" ao valor óptimo da função ob jectivo do
problema relaxado .
problema de PLI problema de PL Mista problema de PL
valor óptimo de F.O. valor óptimo de F.O.
"pior ou igual" "pior ou igual"
Acetatos de Optimização Linear Cecília Rodrigues
21
Algoritmo Simplex Primal ExemploPL02 : Consideremos o seguinte problema de Programação Linear Max F = 4x + 3y s.a. -x + y ≤ 3 4x + y ≤ 8 x, y ≥ 0 Graficamente, temos o correspondente Espaço de Soluções Admissíveis: y 5 4 3 2 1 0 1 2 3 4 5 x
e sabemos que as soluções básicas admissíveis correspondem aos vértices do Espaço de Soluções Admissíveis:
vértice x y F (0, 0) 0 0 0 (2, 0) 2 0 8 (1, 4) 1 4 16 (0, 3) 0 3 6
Neste exemplo é fácil enumerar os vértices e comparar os correspondentes valores da função objectivo, obtendo-se a solução óptima e respectivo valor óptimo:
(x*, y*) = (1, 4), F* = 16 é evidente que este processo só se pode utilizar em problemas de pequena dimensão.
Acetatos de Optimização Linear Cecília Rodrigues
22
Resolução analiticamente o problema: 1- Re-escrever o problema na forma standard Max F = 4x + 3y + 0F1 + 0 F2 s.a. -x + y + 1F1 + 0F2 = 3 4x + y + 0F1 + 1F2 = 8 x, y, F1, F2 ≥ 0 n - nº variáveis = 4; m - nº restrições = 2 Qualquer solução básica terá m = 2 variáveis básicas e (n-m) = 2 variáveis não básicas (nulas). 2- Arbitrar uma solução básica admissível inicial ( s.b.i.)
Regra usual : sempre que possível, toma-se as variáveis de folga como variáveis básicas iniciais
solução básica inicial: x = 0, y = 0, F1 = 3, F2 = 8 base inicial: F1 = 3, F2 = 8 3 - Verificação da optimalidade da solução em análi se
Para tal é necessário re-escrever a função objectivo apenas em função das variáveis não básicas. F = +4x +3y + 0 F1 + 0 F2 variáveis não básicas variáveis básicas (nulas) (coef. 0 na F.O.)
Vale a pena incrementar alguma das variáveis não básicas? Claro que sim. Critério de optimalidade:
Quando a função objectivo se encontra expressa apenas em função das variáveis não básicas e algum desses coeficientes for positivo, a solução em análise não é óptima.
Acetatos de Optimização Linear Cecília Rodrigues
23
Então a solução em análise
x = 0, y = 0, F1 = 3, F2 = 8 não é óptima. Se se incrementar x ou y a F.O. vai aumentar de valor. 4 - Selecção da variável que entra na base
Critério de selecção da variável que entra na base:
Deve ser escolhida a variável (até aí não básica) cujo incremento unitário se traduz no maior aumento da função objectivo, isto é, deve ser escolhida a variável que, na função objectivo (escrita apenas em função das variáveis não básicas) tenha o maior valor positivo como coeficiente.
F = +4x +3y + 0 F1 + 0 F2
a variável x deve entrar para a base. 5 - Selecção da variável que sai da base Se uma variável entrar na base, outra deverá deixá-la. Se uma variável entrar na base, passará de nula a não nula, isto é sofre um aumento mas, esse aumento terá de ser tal que a solução em análise continue no E.S.A. Torna-se necessário determinar qual o incremento máximo a dar à variável que vai entrar para a base. Relativamente a este exemplo já tínhamos visto que x deverá entrar para a base, y deverá continuar fora da base, ou seja y = 0. De entre as variáveis F1 e F2, uma deve deixar a base.
⇔
F1 e F2 têm de ser não negativas, logo:
F1 = 3 + x ≥ 0 ⇔ x ≥ -3, mas como todas as variáveis têm de ser não negativas, vem x ≥ 0. Se x aumentar F1 também aumenta, isto é o incremento de x não é limitado pela 1ª restrição.
=++=++
8 F2 y 4x
3 F1 y x -
=+=+
8 F2 4x
3 F1 x -
y = 0
=+=4x - 8 F2
x 3 F1
Acetatos de Optimização Linear Cecília Rodrigues
24
Por outro lado, F2 = 8 - 4x ≥ 0 ⇔ x ≤ 2 A 2ª restrição limita o crescimento da variável x, sendo o máximo incremento = 2. xmax = 2 ⇒ F2 = 0 F2 vai deixar a base. Nova base: x, F1. Critério de selecção da variável que saí na base:
Considere-se as restrições do problema de Programação Linear, na sua apresentação matricial A. X = b, cada uma delas escrita apenas em função da única variável básica que lhe está associada e da(s)variável(eis) não básicas. Seja Xk a variável que se pretende incrementar. O incremento máximo de Xk será dado por Max Xk = min
i
( bi I aik ) , i = 1, 2, para aik > 0 .
Se o incremento máximo de Xk for obtido pelo quociente relativo à r-ésima restrição, isto é, se
Max Xk = min
i
( bi I aik ) = br I ark ,
a variável básica correspondente à r-ésima restrição deverá deixar a base, cedendo o seu lugar (mas não necessariamente o seu valor) à variável Xk que entra para a base.
Retomando o exemplo, substituindo x por 2 na 1ª restrição e não nos esquecendo que y = 0 -x + y + F1 = 3 ⇒ -2 + F1 = 3 ⇒ F1 = 5 a nova solução básica admissível é x = 2, y = 0, F1 = 5, F2 = 0, F = 8
Acetatos de Optimização Linear Cecília Rodrigues
25
2ª Iteração (x = 2, y = 0, F1 = 5, F2 = 0) , base: x, F1 variáveis básicas: x, F1 variáveis não básicas: y, F2 Temos de verificar a optimalidade da solução em análise, sendo para tal é necessário re-escrever a função objectivo apenas em função das variáveis não básicas. F = 4x + 3y = 0x + ?y + 0F1 + ?F2 Da 2ª restrição:
4x + y + F2 = 8 ⇒ x = 2 - 41
y - 41
F2
F = 4(2 - 41
y - 41
F2) + 3y
F = +2y - 1F2 + 8 a solução em análise não é óptima, y deve entrar na base. F2 deve continuar fora da base. Selecção da variável que deve sair da base:
x = 2 - 41
y - 41
F2
como F2 = 0
Estamos agora em condições de determinar o maior incremento de y.
=++=++
8 F2 y 4x
3 F1 y x -
=++
=++
8 F2 y 4x
3 F1 y ) F2 41
- y 41
- (2-
=+
=+
8 y 4x
5 F1 y 45
Acetatos de Optimização Linear Cecília Rodrigues
26
ymax = min ( 5 / 5/4 ; 8 / 1 ) = 5 / 5/4 = 4 ⇒ F1 deve sair da base.
como F1 = 0, F2 = 0
a nova solução básica admissível será: x = 1, y = 4, F1 = 0, F2 = 0, F = 16 3ª Iteração (x = 1, y = 4, F1 = 0, F2 = 0) , base: x, y variáveis básicas: x, y variáveis não básicas: F1, F2 Temos de verificar a optimalidade da solução em análise, sendo para tal é necessário re-escrever a função objectivo apenas em função das variáveis não básicas. F = 4x + 3y = 0x + 0y + ?F1 + ?F2
F = 4 ( F251
F1 51
1 −+ ) + 3 ( F251
F154
- 4 − )
F = -58
F1 - 57
F2 a solução em análise é óptima
(x*, y*) = (1, 4), F* = 16
=++=++
8 F2 y 4x
3 F1 y x -
=+=+
8 y 4x
3 y x -
==
4 y
1 x
=++=++
8 F2 y 4x
3 F1 y x -
−=
−+=
F251
F154
- 4 y
F251
F1 51
1 x ⇔
Acetatos de Optimização Linear Cecília Rodrigues
27
F = c1 x1 + c2 x2 + ... + cn xn ⇔⇔⇔⇔ F - c1 x1 - c2 x2 - ... - cn xn = 0
1- Re-escrever o problema na forma standard Introduzir variáveis de folga
2- Arbitrar uma solução básica inicial
Regra usual : sempre que possível, toma-se as variáveis de folga como variáveis básicas iniciais
REPETIR
3 - Verificação da optimalidade da solução em análi se
• re-escrever a função objectivo apenas em função das variáveis não básicas
• Critério de optimalidade: Quando a função objectivo se encontra expressa apenas em função das variáveis não básicas e algum desses coeficientes for negativo, a solução em análise não é óptima
4 - Selecção da variável que entra na base
• Critério de selecção da variável que entra na base: Deve ser escolhida a variável (até aí não básica) cujo incremento unitário se traduz no maior aumento da função objectivo, isto é, deve ser escolhida a variável que, na função objectivo (escrita apenas em função das variáveis não básicas) tenha o maior valor negativo como coeficiente.
5 - Selecção da variável que sai da base • Critério de selecção da variável que saí na base: Considere-se as restrições do problema de Programação Linear, na sua apresentação matricial A. X = b, cada uma delas escrita apenas em função da única variável básica que lhe está associada e da(s)variável(eis) não básicas. Seja Xk a variável que se pretende incrementar. O incremento máximo de Xk será dado por Max Xk = min ( bi I aik ) , i = 1, 2, ... , m para aik > O . Se o incremento máximo de Xk for obtido pelo quociente relativo à r-ésima restrição, isto é, se
Max Xk = min ( bi I aik ) = br I ark , a variável básica correspondente à r-ésima restrição deverá deixar a base, cedendo o seu lugar (mas não necessariamente o seu valor) à variável Xk que entra para a base.
ATÉ SE ATINGIR A SOLUÇÃO ÓPTIMA
Acetatos de Optimização Linear Cecília Rodrigues
28
AAAlllgggooorrr iii tttmmmooo SSSiiimmmpppllleeexxx PPPrrr iiimmmaaalll --- FFFooorrrmmmaaa TTTaaabbbuuulllaaarrr ExemploPL04 : Retomemos e exemplo PL03: Max F = 4x + 3y s.a. -x + y ≤ 3 4x + y ≤ 8 x, y ≥ 0 F - 4x - 3y - 0F1 - 0F2 = 0 s.a. -x + y + 1F1 + 0F2 = 3 4x + y + 0F1 + 1F2 = 8 x, y, F1, F2 ≥ 0 Arbitrar uma solução básica admissível inicial (s.b.i.): (x = 0, y = 0), F1 = 3, F2 = 8, F = 0
Regra usual: sempre que possível, toma-se as variáveis de folga como variáveis básicas iniciais. Base inicial: F1, F2
Quadro inicial:
x y F1 F2 t.i. F1 -1 1 1 0 3 F2 4 1 0 1 8 F -4 -3 0 0 0
• É possível identificar uma variável básica associada a uma restrição. Uma variável pode considerar-se básica associada a uma restrição se o seu coeficiente na linha que representa essa restrição no Quadro Simplex (QS) for unitário, sendo nulos os demais coeficientes dessa variável nas restantes linhas do (QS) (incluindo a linha que representa a função objectivo).
• No algoritmo Simplex Primal, um Quadro Simplex corresponde sempre a uma solução básica admissível , isto é, em termos geométricos, a um vértice do espaço de soluções admissíveis.
Acetatos de Optimização Linear Cecília Rodrigues
29
• A função objectivo encontra-se expressa apenas em função das variáveis não básicas (coeficientes da função objectivo relativos às variáveis básicas são nulos). Como na linha que representa a função objectivo existem coeficientes negativos, a solução em análise não é óptima.
x y F1 F2 t.i. ∆i F1 -1 1 1 0 3 - F2 4 1 0 1 8 8/4=2 F -4 -3 0 0 0
x deve entrar para a base; F2 deve deixar a base. 1ª Iteração
x y F1 F2 t.i. ∆i F1 0 5/4 1 1/4 5 5/(5/4)=4 x 1 1/4 0 1/4 2 2/(1/4)=8 F 0 -2 0 1 8
solução básica admissível: (x = 2, y = 0), F1 = 5, F2 = 5; valor da função objectivo: 8 Como na linha que representa a função objectivo existe um coeficiente negativo, a solução em análise não é óptima. y deve entrar para a base; F1 deve deixar a base. 2ª Iteração
x y F1 F2 t.i. ∆i y 0 1 4/5 1/5 4 x 1 0 -1/5 1/5 1 F 0 0 8/5 7/5 16
Como na linha que representa a função objectivo não existe nenhum coeficiente negativo, a solução em análise é óptima. Solução óptima: (x*, y*) = (1, 4) Valor óptimo da função objectivo: 16.
4
1
2
-1/4