Método Simplex Revisado Prof. Fernando Augusto Silva Marins Departamento de Produção Faculdade de Engenharia Campus de Guaratinguetá UNESP www.feg.unesp.br/~fmarins fmarins@feg.unesp.br
Introdução Método Simplex Tradicional - MST: Em cada iteração são modificados todos os elementos das tabelas usadas na aplicação do método. Informações necessárias para a continuidade do Simplex: Coeficientes de custo relativo ( C j ); Coeficientes da variável não básica que entra nas restrições (coluna do pivot); Quais são as variáveis básicas atuais e seus valores ( ). Observação: as demais colunas da tabela do simplex não contém informações relevantes para o pivoteamento: para modelos de PL de porte razoável a aplicação do MST pode ser ineficiente e custosa do ponto de vista computacional. b j 2
Método Simplex Revisado Códigos comerciais com implementações do Simplex usam um refinamento conhecido como Método Simplex Revisado - MSR. Características do MSR: Usa os mesmos princípios do MST; Não atualiza toda a tabela em cada iteração; As informações para concretizar cada iteração são obtidas diretamente a partir dos dados originais. 3
Vantagens do MSR sobre o MST Quando o número de variáveis do modelo é bem maior que o número de restrições (n >> m) o total de operações em cada iteração é menor no MSR, pois trabalha-se com tabelas cuja dimensão é determinada pelo número de restrições (m); Há um controle maior de erros de arredondamento no MSR; Para modelos onde há muitos coeficientes nulos nas restrições, usando o MST estes coeficientes nulos desaparecem já nas operações iniciais de pivoteamento; O MSR é útil para a abordagem facilitada de outros tópicos de Programação Linear. 4
Forma Matricial do Método Simplex Considere o modelo de PL na forma padrão: Min Z = C X s. a. : {AX = b ( 0), X 0} Considere as partições: A = [B N], X t = [X B X N ], C = [C B C N ] onde, B = colunas básicas, N = colunas não-básicas, X B = variáveis básicas (VB), X N = variáveis não-básicas (VNB), C B = coeficientes de VB na Funcão Objetivo (F.O.), C N = coeficientes de variáveis não-básicas na F.O. 5
Forma Matricial do Método Simplex Pode-se reescrever o modelo na forma padrão: Min Z = C B X B + C N X N s.a: B X B + N X N = b (), X B 0 (2), X N 0 (3) De () tem-se: X B = B - b - B - N X N, e substituindo na F. O. : Z = C B (B - b - B - N X N ) + C N X N = C B B - b + (C N - C B B - N) X N (4) Denote e calcule por: Z 0 = C B B - b = C B b = valor da F.O. da S.B.V. dada por X 0t = (X B 0); C N = C N - C B B- N = vetor dos coeficientes de custo relativo das VNB na solução X 0t. 6
Seja o modelo de PL : Max Z = 3X + 4X 3 - s. a: Exemplo X + 2X 2 + 2X 3 + X 4 = 8 3X + 4X 2 + X 3 + X 5 = 7 X i 0, i =, 2, 3, 4, 5. Onde: 3 2 4 2 0 0 A = (a a 2 a 3 a 4 a 5 ), a =, a 2 =, a 3 =, a 4 =, a 5 = C = (3 0 4 0 0) = (c c 2 c 3 c 4 c 5 ), X t = (X X 2 X 3 X 4 X 5 ), b = 8 7 = b b 2 7
Tabelas do MST no Exemplo VB X X 2 X 3 X 4 X 5 b Tabela x 4 2 2 0 8 inicial x 5 3 4 0 7 -z 3 0 4 0 0 x 3 / 2 /2 0 4 Tabela 2 x 5 5/2 3 0 - /2 3 -z -4 0-2 0-5 Tabela 3 x 3 * 0 2/5 3/5 -/5 7/5 ótima x * 6/5 0 -/5 2/5 6/5 -z * 0-26/5 0-9/5-2/5-8/5 8
Método Simplex Revisado Todos os coeficientes das Tabelas 2 e 3 podem ser obtidos a partir dos dados originais e da matriz B -. - Para a Tabela 2: 2 0 B = colunas básicas = (a 3 a 5 ) = B - = - Colunas atualizadas da matriz A: / 2 0 / 2 a j - = B a j para j=,5. a = B a = / 2 0 -/ 2 3 = / 2-5 / 2 a 2 = B a = / 2 0 2 -/ 2 4 = - 2 3 9
Método Simplex Revisado Constantes atualizadas das restrições (ou seja os valores das variáveis básicas): b = B b = - / 2 0 8 - / 2 7 C = C - C a = 3-4 0 B = 4 3 Coeficientes de custo relativo atualizados: com sendo o Vetor de - Multiplicadores do Simplex = C B B C j = C - C a j = C j j B j ou j j j j B - = C -C B a =C - a / 2 = 5 / 2 j = 2 C 2 = C - C a = 0-4 0 2 B 2 3 = - 4 0
MSR - Problemas de Minimização - Considere uma Solução Básica Viável inicial (SBV) = Passo: Montar a tabela com a SBV Inicial X B = B b b Solução inicial X B B - Inversa da matriz das colunas básicas - b = B b Valores da variáveis básicas Variável que entra A ser preenchida no Passo 2 Coluna do pivot A ser preenchida no Passo 3 Passo 2: Teste de otimalidade/escolha da variável não-básica que entra Calcular C j = Cj - CB a para toda VNB X j j Se todo C j 0 Parar. Solução Ótima Senão escolha x r com C r < 0 para ser a VNB que entra (preencher a tabela)
MSR - Problemas de Minimização Passo 3: calcular a coluna atualizada do pivot/escolha da VB que sai Achar coluna atualizada do pivot = B a (preencher a tabela) b s = MIN b a i Determinar PARA a ir > 0 x s = ir a r - r b sai, pivot = s a sr Se a ir > 0 Parar. Solução Ilimitada Passo 4: atualizar a SBV, a matriz B -, e o vetor pivoteamento. Voltar ao Passo 2. - b = B b pelo 2
Exemplo completo de aplicação do Método Simplex Revisado Max Z = 3X + X 2 + 3X 3 s. a: 2X Xi + X 2 + X 3 2 X + 2X 2 + 3X 3 5 2X + 2X 2 + X 3 6 0, i =, 3. Colocando este modelo na forma padrão de minimização e identificando os dados originais que serão usados nas iterações do Método Simplex Revisado: a a 2 a 3 a 4 a 5 a 6 X B X X 2 X 3 X 4 X 5 X 6 b S. B. V. X 4 2 0 0 2 b Inicial X 5 2 3 0 0 5 b 2 X 6 2 2 0 0 6 b 3 -Z -3 - -3 0 0 0 0 C C 2 C 3 C 4 C 5 C 6 -Z 0 3
Exemplo - MSR Expressões úteis: = Vetor de multiplicadores do simplex = - CN = CN - C B N a j - = B a j B, = - b = B b 0 0 0 0 0 0 CN - N 2 2 3 2 2 C B B - Passo : C B = (0 0 0) B = N = C N = (-3 - -3) Tabela S.B.V. B - b Variável que entra Coluna Pivot X 4 0 0 2 X 5 0 0 5 Passo 2 Passo 3 X 6 0 0 6 4
Exemplo Passo 2 - Cálculos: = = (0 0 0) I 3 = (0 0 0) C B B - 2 C N = (C C 2 C 3 ) = CN - N = (-3 - - 3) - (0 0 0) 2 3 (-3 - - 3) 2 2 Candidatas a entrar: X,X 2 e X 3. Escolhendo X para entrar (Preencher a Tabela ). - Passo 3 - Coluna do pivot: a = B a = I3 = (Preencher Tabela ) Min b Determinação do pivot: i para a a i i > 0 2 5 6 2 Min,, = = sai X 4 e o pivot = a = 2 2 2 2 2 2 2 2 5
Exemplo Tabela S.B.V. B - b Variável que entra Coluna Pivot X 4 0 0 2 2 X 5 0 0 5 X X 6 0 0 6 2 A seguir efetuar o pivoteamento em B - e b Tabela 2 com nova SBV com X no lugar de X 4. 6
Exemplo Aplicar os Passos 2 4 na Tabela 2 Tabela 2 S.B.V. B - b variável entra coluna pivot X /2 0 0 X 5 -/2 0 4 Passo 2 Passo 3 X 6-0 4 7
Método Simplex Revisado Passo 2-3 Cálculos: = C B B - = (-3/2 0 0) C N = (C 2 C 3 C 4 ) = (- - 3 0) - (-3 / 2 0 0) 2 3 0 (/ 2-3 / 2 3 / 2) 2 0 Candidata a entrar: X 3 (Preencher a Tabela 2). Coluna Pivot: Tabela 2) / 2 0 0 - a 3 = B a 3 = -/ 2 0 0 3 = / 2 5 / 2 0 (Preencher 8
Exemplo Tabela 2 S.B.V. B - b variável entra coluna pivot X /2 0 0 /2 X 5 -/2 0 4 X 3 5/2 X 6-0 4 0 Determinação do Pivot: b Min i para a > 0 a i3 i3 4 8 Min, = sai X 5 e o pivot = a 23 5 5 2 2 = 5/2 9
Exemplo Efetuando o pivoteamento em B - e b Tabela 3 com nova SBV com X 3 no lugar de X 5. Tabela 3 S.B.V. B - b variável entra coluna pivot X 3/5 -/5 0 /5 X 3 -/5 2/5 0 8/5 Passo 2 Passo 3 X 6-0 4 20
Método Simplex Revisado Tabela 3 S.B.V. B - b variável entra coluna pivot X 3/5 -/5 0 /5 X 3 -/5 2/5 0 8/5 Passo 2 Passo 3 X 6-0 4 2 0 3 0 2 0 2 0 2 0 0 C B = (-3-3 0) B = N = C N = (- 0 0) Cálculos: = C 3 / 5 / 5 0 B B - = (-3-3 0) = (-6/5-3/5 0) / 5 2 / 5 0 0 2
Exemplo - MSR 0 C N = (C 2 C4 C 5 ) = (- 0 0) - (-6/ 5-3/ 5 0) 2 0 (7/ 5 6/ 5 3/ 5) 2 0 0 C N 0 a SBV da Tabela 3 é ótima: X * * * * * * = / 5, X = 8 / 5, X = 4, X = X = X = 0 3 6 2 4 5 * - Z = C B b = b = (-6 / 5-3 / 5 0) B 2 5 6 = - 27 / 5 * * W = - Z = 27 / 5 22
Método do Big M para inicialização do MSR Nas restrições onde não há Variáveis Naturais (originais e de folga) do modelo que possam ser variáveis básicas são incorporadas novas Variáveis denominadas Artificiais. Estas Variáveis Artificiais ( 0) também são incorporadas à função objetivo recebendo, para modelos de Minimização (Maximização), coeficientes penalizantes dados por M (-M), onde M é um número positivo suficientemente grande com relação aos demais coeficientes envolvidos com o modelo original. Desta maneira obtém-se uma solução básica viável inicial para o modelo ampliado que contém todas as variáveis artificiais. 23
Método do Big M para inicialização do MSR Aplica-se o MSR anteriormente ao modelo ampliado, buscando a substituição das Variáveis Artificiais (VA) básicas por Variáveis Naturais (Decisão e de Folga) do modelo original. As VA que se tornam não-básicas podem ser desconsideradas nas iterações subseqüentes do MSR. A aplicação do MSR ao modelo ampliado pode levar a duas situações: (A) Existe VA como variável básica na solução ótima do modelo ampliado neste caso a conclusão é que o modelo original é inviável. (B) Não existe VA como variável básica na solução ótima do modelo ampliado neste caso o modelo original é viável e uma solução ótima com Variáveis Naturais do modelo original foi obtida. 24
Exemplo de aplicação do MSR com Big M Min Z = -3 X + X 2 + X 3 s. a: X - 2X2 + X3-4X + X2 + 2X3 3 2X - X3 = - Xi 0, i =, 3. () (2) (3) (4) Modelo original na forma padrão: Sendo X 4 e X 5 as variáveis de folga para as restrições () e (2), respectivamente; Y, e Y 2 as variáveis artificiais para as restrições (2) e (3), respectivamente. Min Z = -3X + X 2 + X 3 + MY + MY 2 Sujeito a: X - 2X2 + X3 + X4 = () - 4X + X2 + 2X3 - X5 + Y = 3 (2) - 2X + X3 + Y2 = (3) Xi 0, i =, 5. Yj 0, j =, 2. (4) 25
Aplicação do MSR com Big M Identificação dos dados originais A = C = a a a a a a a 2 3 4 5 6 7 2 0 0 0 4 2 0 0 2 0 0 0 0 C C C C C C C 2 3 4 5 6 7 3 0 0 M M b = 3 b b b 2 3 26
Aplicação do MSR com Big M Tabela X B B - b variável entra coluna pivot X 4 0 0 Y 0 0 3 Passo 2 Passo 3 Y 2 0 0 Dados referentes a solução básica viável da Tabela : C B = (0 M M), B = 0 0 0 0 0 0, N = -2 0-4 2 - -2 0 0, C = -3 0 N Cálculos: = (O M M) I 3 = (0 M M) 2 0 CN = C C C C = -3 0-0 M M = M -M -M M 2 0 0 2 3 5 4 2 27
Aplicação do MSR com Big M Tabela X B B - b variável entra coluna pivot X 4 0 0 Y 0 0 3 X 3 Passo 3 Y 2 0 0 Variáveis X 2 e X 3 são candidatas a entrar. Escolhendo X 3 (preencher a Tabela ). para entrar - Coluna do pivot: a 3 = B a 3 = I3 2 = 2 (preencher Tabela ) 28
Aplicação do MSR com Big M Tabela X B B - b variável entra coluna pivot X 4 0 0 Y 0 0 3 X 3 2 Y 2 0 0 Determinação do pivot: Min b a i i 3, a > 0 3 2,, = Sai Y e o pivot = a =. i3 2 33 Nova SBV: Pivotear em - a 33, B, b na Tabela Tabela 2. 29
Aplicação do MSR com Big M Tabela 2 X B B - b variável entra coluna pivot X 4 0-0 Y 0-2 Passo 2 Passo 3 X 3 0 0 Dados referentes a SBV da Tabela 2: C B = (0 M ), B = 0 0 2 0 0, N = -2 0 0-4 - 0-2 0 0, C = -3 0 M N Cálculos: = (O M ) 0 0 2 0 0 = (0 M -M) 2 0 0 CN = C C C C = -3 0 M - 0 M -M = - -M M M 2 0 0 2 5 7 4 0 30
Aplicação do MSR com Big M X B B - Tabela 2 b variável entra coluna pivot X 4 0-0 Y 0-2 X 2 X 3 0 0 Variáveis X e X 2 são candidatas a entrar. Escolhendo X 2 entrar (preencher a Tabela 2). para 0 - -2-2 - Coluna do pivot: a 2 = B a 2 = 0-2 = (preencher Tabela 2) 0 0 0 0 3
Aplicação do MSR com Big M Tabela 2 X B B - b variável entra coluna pivot X 4 0-0 -2 Y 0-2 X 2 X 3 0 0 0 Determinação do pivot: Min b a i i2, a i2 > 0 Min = sai Y e o pivot = a =. 22 Nova SBV: Pivotear em - a 22, B, b na Tabela 2 Tabela 3. 32
Aplicação do MSR com Big M Tabela 3 X B B - b variável entra coluna pivot X 4 2-5 2 X 2 0-2 Passo 2 Passo 3 X 3 0 0 Dados referentes a solução básica viável da Tabela 3: C B = (0 ), B = 2 0 2 0 0 2 5 0 2 0 0, N = 0 0 0-4 - 0-2 0 0 Cálculos: = (0 ) = (0-2), C = -3 0 M M 0 0 0 CN = C C C C = -3 0 M M - 0-2 = - - M M 2 0 0 33 5 6 7 4 0 N
Aplicação do MSR com Big M Tabela 3 X B B - b variável entra coluna pivot X 4 2-5 2 X 2 0-2 X X 3 0 0 Variável X é candidata única a entrar. (Preencher a Tabela 3). 2-5 3 - Coluna do pivot: a = B a = 0-2 -4 = 0 (preencher Tabela 3) 0 0-2 -2 34
b a i Min, a > 0 Min i Aplicação do MSR com Big M Tabela 3 X B B - b variável entra coluna pivot X 4 2-5 2 3 X 2 0-2 X 0 X 3 0 0-2 Determinação do pivot: 2 3 i = 4 sai X e o pivot = a = 3. 4 Nova SBV: Pivotear em - a, B, b na Tabela 3 Tabela 4. 35
Aplicação do MSR com Big M Tabela 4 X B B - b variável entra coluna pivot X /3 2/3-5/3 4 X 2 0-2 X 3 2/3 4/3-7/3 9 Dados referentes a SBV da Tabela 4: C B = (-3 ), B = 2-0 0 0 4 2, N = 0-0 2 0 0 0 0 Cálculos: = (-3 ) = (-/3 /3 2/3) / 3 2 / 3 5 / 3 0 2 2 / 3 4 / 3 7 / 3, C = 0 0 M M N 36
Aplicação do MSR com Big M 0 0 0 C = C C N C C = 0 0 M M - - / 3 / 3 2 / 3 = / 3 / 3 M M 0 0 0 4 5 6 7 0 0 Como não há VNB candidatas a entrar. A solução da Tabela 4 é ótima. * X * * * * = 4, X =, X = 9, X = X = 0. 2 3 4 5 * Z = C b = -3 B 4 9 = - 2 37