P
Prroobblleem
maa ggeerraall ddee P
Prrooggrraam
maaççããoo M
Maatteem
mááttiiccaa
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.
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.
• Qual o objectivo?
minimizar o custo total de aquisição dos autocarros
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
-0.6
Interpretação Gráfica
Lote mínimo
x ≥ 20.z
x ≤ M.z
z ∈ {0, 1}
x≥0
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.
xi ≤ M.z
zi ∈ {0, 1}
xi ≥ 0
se zi = 0, então xi ≤ 0 e xi ≥ 0, isto é, xi = 0
Min F = ... + ki.0+ ci.0 + ... = 0, ou seja Pi = 0
Admita-se que X ∈ { x1, x2, ..., xk}. Esta situação pode modelar-se
com a conjunção das seguintes condições:
Pi
0 5 12 20 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
ou 3.x1 + 2.x2 ≤ 18
ou x1 + 4.x2 ≤ 16
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:
• Se uma restrição for do tipo "≥", a parcela M.z (ou, M.(1-z) ) deverá
ser subtraída ao segundo membro da desigualdade.
Implicação de restrições
a ⇒ b ⇔ ~a v b
( x + y ≤ 15) v (z ≥ 3 ∧ w ≤ 6),
x + y ≤ 15 + M.z
z ≥ 3 - M.(1-z)
w ≤ 6 + M.(1-z)
z ∈ {0, 1}
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)
x1, x2 , … , xn ≥ o [3]
x1, x2 , … , xn ≥ o [3]
m n-m
Max F = 5x + 6y
s.a
2x + 3y ≤ 16
3x + 2y ≤ 17
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)
a)
Max F = 5x + 6y
s.a
2x + 3y ≤ 16
3x + 2y ≤ 17
x ≥ 0, y ≥ 0
F* = 35.8
Forma Standard
n - nº variáveis = 4; m - nº restrições = 2
4!
C 24 = =6
2! (4 − 2)!
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
b)
Max F = 5x + 6y
s.a
2x + 3y ≤ 16
3x + 2y ≤ 17
x ∈ N0, y ≥ 0
F* = 35.0
c) Max F = 5x + 6y
s.a
2x + 3y ≤ 16
3x + 2y ≤ 17
x ≥ 0, y ∈ N0
F* = 35.5
d)
Max F = 5x + 6y
s.a
2x + 3y ≤ 16
3x + 2y ≤ 17
x ∈ N0, y ∈ N0
F* = 34
Max F = 5x + 6y
s.a
2x + 3y ≤ 16
3x + 2y ≤ 17
Max F = 4x + 3y
s.a.
-x + y ≤ 3
4x + y ≤ 8
x, y ≥ 0
0 1 2 3 4 5 x
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
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
base inicial: F1 = 3, F2 = 8
F = +4x +3y + 0 F1 + 0 F2
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.
x = 0, y = 0, F1 = 3, F2 = 8
F = +4x +3y + 0 F1 + 0 F2
- x + y + F1 = 3 - x + F1 = 3
⇔
4x + y + F2 = 8 y=0 4x + F2 = 8
F1 = 3 + x
F2 = 8 - 4x F1 e F2 têm de ser não negativas, logo:
F2 = 8 - 4x ≥ 0 ⇔ x ≤ 2
-x + y + F1 = 3 ⇒ -2 + F1 = 3 ⇒ F1 = 5
x = 2, y = 0, F1 = 5, F2 = 0, F=8
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
F = 4x + 3y = 0x + ?y + 0F1 + ?F2
Da 2ª restrição:
1 1
4x + y + F2 = 8 ⇒ x = 2 - y - F2
4 4
1 1
F = 4(2 - y - F2) + 3y
4 4
F = +2y - 1F2 + 8
- x + y + F1 = 3
1 1
4x + y + F2 = 8 x=2- y - F2
4 4
1 1
- (2 - y - F2 ) + y + F1 = 3
4 4 como F2 = 0
4x + y + F2 = 8
5
y + F1 = 5
4
4x + y = 8
- x + y + F1 = 3
4x + y + F2 = 8 como F1 = 0, F2 = 0
-x + y =3
4x + y = 8
x =1
y=4
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
F = 4x + 3y = 0x + 0y + ?F1 + ?F2
- x + y + F1 = 3 1 1
⇔ x = 1 + F1 − F2
4x + y + F2 = 8
5 5
4 1
y = 4 - F1− F2
5 5
1 1 4 1
F = 4 (1 + F1 − F2 ) + 3 ( 4 - F1− F2 )
5 5 5 5
8 7
F = - F1 - F2 a solução em análise é óptima
5 5
F = c1 x1 + c2 x2 + ... + cn xn ⇔ F - c1 x1 - c2 x2 - ... - cn xn = 0
Regra usual: sempre que possível, toma-se as variáveis de folga como variáveis
básicas iniciais
REPETIR
• 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
A
Allggoorriittm
moo S
Siim
mpplleexx P
Prriim
maall -- FFoorrm
maa TTaabbuullaarr
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
(x = 0, y = 0), F1 = 3, F2 = 8, F=0
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
1ª Iteração
x y F1 F2 t.i. ∆i
1 F1 0 5/4 1 1/4 5 5/(5/4)=4
x 1 1/4 0 1/4 2 2/(1/4)=8
4
F 0 -2 0 1 8
2ª Iteração
x y F1 F2 t.i. ∆i
-1/4 y 0 1 4/5 1/5 4
x 1 0 -1/5 1/5 1
2
F 0 0 8/5 7/5 16