O que é o método Simplex? O método Simplex é um algoritmo que permite resolver problemas de Programação Linear. A ideia básica do método Simplex consiste em resolver repetidas vezes um sistema de equações lineares para obter uma sucessão de SB A, cada uma "melhor" do que a anterior , até se chegar a uma SB A óptima.
Em teoria de otimização matemática, o algoritmo simplex de George Dantzig é uma técnica popular para dar soluções numéricas de problemas da programação linear. Um método sem relação, mas chamado de maneira similar é o método Nelder-Mead ou método simplex de b aixo custo devido a Nelder e Mead (1965) e é um método numérico para otimização de problemas livres multidimensionais, pertencentes à classe mais geral de algoritmos de busca. Em ambos os casos, o método usa o conceito de um simplex, que é um polítopo de N + 1 vértices em N dimensões: um segmento de linha sobre uma linha, um triângulo sobre um plano, um tetraedro em um espaço de três dimensões e assim sucessivamente. Estes procedimentos são válidos para problemas de maximização: y y
y
y
y
Introduzir as variáveis de folga, uma para cada desigualdade; 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; 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; 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. Para escolher a variável que deve deixar a base, deve-se realizar o seguinte procedimento: y
y
y
y y y y y y y y y y y y y y y y
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 nenhum positivo nesta coluna, o processo deve parar, já que a solução seria ilimitada. O menor quociente indica a equação cuja a respectiva variável básica deverá ser anulada, tornando-se variável não básica.
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ásic a. A coluna da nova variável básica deverá deverá se tornar um vetor identidade, onde o elemento 1 aparece na linha correspondente à variável que está sendo anulada. Retornar ao passo 4 para iniciar outra iteração. Método Simplex p asso a passo Max Z = 3x1 + 5x2 Sujeito à = 2x 1 + 4x2 <=10 6x1 + x2 <=20 x1 -4x2 <=10 x1, x2 >=0 1° Passo Igualar a Função Objetivo a zero. Z - 3x1 -5x2 = 0 2° Passo Acrescentar variáveis de folga nas restrições. 2x1 + 4x2 + F3 = 10 6x1 + x2 + F4 = 20 x1 - x2 + F5 = 30 3°Passo
y
Construir um tableau contendo os coeficientes da função e das restrições.
Z 1
X1 X2 F3 F4 -3 -5 0 0
F5 0
BASE 0
F3
0
2
4
1
0
0
10
F2 F5
0 0
6 1
1 -1
0 0
1 0
0 1
20 30
Numero pivô 4 Linha pivô F3 Coluna pivô X2
Base: Valores encontrados após a igualdade. 4°Passo Escolher a coluna pivô , identificando o coeficiente de maior valor negativo absoluto na primeira linha(1°). 5°Passo Escolher as linha pivô, dividindo ±se os termos da base, pelos coeficientes positivos da coluna pivô. BASE/COEFICIENTE DA COLUNA PIVO 10/4 = 2,5 20/1 = 20 OBS: Para a escolha da linha pivô só serão analisados valores que sejam positivos. 6° Passo O numeropivô é o coeficiente entre a coluna e a linha pivô. Ex: No Tableau. O objetivo e que não sobrem números negativos na 1° (primeira linha). 7° Passo Calcular a nova linha pivô, dividindo ± se a antiga linha pivôpelo numero pivô.
NLP = 0 , 0,5 , 1 , 0,25 , 0 , 0 ; 2,5
8°
Passo
Reescrever cada uma das outras linhas da seguinte maneira: 1° multiplicar os elementos da nova linh a pivô pelo coeficiente da coluna pivô na linha com o sinal trocado. 2° somar termo à termo com os elementos da linha em questão. NL1 = (NLP)x5+Antiga linha 1 5 x ( 0 , 0,5 , 1 , 0,25 , 0 , 0 ; 2,5 )=(0 , 2,5 , 5 , 1,25 , 0 , 0 ; 12,5) + ( 1 , -3 , -5 , 0 , 0 , 0 ;0) = NL1 : -0,5 , 0 , 1,25 , 0 , 0 ; 12,5 NL3 -1 x ( 0 , 0,5 , 1 , 0,25 , 0 , 0 ; 2,5)=(0 , -0,5 , -1 , -0,25 , 0 , 0 ; -2,5)+(0 , 6 , 1 , 0 , -0,25 , 1 , 0 ;20)= NL3 : 0 , 5,5 , 0 , -0,25 , 1 , 0 ; 17,5 NL4 1 x (0 , 0,5 , 1 , 0,25 , 0 , 0 ; 2,5)=( 0 , 0,5 , 1 , 0,25 , 0 , 0 ; 2,5)+(0 , 1 , -1 , 0 , 0 , 1 ; 30)= NL4 : 0 , 1,5 , 0 , 0,25 , 0 , 1 ; 32,5
Z 1 F3 F2 F5
X1 -0,5 0 0 0
X2 0 0,5 5,5 1,5
F3 1,25 1 0 0
F4 0 0,25 -0,25 0,25
F5 0 0 1 0
BASE 12,5 0 2,5 0 17,5 1 32,5
9° Passo Se restarem números negativos na primeira linha continuar as interações a partir do 4° Passo. Se sobrarem apenas números positivos parar as interações pois este e o resultado ótimo. 10° Passo A cada construção de um tableau trocar os valores das variáveis da coluna e linha pivô do tableau anterior.
NLP = 0 , 1 , 0 , -0,045 , 0,1 8 , 0 ; 3,18 NL1 = (NLP)x5+Antiga linha 1 0,5 x (0 , 1 , 0 , -0,045 , 0,1 8 , 0 ; 3,18)=(0 , 0,5 , 0 , -0,022 , 0,09 , 0 ; 1,59) + ( 1 , -0,5 , 0 , 1,25 , 0 , 0 ; 12,5) = NL1 : 1 , 0 , 0 , 1,227 , 0,09, 0 ; 14,9 NL2 -0,5 x (0 , 1 , 0 , -0,045 , 0,1 8 , 0 ; 3,18)=(0 , -0,5 , 0 , -0,0225 , -0.09 , 0 ; -1,59)+(0 , 0,5 , 1 , 0,25 , 0 , 0 ;2,5)= NL2 : 0 , 0 , 1 , 0,2275 , -0,09 , 0 ; 0,91 NL4 -1,5 x (0 , 1 , 0 , -0,045 , 0,1 8 , 0 ; 3,18)=( 0 , -1,5 , 0 , 0,0675 , -0,27 , 0 ; -4,77)+(0 , 1,5 , 0 , 0,25 , 0 , 1 ; 32,5)= NL4 : 0 , 0 , 0 , 0,3175 , -0,27 , 1 ; 27,73
Z 1 X2 X1
F3 0 0 0
F4 0 0 1
F3 1,227 1 0
F4 F5 0,09 0 0,2275 -0.09 -0,045 0,18
BASE 14,09 0 0
0,91 3,18
F5
0
0
0
0,3175
1
27,73
-0,27
X1 = 3,18 X2 = 0,91 F3 =27,73 Z = 14,09 Max Z = 3x1 + 5x2 = 3(3,18) + 5(0,91) = 9,54 + 4,55 = 14,09 valor de Z. Minimizar Min Z = 3x1 + 2x2 Sujeito à : 2x 1 +x2 >=10 x1 + 5x2 >=15 x1, x2 >=0 OBS: Para transformar em um problema de maximização basta multiplicar a F.O por (-1). Min Z = 3x1 + 2x2 (-1) Max ±Z = -3x1 -2x2 Sujeito à : 2x 1 +x2 >=10 x1 + 5x2 >=15
x1, x2 >=0 -Z + 3x1 + 2x2 = 0 2x1 +x2 +F1 = 10 x1 + 5x2 +F2 = 15
-Z X1 X2 F1 F2
BASE
-Z 1 F1 0 F2 0
0 0 1
3 2 1
2 1 5
0 1 0
0 10 15
Base / Numero pivô 10/2 = 5 15/1 = 15
NLP = 0 , 1 , 0,5 , 0,5 , 0 ; 5 NL1 = -3 x (0 , 1 , 0,5 , 0,5 , 0 ; 5) = (0, -3 , -1,5 , -1,5 , 0 ; - 15) + (1 , 3 , 2 , 0 , 0 ; 0) = NL1: 1 , 0 , 0,5 , -1,5 , 0 ; -15 NL3 = -1 x (0 , 1 , 0,5 , 0,5 , 0 ; 5) = (0 , -1 , -0,5 , 0,5 , 0 , -5) + (0 , 1 , 5 , 0 , 1 ;15) = NL3: 0 , 0 , 4,5 , 0,5 , 1 ; 10
-Z -Z F1 F2
X1 1 0 0
X2 0 1 0
F1 0,5 0,5 4,5
F2 -1,5 0,5 0,5
BASE 0 -15 0 5 1 10
Não consider ar a coluna ±Z. Base / Numero pivô 5/0,5 = 10 10/4,5 = 2,22
NLP = 0 , 0 , 1 , -0,11 , 0,22 ; 2,22 NL1 = -0,5 x (0 , 0 , 1 , - 0,11 , 0,22 ; 2,22) = (0, 0 , -0,5 , 0,055 , -0,11 ; -1,11) + (1 , 0 , 0,5 , -1,5 , 0 ; -15) = NL1: 1 , 0 , 0 , -1,445 , -0,11 ; - 16,11 NL2 = -0,5 x (0 , 0 , 1 , -0,11 , 0,22 ; 2,22) = (0 , 0 , -0,5 , 0,055 , -0,11 ;-1,11) + (0 , 1 , 0,5 , 0,5 , 0 ; 5) = NL2: 0 , 1 , 0 , 0,555 , -0,11 ; 3,89
Fonte: http://www.webartigos.com/articles/2947/1/Metodo-Simplex/pagina1.html#ixzz1HF9W6X2i