programacao linear 1p

30
A Ac c e e t t a a t t o o s s d d e e a a p p o o i i o o à à s s a a u u l l a a s s T T e e ó ó r r i i c c o o - - p p r r á á t t i i c c a a s s d d e e O O p p t t i i m m i i z z a a ç ç ã ã o o L L i i n n e e a a r r 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.

Upload: -

Post on 25-Jun-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programacao Linear 1p

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.

Page 2: Programacao Linear 1p

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 .

Page 3: Programacao Linear 1p

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

Page 4: Programacao Linear 1p

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

Page 5: Programacao Linear 1p

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.

Page 6: Programacao Linear 1p

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

Page 7: Programacao Linear 1p

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

Page 8: Programacao Linear 1p

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}

Page 9: Programacao Linear 1p

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

Page 10: Programacao Linear 1p

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}

Page 11: Programacao Linear 1p

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}

Page 12: Programacao Linear 1p

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}

Page 13: Programacao Linear 1p

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}

Page 14: Programacao Linear 1p

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.

Page 15: Programacao Linear 1p

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 .

Page 16: Programacao Linear 1p

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)

Page 17: Programacao Linear 1p

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

Page 18: Programacao Linear 1p

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)

Page 19: Programacao Linear 1p

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

Page 20: Programacao Linear 1p

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

Page 21: Programacao Linear 1p

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"

Page 22: Programacao Linear 1p

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.

Page 23: Programacao Linear 1p

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.

Page 24: Programacao Linear 1p

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

Page 25: Programacao Linear 1p

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

Page 26: Programacao Linear 1p

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

Page 27: Programacao Linear 1p

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 ⇔

Page 28: Programacao Linear 1p

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

Page 29: Programacao Linear 1p

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.

Page 30: Programacao Linear 1p

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