Você está na página 1de 30

AAc cce eet tta aat tto oos ss dde ee aap

A

d

ppo

a

ooi iio oo ààs ss

à

uul lla aas ss TTe eeó óór rri iic cco oo- --p ppr rrá áát tti iic cca aas ss dde ee

aau

a

T

d

ppt tti iim mmi iiz zza aaç ççã ãão oo LLi iin nne eea aar rr

OOp

O

L

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.

1

PPr rro oob bbl lle eem mma aa gge eer rra aal ll dde ee PPr rro oog ggr rra aam mma aaç ççã ãão oo MMa aat tte eem mmá áát tti iic cca aa

P

g

d

P

M

Maximizar (ou minimizar) F (x 1 , x 2 ,

sujeito a:

x

n )

f 1 (x 1 , x 2 ,

x

n )

; ; = b 1

f 2 (x 1 , x 2 ,

x

n )

; ; = b 2

.

f m (x 1 , x 2 ,

x

n )

; ; = b m

f m forem funções

x n estamos

perante um caso particular do problema anterior - um problema de

Programação Linear

Se a função objectivo F e as restrições f 1 , f 2 ,

lineares em relação às variáveis não negativas x 1 , x 2 ,

,

Max (ou Min) F = c 1 x 1 + c 2 x 2 +

Sujeito a :

+ c N x N

a 11 x 1 + a 12

a 21 x 1 + a 22

x 2 + … + a 1N x N

; ; = b 1

x 2 + … + a 2N x N

; ; = b 2

a M1 x 1 + a M2 x 2 + … + a MN x N

; ; = b M

As variáveis devem ser não negativas (x i 0), não positivas (x i 0) ou

ainda variáveis livres (x i ¬ ).

O conjunto dos n-uplos ( v 1 , v 2 ,

x 2 ,

negatividade designa-se por Espaço de Soluções Admissíveis.

, v n ) associado às variáveis (x 1 ,

,x n ) que verificam todas as restrições e a condição de não

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 x A - nº de autocarros a adquirir do tipo A x B - nº de autocarros a adquirir do tipo B

3

a)

Min F = 15 000 x A + 25 000 x B

s.a.

(u.m.)

Função Objectivo

15

000 x A + 25 000 x B

150 000 u.m.

restrição financeira

30

x A + 40 x B

200

restrição de lotação mínima

x B 1

restrição de aquisição mínima

x A , x B

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.

-0.6 2
-0.6
2

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 (x i 0).

Se se pretender maximizar a função objectivo, sendo todas as restrições do tipo e todas as variáveis não negativas (x i 0), o problema de Programação Linear diz-se na Forma Canónica.

5

Utilização de variáveis binárias na formulação de problemas 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:

x

20.z

x

M.z

z

{0, 1}

x

0

se z = 0, então x 0 e x se z = 1, então x 20 e x

0, isto é, M, isto é,

x = 0 x 20.

Note-se que, como M é um valor muito grande, em termos práticos,

x M nada restringe.

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 = c 1 .x 1 + c 2 .x 2 +

+ c n .x n ,

ou seja, cada parcela P i = c i .x i .

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

respectivamente, o custo fixo e o custo unitário, ter-se-á:

à

parcela

i,

se

k i

e

c i

representarem,

P i = 0, se x i = 0 , ou alternativamente, P i = k i + c i .x i , se x i > 0. Esta condição pode representar-se pela conjunção das condições:

Min F =

+ k i .z + c i .x i +

x i z i x i 0

M.z

{0, 1}

x i z i x i ≥ 0 M.z {0, 1}

se z i = 0, então x i Min F =

se z i = 1, então x i Min F =

0 e x i 0, isto é, + k i .0+ c i .0 +

x i = 0 = 0, ou seja P i = 0

M e x i 0, isto é, + k i .1 + c i .x i +

,

x i 0, ou seja, ou seja P i = k i + c i .x i .

Recorde-se que, como M é um valor muito grande, em termos práticos, x i M nada restringe, daí que, x i M e x i 0 equivale a x i 0.

7

Variável que toma valores num dado conjunto discreto

Em muitas situações reais, uma variável só pode tomar valores num determinado conjunto discreto.

Admita-se que X

com a conjunção das seguintes condições:

{ x 1 , x 2 ,

, x k }. Esta situação pode modelar-se

X = z 1 .x 1 + z 2 .x 2 +

+ z k .x k

z 1 + z 2 + z 1 , z 2 ,

z 1 + z 2 + z 1 , z 2 , + z k =

+ z k = 1

, z k

z 1 + z 2 + z 1 , z 2 , + z k =

{0, 1}

De notar que a conjunção das duas últimas condições obriga a que

uma, e só uma, das variáveis z 1 , z 2 , as restantes variáveis o valor 0.

, z k tome o valor 1, tomando

De um modo geral, se z i = 1, então X = x i ( i = 1, 2,

, k).

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 =

+ k i + c i .x i +

, em que,

P i = k i + c i .x i .

Pretende-se agora representar a situação em que a parcela P i seja representada por troços lineares de diferentes inclinações.

Exemplo F02: Considere-se a seguinte secção P i da função objectivo de um problema de P.L.:

P i

P i da função objectivo de um problema de P.L.: P i 0 5 12 y
0 5 12 y 1 y 2 y 3
0
5
12
y 1
y 2
y 3

20

x i

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 x i se exprime como a soma de três variáveis não negativas x i = y 1 + y 2 + y 3 , em que:

y 1 é a variável correspondente ao intervalo [0, 5] y 2 é a variável correspondente ao intervalo [5, 12] y 3 é a variável correspondente ao intervalo [12, 20]

Este exemplo pode modelar-se com a introdução de duas variáveis binárias z 1 e z 2 e conjugando as seguintes condições:

9

P i = 1.0. y 1 + 0.5. y 2 + 0.7 y 3 x i = y 1 + y 2 + y 3

5.z 1

y 3

y 1

5

7.z 2

y 2

7.z 1

0

8.z 2

z 1 , z 2

{0,1}

P i = 1.0. y 1 + 0.5. y 2 + 0.7 y 3 x i = y 1 + y 2 + y 3

se z 1 = z 2 = 0, então

0

0

0

y 1 y 2 y 3

5

0 y 2 = 0 0 y 3 = 0

P i = 1.0 y 1

se z 1 = 1, z 2 = 0, então

5

y 1

5 y 1 = 5

0

y 2

7

0

y 3

0 y 3 = 0

se z 1 = z 2 = 1, então

P i = 1.0 x 5 + 0.5 y 2

5

7

0

y 1 y 2 y 3

5 y 1 = 5 7 y 2 = 7

8

P i = 1.0 x 5 + 0.5 x 7 + 0.7 y 3

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.x 1 + 2.x 2

18

ou

x 1 + 4.x 2

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.x 1 + 2.x 2 18 + M , nada restringe em termos práticos,

já que por muito elevados que sejam os valores de x 1 e x 2 , 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:

3.x 1 + 2.x 2

x 1 + 4.x 2

z

{0, 1}

18 + M.z 16 + M.(1-z)

se z = 0, vem 3.x 1 + 2.x 2 18, isto é, exige-se o cumprimento da 1ª restrição; x 1 + 4.x 2 16 + M, isto é, a 2ª restrição é sempre verificada.

se z = 1, vem 3.x 1 + 2.x 2 18 + M, isto é, a 1ª restrição é sempre verificada; x 1 + 4.x 2 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.

11

Activação de k restrições de entre um grupo de restriçõ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)

f 1 (x 1 , x 2 ,

x

n )

d

f 2 (x 1, x 2 ,

x

n )

d

 

.

.

.

f N (x 1 , x 2 ,

x

n )

d

1 ,

2 ,

N .

Tal consegue-se do seguinte modo:

f 1 (x 1 , x 2 ,

f

(x 1, x 2 ,

2

x

n )

d 1 + M.z 1

x

n )

d 2 + M.z 2

 

.

.

.

f N (x 1 , x 2 ,

x n )

d N + M.z N

z 1 + z 2 +

+ z N = N - k

z 1 , z 2 ,

, z N

{0, 1}

De notar que, se z i = 0, a restrição f i (x 1 , x 2 , outro lado a conjunção das condições z 1 + z 2 +

z 1 , z 2 ,

tomem o valor 0, isto é que exactamente k restrições sejam activadas.

d i é activada. Por + z N = N - k e

, z N {0, 1} garante-nos que exactamente k variáveis z i

x n )

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:

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)

13

Conceitos fundamentais em Programação Linear

Considere o seguinte problema de Programação Linear, na forma

standard:

Max

Sujeito a :

F = c 1 x 1 + c 2 x 2 +

a 11 x 1 + a 12

a 21 x 1 + a 22

+ c n x n

x 2 + … + a 1n x n

= b 1

x 2 + … + a 2n x n

= b 2

[1]

[2]

a m1 x 1 + a m2 x 2 + … + a mn x n = b m

x 1 , x 2 , … , x n 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 é

(x 1 , x 2 ,

todo

o n-uplo

( v 1 , v 2 ,

, v n ) associado às variáveis

,x n ) 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 (x m+1 , … , x n ) forem todas iguais a zero, a solução diz-se solução básica admissível. Neste caso, as variáveis x 1 , … , x m designam-se por variáveis básicas e as variáveis x m+1 , … , x n 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.

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

Sujeito a :

F = c 1 x 1 + c 2 x 2 +

a 11 x 1 + a 12

a 21 x 1 + a 22

+ c n x n

x 2 + … + a 1n x n = b 1

x 2 + … + a 2n x n = b 2

[1]

[2]

a m1 x 1 + a m2 x 2 + … + a mn x n = b m

x 1 , x 2 , … , x n 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.

15

Quantas

Programação Linear?

soluções

básicas

admissíveis

tem

um

problema

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
(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á

C

n

m

n!

= m! (n

m)!

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

n

m

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)

c)

d) x

x

x 0, y

N 0 , y 0;

N 0 ;

N 0 , y

N 0 ;

(Programação Linear Mista)

(Programação Linear Mista)

(Programação Linear Inteira)

16

a)

Max F = 5x + 6y s.a

2x + 3y

16

3x + 2y

17

x 0, y 0

s.a 2x + 3y 16 3x + 2y 17 x ≥ 0, y ≥ 0 Forma

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

(x*, y*) = (3.8, 2.8)

F* = 35.8

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á

4

C 2

4!

= 2! (4

2)!

= 6

mas nem todas as soluções básicas são necessariamente admissíveis.

17

Admissíveis (E.S.A.) deste problema é um

poligono convexo e as soluções básicas admissíveis situam-se nos seus vértices.

O Espaço de Soluções

situam-se nos seus vértices. O Espaço de Soluções vértice x y F1 F2 F (0,0) 0

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)

18

b)

Max F = 5x + 6y s.a

2x + 3y

16

3x + 2y

17

x

N 0 , y 0

+ 3y 16 3x + 2y 17 x N 0 , y ≥ 0 c) Max

c) Max F = 5x + 6y s.a

2x + 3y

16

3x + 2y

17

x

0, y

N 0

+ 3y 16 3x + 2y 17 x ≥ 0, y N 0 (x*, y*) =

(x*, y*) = (3, 10/3)

e

(x*, y*) = (4, 5/2)

F* = 35.0

(x*, y*) = (3.5, 3)

F* = 35.5

19

d)

Max F = 5x + 6y s.a

2x + 3y

16

3x + 2y

17

x

N 0 , y

N 0

6y s.a 2x + 3y 16 3x + 2y 17 x N 0 , y N

(x*, y*) = (2, 4)

F* = 34

Comparando os resultados obtidos:

Max F = 5x + 6y s.a

 

2x + 3y 3x + 2y

16

17

Tipo de variaveis

(x*, y*)

F*

x

0,

y 0

(3.8, 2.8)

35.8

x

N 0 , y 0

(3, 10/3) e (4, 5/2)

35.0

x

0, y

N 0

(3.5, 3)

35.5

x

N 0 , y

N 0 ,

(2, 4)

34.0

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 objectivo do problema relaxado.

problema de PLI

problema de PL Mista

problema de PL

. problema de PLI problema de PL Mista problema de PL valor óptimo de F.O. "pior

valor óptimo de F.O. "pior ou igual"

valor óptimo de F.O. "pior ou igual"

21

Algoritmo Simplex Primal

ExemploPL02: Consideremos o seguinte problema de Programação Linear

Max F = 4x + 3y s.a.

-x + y 4x + y x, y 0

-x + y 4x + y x, y ≥ 0

3

8

Graficamente,

Admissíveis:

temos

o

correspondente

y 5 4 3 2 1 0 1 2 3 4 5 x
y
5
4
3
2
1
0
1
2
3
4
5
x

Espaço

de

Soluções

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.

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:

base inicial:

x = 0, y = 0,

F1 = 3, F2 = 8

F1 = 3, F2 = 8

3 - Verificação da optimalidade da solução em análise

Para tal é necessário re-escrever a função objectivo apenas em função das variáveis não básicas.

F =

+4x +3y +

em função das variáveis não básicas. F = +4 x +3 y + variáveis não básicas

variáveis não básicas (nulas)

0 F1 + 0 F2

= +4 x +3 y + variáveis não básicas (nulas) 0 F1 + 0 F2 variáveis

variáveis básicas (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.

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 =

+4
+4

x +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.

- x

4x

+ y

+ y

F1

F2

=

=

+

+

F1

F2

=

=

3

+ 8 - 4x

x

3

8

+ y  F1 F2   = = + + F1 F2 = = 3

y = 0

- x

4x

+ F1

=

3

+ F2

=

8

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.

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.

x max = 2 F2 = 0

o máximo incremento = 2. x m a x = 2 ⇒ F2 = 0 Nova

Nova base: x, F1.

F2 vai deixar a 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 X k a variável que se pretende incrementar.

O incremento máximo de X k será dado por

Max X k = min ( b i I a ik ) ,

i

i = 1, 2,

para a ik > 0 .

Se o incremento máximo de X k for obtido pelo quociente relativo à r-ésima restrição, isto é, se

Max X k = min

i

( b i I a ik ) = b r I a rk ,

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 X k 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

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 -

1 1

4 y -

4

F = 4(2 -

F = +2y - 1F2 + 8

= 8 ⇒ x = 2 - 1 1 4 y - 4 F = 4(2

F2) + 3y

1

4

y -

1 F2

4

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 +

4x +

- (2 -

+

  4x

  5

4

  4x

y

+

y

+

F1

=

3

y

+

F2

=

8

1

4

y -

1

4

F2

y

+

F2

=

8

+

F1

=

5

y

=

8

) + y
)
+
y

x = 2 -

+

F1

=

1

4 y -

3

1 F2

4

como F2 = 0

Estamos agora em condições de determinar o maior incremento de y.

26

y max = min ( 5 / 5/4 ; 8 / 1 ) = 5 / 5/4 = 4 F1 deve sair da base.

- x

4x

+

+

y

y

+

+

- x

4x

+

+

y

y

x

y

=

=

1

4

F1

F2

=

=

=

=

3

8

3

8

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

- x

4x

+

+

y

y

+

+

F1

F2

=

=

3

8

F = 4 (

1+

1

5

F1

1

5

F2

x

=

1

y

=

) + 3 (

4 -

+

1

5

F1

4 -

4

5

F1

4

5

F1

1

5

1

5

F2

1

5

F2

F2

)

F = - 8 5 F1 - 5

7 F2

(x*, y*) = (1, 4),

a solução em análise é óptima1 5 F2 F2 ) F = - 8 5 F1 - 5 7 F2 (x*,

F* = 16

27

F = c 1 x 1 + c 2 x 2 +

+ c n x n

F - c 1 x 1 - c 2 x 2 -

- c n x n = 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álise

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 X k a variável que se pretende incrementar.

O incremento máximo de X k será dado por

Max X k = min ( b i I a ik )

, i = 1, 2,

, m

para a ik > O .

Se o incremento máximo de X k for obtido pelo quociente relativo à r-ésima restrição, isto é, se

Max X k = min ( b i I a ik ) = b r I a rk

,

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 X k que entra para a base.

ATÉ SE ATINGIR A SOLUÇÃO ÓPTIMA

28

AAl llg ggo oor rri iit ttm mmo oo SSi iim mmp ppl lle eex xx PPr rri iim mma aal ll -- FFo

A

S

P

- F

oor rrm mma aa TTa aab bbu uul lla aar rr

T

ExemploPL04: Retomemos e exemplo PL03:

Max F = 4x + 3y s.a.

-x + y 4x + y x, y 0

-x + y 4x + y x, y ≥ 0

3

8

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.

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.

1

4

   

x

y

F1

F2

t.i.

 

i

 

F1

 

-1

1

1

0

3

 

-

F2

4

1

0

1

8

8/4=2

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

F1

 

0

5/4

1

1/4

5

5/(5/4)=4

F1   0 5/4 1 1/4 5 5/(5/4)=4
x 1 1/4 0 1/4 2 2/(1/4)=8

x

1

1/4

0

1/4

2

2/(1/4)=8

F

 

0

-2

0

1

8

 
2/(1/4)=8 F   0 -2 0 1 8   solução básica admissível: (x = 2, y

solução básica admissível: (x = 2, y = 0), valor da função objectivo: 8

F1 = 5, F2 = 5;

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

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

 
1/5 1 F 0 0 8/5 7/5 16   -1/4 Como na linha que representa a

-1/4

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.