x - FACOM
Transcrição
Método Simplex Resolução Algébrica Prof. Ricardo Santos Método Simplex • Dada uma solução factível: – Essa solução é ótima? – Caso não seja ótima, como determinar uma melhor? • Considere uma solução básica factível: xˆ B xˆ = em que xˆ N xˆ B = B b ≥ 0 xˆ N = 0, −1 • E a solução geral usando a mesma partição básica xB −1 −1 x = tal que xB = B b − B Nx N xN Método Simplex • A função objetivo f(x) pode ser expressa considerando a partição básica: xB T T = + c B c N x N c B x B c N x N x̂ – cTB: coeficientes das variáveis básicas na função objetivo – cTN: coeficientes das variáveis não-básicas na função objetivo – f(x)=cTx= [ T ] T • Como xB=B-1b-B-1NxN então: (1) – f(x)=cTB(B-1b-B-1NxN)+cTNxN xB – O primeiro termo de (1) corresponde ao valor da função objetivo em x̂ : f ( xˆ ) = cBT xˆ B + c TN xˆ N = cBT ( B −1b) + cTN (0) = cBT B −1b Método Simplex • Definição 1(vetor multiplicador simplex): O vetor λ de ordem mx1, dado por – λT= cTBB-1 – é chamado de vetor multiplicador simplex (ou também, vetor de variáveis duais) – O vetor multiplicador simplex pode ser obtido pela resolução do sistema de equações lineares λBT= cB, que é obtido ao se tomar a transposta de λT= cTBB-1 e multiplicar ambos os termos da igualdade por BT • λT= cT B-1↔ λ= (B-1)Tc ↔ BTλ= c B B B – Utilizando o vetor multiplicador simplex em (1) temos que: f ( x ) = f ( ) − cBT B −1 Nx N + c TN x N = f ( xˆ ) − λT Nx N + c TN x N = f ( xˆ ) + (c TN − λT N ) x N Método Simplex – Utilizando o vetor multiplicador simplex em (1) temos que: f ( x) = f ( ) − cBT B −1 Nx N + cTN x N = f ( xˆ ) − λT Nx N + cTN x N = f ( xˆ ) + (cTN − λT N ) x N – Note ainda que: cTN − λT N = (c N 1 , c N 2 ,, cN n−m ) − λT (a N 1 , a N 2 ,, a N n−m ) –e – obtemos = (cN 1 − λT a N 1 , c N 2 − λT a N 2 ,, cN n−m − λT a N n−m ) x N = ( x N 1 , x N 2 , , x N n −m ) f ( x) = f ( xˆ ) + (c N 1 − λT a N 1 ) x N 1 + (c N 2 − λT a N 2 ) x N 2 + + (c N n−m − λT a N n−m ) x N n−m Método Simplex • Definição 2(custos relativos): Os coeficientes cˆNJ = (c NJ − λT a NJ ) das variáveis não-básicas da função objetivo (2) são chamados custos relativos ou custos reduzidos – f ( x) = f ( xˆ ) + cˆN 1 x N 1 + cˆN 2 x N 2 + ... + cˆN n−m x N n−m (3) Método Simplex • Propriedade 1 (condição de otimalidade): Considere uma partição básica A=[B N] em que a solução básica associada x̂B =B-1b>=0 (solução básica factível), e seja λT o vetor multiplicador simplex. Se cNJ-λTaNJ>=0 , j=1,...,n-m, (todos os custos relativos são nãonegativos), então a solução básica é ótima. • Pergunta: Como determinar uma solução básica factível melhor? – Considere uma solução básica factível e suponha que a condição de otimalidade seja violada (caso contrário, a solução é ótima), isto é, suponha que exista k tal que: cˆN k = c N k − λ a N k < 0 T Método Simplex • Definição 3(estratégia simplex): Chamamos de estratégia simplex a perturbação de uma solução básica factível que consiste em alterar as variáveis não-básicas por: • xNk=ε >= 0, (variável com custo relativo negativo) • xNj=0, j=1,2,...,n-m, j≠k • Ou seja, apenas uma variável não-básica, xNk, deixa de ser nula. Com isso, a função objetivo (3) passa a ser: f ( x) = f ( xˆ ) + cˆN 1 0 + + cˆN k ε + + cˆN n−m 0 = f ( xˆ ) + c N k ε < f ( xˆ ) • Observe que a função objetivo decresce quando ε cresce – Isso justifica a escolha da variável não-básica a ser perturbada com o menor custo relativo Método Simplex • Definição 4(direção simplex): Chamamos de direção simplex o vetor y=B-1aNk, o qual fornece os coeficientes de como as variáveis básicas são alteradas pela estratégia simplex. A direção simplex é solução do sistema de equações lineares By=aNk – Observe que as variáveis básicas podem ser escritas como: (4) xB = B −1b − B −1 Nx N = xˆ B − B −1a N k ε = xˆ B − yε • Reescrevendo a equação vetorial (4) em cada uma de suas coordenadas e considerando a não-negatividade das variáveis básicas • xBi = xˆ Bi − yiε ≥ 0, i = 1, , m Método Simplex • Assim, – Se yi<=0, então xBi>=0, para todo ε>=0 xˆ B ˆ x = xB − yiε ≥ 0, então ε ≤ – Se yi>0, como B yi i i i • Logo, o maior valor para ε é dado por xˆ Bi εˆ = = mínimo tal que yi > 0 yl yi xˆ Bl Algoritmo Simplex (algébrico) • Fase I: – Determine inicialmente a partição básica factível A=[B N]. A rigor, precisamos de dois vetores de índices básicos e nãobásicos: • (B1, B2, ..., Bm) e (N1, N2, ..., Nn-m) – Os vetores das variáveis básicas e não-básicas são, respectivamente: • xTB=(xB1, xB2, ..., xBm) e xTN= (xN1, xN2, ..., xNn-m) – Faça iteração=1 • Fase II: {início da iteração simplex} – Passo 1: {cálculo da solução básica} • x̂ B =B-1b //ou, equivalentemente, resolve o sistema BxB=b xˆ N = 0 • Algoritmo Simplex (algébrico) • Fase II: {início da iteração simplex} – Passo 2: {cálculo dos custos relativos} • 2.1) {vetor multiplicador simplex} – λT= cTBB-1 • 2.2) {custos relativos} T ˆ c = c − λ aN j , – Nj Nj j = 1,2, , n − m • 2.3) {determinação da variável a entrar na base} – c N k = mínimo{c N j , j = 1, , n − m} (variável x N k entra na base) – Passo 3: {teste da otimalidade} • Se c N k ≥ 0, então: pare //solução na iteração atual é ótima Algoritmo Simplex (algébrico) • Fase II: {continuação} – Passo 4: {cálculo da direção simplex} • y=B-1aNk – Passo 5: {determinação do passo e variável a sair da base} • Se y<=0, então: pare //problema não tem solução ótima finita. f(x)-> -∞ • Caso contrário, determine a variável a sair da base pela razão mínima xˆ Bi //a variável xBl sai da base – xˆ Bl εˆ = = mínimo tal que yi > 0, i = 1, , m yl yi – Passo 6: {atualização: nova partição básica, troque a lésima coluna de B pela k-ésima coluna de N} • Matriz básica nova: B=[aB1...aBl-1 aNk aBl+1 ... aBm] • Matriz não-básica nova: N=[aN1...aNk-1 aBl aNk+1 ... aNn-m] • iteração=iteração+1 • Retorne ao passo 1 Algoritmo Simplex (algébrico) • Exemplo: – Minimizar f(x1,x2)=-x1-2x2 • x1+x2<=6 • x1-x2<=4 • -x1+x2<=4 • x1>=0, x2>=0 • Após introduzir as variáveis de folga x3, x4 e x5, temos o problema na forma padrão • Na Fase I, obtemos uma partição básica factível: – (B1, B2, B3)=(3, 4, 5), (N1, N2)=(1, 2), – Ou seja, B=I. Fazendo (x1, x2)=(0,0), temos (trivialmente) os valores das variáveis básicas Algoritmo Simplex (algébrico) • Fase II: 1a. Iteração Índices Básicos Não-básicos B1=3 B2=4 B3=5 N1=1 N2=2 b 1 0 0 1 1 6 0 1 0 1 -1 4 0 0 1 -1 1 4 [cB | cN] 0 0 0 -1 -2 f=0 [B | N] Algoritmo Simplex (algébrico) • Fase II: 1a. Iteração – Passo 1: {cálculo da solução básica} = xB=(x3, x4, x5) • Resolver o sistema BxB=b – xB=(6, 4, 4) • Avaliação da função objetivo: – f(x)=cB1xB1+ cB2xB2 + cB3xB3=0*6+0*4+0*4=0 Algoritmo Simplex (algébrico) • Fase II: 1a. Iteração – Passo 2: {cálculo dos custos relativos} • 2.1) {vetor multiplicador simplex}:(cB=(cB1,cB2,cB3)=(c3,c4,c5)=(0, 0, 0)). – Solução do sistema BTλ=cB é λT=(0,0,0) • 2.2) {custos relativos}: (N1=1, N2=2) – ĉ1=c1- λ a1=-1-(0 0 0) T – ĉ2=c2- λTa2=-2-(0 0 0) 1 1 −1 =-1, 1 − 1 1 =-2, k=2. (variável xN2=x2 entra na base) • 2.3) {determinação da variável que entra na base} – Como ĉ2 = cˆ N 2 =minimo{ĉ Nj , j=1,2}=-2<0, então a variável x2 entra na base Algoritmo Simplex (algébrico) • Fase II: 1a. Iteração – Passo 3: {teste de otimalidade} • Como os custos relativos (c1=-1, c2=-2)são negativos, a solução atual não é ótima! – Passo 4: {cálculo da direção simplex} • Resolver o sistema By=a2 e obtenha y= 1 − 1 1 • O vetor y mostra como as variáveis básicas são alteradas: xB= x̂B -yε • As variáveis não-básicas (x1 e x2) se alteram conforme a estratégia simplex: x1=0 e x2=ε – Passo 5: {determinação do passo e variável a sair da base} • εˆ =minimo( xˆ B1 /y1, xˆ B 3 /y3)=minimo(6/1, 4/1)=4= xˆ B 3 /y3 • xB3=x5 sai da base Algoritmo Simplex (algébrico) • Fase II: 1a. Iteração – Passo 6: {atualização: nova partição básica, troque a lésima coluna de B pela k-ésima coluna de N} • (B1, B2, B3)=(3, 4, 2), (N1, N2)=(1, 5), • {novo valor da função objetivo: f(x)=f( x̂ )+ĉ N k εˆ =0-2*4=-8} • Nova Tabela: Índices Básicos Não-básicos B1=3 B2=4 B3=2 N1=1 N2=5 b 1 0 1 1 0 6 0 1 -1 1 0 4 0 0 1 -1 1 4 [cB | cN] 0 0 -2 -1 0 f=-8 [B | N] Algoritmo Simplex (algébrico) • Fase II: 2a. Iteração – Passo 1: • Solução básica: xB=(x3, x4, x2) • Resolver sistema BxB=b e obter x̂B = – Passo 2: 2 8 4 • 2.1) {vetor multiplicador simplex} – (cB=(cB1,cB2,cB3)=(c3,c4,c2)=(0, 0, -2)). – Resolver sistema BTλ=cB é λT=(0, 0, -2) N =5) • 2.2) {custos relativos}: (N1=1, 1 2 – – ĉ1=c1- λTa1=-1-(0 0 -2) ĉ5=c5- λTa5=0-(0 0 -2) 1 =-3, −1 0 0 1 k=1, x1 entra na base =2, • 2.3) {determinação da variável que entra na base} – Comoĉ1<0, solução básica não é ótima e x entra na base Algoritmo Simplex (algébrico) a. • Fase II: 2 Iteração – Passo 3: {teste de otimalidade} • Como há custos relativos (ĉ1=-3,ĉ5=2) negativos, a solução atual não é ótima! – Passo 4: {cálculo da direção simplex} • Resolver o sistema By=a1 e obtenha y= 2 0 −1 • O vetor y mostra como as variáveis básicas são alteradas: xB= x̂ B -yε • As variáveis não-básicas (x1 e x5) se alteram conforme a estratégia simplex: x5=0 e x1=ε – Passo 5: {determinação do passo e variável a sair da base} • Como somente y1>0, então • εˆ =minimo( xˆ B1 /y1)=minimo(2/2)=1 • xˆ B1=x sai da base Algoritmo Simplex (algébrico) • Fase II: 2a. Iteração – Passo 6: {atualização: nova partição básica, troque a lésima coluna de B pela k-ésima coluna de N} • (B1, B2, B3)=(1, 4, 2), (N1, N2)=(3, 5), • {novo valor da função objetivo: f(x)=f( x̂ )+ ĉ N k εˆ • Nova Tabela: =-8-3*1=-11} Índices Básicos [B | N] [cB | cN] Não-básicos B1=1 B2=4 B3=2 N1=3 N2=5 b 1 0 1 1 0 6 1 1 -1 0 0 4 -1 0 1 0 1 4 -1 0 -2 0 0 f=-11 Algoritmo Simplex (algébrico) • Fase II: 3a. Iteração – Passo 1: • Solução básica: xB=(x1, x4, x2) • Resolver sistema BxB=b e obter x̂B = 1 8 5 – Passo 2: • 2.1) {vetor multiplicador simplex} – (cB=(cB1,cB2,cB3)=(c1,c4,c2)=(-1, 0, -2)). – Resolver sistema BTλ=cB é λT= (-3/2, 0, -1/2) =5) • 2.2) {custos relativos}: (N1=3, N 12 – – ĉ3=c3- λTa3=0-(-3/2, 0, -1/2) ĉ5=c5- λTa5=0- (-3/2, 0, 0 0 0 -1/2) 0 1 =3/2, =1/2, Algoritmo Simplex (algébrico) • Fase II: 3a. Iteração – Passo 2: • 2.3) {determinação da variável que entra na base} – Como minimo{ĉ N j , j=1,2}=1/2>0, segue-se que a solução atual » x̂B = 1 8 5 – É ótima! e x̂ N = 0 0 1 ou x̂ = 5 0 8 0
Documentos relacionados
Método Simplex - aula 5
... significa que para qualquer valor de , a nova solução é factível (não há limitante superior para ). Como a função objetivo decresce com o crescimento de , então f(x) - ∞ quando ∞. Diss...
Leia maisMétodo Simplex Resolução Algébrica - FACOM
• Definição 2(custos relativos): Os coeficientes c*NJ= (cNJλTaNJ) das variáveis nãobásicas da função
Leia maisMÉTODO SIMPLEX – SOLUÇÃO INICIAL ARTIFICIAL Problemas de
final da Fase I só pode ocorrer quando todas elas forem não básicas.
Leia maisProgramação Linear (PL) Solução algébrica
maior que o inicial. 9 Neste caso, o método simplex faz então a mudança do ponto por um outro que mais aumente o valor da função objetivo.
Leia mais3- O MÉTODO SIMPLEX 3.1- Introdução O Método
Para isso, escolhemos uma variável, cujo custo relativo é mais negativo (não é regra geral), para entrar na base, e as trocas de vértices são feitas até que não exista mais nenhum custo relativo ne...
Leia mais