Вы находитесь на странице: 1из 8

Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.

Aulas 4 e 5 / 29 e 31 de agosto

1 Uma base de soluções viáveis


Dada uma PL em FPI
max cT x
sujeita a Ax = b
x ≥ 0,
podemos sempre assumir que a matriz A está em um formato especial. O objetivo dos
exercı́cios dirigidos a seguir é descobrirmos que formato é este.
Exercı́cio 1. Considere a PL abaixo

max 1 2 3 x
   
4 −1 0 7
1 0 −1 2
sujeita a 
1 1
x =  
1 3
2 −2 0 2
x ≥ 0.
É possı́vel escrever uma PL equivalente a esta em que a matriz possua menos linhas?
Exercı́cio 2. Considere a PL abaixo

max 1 2 3 1 1 x
   
1 1 1 1 1 5
sujeita a 2 1 0 −1 −2 x =  0 
3 1 −1 −3 −5 −5
x ≥ 0.
Qual o posto dessa matriz? Ou seja, quantas colunas linearmente independentes existem?
É possı́vel reduzir o número de linhas?
Exercı́cio 3. Considere a PL abaixo

max 2 3 1 x
   
1 2 1 2
sujeita a 2 4 −1 x = 1
3 6 0 3
x≥0
 
x1
Suponha que x = x2 .

x3
Elimine linhas, se for possı́vel, e identifique colunas da matriz que formem uma matriz
quadrada não-singular.

1
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

Exercı́cio 4. Considere a seguinte PL em FPI

max cT x
sujeita a Ax = b
x ≥ 0.

Suponha que A possui m linhas e n colunas. Explique por que podemos assumir, sem
qualquer prejuı́zo à solução da PL, que n ≥ m, que há precisamente m colunas linearmente
independentes em A.

Ao longo dos exercı́cios acima, vimos que sempre que uma PL estiver em FPI, podemos
assumir que existe uma escolha de colunas para a matriz A que formam uma base para o
espaço. Por exemplo, se essas colunas forem as primeiras n colunas, a matriz A estará na
forma abaixo
 
|
A= AB | AN  (1)
|

onde AB é uma matriz quadrada não singular, e AN é uma matriz cujas colunas são com-
binações lineares das colunas de AB . Note que pode haver diferentes escolhas para as matrizes
AB e AN (elas podem estar intercaladas...), sempre dependendo da matriz original A.
Quando temos Ax, podemos separar as variáveis que compõem o vetor x entre aquelas
indexadas pelas colunas linearmente independentes e as outras. As variáveis de x que cor-
respondem às colunas de AB são chamadas de variáveis básicas, ao passo que as demais são
as variáveis não-básicas. No exemplo (1), teremos exatamente que o vetor x está dividido
como  
xB
x= ,
xN
onde o vetor xB possui as variáveis básicas, e xN as não-básicas. Note que, mesmo que as
matrizes AB e AN estejam originalmente intercaladas em A, vale a igualdade abaixo:

Ax = AB xB + AN xN .

Exercı́cio 5. No exercı́cio 3, identifique as matrizes AB e AN , e os vetores xB e xN . Calcule


AB xB e AN xN separadamente, e mostre que Ax = AB xB + AN xN .

Dada uma matriz A no formato de (1), e vetores x e b tais que

Ax = b,

note que b é uma combinação linear das colunas em AB , ou seja, existe um vetor z tal que
Az = b, e
AB zB = b e zN = 0.
Um vetor z como descrito acima é chamado de uma solução básica da PL.

Exercı́cio 6. Novamente no exercı́cio 3, ache uma solução básica.

2
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

Note que uma vez escolhida a matriz AB , existe uma única solução básica associada
z, e ela é definida por zB = A−1
B b, e zN = 0, com
 
zB
z= .
zN

Voltamos agora ao exemplo do fim da aula 3:



max 3 1 0 0 0 x
   
2 1 1 0 0 8
sujeita a 1 2 0 1 0 x = 8
1 1 0 0 1 5
x ≥ 0.

Note que as colunas 3, 4 e 5 desta PL formam uma base, e que nesta base, AB = I, e as
entradas correspondentes de c são 0.

Definição 1. Uma PL em FPI tal que AB = I e cB = 0 é uma PL em forma canônica.

Quando uma PL está em forma canônica e há uma solução básica viável, sempre é possı́vel
(tentar) melhorar a solução da maneira como fizemos no exemplo! Portanto o problema de
achar a solução ótima de uma PL se reduz ao problema de colocar uma PL em forma
canônica. O exemplo abaixo deverá ser esclarecedor.

Exemplo 1. Começamos com



max 3 2 0 0 0 x
   
2 1 1 0 0 8
sujeita a 1 2 0 1 0 x = 8
 
1 1 0 0 1 5
x ≥ 0.

(i) Esta PL já está em forma canônica.



(ii) Achamos a solução básica - no caso, x = 0 0 8 8 5 . Ela é viável, ou seja, x ≥ 0,
e portanto prosseguimos.

(iii) Identificamos no vetor c uma entrada positiva. Escolhemos esta entrada. No caso, a
primeira. Então alteramos esta solução x aumentando o valor da variável x1 e deixando
T
x2 fixo. Observe que se z = 1 0 −2 −1 −1 ,

Az = 0,

e então achamos o maior t tal que x + tz ≥ 0. No caso, t = 4, logo temos a nova solução

x= 4 0 0 4 1 .

3
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

(iv) Queremos que esta se torne uma solução básica para uma PL em forma canônica. Logo
devemos alterar a PL de modo que

(a) as colunas 1, 4 e 5 correspondam a uma matriz identidade


(b) a função objetiva seja 0 nas entradas 1, 4 e 5.

Para (a), fazemos eliminação Gaussiana. Teremos



max 3 2 0 0 0 x
   
1 1/2 1/2 0 0 4
sujeita a 0 3/2 −1/2 1 0 x = 4
0 1/2 −1/2 0 1 1
x ≥ 0.

Para (b), subtraı́mos a função objetiva por 3 vezes a primeira equação (e compensamos
adicionando 3 × 4 = 12). Portanto o problema de otimização não se altera, e teremos

max 0 1/2 −3/2 0 0 x + 12
   
1 1/2 1/2 0 0 4
sujeita a 0 3/2 −1/2 1 0 x = 4
0 1/2 −1/2 0 1 1
x ≥ 0.

Note que a função objetiva não é mais linear, mas a adição de uma constante não afeta
em qualquer maneira o problema de otimização. De fato, a solução básica

x= 4 0 0 4 1

satisfaz as equações da PL e possui valor objetivo igual a 12.

(v) Repetimos o item (iii).


 Agora só faz sentido aumentar x2 . Daı́ teremos que z =
−1 2 0 −3 −1 é tal que
Az = 0,
e x + tz apenas melhorará o valor objetivo para qualquer valor de t > 0. A única
restrição é que x + tz ≥ 0. O maior t que torna isto possı́vel é t = 1. A nova solução
será 
x= 3 2 0 1 0 .

(vi) Repetimos o item (iv) - faça o passo a passo.



max 0 0 −1 0 −1 x + 13
   
1 0 1 0 −1 3
sujeita a 0 1 −1 0 2 x = 2
 
0 0 1 1 −3 1
x ≥ 0.

4
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

Note que a solução básica 


x= 3 2 0 1 0
satisfaz as equações da PL e possui valor objetivo igual a 13.

(vii) Repetimos (ou tentamos repetir) o item (iii). Note entretanto que não existe variável
que faça sentido aumentar em x tendo em vista o atual formato do vetor c.

(viii) A PL está resolvida. Este foi o método simplex.

Exercı́cio 7. Note que o cálculo explı́cito dos vetores z não é necessário (passo iii). A única
coisa que você precisa fazer é, uma vez que a variável a ser aumentada seja decidida, achar
a entrada da coluna associada que será transformada em 1, e portanto qual coluna deixa de
fazer parte da identidade. Em outras palavras: você só precisa achar a coluna que entra na
base, e a coluna que sai. Como fazer essa escolha?

Exercı́cio 8. Refaça este exemplo, mas na primeira vez que chegar ao passo (iii), comece
aumentando x2 , deixando x1 fixo. Daı́ pra frente, faça como achar melhor. Note que no
final, o valor de ótimo precisa ser o mesmo.

Algumas observações:

(i) Este método sempre resolverá uma PL. Nós entretanto não demonstraremos isto.

(ii) Geometricamente, cada iteração dos pontos (ii)-(iv) correspondem a: achar uma solução
na região viável, caminhar até uma face aumentando o valor da função objetiva, depois
achar o melhor caminho para caminhar pela face até a próxima face.

(iii) Na próxima seção, veremos uma maneira esquemática de repetirmos esses passos.

Exercı́cio 9. Considere o sistema de equações abaixo


   
1 1 0 2 1 1 1 2
0 2 2 0 0 −2 1 x = 2
1 2 1 5 4 3 3 6

e os vetores

(a) 1 1 0 0 0 0 0

(b) 2 −1 2 0 1 0 0

(c) 1 0 1 0 1 0 0

(d) 0 0 1 1 0 0 0

(e) 0 1/2 0 0 1/2 0 1

Para cada um deles, decida se é uma solução básica ou não.

5
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

Exercı́cio 10. Considere a PL em FPI abaixo.



max 1 −2 0 1 3 x
   
1 −1 2 −1 0 1
sujeita a x=
2 0 1 −1 1 −1
x ≥ 0.
Construa PL equivalente em forma canônica para as bases formadas pelas colunas {1, 4} e
pelas colunas {3, 5}. A solução básica correspondente é viável?
Decida se esta PL é viável ou inviável. Se for viável, construa uma PL equivalente em
forma canônica cuja solução básica associada seja viável. Se for inviável, apresente um
certificado.
Exercı́cio 11 (Só para o pessoal que gosta de matemática). O objetivo deste exercı́cio é
compreender melhor a geometria da região viável de uma PL, assim como a natureza das
soluções básicas. Considere uma PL em FPI
max cT x
sujeita a Ax = b
x ≥ 0,
que seja viável e limitada. Suponha que A é uma matriz m × n, n ≥ m, e seu posto é igual
a m.
(a) Suponha que z1 e z2 são soluções viáveis. Mostre que para qualquer α, 0 ≤ α ≤ 1, o
vetor
z = αz1 + (1 − α)z2
também é uma solução viável. (em particular, você estará mostrando que a região de
viabilidade é convexa).
(b) Mostre que o valor objetivo de z não pode ser estritamente maior que ambos os valores
objetivos de z1 e z2 , e que se z1 e z2 são soluções ótimas, então z também é.
(c) Mostre que z não pode ser uma solução básica viável da PL.
(d) Mostre que se w > 0 (ou seja, um vetor em que todas as entradas são positivas) e w é
viável, então existem w1 6= w2 soluções viáveis tais que w = 1/2(w1 + w2 ), a não ser
possivelmente no caso em que n = m.
(e) Desafio: mostre que os vértices da região viável (ou seja, os pontos que não pertencem
a um segmento viável) são exatamente as soluções básicas viáveis.
Exercı́cio 12. Considere a PL

max 5 3 0 0 1 ·x
   
−2 4 1 0 1 1
sujeita a x=
−3 7 0 1 1 3
x ≥ 0.

6
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

Esta PL está na forma canônica para as colunas 3 e 4. Aplique o método simplex do Exemplo
(1) para resolvê-la. O que aconteceu? Se você concluir algo interessante a respeito desta PL,
ache um certificado para tal.

2 O simplex via tableaus


Nesta seção mostraremos como aplicar o simplex de modo mais enxuto.
Considere a PL

max w = 0 + 2 3 0 0 0 x
   
1 1 1 0 0 6
sujeita a  2 1 0 1 0 x = 10
−1 1 0 0 1 4
x ≥ 0.

onde a variável w representa o valor objetivo. Note que esta PL já se encontra em forma
canônica para a base viável formada pelas colunas 3, 4 e 5. Vamos reescrever as equações e
a função objetiva como um sistema:
 
  w  
1 −2 −3 0 0 0   x1 
 0
0 1 1 1 0 0   x2   6 
   
 = 10 .
 
0 2 1 0 1 0  x 3
 
0 −1 1 0 0 1 x4  4
x5

Note que a primeira linha da matriz corresponde a w − 2x1 − 3x2 = 0, ou w = 2x1 + 3x2 ,
que é o valor objetivo. Escrevemos agora a matriz aumentada deste sistema
 
1 −2 −3 0 0 0 0
 0 1 1 1 0 0 6 
T1 = 
 0 2

1 0 1 0 10 
0 −1 1 0 0 1 4

No simplex, escolhemos uma entrada de c que seja positiva. Como a matriz T1 possui −cT
na primeira linha, faremos agora:

(1) Escolhemos uma coluna cuja primeira entrada seja negativa. Digamos a 2a coluna.

(2) Escolhemos agora uma linha da 2a a 5a tal que a razão entre os elementos da última
coluna e da 2a coluna seja o menor possı́vel. No caso, 3a linha.

(3) Daı́ transformamos a 2a coluna usando eliminação Gaussiana, de modo que apenas o
elemento na 3a linha e 2a coluna seja igual a 1, e o resto seja 0. Isso se chama “pivotear”
o elemento (3,2).

7
Gabriel Coutinho DCC035 - Pesquisa Operacional - 2017.2

 
1 0 −2 0 1 0 10
 0 0 1/2 1 −1/2 0 1 
T2 = 
 0

1 1/2 0 1/2 0 5 
0 0 3/2 0 1/2 1 9
Repetimos agora na 3a coluna, pivoteando o elemento (2,3).
 
1 0 0 4 −1 0 14
 0 0 1 2 −1 0 2 
T2 =  0 1 0 −1 1 0 4


0 0 0 −3 2 1 6

Repetimos agora na 5a coluna, pivoteando o elemento (4,5).


 
1 0 0 5/2 0 1/2 17
 0 0 1 1/2 0 1/2 5 
T3 = 
 0 1 0

1/2 0 1/2 1 
0 0 0 −3/2 1 1/2 3

Não há mais elementos negativos na 1a linha, e de fato, a função objetiva agora é
5 1
w = 17 − x3 − x5 ,
2 2
cujo valor máximo , igual a 17, ocorre com x3 = x5 = 0, e corresponde à solução básica
viável 
x= 1 5 0 3 0 ,
que é facilmente observada em T3 .

Вам также может понравиться