Pesquisa Operacional Profa. Leila Jane Brum Lage Sena Guimarães Programação Linear Pesquisa Operacional Profa. Leila Jane Brum Lage Sena Guimarães leila_lage@uol.com.br 1 1
Pesquisa Operacional: Tema da aula 12 Pesquisa Operacional: Método Simplex 2
Método Simplex O método Simplex é um algoritmo que permite resolver problemas de Programação Linear. A idéia básica do método Simplex consiste em resolver repetidas vezes um sistema de equações lineares para obter uma sucessão de soluções básicas, cada uma "melhor" do que a anterior, até se chegar a uma solução básica ótima. 3
Problema de PL Um empreendedor decidiu comerciar barcos. Depois de empregar alguns trabalhadores e de descobrir os preços aos quais venderia os modelos, chegou às seguintes observações: cada modelo comum rende um lucro de R$ 520,00, e cada modelo rápido rende um lucro de R$ 450,00. Um modelo comum requer 40 horas para ser construído e 24 horas para o acabamento. Cada modelo rápido requer 25 horas para a construção e 30 horas para o acabamento. Este empreendedor dispõe de 400 horas de trabalho por mês para a construção e 360 horas para o acabamento. Quanto deve produzir de cada um dos modelos de maneira a maximizar o lucro? 4
Montagem do Modelo Variáveis de decisão Comum Rápido Disponibilidade Horas construção 40 25 400 Horas acabamento 24 30 360 Lucro 520 450 Variáveis de decisão x1: quantidade de barcos a produzir do Modelo Comum x2: quantidade de barcos a produzir do Modelo Rápido Função-objetivo: Maximizar o lucro. 5
Conjunto de restrições Tempo para construção Tempo para acabamento 6
Modelo Restrições de não- negatividade 7
Procedimento do Método Simplex Passo 1: Introduzir as variáveis de folga. 1ª Iteração 8
Passo 2: Montagem do quadro de cálculos. BASE x1 x2 x3 x4 b L 40 25 1 0 400 24 30 0 1 360 -520 -450 0 0 0 9
Passo 3: Escolha da solução básica viável inicial. Variáveis não-básicas: Variáveis básicas: Função objetivo: BASE x1 x2 x3 x4 b L 40 25 1 0 400 24 30 0 1 360 -520 -450 0 0 0 10
X1 Passo 4: Variável que deve entrar na base. Qual é o produto que mais contribui para o lucro? X1 BASE x1 x2 x3 x4 b L 40 25 1 0 400 24 30 0 1 360 -520 -450 0 0 0 11
Passo 5: Variável que deve sair da base. Divisões: 1ª linha: 2ª linha: O menor quociente ocorreu na 1ª linha. Logo, a variável que deve sair é : X3 12
Pivô BASE x1 x2 x3 x4 b 40 25 1 400 24 30 360 L -520 -450 13
Passo 6: Transformação da matriz. Deverão ser realizadas as operações com as linhas da matriz, de forma que a coluna de X1 venha a se tornar um vetor identidade, com o elemento 1 na 1ª linha. Entra X1 no lugar de X3 BASE x1 x2 x3 x4 b 1 L 14
1ª operação: Dividir a 1ª linha por 40. BASE x1 x2 x3 x4 b L 1 0,625 0,025 0 10 24 30 0 1 360 -520 -450 0 0 0 15
2ª operação: Substituir a 2ª linha pela soma dela mesma com a 1ª linha multiplicada por (-24). BASE x1 x2 x3 x4 b L 1 0,625 0,025 0 10 24 30 0 1 360 -520 -450 0 0 0 16
BASE x1 x2 x3 x4 b L -520 -450 1 0,625 0,025 0 10 0 15 -0,6 1 120 17
3ª operação: Substituir a 3ª linha pela soma dela mesma com a 1ª linha multiplicada por 520. BASE x1 x2 x3 x4 b 15 -0,6 1 120 L -520 -450 1 0,625 0,025 0 10 18
Assim, obtemos o seguinte quadro: BASE x1 x2 x3 x4 b L 1 0,625 0,025 0 10 0 15 -0,6 1 120 0 -125 13 0 5200 19
Nova solução: (voltar para o passo 3) Variáveis não-básicas: Variáveis básicas: Função objetivo: BASE x1 x2 x3 x4 b L 1 0,625 0,025 0 10 0 15 -0,6 1 120 0 -125 13 0 5200 20
2ª Iteração X2 Passo 4: Variável que deve entrar na base. Qual é o produto que mais contribui para o lucro? 2ª Iteração X2 BASE x1 x2 x3 x4 b 1 0,625 0,025 10 15 -0,6 120 L -125 13 5200 21
Passo 5: Variável que deve sair da base: Divisões: 1ª linha: 2ª linha: O menor quociente ocorreu na 2ª linha. Logo, a variável que deve sair é: X4 22
Pivô BASE x1 x2 x3 x4 b 1 0,625 0,025 10 15 -0,6 120 L -125 13 5200 23
Passo 6: Transformação da matriz. Encontrar o vetor identidade para a variável com o elemento 1 na 2ª linha. BASE x1 x2 x3 x4 b 1 L 24
1ª operação: Dividir a 2ª linha por 15. BASE x1 x2 x3 x4 b 1 0,625 0,025 10 15 -0,6 120 L -125 13 5200 25
BASE x1 x2 x3 x4 b L 1 0,625 0,025 0 10 0 1 -0,04 1/15 8 0 -125 13 0 5200 26
2ª operação: Substituir a 1ª linha pela soma dela mesma com a 2ª linha multiplicada por (-0,625). BASE x1 x2 x3 x4 b L 1 0,625 0,025 0 10 0 1 -0,04 1/15 8 0 -125 13 0 5200 27
BASE x1 x2 x3 x4 b 1 0,05 -0,042 5 L 0 1 -0,04 1/15 8 0 -125 13 0 5200 28
3ª operação: Substituir a 3ª linha pela soma dela mesma com a 2ª linha multiplicada por 125. BASE x1 x2 x3 x4 b 1 0,05 -0,042 5 L 0 1 -0,04 1/15 8 0 -125 13 0 5200 29
Assim, obtemos o seguinte quadro: BASE x1 x2 x3 x4 b L 1 0 0,05 -0,042 5 0 1 -0,04 1/15 8 0 0 8 125/15 6200 30
Assim, obtemos o seguinte quadro: BASE x1 x2 x3 x4 b L 1 0 0,05 -0,042 5 0 1 -0,04 1/15 8 0 0 8 125/15 6200 31
Assim, obtemos o seguinte quadro: BASE x1 x2 x3 x4 b L 1 0 0,05 -0,042 5 0 1 -0,04 1/15 8 0 0 8 125/15 6200 32
Nova solução: (voltar para o passo 3) Variáveis não-básicas: Variáveis básicas: Função objetivo: BASE x1 x2 x3 x4 b L 1 0 0,05 -0,042 5 0 1 -0,04 1/15 8 0 0 8 125/15 6200 33
Nova solução: (voltar para o passo 3) Variáveis não-básicas: Variáveis básicas: Função objetivo: BASE x1 x2 x3 x4 b L 1 0 0,05 -0,042 5 0 1 -0,04 1/15 8 0 0 8 125/15 6200 34
3ª Iteração Passo 4: Ao procurarmos a próxima variável que deve entrar na base, verificamos que todos os coeficientes da 3ª linha são positivos ou nulos, o que significa que qualquer aumento no valor das variáveis não-básicas faria diminuir o valor de L. Logo, concluímos que a solução encontrada é ótima. 35
5 barcos modelo comum 8 barcos modelo rápido Lucro = 6200 reais Resposta (Solução ótima) 5 barcos modelo comum 8 barcos modelo rápido Lucro = 6200 reais 36
Procedimento do Método Simplex (Problemas de Maximização) Passo 1: Introduzir as variáveis de folga; uma para cada desigualdade. Passo 2: Montar um quadro para os cálculos, colocando os coeficientes de todas as variáveis com os respectivos sinais e, na última linha, incluir os coeficientes da função objetivo transformada. Passo 3: Estabelecer uma solução básica inicial, usualmente atribuindo valor zero às variáveis originais e achando valores positivos para as variáveis de folga. 37
Passo 4: Como próxima variável a entrar na base, escolher a variável não básica que oferece, na última linha, a maior contribuição para o aumento da função objetivo (ou seja, tem o maior valor negativo). Se todas as variáveis que estão fora da base tiverem coeficientes nulos ou positivos nesta linha, a solução atual é ótima. Se alguma dessas variáveis tiver coeficiente nulo, isto significa que ela pode ser introduzida na base sem aumentar o valor da função objetivo. Isso quer dizer que temos uma solução ótima, com o mesmo valor da função Objetivo. 38
Passo 5: Para escolher a variável que deve deixar a base, deve-se realizar o seguinte procedimento: Dividir os elementos da última coluna pelos correspondentes elementos positivos da coluna da variável que vai entrar na base. caso não haja elemento algum positivo nesta coluna, o processo deve parar, já que a solução seria ilimitada. b) O menor quociente indica a equação cuja respectiva variável básica deverá ser anulada, tornando-se variável não básica. 39
Passo 7: Retornar ao passo 4 para iniciar outra iteração. Passo 6: Usando operações válidas com as linhas da matriz, transformar o quadro de cálculos de forma a encontrar a nova solução básica. A coluna da nova variável básica deverá se tornar um vetor identidade, onde o elemento 1 aparece na linha correspondente à variável que está sendo anulada. Passo 7: Retornar ao passo 4 para iniciar outra iteração. 40
Formulação de um problema utilizando modelos matemáticos. Memória de aula Formulação de um problema utilizando modelos matemáticos. Algoritmo Simplex. Passo 1: Introduzir as variáveis de folga. Passo 2: Montagem do quadro de cálculos. Passo 3: Escolha da solução básica viável inicial. Passo 4: Variável que deve entrar na base. Passo 5: Variável que deve sair da base. Passo 6: Transformação da matriz. Passo 7: Nova solução (voltar para o passo 3 até encontrar a solução ótima). 41
Bibliografia indicada LISBOA, Erico Fagundes Anicet. Rio de Janeiro, 2002. versão digital disponível na Internet (http://www.ericolisboa.eng.br). ANDRADE, Eduardo Leopoldino de. Introdução à Pesquisa Operacional: métodos e modelos para a análise de decisão. Rio de Janeiro: Editora LTC, 2005. LACHTERMACHER, Gerson. Pesquisa Operacional na Tomada de Decisões: modelagem em Excel. Rio de Janeiro: Editora Elsevier, 2004. 42