• Sonuç bulunamadı

Quando os cálculos do método Simplex, para problemas pequenos, precisam ser feitos manualmente é desejável seguir um procedimento organizado. Os dados são colocados em uma tabela, chamada de tableau, onde são mostradas, em cada iteração, a solução básica viável, as varáveis básicas e as variáveis não básicas, bem como o valor da f.o..

Nesta tabela são efetuadas as operações de pivoteamento: trata-se de encontrar a VNB que deve entrar na base (teste de otimalidade) e encontrar a VB que deve sair da base (teste da razão). Para isso, é necessário que o problema esteja no formato padrão, que exista uma matriz identidade como matriz básica B e que a função objetivo esteja em função das VNB, pois as VB são zeros. O quadro inicial do Simplex Tableau pode ser visto na tabela 1.

Tabela 1: Quadro Inicial do Simplex Tableau

VNB VB b

cB Y I b

Z −d 0 z

No quadro inicial foi usado o termo −d pois a equação da f.o. foi rescrita como,

z − ctx= 0. As outras notações usadas são:

• dj = cj − ctbyj, j ∈ K, onde yj é a coluna j de Y = B−1N (dj = 0 para toda VB xj).

• b= B−1b → valor da SBV atual.

• z= cb

tb → valor da f.o. atual.

• I é a matriz identidade que é, também, a matriz base. Considere o seguinte problema de maximização de PL:

Maximizar Z = c1x1+ c2x2 + · · · + cnxn sujeito a a11x1+ a12x2+ · · · + a1nxn ≤ b1 a21x2+ a22x2 + · · · + a2nxn≤ b2 ... ... am1x1+ am2x2+ · · · + amnxn ≤ bm x1 ≥0, x2 ≥0, . . . , xn ≥0 (2.24)

36 Capítulo 2. Fundamentação Teórica

Colocando-o na forma padrão utilizando as operações elementares vistas na seção

2.1.1, tem-se: Maximizar Z = c1x1+ c2x2+ · · · + cnxn+ 0xn+1+ 0xn+2+ · · · + 0xn+s sujeito a a11x1+ a12x2+ · · · + a1nxn+ xn+1+ 0 + 0 + · · · + 0 = b1 a21x1+ a22x2+ · · · + a2nxn+ 0 + xn+2+ 0 + · · · + 0 = b2 ... ... am1x1+ am2x2+ · · · + amnxn+ 0 + 0 + 0 + · · · + xn+s = bm x1 ≥0, x2 ≥0, . . . , xn+s ≥0 (2.25)

Observe que, o SBV inicial é:

x= (x1 x2 · · · xn xn+1 xn+2 · · · xn+s)t= (0 0 · · · 0 b1 b2 · · · bm)t

onde xN = (x1 x2 · · · xn)t = (0 · · · 0)t e xB = (xn+1 xn+2 · · · xn+s)t =

(b1 b2 · · · bm)t, pois a matriz identidade é obtida com os coeficientes relativos às variáveis xn+1, xn+2, . . . , xn+s. A matriz N é obtida com os coeficientes relativos às variáveis não

básicas x1, x2, . . . , xn . Note, também que:

c= (c1 c2 · · · cn cn+1 cn+2 · · · cn+s)t

onde cB = (0 0 · · · 0)t, para toda variável básica, e cN = (c1 c2 · · · cn)t. Logo, z = 0

e dj = cj, ∀j ∈ K, pois cB = 0. Observe, também que:

xb = b = B−1b = Ib = b; Y = B−1N = N.

Na linha da f.o. coloca-se a equação em função das VNB, isto é:

Z − c1x1− c2x2− · · · − cnxn0xn+10xn+2− · · · −0xn+s = 0.

A tabela 22mostra o quadro inicial do Simplex tableau mais detalhado. Perceba que a primeira linha é formada pelos os coeficientes djda f.o., os coeficientes das variáveis básicas

tem valor zero, e o valor da função é inicialmente zero. Para as colunas referentes às VB note a matriz identidade que representa a matriz básica B. As colunas associadas as VNB possuem valores referentes aos coeficientes aij, cj, ∀i= {1, 2, · · · , m}, j = {1, 2, · · · , n}, e

o conjunto dos elementos aij fazem parte da matriz N.

2.1.3.1 Teste de Otimalidade

Relembrando a equação (2.19):

2.1. Simplex 37

Tabela 2: Quadro Inicial mais detalhado do Simplex Tableau.

Z x1 x2 · · · xn xn+1 xn+2 · · · xn+s b Z 1 −c1 −c2 · · · −cn 0 0 · · · 0 0 xn+1 0 a11 a12 · · · a1n 1 0 · · · 0 b1 xn+2 0 a21 a22 · · · a2n 0 1 · · · 0 b2 ... ... ... ... ... ... ... ... ... ... ... xn+s 0 am1 am2 · · · amn 0 0 · · · 1 bm

foi visto que no problema de minimização o critério para uma VNB entrar na base é que dj <0, logo para o problema de maximização esse critério seria o oposto, ou seja, dj >0. Se o coeficiente de custo reduzido for estritamente positivo fará que aumente o

valor da f.o..

Assim para o problema no Simplex Tableau tem-se que:

Z = z + djxj ⇒ Z − z − djxj = 0. (2.27)

portanto, para ser candidata a entrar na base na forma Tableau é necessário que −dj <0.

Se o problema fosse de minimização, esse critério seria −dj > 0. Se existirem várias

candidatas, pode-se escolher a que possuir coeficiente mais negativo, isto é:

−dk = minj∈K{−dj, −dj <0}. (2.28)

A VNB xk associada é a escolhida para entrar na base e a coluna referente a essa

variável é chamada de coluna pivô. O método do Simplex em sua forma tableau de maximização termina quando −dj0, ∀j ∈ K ou dj0, pois qualquer xj ≥0 iria piorar

o valor de Z.

2.1.3.2 Teste da Razão

Para escolha da VB que deve sair da base, relembre a expressão do teste de razão:

xs B = minyk i ( B−1b yk i , yk i >0 ) , ∀i ∈ I | I = [1 m] (2.29)

Esse teste deve ser realizado em todas as linhas imediatamente depois da linha corres- pondente a f.o.. Os elementos da razão são dados pelos valores da última coluna b pelos elementos positivos correspondentes da coluna do pivô. O menor desses quocientes diz qual a variável básica associada que deve sair. A linha referente a essa variável é chamada de linha pivô.

38 Capítulo 2. Fundamentação Teórica

2.1.3.3 Obtenção de uma nova SBV

Para obter um novo quadro, indicando as novas variáveis básicas e seus valores, o novo valor da f.o. e as novas colunas yj é necessário realizar as operações elementares

sobre linhas, descritas nas etapas a seguir:

Etapa 1. Localizar o elemento que está na intersecção da linha pivô lp e coluna pivô cp.

Esse elemento é o pivô yp;

Etapa 2. Multiplicar a linha pivô por 1

yp, transformado o elemento pivô em 1;

Etapa 3. Fazer a operação elementar (2.30) em todas as outras linhas, inclusive a linha

correspondente à f.o., de modo a transformar em zeros todos os outros elementos da coluna pivô, exceto o elemento pivô que continua sendo 1.

li = li − yplp, ∀i ∈ I | I = [1 m]. (2.30)

As etapas 2 e 3 são operações elementares sobre as linhas do quadro Simplex e correspondem ao método de Gauss-Jordan para resolver sistemas lineares. O objetivo é transformar a coluna referente a variável que irá entrar na base em coluna identidade e retirar a antiga VB modificando os valores, deixando-a sem a coluna identidade.

2.1.3.4 Algoritmo do Simplex Tableau

O procedimento para usar o método Simplex Tableau é descrito nos passos descritos a seguir:

Passo 1. Com o problema na forma padrão, fazer o quadro inicial, colocando os dados

conforme o modelo que foi explicado;

Passo 2. Realizar o teste de otimalidade:

Se todos os −cj0, ∀j ∈ K, então a solução ótima foi alcançada e o método

deve parar (Critério de parada).

Caso contrário escolhe-se o menor −cj <0, por exemplo, ck, escolhe-se, assim,

a coluna pivô associado a xk para entrar na base;

Passo 3. Realizar o teste da razão para escolher a linha pivô: xsB = minyk i ( B−1b yk i , yki >0 ) , ∀i ∈ I | I = [1 m] (2.31)

O teste deve ser realizado para todas as linhas, exceto a linha da f.o. A linha associada ao menor quociente deve ser a linha pivô.

2.1. Simplex 39

Importante: Se nenhum dos elementos abaixo da linha correspondente a f.o. na

coluna pivô for positivo, o problema não tem solução finita ótima, assim, o método deve parar.

Passo 4. Multiplicar a linha pivô por 1

yp, transformado o elemento pivô em 1;

Passo 5. Fazer a operação elementar :

li = li − yplp, ∀i ∈ I | I = [1 m]. (2.32)

em todas as outras linhas, exceto a linha do pivô e inclusive a linha correspondente à f.o., de modo a transformar em zeros todos os outros elementos da coluna pivô, isto é, todos exceto o elemento pivô que continua sendo 1.