






















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
metodo simplez
Tipologia: Notas de estudo
1 / 30
Esta página não é visível na pré-visualização
Não perca as partes importantes!























3.1- Introdução
O Método Simplex é uma técnica utilizada para se determinar, numericamente, a solução ótima de um modelo de Programação Linear. Será desenvolvido inicialmente para Problemas de Programação Linear, na forma padrão, mas com as seguintes características para o sistema linear de equações: i) Todas as variáveis são não-negativas: ii) Todos os bi’ são não-negativos; iii) Todas as equações iniciais do sistema são do tipo “ ≤ “. Assim, na forma padrão, só encontra-se variáveis de folga. Se uma das características vistas não ocorrer, então, casos especiais do método devem ser considerados e esses serão vistos na seção 3.8, como o Método Simplex de Duas Fases.
3.2- Introdução e fundamentos teóricos para o Método Simplex
3.2.1- Determinação de soluções básicas em um sistema de equações lineares m x n , m (^) ≤ n (sistemas lineares)
Se ao resolver-se um sistema Ax = b , onde A ⊂ rmxm, x ∈ rm^ e b ∈ rm^ e A fosse uma matriz inversível, então a solução seria facilmente determinada.
Porém, se dado um sistema Ax = b , onde:
b x
m n
mxn m n
Tal que m≤ n, ou seja, sistema é retangular, como determinar soluções de Ax = b? O sistema acima sempre tem solução?
Teorema 3.2.1.1: Seja a matriz A ∈ ℜℜℜℜ mxn^ com m ≤ n. Se a matriz A possui m colunas a 1 , a 2 ,…, am linearmente independentes (LI’s), então para qualquer b ∈ (^) ℜℜℜℜm^ , o sistema Ax = b tem ao menos uma solução em ℜℜℜℜ n^.
Definição 3.2.1.1: Seja Ax = b , A ∈ ℜℜℜℜmxn^ , b ∈ ℜℜℜℜm, x ∈ ℜℜℜℜn^ (m ≤ n).
Se A possui uma submatriz B ∈ ℜℜℜℜmxn^ onde det B ≠ 0 então diz-se que B é uma submatriz base de A , o que é equivalente a dizer: “Se A tem m colunas LI, então a matriz B formada por estas colunas é uma base para (^) ℜℜℜℜ m”.
Definição 3.2.1.2 - Variáveis básicas e não básicas:
Considerando-se o sistema Ax = b, definido em (3.1) e B ∈ ℜℜℜℜ mxm^ uma submatriz base de A , então, as variáveis associadas à submatriz B ∈ ℜℜℜℜmxm são denominadas variáveis básicas. Notação: variáveis básicas: xB.
Definida a submatriz base B restam em A (n - m) colunas que chamará-se de submatriz não base N. As variáveis associadas a esta submatriz N são denominadas variáveis não básicas.
Notação: variáveis não básicas: xN.
3.2.1.2- Uma possível solução para Ax=b da definição acima
Seja o sistema Ax = b^ e suponha que extrai-se de A^ uma submatriz B ∈ ℜℜℜℜ mxm. Pelas definições anteriores pode-se fazer as seguintes partições no
sistema Ax = b : A = [ B ; N ], x xx^ B N
Logo pode-se escrever:
Mostrará-se que: i) λ x^1 + (1- λ ) x^2 ∈ S ; ii) λ x^1 + (1- λ ) x^2 ≥ 0. Para se mostrar i) basta notar que, Se x^1 ∈ S e x^2 ∈ S Ax^1 = b Ax^2 = b ; Assim, A ( λ x^1 + (1- λ ) x^2 ) = λ A x^1 + (1- λ ) Ax^2 = λ b + (1- λ ) b = b. Logo, A ( λ x^1 + (1- λ ) x^2 ) = b. Para se mostrar ii): x^1 ≥ 0 e x^2 ≥ 0 λ x^1 ≥ 0 e (1- λ ) x^2 ≥ 0; assim , λ x^1 + (1- λ ) x^2 ≥ 0. ∴ λ x^1 + (1- λ ) x^2 ∈ S. ∴ S é convexo.
Teorema 3.3.2: “Toda solução básica do sistema Ax = b é um ponto extremo do conjunto de soluções factíveis S ”.
Prova:
Então, sem perda de generalidade, suponha que, x = xx^ B N
^ com x (^) N =
0 para i = m+1,...,n.
Por contradição, suponha que x não seja ponto extremo ou vértice de
S , então ∃ x^1 e x^2 ∈ S tal que:
x (^) = λ x^1 + (1- λ ) x^2 ; λ ∈ (^) [0,1] e x^1 ≠ x^2 pois x (^) ≠ 0. Desde que x (^) i = 0 para i = m+1,...,n λ λ
x x
i i
1 2
para i=m+1,...,n x x
i i
1 2
para i=m+1,...,n.
Logo, x^1 = xx^ B N
1 1
^ e x^2 = x x
B N
2 2
Como x^1 ∈ S e x^2 ∈ S
Ax b Ax b
1 2
Bx b Bx b
B B
1 2
B x^1 B^ - B x^2 B^ = B ( x^1 B^ - x^2 B^ ) = b - b ≡ 0. Mas x^1 B^ ≠ x^2 B^ e então x^1 B^ - x^2 B^ ≠ 0 B = 0 , contradição,
pois por hipótese B é uma submatriz base e portanto não singular! ∴ “Toda solução básica do sistema Ax = b é um ponto extremo do conjunto de soluções factíveis S ”.
Teorema 3.3.3: Sejam x^1 , x^2 ,..., xp^ pontos extremos do conjunto S e seja S limitado. Então, ∀ x ∈ S , x pode ser escrito como combinação convexa dos
pontos extremos x^1 , x^2 ,..., xp^ de S , ou seja, x = λ i i i
p x =
1
e λ i i
1
Teorema 3. 3.4: Se um problema de programação linear admitir solução ótima, então pelo menos um ponto extremo (vértice) do conjunto de pontos viáveis é uma solução ótima do problema. Mostrará-se este teorema admitindo-se que o conjunto S é limitado. Prova: Sejam x^1 , x^2 ,..., xp^ pontos extremos do conjunto S limitado. Então, pelo teorema 3.3.3, ∀ x ∈ S , x pode ser escrito como
combinação convexa dos pontos extremos x^1 , x^2 ,..., xp^ de S , ou seja, x =
λ i i i
p x =
1
e λ i i
1
Logo, cTx = cT^ ( λ i i i
p x =
1
) = (^) λ 1 cTx^1 + (^) λ 2 cTx^2 +...+ (^) λ (^) p cTx p.
Seja x^ um ponto extremo tal que cTx^ ≤ cTxi^ (i=1,...p). Mas cTx = λ 1 cTx^1 + λ 2 cTx^2 +...+ λ (^) p cTx p^ ≥
O processo termina quando estando num ponto extremo, todos os outros pontos extremos adjacentes fornecem valores maiores para a função objetivo. Portanto, a troca de vértice, faz uma variável não básica crescer (assumir valor positivo) ao mesmo tempo em que zera uma variável básica (para possibilitar a troca) conservando a factibilidade do Problema de Programação Linear. Para isso, escolhemos uma variável, cujo custo relativo é mais negativo (não é regra geral), para entrar na base, e as trocas de vértices são feitas até que não exista mais nenhum custo relativo negativo. A variável que sairá da base é aquela que ao se anular garante que as demais continuem maiores ou iguais a zero, quando aumentamos o valor da variável que entra na base (respeitando a factibilidade). O Método Simplex compreenderá, portanto, os seguintes passos: i) Achar uma solução factível básica inicial; ii) Verificar se a solução atual é ótima. Se for, pare. Caso contrário, siga para o passo iii). iii) Determinar a variável não básica que deve entrar na base; iv) Determinar a variável básica que deve sair da base; v) Atualizar o sistema à fim de determinar a nova solução factível básica, e voltar ao passo ii.
Exemplo 3.4.1: Seja o problema: Max. z = x 1 + x 2 sujeito a: 2 x 1 + x 2 ≤ 8 x 1 + 2x 2 ≤ 7 x 2 ≤ 3 x 1 e x 2 ≥ 0
Passando este problema para a forma padrão, temos a solução inicial:
Min. -z = -x 1 - x 2 sujeito a: 2 x 1 + x 2 + x 3 = 8 x 1 + 2 x 2 + x 4 = 7 x 2 + x 5 = 3 x 1 , x 2 , x 3 , x 4 , x 5 ≥ 0 Passo 1: Quadro 1 vB x 1 x 2 x 3 x 4 x 5 x 3 2 1 1 0 0 8 x 4 1 2 0 1 0 7 x 5 0 1 0 0 1 3 -z -1 -1 0 0 0 0 xT^ = (0, 0, 8, 7, 3) Passo 2: Escolhemos x 1 para entrar na base: x 1 = ε > 0 x 1 = x 2 = 0, x 3 = 8, x 4 = 7, x 5 = 3 Tomando x 1 = ε temos: 1 a^ equação: 2 x 1 + x 2 + x 3 = 8 → 2 x 1 + x 3 = 8 → x 3 = 8 - 2 x 1 ≥ 0 2 a^ equação: x 1 + 2 x 2 + x 4 = 7 (^) → x 1 + x 4 = 7 (^) → x 4 = 7 - x 1 ≥ 0
3 a^ equação: x 2 + x 5 = 3 → x 5 = 3 ≥ 0 Passo 3: Analisamos qual das três variáveis básicas deve sair da base: x 3 = 8 - 2 x 1 ≥ 0 → para x 3 = 0 ⇔ 8 - 2 x 1 = 8 → x 1 = 4 x 4 = 7 - x 1 ≥ 0 → para x 3 = 0 ⇔ 7 - x 1 = 0 → x 1 = 7 x 5 = 3 - 0 x 1 ≥ 0 ( para qualquer ε > 0, x 1 não afeta a factibilidade). Para que x 3 e x 4 não percam sua factibilidade o menor valor que x 1 pode assumir é 4 e daí:
Desde que o valor mínimo de ε ocorreu na 2ª equação, então x 4 sai da base e o elemento pivô da operação é a 22 =3/2. Aplicando o pivoteamento gaussiano, obtemos o próximo quadro: P asso 8 : Quadro 3: Atualização do sistema em função da nova base: vB x 1 x 2 x 3 x 4 x 5 x 1 1 0 2/3 -1/3 0 3 x 2 0 1 -1/3 2/3 0 2 x 5 0 0 1/3 -2/3 1 1 -z 0 0 1/3 1/3 0 -
Passo 9: A solução é ótima?: Sim, pois não existe nenhum outro custo relativo negativo, ou seja, não podemos diminuir mais a função objetivo. Portanto, a solução ótima é: x* = (x 1 , x 2 , x 3 , x 4 , x 5 ) = (3, 2, 0, 0, 1). x*= xx^1 2
(^) → z*= 5.
3.5- O Método Simplex Revisado.
3.5.1- Considerações teóricas sobre o método.
Sem perda de generalidade, supondo-se que após algumas iterações do método é obtido o seguinte sistema a ser resolvido: x 1 + .........................................................y1q xq ...................................= y 10 x 2 +.....................................................y2q xq...................................= y 20 ..................................................................................................... (3.3) xp + ................................ypq xq...................................= yp ............................................................................... xm + ...................ypm xq..................................= ym com yi0 ≥ 0 para i = 1,...,m.
Então, a solução básica factível atual é: xB = (x 1 ,...,xm) e xN = (xm+1 ,...,xq,...,xn), com xi = yi0 ≥ (^) 0 para i = 1,...,m.
Para se obter a nova solução, suponha que fazemos a variável não básica xq entrar na base.
Se o elemento pivô da operação é ypq então xp sai da base.
A nova solução deve estar na forma canônica e assim deve-se efetuar pivoteamento gaussiano em ypq.
Os novos coeficientes do sistema serão dados por: linha p: ypj’ = ypj / ypq ; j = 1,...,n. para i ≠ p: yij’ = yij - yiq * (ypj / ypq). para j = 1, ..., n.
3.5.2- Definição de εεεε.
Assumindo-se que xq = εεεε ≥ 0, então, de acordo com o sistema de restrições (3.3). ;
xB =
x
x
x
p
m
1 .
.
y
y
y
p
m
10
0
0
y
y
y
q
pq
mq
1 .
.
. ε ≥ 0,
que pode ser escrito por xB = y^0 - yq^. εεεε ≥ 0.
Logo, xq = (^) εεεε = pq
p y
y (^) = min { iq
i y
y (^) tal que yiq > 0 }.
Assim, xq = εεεε ≥ 0 entra na base , xp = 0 sai da base e um novo
vértice é alcançado. Se yiq < 0, ∀ i , então a solução é ilimitada pois ∀ εεεε ≥ 0 tem-se que: yi0 - yiq. εεεε ≥ 0.
irá sair da base. Se min { iq
i y
y (^) tal que yiq >>>> 0 } = pq
p y
y (^) , então x p = 0^ sai^ da
base e xq = pq
p y
y (^) >>>> 0 entra na base.
Passo 4: Atualize B-1^ efetuando pivoteamento gaussiano em torno de ypq. Calcule a nov a solução corrente xB = B-1b e volte ao passo 1
Exemplo 3.6.1: Considerando o exemplo 4.7.1 resolvido por quadros e seguindo os procedimentos vistos tem-se:
a^1 a^2 a^3 a^4 a^5 b 2 1 1 0 0 8 1 2 0 1 0 7 sistema de restrições na forma padrão. 0 1 0 0 1 3
cT^ = [ -1, -1, 0 , 0 , 0 ] coeficientes de custo relativo. Solução inicial: Var. bás. B-1^ xB 3 1 0 0 8 4 0 1 0 7 5 0 0 1 3
Calcule wT^ = cBT^ B-1^ = [0,0,0] e rNT^ = cNT^ - wTN = [-1,-1]. Fazendo-se a^1 entrar na base temos o quadro a ser atualizado: y^1 = B-1^ a^1. Var. bás. B-1^ xB y^1 3 1 0 0 8 2 ← pivô (a 11 = 2) 4 0 1 0 7 1 5 0 0 1 3 0
Após efetuar os quocientes: { 8/2, 7/1,3/0}, seleciona-se o elemento pivô, define-se qual variável irá sair da base e atualiza-se a B-1^ :
Var. bás. B-1^ xB 1 1/2 0 0 4 4 -1/2 1 0 3 5 0 0 1 3
Então, wT^ = [-1/2, 0, 0] e rNT^ = [-1/2, -1/2] = [r 2 , r 3 ]. Seleciona-se então a^2 para entrar na base: y^2 = B-1^ a^2
Var. bás. B-1^ xB y^2 1 -1/2 0 0 4 1/ 4 -1/2 1 0 3 3/2 ← pivô (a 22 = 3/2) 5 0 0 1 3 1
Efetuando-se os quocientes: { 4/(3/2), 3/(3/2), 3/1}, selecionamos o elemento pivô e a variável a sair da base. Atualizando a B-1^ tem-se: Var. bás. B-1^ xB 1 2/3 -1/3 0 3 2 -1/3 2/3 0 2 5 1/3 -2/3 1 1
Então, wT^ = cBT^ B-1^ e rNT^ = cNT^ - wTN = [1/3, 1/3] = [r 3 ,r 4 ] Como não tem-se mais custos relativos negativos, esta é a solução ótima do problema.
3.7- O algoritmo Simplex
3.7.1- Direções de busca O teorema a seguir mostra que o conjunto solução do sistema Ax = b , é completamente determinado a partir de uma solução particular e do sub- espaço N ( A ).
dB = - B-1N dN ⇔ BdB + NdN = 0 ⇔ Ad (^) = 0 ⇔ d (^) ∈ N ( A ). Observe com isto que foi determinado um procedimento para determinar
d ∈ N ( A ), bastando para isto se atribuir um valor dN = d (^) N. Isto pode ser feito escolhendo-se:
d (^) N = ej , j = 1,2,...,n-m; onde ej^ é vetor canônico do ℜ n −^ m^ , que determinam n-m vetores linearmente independentes em N ( A ). Tem-se assim, os vetores de N ( A ):
dj^ = −
e
j j
1 , j = 1,2,...,n-m;
onde NJ^ é a j-ésima coluna da matriz N que corresponde ao vetor coluna aj^ da matriz A. Tais vetores, além de serem linearmente independentes, geram o
sub-espaço N ( A ), ou seja, ∀ d ∈ N ( A ) então d = dj j
−
1
Construiu-se assim, uma base de N ( A ) e segue o seguinte resultado:
Teorema 3.7.1.2:
Seja A ∈ ℜ mxn^ , posto( A ) = m. Então, dim ( N ( A )) = n-m.
Uma nova solução obtida por uma perturbação na direção dj : x = x + ε dj^ , ε > 0, corresponde à estratégia de alterar apenas a j-ésima componente do vetor das variáveis não básicas:
x x 0, j q
x x , j q N^ N
N (^) j Nj ;
Tal estratégia é denominada “estratégia simplex”, que corresponde a adotar a direção dj^ definida acima. Assim as direções dj^ são denominadas de “direções simplex”.
3.7.2- Determinação do passo
Considere a seguinte definição dos conjuntos baseados na partição básica e não básica da matriz A :
IB = { j tal que j é um índice coluna relacionado à base B }; IN = { j tal que j é um índice coluna relacionado à N }.
Em uma iteração corrente, se tiver-se a solução básica factível x = x x
B N
(^) , então, para a obtenção de uma nova solução a factibilidade será
garantida se:
x + ε d ≥ 0 ⇔ x (^) B + ε dB ≥ 0 ⇔ ( x (^) B )i + ε ( dB )i ≥ 0, i ∈ IB. Isto ocorre se e somente se: ε = min { B i
B i (d )
− (x ) tal que ( dB )i < 0 , i ∈ IB }.
Se o mínimo ocorre para ε = - ( x (^) B )p / ( dB )p , p ∈ IB então ( x (^) B )p + ε ( dB )p = 0, então ( x (^) B )p se torna não básica e é substituída por ( x (^) N )q = ε , q ∈ IN. Se ( dB )i > 0, ∀ i ∈ IB , então o conjunto de soluções factíveis é ilimitado.
Além disso, se duas ou mais componentes de x (^) B se anularem para um mesmo valor de ε , temos o caso de degeneração da base.
3.7.3- Critério de mudança de base.
Considere o vetor custo relativo rNT^ = cNT^ - cBT^ B-1N , já visto. Este pode ser escrito por: rj = cj - cBTB-1 ( aN )j para j ∈ IN. Se ∃ j ∈ IN tal que rj ≤ 0, então é interessante fazer xj assumir valor positivo e entrar na base, pois dj^ é uma direção de descida, ou seja,
cT ( x + ε dj ) ≤ cT^ x. Isto é utilizado como critério de mudança de base. Se rj ≥ 0, ∀ j ∈ IN então a otimalidade é atingida pois não conseguimos mais decréscimos para a função objetivo e isto é utilizado como critério de parada. Após as considerações anteriores pode-se enunciar um algoritmo que segue os seguintes passos.
3.8- Casos especiais do Método Simplex
3.8.1- Empate na entrada
Quando houver empate na escolha da variável que entra na base, deve- se tomar a decisão arbitrariamente. A única implicação envolvida é que pode- se escolher um caminho mais longo ou mais curto para se chegar à solução ótima.
3.8.2- Empate na saída (degeneração)
Poderá ocorrer que durante a escolha de uma variável para sair da base, temos, empate, isto é, duas ou mais variáveis se anulam com o crescimento da variável que está entrando na base. Neste caso ocorre o que chamamos de degeneração (temos uma solução básica factível degenerada). A escolha também é arbitrária (uma das variáveis básicas assume valor zero). Temos, então, que a mesma solução é obtida através de bases diferentes. Isso ocorre devido a hiperdeterminação de pontos extremos.
Exemplo 3.8.2. Maximizar z = 5x 1 + 2x 2 Sujeito a: x 1 ≤ 3 x 2 ≤ 4 4x 1 + 3x 2 ≤ 12 x 1 ; x 2 ≥ 0
3.8.3- Problemas com múltiplas soluções
Eventualmente, um modelo de Programação Linear pode apresentar mais de uma solução ótima. Quando isso ocorre, o Método Simplex é capaz de acusá-lo, pois o custo de uma variável não-básica é nulo. Dizemos, então, que o sistema tem múltiplas soluções ótimas.
Exemplo 3.8.3.1: Maximizar z = x 1 + 2x 2 Sujeito a: x 1 ≤ 3 x 2 ≤ 4 x 1 + 2x 2 ≤ 9 x 1 ; x 2 ≥ 0
3.8.4- Solução ilimitada
Quando aplicamos o Método Simplex e nenhuma restrição impede o crescimento da variável que entra na base, ou seja, não conseguimos zerar uma variável básica, dizemos que o problema tem solução ilimitada. Neste caso, o problema tem solução básica factível mas não tem solução ótima. Exemplo 3.8.4.1: Maximizar z = x 1 + 2x 2 Sujeito a: 4x 1 + x 2 ≥ 20 x 1 + 2x 2 ≥ 10 x 1 ≥ 2 x 1 ; x 2 ≥ 0
3.9- O Método Simplex duas fases
Nos problemas onde as restrições são do tipo “ ≤ ” (menor ou igual) é sempre possível obtermos uma submatriz (identidade) com o auxilio das variáveis de folga, e assim a solução inicial é óbvia. Porém, quando não temos uma solução inicial óbvia, ou seja, não conseguimos uma submatriz base (identidade) necessitamos de um procedimento para desenvolvê-la. Isto ocorre quando o problema de Programação Linear tiver restrições de “=“ (igualdade) e ou restrições do tipo “ ≥ ” (maior ou igual).