


























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
Os melhores documentos à venda: Trabalhos de alunos formados
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
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Uma abordagem detalhada sobre a resolução de problemas de programação linear utilizando o método simplex. Ele começa explicando a criação de variáveis de folga ou excesso para transformar o modelo em um sistema linear de equações a ser resolvido. Em seguida, é apresentado um exemplo passo a passo de como aplicar o método simplex, incluindo a determinação da solução básica viável inicial, a entrada e saída de variáveis da base e a redefinição das linhas da tabela simplex. O documento também aborda situações mais complexas, como problemas de minimização e problemas com restrições do tipo maior-ou-igual ou igualdade, discutindo soluções alternativas como o método do m-grande e a abordagem em duas fases. Ao final, são apresentados exercícios adicionais para consolidação do conteúdo. Uma referência abrangente e detalhada sobre a aplicação do método simplex na resolução de problemas de programação linear.
Tipologia: Esquemas
1 / 34
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Universidade Federal de Uberlândia Faculdade de Computação
Prof. Renato Pimentel
GSI027 Otimização 2020/2 1 / 68
(^1) O método simplex
O método simplex visa a resolução algébrica de um problema de PL.
Problemas agora não se limitam mais a 2 variáveis de decisão (como na solução gráfica)
1 º passo : Criação de Variáveis de folga ou excesso : transformam o modelo num sistema linear de equações a ser resolvido.
GSI027 Otimização 2020/2 3 / 68
Inicialmente, é preciso eliminar as desigualdades presentes nas restrições do modelo. I (^) Criam-se assim novas equações lineares no problema, a partir das inequações anteriores.
Exemplo: 2 x 1 + x 2 ≤ 5
Como o lado esquerdo é menor ou igual a 5 (a diferença é desconhecida), a adição de uma variável não-negativa , chamada, por exemplo, x 3 , que represente tal diferença, permite que a inequação seja escrita como uma equação:
2 x 1 + x 2 + x 3 = 5
x 3 ≥ 0 é denominada variável de folga.
Um problema de PL está na forma padrão quando:
(^1) É um problema de maximização ; (^2) As restrições são do tipo ≤; (^3) O lado direito das restrições (termo independente) é sempre não-negativo; (^4) As variáveis de decisão são não-negativas.
Alguns autores – ex.: Marins (2011) – trabalham com definições alternativas para a forma padrão. A adotada no curso foi considerada por questões didáticas.
GSI027 Otimização 2020/2 7 / 68
max Z ( x 1 , x 2 ) = 5 x 1 + 2 x 2
sujeito a
x 1 ≤ 3 x 2 ≤ 4 x 1 + 2 x 2 ≤ 9 x 1 ≥ 0 , x 2 ≥ 0
max Z ( x 1 , x 2 , x 3 , x 4 , x 5 ) − 5 x 1 − 2 x 2 = 0
sujeito a
x 1 + x 3 = 3 x 2 + x 4 = 4 x 1 + 2 x 2 + x 5 = 9 x 1 ≥ 0 , x 2 ≥ 0 , x 3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0
Como a função objetivo é dada como uma equação, não é necessária a introdução de variáveis de folga na mesma. Note que a função objetivo foi reescrita, de modo a deixar o lado direito nulo.
GSI027 Otimização 2020/2 9 / 68
A tabela ou quadro abaixo auxilia na resolução: x 1 x 2 x 3 x 4 x 5 b L ( 00 ) Z − 5 − 2 0 0 0 0 L ( 10 ) x 3 1 0 1 0 0 3 L ( 20 ) x 4 0 1 0 1 0 4 L ( 30 ) x 5 1 2 0 0 1 9 Na linha L 0 encontram-se os coeficientes da função objetivo. Nas linhas Li , i = 1 ,... , 3, encontram-se os coeficientes das restrições. O super-índice entre parênteses ( k ) das linhas indica que as mesmas são as linhas obtidas após a k -ésima iteração do simplex. I (^) ( 0 ) indica que estas são as linhas do quadro inicial. O vetor b contém as constantes (termos independentes) das restrições, bem como da função objetivo reescrita.
(^2) As variáveis de folga formam uma base do R m^ ( m é o número de
restrições), pois a matriz m × m formada pelas linhas Li , i = 1 ,... , m e respectivas colunas de tais variáveis é uma matriz identidade , portanto com determinante diferente de 0. I (^) No quadro inicial, portanto, as variáveis de folga são chamadas de básicas (representadas na coluna à esquerda no mesmo), e as variáveis de decisão originais do problema, não básicas. I (^) Esta etapa do algoritmo consiste em colocar na base uma variável de decisão, retirando da mesma uma das variáveis básicas (deve ser repetida até que a condição da etapa 1 seja satisfeita)
GSI027 Otimização 2020/2 13 / 68
(^1) Identificar quem entrará na base ( condição de otimalidade ):
Regra de Dantzig : Procura-se, na linha L 0 , qual o coeficiente negativo de maior valor absoluto (i.é., de menor valor). A variável associada a ele é a que entrará na base. I (^) No exemplo, entrará na base x 1 , pois | − 5 | > | − 2 |. A coluna em destaque é a coluna pivô da iteração. ↓ x 1 x 2 x 3 x 4 x 5 b L ( 00 ) Z − 5 − 2 0 0 0 0 L ( 10 ) x 3 1 0 1 0 0 3 L ( 20 ) x 4 0 1 0 1 0 4 L ( 30 ) x 5 1 2 0 0 1 9
(^2) A variável básica que sairá da base é aquela cuja divisão da
constante bi , i = 1 ,... , m (a linha L 0 da função objetivo nunca é considerada) pelo coeficiente correspondente cij da coluna pivô seja o menor de todos – apenas divisões não-negativas e finitas são consideradas. Esta é a Condição de viabilidade. I (^) No caso, temos m = 3, j = 1 (selecionou-se x 1 para deixar a base) e as divisões
b 1 c 11 = 3 1 = 3 b 2 c 21 = 4 0 = ∞ (ignora-se) b 3 c 31 = 9 1 = 9
I (^) Portanto, x 3 (associada a linha L 1 ) deixará a base e a linha L 1 passa a ser a linha pivô desta iteração – razão mínima não-negativa nesta linha.
GSI027 Otimização 2020/2 15 / 68
↓ x 1 x 2 x 3 x 4 x 5 b L ( 00 ) Z − 5 − 2 0 0 0 0 L ( 10 ) ← x 3 1 0 1 0 0 3 L ( 20 ) x 4 0 1 0 1 0 4 L ( 30 ) x 5 1 2 0 0 1 9 I (^) O elemento c 11 = 1, dado pelo cruzamento das linhas e colunas pivô, é o número pivô da iteração.
I (^) Linha 0 (função objetivo): L ( 01 )= L ( 00 )− (− 5 ) L ( 11 )
x 1 x 2 x 3 x 4 x 5 b L ( 01 ) Z 0 − 2 5 0 0 15 L ( 11 ) x 1 1 0 1 0 0 3 L ( 20 ) x 4 0 1 0 1 0 4 L ( 30 ) x 5 1 2 0 0 1 9 I (^) Detalhamento:
1 0 1 0 0 3 L ( 11 ) ×5: 5 0 5 0 0 15 − 5 − 2 0 0 0 0 L ( 00 ) 0 − 2 5 0 0 15 L ( 01 )
GSI027 Otimização 2020/2 19 / 68
I (^) Linha 2: L ( 21 )= L ( 20 )− 0 L ( 11 )= L ( 20 ) (inalterada)
x 1 x 2 x 3 x 4 x 5 b L ( 01 ) Z 0 − 2 5 0 0 15 L ( 11 ) x 1 1 0 1 0 0 3 L ( 21 ) x 4 0 1 0 1 0 4 L ( 30 ) x 5 1 2 0 0 1 9
I (^) Linha 3: L ( 31 )= L ( 30 )− 1 L ( 11 ) x 1 x 2 x 3 x 4 x 5 b L ( 01 ) Z 0 − 2 5 0 0 15 L ( 11 ) x 1 1 0 1 0 0 3 L ( 21 ) x 4 0 1 0 1 0 4 L ( 31 ) x 5 0 2 − 1 0 1 6 I (^) Detalhamento: 1 0 1 0 0 3 L ( 11 ) ×(− 1 ): − 1 0 − 1 0 0 − 3 1 2 0 0 1 9 L ( 30 ) 0 2 − 1 0 1 6 L ( 01 )
GSI027 Otimização 2020/2 21 / 68
I (^) A primeira iteração está concluída.
x 1 = 3 x 2 = 0 x 4 = 4 x 3 = 0 x 5 = 6 Z = 15
Na condição de otimalidade, quando se busca a variável que entrará na base; se houver empate escolhe-se arbitrariamente qual deverá de fato entrar. Única implicação : pode-se escolher um caminho mais longo ou mais curto – dependendo da escolha – para se chegar à solução ótima
Exemplo: problema envolvendo maximização da função objetivo
Z = 4 x 1 + 4 x 2 + 3 x 3
Note que o maior coeficiente é 4, e está associado a duas variáveis ( x 1 e x 2 ). Na 1a. iteração, deve-se escolher qual das duas entrará (aparecerão como −4 no quadro inicial).
GSI027 Otimização 2020/2 25 / 68
Na condição de viabilidade, quando se busca a variável que sairá na base, se houver empate em geral também se escolhe arbitrariamente qual deverá de fato sair.
Exemplo: max Z = 5 x 1 + 2 x 2 , sujeito a
x 1 ≤ 3 x 2 ≤ 4 4 x 1 + 3 x 2 ≤ 12 x 1 ≥ 0 , x 2 ≥ 0
x 1 x 2 x 3 x 4 x 5 b L ( 00 ) Z − 5 − 2 0 0 0 0 L ( 10 ) x 3 1 0 1 0 0 3 L ( 20 ) x 4 0 1 0 1 0 4 L ( 30 ) x 5 4 3 0 0 1 12
x 1 entrará na base. As candidatas a sair da base (menor razão não-negativa):
x 3 :
b 1 c 11
= 3 x 5 :
b 3 c 31
Escolhe-se, por exemplo, x 3 para deixar a base:
GSI027 Otimização 2020/2 27 / 68
x 1 ↓ x 2 x 3 x 4 x 5 b L ( 01 ) Z 0 − 2 5 0 0 15 L ( 11 ) x 1 1 0 1 0 0 3 L ( 21 ) x 4 0 1 0 1 0 4 L ( 31 ) ← x 5 0 3 − 4 0 1 0
Note que x 5 é nula, mesmo sendo variável básica. Isto ocorre devido à condição de empate e a solução viável encontrada é dita degenerada.
O sistema encontra-se na forma padrão.
Na forma de equações:
max Z ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 ) −
x 1 + 20 x 2 −
x 3 + 6 x 4 = 0
sujeito a
1 4
x 1 − 8 x 2 − x 3 + 9 x 4 + x 5 = 0 1 2
x 1 − 12 x 2 −
x 3 + 3 x 4 + x 6 = 0
x 3 + x 7 = 1 x 1 ≥ 0 , x 2 ≥ 0 , x 3 ≥ 0 , x 4 ≥ 0 , x 5 ≥ 0 , x 6 ≥ 0 , x 7 ≥ 0
GSI027 Otimização 2020/2 31 / 68
↓ x 1 x 2 x 3 x 4 x 5 x 6 x 7 b L ( 00 ) Z − 3 / 4 20 − 1 / 2 6 0 0 0 0 L ( 10 ) ← x 5 1/4 − 8 − 1 9 1 0 0 0 L ( 20 ) x 6 1/2 − 12 − 1 / 2 3 0 1 0 0 L ( 30 ) x 7 0 0 1 0 0 0 1 1
x 1 ↓ x 2 x 3 x 4 x 5 x 6 x 7 b L ( 01 ) Z 0 − 4 − 7 / 2 33 3 0 0 0 L ( 11 ) x 1 1 − 32 − 4 36 4 0 0 0 L ( 21 ) ← x 6 0 4 3 / 2 − 15 − 2 1 0 0 L ( 31 ) x 7 0 0 1 0 0 0 1 1
x 1 ↓ x 2 x 3 x 4 b L ( 00 ) Z − 2 − 4 0 0 0 L ( 10 ) ← x 3 1 2 1 0 5 L ( 20 ) x 4 1 1 0 1 4
↓ x 1 x 2 x 3 x 4 b L ( 01 ) Z 0 0 2 0 10 L ( 11 ) x 2 1 / 2 1 1 / 2 0 5 / 2 L ( 21 ) ← x 4 1 / 2 0 − 1 / 2 1 3 / 2
A solução é ótima, e tem-se x 1 = 0 , x 2 = 5 / 2 e Z = 10. O coeficiente de x 1 (não-básica) em L 0 é zero, indicando que a mesma pode entrar na base, de modo que o valor da função objetivo fique inalterado – apenas os valores das variáveis se alteram.
GSI027 Otimização 2020/2 37 / 68
x 1 x 2 x 3 x 4 b L ( 02 ) Z 0 0 2 0 10 L ( 12 ) x 2 0 1 1 − 1 1 L ( 22 ) x 1 1 0 − 1 2 3
Forçando-se a saída de x 4 da base, inserindo-se x 1 em seu lugar, tem-se nova solução em x 1 = 3 , x 2 = 1 e Z = 10. Qualquer combinação convexa desta solução e da anterior também será uma solução ótima. Graficamente: segmento de reta entre os pontos ( 0 , 5 / 2 ) e ( 3 , 1 )
Outro resultado possível é aquele no qual nenhuma variável se qualifica para ser a variável básica a deixar a base. Este resultado ocorre quando a variável que entra na base pode ser aumentada indefinidamente sem dar valores negativos a qualquer das variáveis básicas atuais. Na forma tabular, isso significa que todos os coeficientes da coluna pivô (excluindo-se a linha L 0 ) são negativos ou zero. Neste caso, as restrições não impedem que o valor da função objetivo cresça indefinidamente. Isto ocorre, provavelmente, porque o modelo foi mal formulado, seja por omitir restrições relevantes, seja por declará-las de modo incorreto.
GSI027 Otimização 2020/2 39 / 68
Exemplo: max Z = 2 x 1 + x 2 sujeito a
x 1 − x 2 ≤ 10 2 x 1 ≤ 40 x 1 ≥ 0 , x 2 ≥ 0
↓ x 1 x 2 x 3 x 4 b L ( 00 ) Z − 2 − 1 0 0 0 L ( 10 ) ← x 3 1 − 1 1 0 10 L ( 20 ) x 4 2 0 0 1 40
Todos os coeficientes das restrições sob x 2 são todos negativos ou zero. Note que x 2 pode ser aumentada indefinidamente sem desobedecer nenhuma das restrições. Embora x 1 entre na base pelo critério de otimalidade, note que caso x 2 entrasse na base, nem x 3 nem x 4 poderia sair da mesma pelo critério de viabilidade.