260 likes | 397 Views
CÁLCULO DA INVERSA DA BASE Prof. M.Sc. FÁBIO FRANCISCO DA COSTA FONTES Setembro - 2009. Cálculo da inversa da base. O método simplex revisado não computa a inversa B -1 da base diretamente. A primeira base considerada é sempre uma matriz identidade: B = I B -1 = I
E N D
CÁLCULO DA INVERSA DA BASE Prof. M.Sc. FÁBIO FRANCISCO DA COSTA FONTES Setembro - 2009
Cálculo da inversa da base O método simplex revisado não computa a inversa B-1 da base diretamente. A primeira base considerada é sempre uma matriz identidade: B = I B-1 = I A partir dessa base, as demais são calculadas por um procedimento computacional, que será mostrado a seguir.
Cálculo da inversa da base Seja uma matriz identidade representada por: Im = (e1, e2 , ... , em) Onde ei são vetores identidade, com o elemento 1 na linha i. Sejam xe a variável que entra na base e xs a variável que sai. A próxima inversa da base pode ser calculada, a partir da inversa atual, fazendo-se a seguinte operação:
Cálculo da inversa da base B-1nova = E . B-1 Onde a matriz E é dada por E = (e1 , e2 , ... , es-1 ,δ , es+1 , ... , em) e o vetor δ é formado da seguinte forma:
Cálculo da inversa da base - a1e/ ase - a2e/ ase : : δ = 1/ ase : : - ame/ ase Onde aie são os coeficientes atualizados na iteração K da variável que está entrando na base, ou seja, da variável xe, e ase é o pivô.
Cálculo da inversa da base Assim, a matriz E é uma matriz identidade onde a coluna s foi substituída pelo vetor calculado acima. Através deste procedimento, as inversas das bases serão calculadas sucessivamente de uma forma computacionalmente simples.
SIMPLEX Exemplo para explicação do algoritmo do método simplex revisado Max x1 + x2 Max x1 + x2 s.a: 2x1 + x2 ≤2 s.a: 2x1+x2 + x3=2 x1 + 3x2 ≤ 3 x1+3x2+x4=3 x1≥0 e x2≥0 x1,x2,x3,x4≥0
simplex x1 x2 x3 x4 b x3 2 1 1 0 2 ½ 0 0 x4 1 3 0 1 3 E= -½ 1 0 1 1 0 0 0 -½ 0 1 x1 1 ½ ½ 0 1 1 -1/5 0 x4 0 5/2 -½ 1 2 0 2/5 0 0 ½ -½ 1 -1 0 -1/5 1
simplex x1 1 0 3/5 -1/5 3/5 x2 0 1 -1/5 2/5 4/5 0 0 -2/5 -1/5 -7/5
simplex • O mesmo exemplo sendo resolvido de forma matricial temos:
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO Passo1- solução básica inicial 2 1 1 0 IB={3,4} INB={1,2} A= cBT = (0 0) xB = x3 1 3 0 1 cNT = (1 1) x4 xN = x1 N= 2 1 B=B-1= 1 0 b= 2 x2 1 3 0 1 3
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO Passo2 – cNT- cBTB-1N=(1 1)-(0 0) 1 0 2 1 =(1 1) 0 1 1 3 Como existe cNi- cBTB-1Ni ≥ 0, então a solução ainda não é ótima. X1 entra na base
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO Passo3 – b’ = B-1b = 1 0 2 = 2 0 1 3 3 Passo4 – N1 = B-1N1 = 1 0 2 = 2 0 1 1 1 min{b’1/N1¹, b’2/N12}=min{2/2, 3/1}=1 X3 sai da base
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO Passo5 – Achar a nova solução Básica IB={1,4} INB={3,2} B= 2 0 N= 1 1 XB= x1 1 1 0 3 x4 xN = x3 cBT=(1 0) cNT=(0 1) x2
Como a troca foi de x1 com x3, então em B os coeficientes que estão entrando na base são: • Como B-1nova = E . B-1 • B-1nova = N1 O pivô
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO cNT- cBTB-1N=(0 1)-(1 0) ½ 0 1 1 =(-½½) -½ 1 0 3 x2 entra na base Passo3 – b’= B-1b = ½ 0 2 = 1 -½ 1 3 2
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO Passo4 – N² = B-1N²= ½ 0 1 = ½ -½ 1 3 5/2 min{b’/N1², b’/N2²} min{1/(½), 2/(5/2)}=0,8 x4 sai da base
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO Passo5 – IB={1,2} INB={3,4} B= 2 1 N= 1 0 1 3 0 1 xB = x1 xN = x3 x2 x4 cBT=(1 1) cNT=(0 0)
Como a troca foi de x2 com x4, então em B os coeficientes que estão entrando na base são: • Como B-1nova = E . B-1 • B-1nova = N2 O pivô
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO cNT- cBTB-1N=(0 0)-(1 1) 3/5 -1/5 1 0 -1/5 2/5 0 1 cNT- cBTB-1N=(-2/5 -1/5) Como não existe cNi- cBTB-1Ni ≥ 0, então a solução é ótima. Calcular xB e Z
SOLUÇÃO MATRICIAL E MÉTODO SIMPLEX REVISADO xB = B-1b xB = 3/5 -1/5 2 = 3/5 -1/5 2/5 3 4/5 Z=cBTB-1b= (1 1) 3/5 -1/5 2 -1/5 2/5 3 Z= (2/5 1/5) 2 = 7/5 3
exercício Max Z = x1 + x2 S.a: 2x1 + x2≤ 2 6x1 + x2 ≤ 3 x1, x2 ≥ 0
Algoritmo Simplex Revisado • Inicialização: Determine uma partição para a matriz A dada por A=[B : N] e em conseqüência para cT=[cBT : cNT] e xT=[xBT:xNT], B-1 = B • logica verdade • Enquanto (logica) faça • //teste de otimalidade// • Se (cNT - cBTB-1Nj) < = 0 • logicafalso • Senão • b’ B-1b • N j B-1Nj • Se Nij < = 0 i=1,...,m Escreva(“Saida p/ ilimitação”) • halt • Senão • Min{b’i / Nij tal que Nij > 0)} • Atualize A, cT e xT • E (e1, e2, ...,er-1, δ, er+1, ..., em) • B-1 E.B-1 • Fim se • Fim se • Fim enquanto • xB B-1b • Z cBT xB • escreva (Z, xB) • Fim