11. SOLUÇÃO ALGEBRICA O MÉTODO SIMPLEX Página 16 Após o problema ter sido modelado, pode-se resolvê-lo de forma algébrica. A solução algébrica é dada pelo método simplex elaborado por Dantzig. Antes da solução algébrica são necessárias algumas definições. 11.1. DEFINIÇÕES Solução básica Uma solução básica para um problema de programação linear na forma padrão é obtido atribuindo-se o valor zero a n-m variáveis e resolvendo-se o sistema de equações para as demais m variáveis Variáveis básicas e não básicas variáveis não-básicas são as n-m variáveis as quais foi atribuído o valor zero numa solução básica ao passo que as variáveis básicas são as outras m variáveis. Solução básica viável é uma solução básica em que todas as m variáveis básicas são não negativas. Forma padrão ( ) Max z = Max f x,x,,x = c x = c x + c x + + c x n 1 2 n j j 1 1 2 2 n n j= 1 n Sujeito a a x = a x + a x + + a x = b j= 1 n j= 1 n j= 1 j 1 j j 11 1 12 2 1n n 1 a x = a x + a x + + a x = b 2 j j 21 1 22 2 2n n 2 a x = a x + a x + + a x = b mj j m1 1 m2 2 mn n m x 0, j = 1,2,,n 11.2. REGRAS DE TRANSFORMAÇÃO 1) Minimizar f ( x,x,,x ) é equivalente a maximizar f ( x,x,,x ) 1 2 n 2) 11 1 12 2 1n n 1 1 2 n a x + a x + + a x b multiplicado por (-1) gera a11x1 a12x2 a1n xn b1 a x + a x + + a x b gera a11x1 + a12 x2 + + a1n xn + fo lg a = b1 3) 11 1 12 2 1n n 1 a x + a x + + a x b gera a11x1 + a12 x2 + + a1n xn fo lg a = b1 4) 11 1 12 2 1n n 1 Observe que o sinal é invertido
12. ALGORITMO SIMPLEX Página 17 Os passos para a resolução utilizando o algoritmo simplex 1 são. Passo 1 Selecione um conjunto de m variáveis que produzam uma solução inicial viável. Elimine as m variáveis escolhidas da função-objetivo. Passo 2 Verifique a função-objetivo para ver se há uma variável que seja igual a zero, na solução tentativa, mas que melhoraria a função objetivo se fosse tornada positiva. Se existir uma tal variável, vá ao passo 3. Caso contrário pare. Passo 3 Determine quão grande pode ser feita a variável encontrada no passo anterior até que uma das m variáveis da solução tentativa torne-se zero. Elimine esta última variável e faça o próximo conjunto tentativo conter, em vez disso, a variável recém-encontrada. Passo 4 Resolva para estas m variáveis e deixe as variáveis restantes iguais a zero na próxima solução tentativa. Retorne ao passo 2. No desenvolvimento dos caçulos devem ser observados os critérios: Critério I Se houver variáveis não-básicas que tenham coeficiente negativo na linha 0, escolha uma dessas variáveis (x j ) com o coeficiente mais negativo de todos, isto é, o melhor ganho potencial por unidade. Se todas as variáveis não-básicas tiverem coeficientes positivos ou zero na linha 0, já foi obtida a solução ótima. Critério II a) Tome as relações do lado corrente da direita pelos coeficientes das variáveis de entrada x j (ignore as relações com número zero ou negativo no denominador). b) escolha a relação mínima essa relação será igual ao valor x j na próxima solução tentativa. A relação mínima ocorre para uma variável x k na solução presente; fixe x k =0 na nova solução Voltando ao exemplo da fábrica de brinquedos. A brinquedos SA fabrica dois tipos de brinquedos de madeira: ados e trens. Um ado é vendido por R$ 27 e usa R$ 10 de matéria-prima. Cada ado fabricado aumenta os custos de diretos de mão-de-obra e custos indiretos em R$ 14. Um trem é vendido a R$ 21 e utiliza R$ 9 de matéria-prima. Cada trem aumenta os custos de mão-de-obra e custos indiretos em R$ 10. A fabricação requer dois tipos de mão-de-obra: carpinteiro e pintor. A fabricação de um ado requer 2 horas de um pintor e 1 hora de um carpinteiro. Um trem demanda 1 hora de pintura e 1 hora de carpintaria. Para cada semana, a Brinquedos pode conseguir toda a matéria prima necessária, mas apenas 100 horas de pintura e 80 horas de carpintaria. A demanda para os trens é ilimitada, mas a de ados é de no máximo 40 por semana. (COLIN, 2006, p. 11) 1 Adaptado de WAGNER, Harvey M. Pesquisa operacional. 2. edição. Rio de janeiro. Prentice-Hall do Brasil, 1986
Vamos partir da forma canônica obtida anteriormente. FormaCanônica Página 18 maxz = 3x + 2xtrem s.a. 2x + 1xtrem 100 x + xtrem 80 x 40 x 0; x 0 trem Aplicando a regra de transformação nº 3, em cada uma das restrições a) Quantidade horas pintura 2 x + 1 x trem + f pint = 100 b) Quantidade horas de carpintaria 1 x + 1 x trem + f carp = 80 A folga significa a quantidade de horas não utilizadas na pintura, e permite transformar a inequação representada pelo sinal de (menor ou igual) em equação representada pelo sinal de = (igual) c) Limite de vendas de ados x + f = 40 Idem para a restrição de carpintaria e quantidade de vendas de ados Escrevendo a forma padrão. É obrigatório somar cada uma das folgas acrescentadas nas restrições à função objetivo. A princípio existem a mesma quantidade de folgas que restrições. FormaPadrão maxz = 3x + 2xtrem + fp int + fmar + f s.a. 2x + 1xtrem + fp int = 100 x + xtrem + fmar = 80 x + f = 40 x 0; x 0;f 0;f 0;f 0 trem p int mar Vamos agora arrumar as informações em uma tabela. Este é o primeiro passo do algoritmo. Representa a primeira solução Observe que foi invertido o sinal das constantes de ados (3-3) e trens (2-2) SOMENTE NA FUNÇÃO OBJETIVO x x trem f pint f carp f sol Z -3-2 0 0 0 0 2 1 1 0 0 100 1 1 0 1 0 80 Aplicando o CRITÉRIO I Quando iniciamos os cálculos não existem folgas na função objetivo, por isso elas são zero Nesta situação a interpretação do table é folga de pintura = 100; Folga de carpintaria = 80; Folga de vendas de ados = 40 (variáveis básicas) quantidade de ados e quantidade de trens são as variáveis não básicas. Ler coluna onde somente aparece um número 1 e o valor da coluna z correspondente a linha. Resultado da função objetivo neste momento é zero. Representa o lucro da venda de trens e ados Função objetivo Restrição horas de pintura Restrição horas de carpintaria Restrição limite de vendas ados A área em destaque, na matemática, é a matriz identidade, e é o princípio de funcionamento do método simplex. Aparece em todas as situações. O OBJETIVO do método simplex é modificar a localização das três colunas destacadas para outras colunas da tabela.
Página 19 Segundo e terceiro passo -3-2 0 0 0 0 2 1 1 0 0 100 1 1 0 1 0 80 Variável não básica - diferente de zero, coeficiente mais negativo (-3 é mais negativo, ou menor que -2), representa que a venda de trem produz um lucro maior que a venda de ados. Deve ser verificado primeiro. Aplicando o CRITÉRIO II É chamada de coluna pivô -3-2 0 0 0 0 2 1 1 0 0 100 100 2 = 50 1 1 0 1 0 80 80 1 = 80 40 1 = 40 Divida o valor da coluna Z pelo número constante na coluna pivô. Estamos verificando quanto pode ser feito de trem com cada um dos itens disponíveis pintura, carpintaria e limite de vendas O menor resultado representa linha pinha pivô Elemento Pivô Quarto passo x x trem f pint f carp f sol Z O objetivo é fazer aparecer nas células em branco da coluna pivô o número 0 (zero). Para isso são válidas as operações de matrizes, assim é permitido Multiplicar ou dividir uma linha por uma constante; Somar ou subtrair uma linha de outra linha. LEMBRE-SE: UTILIZE SEMPRE OS NÚMEROS DA COLUNA PIVÔ. Efetuando as operações em todas as linhas, tem-se: Operação efetuada 0-2 0 0 3 120 L 1 L 1 +3 L 4 0 1 1 0-2 20 L 2 L 2-2.L 4 0 1 0 1-1 40 L3 L 3 - L 4 L 4 L 4 Todos esses passos chamam-se de primeira iteração e significa que o algoritmo simplex foi completado uma vez. Nesta situação a solução apresentada no table é:
Página 20 Lucro função objetivo = 120 Quantidade de ados = 40 Folga pintura = 20 Variáveis básicas Folga carpintaria = 40 Quantidade de trens Variáveis não básicas Folga venda ados O algoritmo continua o seu processo a partir do segundo passo, e solicita que seja efetuada uma verificação na linha da função objetivo, e como ainda existe número negativo o processo deve ser repetido mais uma vez. 2º ITERAÇÃO - Segundo e terceiro passo Aplicando o CRITÉRIO I 0-2 0 0 3 120 0 1 1 0-2 20 0 1 0 1-1 40 Variável não básica - diferente de zero, coeficiente mais negativo, representa que a venda de ados ainda pode produz lucro. Aplicando o CRITÉRIO II 0-2 0 0 3 120 0 1 1 0-2 20 20 1= 20 0 1 0 1-1 40 40 1= 40 40 0= O menor resultado representa linha pinha pivô Elemento Pivô 2º ITERAÇÃO - Quarto passo x x trem f pint f carp f sol Z 0 1 1 0-2 20 Novamente o objetivo é fazer aparecer nas células em branco da coluna pivô o número 0 (zero) e são válidas as mesmas operações anteriores.
Página 21 Operação efetuada 0 0 2 0-1 160 L 1 L 1 +2.L 2 0 1 1 0-2 20 L 2 L 2 0 0-1 1 1 20 L3 L 3 - L 2 L 4 L 4 Nesta situação a solução apresentada no table é: Lucro função objetivo = 160 Quantidade de ados = 40 Quantidade de trens = 20 Variáveis básicas Folga carpintaria = 20 Folga venda ados Variáveis não básicas Folga pintura O algoritmo continua o seu processo a partir do segundo passo, e solicita que seja efetuada uma verificação na linha da função objetivo, e como ainda existe número negativo o processo deve ser repetido mais uma vez. Aplicando o CRITÉRIO I 0 0 2 0-1 160 0 1 1 0-2 20 0 0-1 1 1 20 3º ITERAÇÃO - Segundo e terceiro passo Variável não básica - diferente de zero, coeficiente mais negativo, representa que a venda de ados não atingiu seu limite e pode ser vendido mais Aplicando o CRITÉRIO II 0 0 2 0-1 160 0 1 1 0-2 20 20-2= não aplicável 0 0-1 1 1 20 20 1 = 20 40 1 = 40 O menor resultado representa linha pinha pivô Elemento Pivô 3º ITERAÇÃO - Quarto passo x x trem f pint f carp f sol Z 0 0-1 1 1 20
Página 22 Novamente o objetivo é fazer aparecer nas células em branco da coluna pivô o número 0 (zero) e são válidas as mesmas operações anteriores. 0 0 1 1 0 180 L 1 L 1 + L 3 0 1-1 2 0 60 L 2 L 2 + 2.L 3 0 0-1 1 1 20 L3 L 3 1 0 1-1 0 20 L 4 L 4 - L 2 Nesta situação a solução apresentada no table é: Lucro função objetivo = 180 Quantidade de ados = 20 Quantidade de trens = 60 Variáveis básicas Folga venda ados = 20 Folga carpintaria Variáveis não básicas Folga pintura Observe que agora não há mais números negativos na linha que representa a função objetivo, portanto o algoritmo simplex encontrou a melhor resposta, ou seja, o melhor a condição de produção para que se obtenha o maior lucro. O método simplex está analisando os possíveis pontos ótimos, veja o que ela faz no gráfico (já resolvido anteriormente) 120 110 100 90 80 70 60 50 40 30 20 10 0 Qtde de trens Solução da 3º iteração - ÓTIMO Quantidade de trens=60 Quantidade de ados=20 Função objetivo (lucro) =R$ 180,00 10 20 30 40 50 60 Solução da 2º iteração Quantidade de trens=40 Quantidade de ados=20 Função objetivo (lucro) =R$ 160,00 Qtde de ados Solução da montagem inicial Quantidade de trens=0 Quantidade de ados=0 Função objetivo (lucro) =R$ 0,00 Solução da 1º iteração Quantidade de trens=40 Quantidade de ados=0 Função objetivo (lucro) =R$ 120,00
13. EXERCÍCIOS Página 23 Utilizando o método simplex, determine a solução ótima: 1) Problema 2 (item 8, pg. 9) 2) Problema 3 (item 8, pg. 9) 3) 4) Max Z = x + 1 2 SA x + 5x 5 1 2 2x + x 4 x 1 2 1 2 Max Z = 2x + 3x + 4x SA x x + x 2 x + x + x 1 3x + 2x x 4 x 0; x 0; x 0 5) Dado o problema de programação linear (Pl): Max Z = x + 5x + 9x + 5x x 0; x 0 4 SA x + 3x + 9x + 6x 16 4 6x 6x + 7x 19 1 2 4 7x + 8x + 18x + 3x 44 4 x 0; x 0; x 0; x 0 4 a) Coloque na forma padrão; b) Forneça a solução inicial; c) Apresente todos os resultados obtidos na 1º primeira interação. 14. OUTROS MÉTODOS DE SOLUÇÃO Além do algoritmo simplex apresentado, existem outras técnicas para a solução dos problemas de programação linear. Entretanto, estes métodos não fazem parte do nosso programa de estudos, mas apenas para seu conhecimento: a) Método do Grande M; b) Método do Simplex de duas fases; c) Método Simplex Dual.
15. CASOS ESPECÍFICOS Página 24 Durante a solução dos problemas de programação linear através do método simples algumas situações podem ocorrer, na literatura especifica: 15.1. DEGENERAÇÃO No desenvolvimento do Simplex, a linha pivô é a restrição que apresenta o menor quociente não negativo, na divisão dos termos independentes pelos coeficientes positivos da variável que entra. Pode ocorrer que haja mais de um resultado nessas condições. Devemos escolher arbitrariamente um deles para calcular a solução. Entretanto, essa solução apresentará variáveis básicas com valor nulo. A saída de uma variável básica nula provoca o aparecimento de outra variável básica nula na solução seguinte, sem alteração do valor do objetivo. Neste caso, a solução é chamada degenerada. Se os coeficientes da função objetivo retomam não negativos em alguma iteração, o caso não apresenta dificuldade. O problema aparece quando as iterações levam a circuitos, sem caracterizar a solução ótima. Embora o caso seja muito raro, há maneiras de solucioná-io. Entretanto, ao nível desta exposição, esse método não tem interesse. 15.2. SOLUÇÃO ILIMITADA Isto ocorre quando a variável que entra na base não possui em sua coluna nenhum coeficiente positivo. Os programas de computador, neste caso, apresentam a última solução básica antes que a solução se torne ilimitada. 15.3. CASO DE SOLUÇÕES MÚLTIPLAS Se na solução ótima o coeficiente de uma variável não básica é zero, ele poderá entrar na base sem alterar o valor do objetivo, gerando outra solução ótima. Neste caso, qualquer combinação linear dessas duas soluções também será solução ótima.