Pesquisa operacional/Método Simplex

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

O Método Simplex é um algoritmo bastante popular para resolver problemas numéricos de Programação Linear. O jornal Computing in Science and Engineering o considerou um dos 10 mais importantes algoritmos descobertos no século[1].

Através dele, podemos obter a solução ótima de um problema de Programação Linear de forma eficiente.

A Forma Padrão da Programação Linear

O primeiro passo para se resolver um problema de acordo com o algoritmo Simplex é escrevendo o problema na forma padrão:

Máx/Mín Z=c1x1+c2x2+...+cnxn sujeito à:

a11x1+a12x2+...+a1nxn=b1

a21x1+a22x2+...+a2nxn=b2

.

.

.

am1x1+am2x2+...+amnxn=bm

x10,x20,...,xn0

Perceba que a forma padrão que estamos mostrando agora é diferente dos modelos de programação linear vistos no capítulo anterior. Na forma padrão, temos um conjunto de equações, e não apenas uma. A única inequação permitida é aquela que atesta a não negatividade das variáveis de decisão (ou seja, podem ser positivas ou nulas).

Transformando um Modelo de Programação Linear na Forma Padrão

Normalmente, os modelos que criamos não estão na forma padrão. Temos que fazer algumas manipulações algébricas para resolver este problema. Veja os exemplos abaixo:

Exemplo 1: O Modelo tem Desigualdade do Tipo Menor ou Igual

Tome o seguinte modelo:

Máx Z=x1+x2

x13

x10,x20

Como deixar este modelo na forma padrão? É muito simples! Basta adicionar uma variável de folga chamada x3 e transformar o modelo acima em:

Máx Z=x1+x2

x1+x3=3

x10,x20,x30

Exemplo 2: O Modelo tem Desigualdade do Tipo Maior ou Igual

Vamos agora tomar um modelo semelhante ao anterior:

Máx Z=x1+x2

x13

x10,x20

Para deixar este exemplo na forma padrão, fazemos algo parecido com o que fizemos no Exemplo 1. Inserimos variáveis de excesso:

Máx Z=x1+x2

x1x3=3

x10,x20,x30

Exemplo 3: O Modelo possui Variáveis sem Restrição de Sinal

Mais um exemplo semelhante:

Máx Z=x1+x2

x13

x20

Perceba que desta vez, a variável x1 não possui restrição de sinal. Ela pode ser tanto positiva como negativa. Para resolver isso, precisamos eliminar a variável incômoda. Podemos simplesmente substituí-la por uma operação de subtração entre duas variáveis não negativas:

Máx Z=(xaxb)+x2

(xaxb)3

xa0,xb0,x20

Agora é só colocar uma variável de excesso da mesma forma que fizemos no Exemplo 2 e este modelo estará na forma padrão.

Exemplo 4: Uma Equação ou Inequação possui o Lado Direito Negativo

Para que um modelo esteja na forma padrão, o valor à direita de uma equação ou inequação deve ser sempre não-negativo. Então, caso haja equações do tipo:

x+y=7

x+2y7

A primeira coisa que devemos fazer é multiplicar os dois lados da equação e inequação por (-1):

xy=7

x2y7

Exemplo 5: Um Modelo mais Complexo

Tome o seguinte modelo de Programação Linear:

MÁX Z=5x1+10x2x3 sujeito às restrições:

x13x2x31

x1+x2+x34

20x112x2+16x3=7

x1,x30

A primeira coisa que deve-se notar é que a variável x2 não possui nenhuma restrição de sinal. Ela pode ser tanto negativa como positiva ou nula. Teremos que nos livrar desta variável incômoda assim como no Exemplo 3:

MÁX Z=5x1+10(xaxb)x3 sujeito às restrições:

x13(xaxb)x31

x1+(xaxb)+x34

20x112(xaxb)+16x3=7

x1,xa,xb,x30

Agora vamos inserir uma variável de folga chamada x4 na primeira inequação e uma variável de excesso chamada x5 na segunda inequação:

MÁX Z=5x1+10(xaxb)x3 sujeito às restrições:

x13(xaxb)x3+x4=1

x1+xaxb+x3x5=4

20x112xa+12xb+16x3=7

x1,xa,xb,x30

Agora o único inconveniente são a inequação 2 e a equação 3 que possuem o lado direito negativo. Vamos multiplicá-los por (-1);

MÁX Z=5x1+10(xaxb)x3 sujeito às restrições:

x13(xaxb)x3+x4=1

x1xa+xbx3+x5=4

20x1+12(xa+xb)16x3=7

x1,xa,xb,x30

Voilá! O modelo já está na forma padrão!

Algumas Definições Úteis

Antes de prosseguirmos, é importante que você se acostume com algumas definições que serão usadas nos futuros exemplos e explicações:

  • Função Objetivo: A função inicial que deve ser otimizada em um problema de Programação Linear.
  • Região factível: Conjunto de todas as soluções possíveis para um problema de Programação Linear. Se for um conjunto vazio, o programa linear é dito impossível ou inviável.
  • Solução Básica: Uma solução obtida quando assumimos que um número igual à diferença entre o número de variáveis e o número de equações corresponde à quantidade de variáveis iguais a 0.
  • Solução Factível: É qualquer solução encontrada que satisfaça as equações e inequações do modelo padrão de um problema de Programação Linear.
  • Solução ilimitada: Solução na qual a Solução Ótima tende à infinito.
  • Solução Ótima: Solução para as equações que otimiza o valor da função objetivo.

Referências

  1. Ver Guest Editors' Introduction: The Top 10 Algorithms Jack Dongarra and Francis Sullivan, Comput. Sci. Eng. 2, 22 (2000). Disponível no site do jornal

Predefinição:AutoCat

en:Operations Research/The Simplex Method