Pular para o conteúdo principal

Método Simplex (parte 2) - Exemplo

Exemplo: método Simplex

Solução através do método Simplex do Problema seguinte:

Maximizar Z = f(x,y) = 3x + 2y
sujeita às restrições: 2x + y ≤ 18
                                  2x + 3y ≤ 42
                                  3x + y ≤ 24
                                  x ≥ 0 , y ≥ 0
Consideram-se as seguintes fases:

Realizar uma mudança de variáveis e normalizar o sinal dos termos independentes.

Realiza-se uma mudança na nomenclatura das variáveis. Estabelecendo a seguinte correspondência:

x passa a ser X1
y passa a ser X2

Como os termos independentes de todas as restrições são positivos não é necessário fazer nada. Caso contrário, se deverá multiplicar por "-1" ambos os lados da inequação (considerando que esta operação também afeta o tipo de restrição).

Normalizar as restrições.
As inequações são transformadas em equação adicionando variáveis de folga, de excesso e artificiais, conforme a tabela a seguir:

Tipo de desigualdade Tipo de variável que aparece
- excesso + artificial
= + artificial
+ folga
Neste caso, deve-se introduzir uma variável de folga (X3, X4 e X5) em cada uma das restrições do tipo ≤, para convertê-las em igualdades, resultando o sistema de equações lineares:

2·X1 + X2 + X3 = 18
2·X1 + 3·X2 + X4 = 42
3·X1 + X2 + X5 = 24

Igualar a função objetivo à zero.

Z - 3·X1 - 2·X2 - 0·X3 - 0·X4 - 0·X5 = 0

Escrever a tabela inicial do método Simplex.

A tabela inicial do método Simplex é composta por todos os coeficientes das variáveis de decisão do problema original e as de folga, excesso e artificiais adicionadas no passo 2 (nas colunas, sendo P0 o termo independente e o resto das variáveis Pi coincidem com Xi), e as restrições (das linhas). A coluna Cb contém os coeficientes das variáveis que estão na base.

A primeira linha é formada pelos coeficientes da função objetivo, enquanto que a última linha contém o valor da função objetivo e os custos reduzidos Zj - Cj.

A última linha é calculada da seguinte forma: Zj = Σ(Cbi·Pj) para i = 1..m, onde se j = 0, P0 = bi e C0 = 0, e caso contrário Pj = aij. Embora seja a primeira tabela do método Simplex e que todos os Cb sejam nulos, pode-se simplificar o cálculo, e assim termos Zj = -Cj.

Tabela I . Iteração 1
  3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 18 2 1 1 0 0
P4 0 42 2 3 0 1 0
P5 0 24 3 1 0 0 1
Z 0 -3 -2 0 0 0

Critério de parada.

Se o objetivo é maximizar, quando na última linha (linha indicadora) não exista nenhum valor negativo entre os custos reduzidos (colunas P1 em diante) a condição de parada é alcançada.

Neste caso, o algoritmo chega ao final, porque já não existe possibilidade de melhoria. O valor de Z (coluna P0) é a solução ótima do problema.

Outra possibilidade é que na coluna da variável de entrada à base, todos os valores são negativos ou nulos. Isto indica que o problema não se encontra delimitado e sua solução sempre poderá ser melhorada. Neste caso, não será necessário continuar realizando iterações indefinidas e pode-se finalizar o algoritmo.

Caso contrário, as seguintes etapas são executadas de forma iterativa.

Escolha da variável de entrada e saída da base.

Em primeiro lugar, determina-se a variável que entra na base. Para isto é escolhida a coluna em que o valor da linha Z seja o menor entre todos os negativos. Neste caso seria a variável X1 (P1) de coeficiente -3.

Se houver dois ou mais coeficientes iguais que satisfazem a condição anterior (caso de empate), então se optará pela variável que seja básica.

A coluna da variável que entra na base chama-se coluna pivô (na cor verde).

Depois de obter-se a variável que entra na base, determina-se qual será a variável que sairá da mesma. A decisão é baseada em um cálculo simples: dividir cada termo independente (coluna P0) entre o elemento correspondente da coluna pivô, desde que ambos elementos sejam estritamente positivos (maior que zero). É escolhida a linha cujo resultado é mínimo.

Se houver algum elemento menor ou igual a zero não se realiza tal cálculo. Caso todos os elementos da coluna pivô tenham esta condição, o critério de parada seria satisfeito e o problema teria uma solução não delimitada (ver teoria do método Simplex).

Neste exemplo: 18/2 [=9] , 42/2 [=21] y 24/3 [=8]

O termo da coluna pivô que na divisão anterior deu lugar ao menor quociente positivo, indica a linha de variável de folga que sai da base. Neste caso, resulta ser X5 (P5), de coeficiente 3. Esta linha chama-se linha pivô (na cor verde).

Se ao realizar o cálculo dos quocientes, dois ou mais resultados satisfaçam o critério para a escolha do elemento de saída da base (caso de empate), é escolhida a variável não-básica (sempre que possível).

A intersecção da linha pivô e coluna pivô marca o elemento pivô, neste caso o 3.

Atualizar a tabela.
Os novo valores da tabela devem ser calculados como é explicado a seguir:

Na linha do elemento pivô cada novo elemento é calculado como:
Novo Elemento Linha Pivô = Elemento Anterior Linha Pivô / Pivô
Nas demais linhas, cada elemento é calculado como:
Novo Elemento Linha = Elemento Anterior Linha - (Elemento Anterior Linha na Coluna Pivô * Novo Elemento Linha Pivô)
Com isto se normaliza o elemento pivô e seu valor torna-se 1, enquanto que os demais elementos da coluna pivô são anulados (análogo ao método de Gauss-Jordan).

A seguir, mostra-se os cálculos da linha P4:

Anterior Linha P4                                        42 2 3 0 1 0
                                                                  - - - - - -
Elemento Anterior Linha na Coluna Pivô 2 2 2 2 2 2
                                                                  x x x x x x
Nova Linha Pivô                                         8 1 1/3 0 0 1/3
                                                                  = = = = = =
Nova Linha P4                                        26 0 7/3 0 1 -2/3

A tabela correspondente a esta segunda iteração é:

Tabela II . Iteração 2
  3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 2 0 1/3 1 0 -2/3
P4 0 26 0 7/3 0 1 -2/3
P1 3 8 1 1/3 0 0 1/3
Z 24 0 -1 0 0 1

Ao verificar o critério de parada observado não é cumprido, já que entre os elementos da última linha há o valor de um negativo, -1. Neste caso, novamente realiza-se a iteração nos passos 6 e 7.

6.1. A variável que entra na base é X2 (P2), pois é a variável que corresponde à coluna em que se encontra o coeficiente -1.

6.2. Para calcular a variável de saída, dividem-se os termos da coluna P0 entre os termos correspondentes da nova coluna pivô: 2 / 1/3 [=6] , 26 / 7/3 [=78/7] e 8 / 1/3 [=24]. Como o menor quociente positivo é 6, a variável que sai da base é X3 (P3).

6.3. O elemento pivô é 1/3.

7. Atualizando novamente os valores da tabela se obtém:

Tabela III . Iteração 3
  3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P2 2 6 0 1 3 0 -2
P4 0 12 0 0 -7 1 4
P1 3 6 1 0 -1 0 1
Z 30 0 0 3 0 -1

Uma nova verificação do critério de parada revela que entre os elementos da linha indicadora, novamente temos um negativo, -1. Significa que ainda não se chegou à solução ótima e é preciso continuar iterando (passos 6 e 7):

6.1. A variável que entra na base é X5 (P5), pois é a variável que corresponde ao coeficiente -1.

6.2. A variável de saída é escolhida realizando o cálculo do quociente dos termos da coluna de termos independentes e os termos correspondentes da nova coluna pivô: 6/(-2) [=-3] , 12/4 [=3], e 6/1 [=6]. Nesta ocasião é X4 (P4).

6.3. O elemento pivô é 4.

7. Depois de atualizar todas as linhas, tem-se a seguinte tabela:

Tabela IV . Iteração 4
  3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P2 2 12 0 1 -1/2 1/2 0
P5 0 3 0 0 -7/4 1/4 1
P1 3 3 1 0 3/4 -1/4 0
Z 33 0 0 5/4 1/4 0

Fim do algoritmo.

Observa-se que na última linha, todos os coeficientes são positivos, satisfazendo assim o critério de parada.

A solução ótima é dada pelo valor de Z na coluna dos termos independentes (P0), neste exemplo: 33. Na mesma coluna, pode-se ver o ponto em que é atingido, observando as linhas correspondentes das variáveis de decisão que entraram na base: X1 = 3 e X2 = 12.

Desfazendo a mudança de variáveis é obtido x = 3 e y = 12.

Comentários

Postagens mais visitadas deste blog

Matrizes

Matrizes são organizações de informações numéricas em uma tabela retangular formada por linhas e colunas. Essa organização em uma tabela facilita que se possa efetuar vários cálculos simultâneos com as informações contidas na matriz. Definição de matrizes Toda matriz tem o formato m x n (leia-se: m por n, com n e m ∈ N*), onde m é o número de linhas e n o número de colunas. Representação de matrizes Existem diversas maneiras de representarmos matrizes, veja quais são: Colchetes: [ ] Parênteses: ( ) Barras Simples: | | Barras Duplas: || || Essas são as representações mais comuns que encontramos na literatura. Exemplos: Elementos de uma matriz Seja a matriz genérica Amxn, isto é, m representa as linas e n o número de colunas. Então, temos: Elementos de uma matriz Seja a matriz genérica Amxn, isto é, m representa as linas e n o número de colunas. Então, temos: Dessa forma, os elementos da matriz A são indicados por aij, onde o i representa o índice da linha e j...

Método Gráfico (parte 2) - Exemplo

Solução através do método gráfico o seguinte problema: Maximizar Z = f(x,y) = 3x + 2y sujeita às restrições: 2x + y ≤ 18   2x + 3y ≤ 42   3x + y ≤ 24   x ≥ 0 , y ≥ 0 1.Inicialmente, o sistema de coordenadas da associação de um eixo com variável "X" e o outro o "Y" é desenhado (geralmente associa-se "x" em relação ao eixo horizontal e o "y" ao vertical), como pode ser visto na figura. 2.Nestes eixos, marca-se uma escala numérica apropriada aos valores que podem assumir as variáveis conforme as restrições do problema. Para isto, em cada restrição anulam-se todas as variáveis, exceto aquelas que correspondem a um eixo concreto, estabelecendo o valor adequado para este eixo. Este processo é repetido para cada um dos eixos. 3.As restrições são representadas a seguir. Primeiramente, desenha-se a reta que é obtida ao considerar a restrição como uma igualdade. Ela é representada como o segmento que une A com B e região que delimita esta ...