Unidade de Matemática e Tecnologia - RC/UFG Programação Linear/Inteira - Aula 5 Prof. Thiago Alves de Queiroz Aula 5 Thiago Queiroz (IMTec) Aula 5 Aula 5 1 / 43
Análise de Sensibilidade Estudar o efeito de perturbar os dados de um problema de otimização linear; Particularmente, o vetor de recursos b e o vetor de custos c; Seja o problema primal na forma padrão: F(b) = Minimizar { z = c T x Ax = b sujeito a : x 0. (1) Sendo F(b) o valor mínimo da função objetivo para um vetor de recursos b; As relações primais-duais fornecem subsídios para estudar a perturbação nos dados do problema; Thiago Queiroz (IMTec) Aula 5 Aula 5 2 / 43
Perturbação no Vetor de Recursos Se o vetor de recursos for alterado, então a solução ótima do problema anterior também se altera (e F(b)) também; Suponha que o problema original tenha sido resolvido, com solução básica primal ótima: x B = B 1 b, x N =0. A solução dual básica ótima é: λ T = c T B B 1. Portanto a expressão da função objetivo para um vetor b: F(b) = c T B x B = c T B B 1 b = λ T b = b 1 λ 1 + b 2 λ 2 +... + b m λ m ; Sendo F diferenciável: pequenas alterações em b não fazem mudar a base ótima, tal que λ não se altera. Então: F (b) b i = λ i, para i = 1, 2,..., m; Thiago Queiroz (IMTec) Aula 5 Aula 5 3 / 43
Perturbação no Vetor de Recursos Note que λ i (o vetor multiplicador simplex) fornece a taxa de variação com relação ao vetor de recursos b. A unidade de λ i b i deve ser a mesma da função objetivo; Ou seja, se função objetivo representa custo em R$, então λ i b i também deve ser na mesma grandeza (R$); Portanto, a unidade de λ i deve ser (unidade da função objetivo)/(unidade do recurso i), podendo ser interpretada como preço de uma unidade de i; Thiago Queiroz (IMTec) Aula 5 Aula 5 4 / 43
Perturbação no Vetor de Recursos Ao fazer uma pequena perturbação em b i de δ i, sem que a solução básica atual deixe de ser factível, tem-se: F(b 1,..., b i + δ i, b m ) = b 1 λ 1 +... + (b i + δ i ) +... + b m λ m = = F(b) + δ i λ i, Ou seja, a função objetivo é modificada por δ i λ i ; Por outro lado, para saber quais valores b i pode assumir sem alterar a otimalidade da base corrente, deve-se calcular o intervalo: [b i + δ i b i + δ i ] Em que δ i e δ i são os limites mínimo e máximo para δ i ; Para determinar estes limites, deve-se resolver, dado o primal: B 1 (b + ) = x B + B 1 0, com = (0... δ i... 0); Thiago Queiroz (IMTec) Aula 5 Aula 5 5 / 43
Exemplo Exemplo. No seguinte problema de programação linear: (Primal) Minimizar z = x 1 + x 2 + x 3 4 5 x 1 + 2 5 x 2 = 108 3 sujeito a : 5 x 2 + 9 10 x 3 = 120 x 1 0, x 2 0, x 3 0. (2) A função objetivo mede o peso (em toneladas) de bobinas de ferro a cortar; Cada restrição está associada a um tipo de sub-bobina de ferro, tal que o vetor de recursos representa à demanda de cada sub-bobina em toneladas. a) Verifique a perturbação no vetor de recursos b para cada restrição individualmente; b) Qual o intervalo de variação nos valores do recurso da segunda restrição que mantém a base corrente ótima? Thiago Queiroz (IMTec) Aula 5 Aula 5 6 / 43
Resolução... 1. Obtenha a solução do primal usando o simplex (em tabelas), qual seja: x 1 = 35, x 2 = 200, x 3 = 0, com valor da função objetivo z = 235; Observando z, tem-se que 235 toneladas de bobinas são necessárias para atendar a demanda de b 1 = 108 e b 2 = 120 toneladas de sub-bobinas do tipo 1 e 2, respectivamente; 2. Obtenha o dual e sua solução: (Dual) Maximizar g(λ) = 108λ 1 + 120λ 2 4 5 λ 1 + 0λ 2 + µ 1 = 1 2 sujeito a : 5 λ 1 + 3 5 λ 2 + µ 2 = 1 0λ 1 + 9 10 λ 2 + µ 3 = 1 λ 1 R, λ 2 R, λ 3 R. (3) Em que: µ 1, µ 2, µ 3 0 são as variáveis de folga do dual. A solução do dual pode ser obtida por meio da Propriedade 14, ou seja, calculando λ T = c B B 1, sendo B 1 a inversa de B que levou à solução ótima do primal. Thiago Queiroz (IMTec) Aula 5 Aula 5 7 / 43
Resolução... Obtém-se [ B 1 da última iteração do simplex, que é: 5 B 1 = 4 5 ] 6 5 ; 0 3 [ 5 Logo, λ T = cb T B 1 = (1 1) 4 5 ] 6 5 = ( 5 5 0 4 6 ); 3 Então, a solução ótima do dual é: λ 1 = 5 4 e λ 2 = 5 6. 3. Analise a perturbação no vetor de recursos b para cada restrição individualmente, sabendo que: F(b) = z F(b 1, b 2 ) = b 1 λ 1 + b 2 λ 2 ; Para a primeira restrição do primal, isto é, 4 5 x 1 + 2 5 x 2 = 108, tem-se a pertubação δ 1 no recurso b 1 = 108, tal que: F(108 + λ 1, 120) = F(b) + δ 1 λ 1 = 235 + 5 4 δ 1; Isto significa que a cada tonelada a mais da sub-bobina do tipo 1 demandada é necessário cortar 5 4 toneladas a mais de bobina. Thiago Queiroz (IMTec) Aula 5 Aula 5 8 / 43
Resolução... Fazendo a análise para a segunda restrição, isto é, 3 5 x 2 + 9 10 x 3 = 120, tem-se a pertubação δ 2 no recurso b 2 = 120, tal que: F(108, 120 + λ 2 ) = F(b) + δ 2 λ 2 = 235 + 5 6 δ 2; Isto significa que a cada tonelada a mais da sub-bobina do tipo 2 demandada é necessário cortar 5 6 toneladas a mais de bobina; Observando as duas pertubações, note que é mais vantajoso estimular a demanda de sub-bobinas do tipo 2 do que do tipo 1, pois a função objetivo busca minimizar e λ 2 = 5 6 < λ 1 = 5 4. Estas valores são tendências e são válidos apenas para pequenas pertubações na demanda; Thiago Queiroz (IMTec) Aula 5 Aula 5 9 / 43
Resolução... Na letra (b) deve-se calcular o intervalo de variação para os valores da segunda restrição, ou seja, para b 2 ; 1. Usamos a expressão x B + B 1 0, em que x B é a solução básica ótima do primal, B 1 é a inversa da matriz básica associada a esta solução, e = (δ 1 δ 2 ); Observando a solução ótima do primal na última [ iteração do 5 simplex, temos x B = (x 1 x 2 ) = (35 200) e B 1 = 4 5 ] 6 5 ; 0 3 Como se quer o intervalo apenas para a segunda restrição, então δ 1 = 0; Logo: x B + B 1 0 ( 35 + 5 6 δ ) ( ) 2 0 200 + 5 3 δ 2 0 ( ) 35 + 200 [ 5 4 5 6 0 5 3 ] ( ) 0 = δ 2 Thiago Queiroz (IMTec) Aula 5 Aula 5 10 / 43
Resolução... Isto resulta na resolução do seguinte sistema de equações: 35 + 5 6 δ 2 0 200 + 5 3 δ 2 0 Que fornece 120 δ 2 42, ou seja, δ i = 120 e δ i = 42; 2. Montar o intervalo: [b i + δ i b i + δ i ]; Note que i = 2, com b 2 = 120, tal que qualquer δ 2 [0 162] implica que a base não deixará de ser ótima. Além disso, o valor de λ 2 = 5 6 fornece a taxa de variação na função objetivo com a variação de b 2 ; Esta informação é útil para o decisor, que pode analisar até que ponto um recurso pode ser alterado sem que as atividades relevantes para uma solução sejam alteradas, ou seja, sem alterar o vetor de variáveis básicas. Thiago Queiroz (IMTec) Aula 5 Aula 5 11 / 43
Pertubação nos Custos Considere que uma solução básica ótima tenha sido encontrada para o problema de otimização linear: F(b) = Minimizar { z = c T x Ax = b sujeito a : x 0. (4) Deseja-se analisar o efeito da alteração de algum coeficiente da função objetivo; Ou seja, suponha que se queira alterar c k para c k = c k + δ; Esta alteração não torna infactível a solução ótima já encontrada; Porém, a solução pode deixar de ser uma solução ótima; Analisa-se o caso em que a variável, x k associada ao custo c k, pode ser básica ou não-básica. Thiago Queiroz (IMTec) Aula 5 Aula 5 12 / 43
Pertubação nos Custos Seja o caso em que x k é não-básica primeiro; Note que o vetor c B não é alterado; Logo, o vetor multiplicado simplex λ T = c B T B 1 associado à partição básica ótima não se altera; Apenas o custo relativo da variável x k, denotado por ĉ k = c K λ T a k é alterado para um ĉ k, ou seja: ĉ k = c k λt a k = (c k + δ) λ T a k = ĉ k + δ; Isto é, o novo custo relativo é simplesmente alterado pela adição de δ ao antigo custo relativo; Se ĉ k = ĉ k + δ 0, então a solução ótima não se altera (lembre da condição de parada do simplex). Se ĉ k = ĉ k + δ < 0, então a solução deixa de ser ótima (e o simplex escolheria x k para entrar na base). Thiago Queiroz (IMTec) Aula 5 Aula 5 13 / 43
Pertubação nos Custos Note que δ < 0 deve ocorrer para que a solução se altere; Mais precisamente, se δ < ĉ k, então a variável x k deve ser aumentada para reduzir ainda mais a função objetivo; Exemplo. Considere o problema abaixo de um fabricante de geladeiras. Um novo modelo superluxo está sendo estudado e deseja-se saber qual é o lucro unitário mínimo desse produto (preço de venda menos o custo do produto) que torna sua produção economicamente viável em relação aos demais produtos; Maximizar z = 100x luxo + 50x basico 10x luxo + 8x basico + x 1 = 25.000 x luxo + x basico + x 2 = 4.500 sujeito a : x luxo + x 3 = 1.500 x basico + x 4 = 6.000 x luxo 0, x basico 0, x 1, x 2, x 3, x 4 0. (5) O novo modelo superluxo requer 16 homens/hora (restrição 1) e compartilha a linha de montagem (restrição 2). Thiago Queiroz (IMTec) Aula 5 Aula 5 14 / 43
Resolução... 1. Obter a base ótima e as soluções básicas ótimas, primal e dual, ou seja: 10 8 0 0 B = [a luxo a basico a 2 a 4 ] = 1 1 1 0 1 0 0 0, com 0 1 0 1 25 x luxo 1500 λ 1 4 x B = x basico x 2 = 1250 1750, e com λ = λ 2 λ 3 = 0 75. 2 x 4 4750 λ 4 0 2. Definir a variável x sluxo como a quantidade a produzir e l sluxo como o lucro unitário. Isto resulta em uma modificação no modelo original; Lembre-se das restrições a serem inseridas para este novo modelo: homens/hora e participar da linha de montagem; Logo, o modelo resultante (uma nova coluna foi inserida) é: Thiago Queiroz (IMTec) Aula 5 Aula 5 15 / 43
Resolução... Maximizar z = 100x luxo + 50x basico + l sluxo x sluxo 10x luxo + 8x basico + 16x sluxo + x 1 = 25.000 x luxo + x basico + x sluxo + x 2 = 4.500 sujeito a : x luxo + x 3 = 1.500 x basico + x 4 = 6.000 x luxo 0, x basico 0, x 1, x 2, x 3, x 4 0. (6) A variável x sluxo é economicamente viável se pertencer à base ótima deste novo problema; Caso contrário, será não básica e seu nível de produção será nulo; 3. Calcular o custo relativo da nova variável, que deve ser não-negativo, pois o problema é da maximização; Thiago Queiroz (IMTec) Aula 5 Aula 5 16 / 43
Resolução... Custo relativo da variável x sluxo : 16 l sluxo λ T a sluxo = l sluxo ( 25 4 0 75 2 0) 1 0 = l sluxo 100 0; 0 Portanto, se l sluxo 100, o novo modelo superluxo é viável economicamente em relação aos demais produtos; Neste caso, contribuirá para o lucro da empresa se for produzido; Caso contrário, a empresa precisa aumentar o seu preço ou reduzir seu custo unitário de produção, de modo que o lucro unitário resulte em l sluxo 100; Observe que, se l sluxo = 100, então o custo relativo é nulo, indicando que existem soluções ótimas alternativas; Neste caso, poderia ser não vantajoso investir na produção de outro produto, como a superluxo. Thiago Queiroz (IMTec) Aula 5 Aula 5 17 / 43
Pertubação nos Custos Seja o caso em que x k é básica; Suponha que esta seja a r-ésima variável básica: x Br = x k ; Neste caso, c B r = c Br + δ e o vetor multiplicado simplex para a base encontrada se altera por: λ T = c B B 1 = cb T B 1 + δer T B 1 = λ T + δer T B 1 ; Em que e r é a r-ésima coluna da matriz identidade m m; Portanto, os custos relativos de todas as variáveis devem ser recalculados como: ĉ j = c j λ T a j = c j (λ T + δe T r B 1 )a j = = (c j λ T a j ) δe T r B 1 a j = ĉ j δe T r y j ; Lembre que y j = B 1 a j (direção simplex); Thiago Queiroz (IMTec) Aula 5 Aula 5 18 / 43
Pertubação nos Custos Como e r é a r-ésima coluna da matriz identidade, então o produto e T r y j fornece o r-ésimo elemento do vetor y j, denotado por y rj. Então, o novo custo relativo é dado por: ĉ j = ĉ j δy rj Neste caso, os custos relativos se alteram; Com isso, o método simplex precisa ser aplicado para reotimizar o problema; Thiago Queiroz (IMTec) Aula 5 Aula 5 19 / 43
O método dual simplex Pode ser útil como alternativa ao Método das Duas Fases ou do grande-m para obtenção da solução do primal; Muito usado em reotimização de problemas lineares, após a adição de novas restrições no problema original: Se as restrições são satisfeitas pela solução ótima do problema original, então também é ótima para o problema com novas restrições; Caso a solução seja infactível para o problema novo, é necessário uma reotimização, que pode incluir o acréscimo de variáveis artificiais. Do ponto de vista do problema dual, novas restrições no primal implicam em variáveis duais, de modo que a solução dual não perde factibilidade, mas pode deixar de ser ótima; De qualquer forma, a solução ótima do dual original é uma boa solução inicial para o dual com novas variáveis. Thiago Queiroz (IMTec) Aula 5 Aula 5 20 / 43
Resolução do primal pelo algoritmo dual simplex Se o problema primal não possuir uma base inicial factível, pode-se usar o algoritmo dual simplex para obter a solução do primal; Melhor ainda, pode-se aplicar o dual simplex em tabelas, assim como feito no simplex em tabelas; Seja um exemplo de problema de otimização linear: (Primal) Minimizar z = x 1 + x 2 2x 1 + x 2 4 sujeito a : x 1 + 3x 2 3 x 1 0, x 2 0. (7) 1. Coloque o problema na forma padrão (minimizar e com restrições de igualdade). Thiago Queiroz (IMTec) Aula 5 Aula 5 21 / 43
Resolução do primal pelo algoritmo dual simplex (Primal) Minimizar z = x 1 + x 2 2x 1 + x 2 x 3 = 4 sujeito a : x 1 + 3x 2 x 4 = 3 x 1 0, x 2 0, x 3 0, x 4 0. (8) Note que para obter uma base factível inicial para simplex é preciso multiplicar as restrições por (-1), resultando em: (Primal) Minimizar z = x 1 + x 2 2x 1 x 2 + x 3 = 4 sujeito a : x 1 3x 2 + x 4 = 3 x 1 0, x 2 0, x 3 0, x 4 0. (9) 2. Montar a tabela simplex inicial para o modelo acima, pois ele está na forma padrão e tem uma base factível inicial (x 3 e x 4 são as variáveis básicas com B = I 2 ). Thiago Queiroz (IMTec) Aula 5 Aula 5 22 / 43
Resolução do primal pelo algoritmo dual simplex A tabela simplex inicial, com as Variáveis Básica (VB): Tabela: Tabela simplex inicial com dados do problema primal. x 1 x 2 x 3 x 4 b VB 1 1 0 0 z x 3-2 -1 1 0-4 x 4-1 -3 0 1-3 Note que apesar de existir uma base factível B, a solução inicial x B = B 1 b resulta em x 3 = 4 < 0 e x 4 = 3 < 0, ou seja, a solução básica não é factível; Neste ponto entra a aplicação do algoritmo dual simplex; Thiago Queiroz (IMTec) Aula 5 Aula 5 23 / 43
Algoritmo dual simplex em Tabelas Considere um problema de otimização linear como o do exemplo anterior, ou seja, na forma padrão; Fase I: Determine uma tabela simplex inicial: A função objetivo do problema original vai satisfazer a condição de otimalidade do método simplex normal; As restrições no problema original devem ser do tipo. Faça iteração = 0. Fase II: 1. Determine a variável a sair da base olhando a solução básica primal: ˆx Bl = mínimo {ˆx Bi, para toda variável básica i }; 2. Se ˆxBl 0, então pare: solução ótima encontrada; 2.1. Senão, a variável x Bl sai da base; Thiago Queiroz (IMTec) Aula 5 Aula 5 24 / 43
Algoritmo dual simplex em Tabelas Fase II: continuação... 3. Seja a linha da variável que vai sair da base definida por rbl : 3.1. Se todos os coeficientes na linha são positivos, isto é, r Bl j > 0, para j = 1,..., n, então pare: solução do primal é infactível; 3.1. Senão, determine para as variáveis não-básicas e que tenham coeficiente negativo na linha r Bl : c Nk ˆ = mínimo { c ˆN j tal que r r Bl k r B Bl j l j < 0, j = 1,..., n}; 3.2. A variável não-básica de índice N k, diga-se x Nk, entra na base; 4. Atualize a tabela simplex, considerando o elemento pivô r Bl N k e fazendo o pivotamento no restante da coluna; 4.1. A variável x Nk passa a ser a variável básica na linha B l ; 4.2. Faça iteração = iteração + 1; 4.3. Retorne ao passo 1. Thiago Queiroz (IMTec) Aula 5 Aula 5 25 / 43
Exemplo Exemplo. Continue a resolução do exemplo anterior aplicando agora o algoritmo dual simplex em tabelas. Note que o problema do exemplo anterior era: (Primal) Minimizar z = x 1 + x 2 2x 1 + x 2 x 3 = 4 sujeito a : x 1 + 3x 2 x 4 = 3 x 1 0, x 2 0, x 3 0, x 4 0. (10) Com a seguinte tabela simplex inicial: Tabela: Tabela simplex inicial com dados do problema primal. x 1 x 2 x 3 x 4 b VB 1 1 0 0 z x 3-2 -1 1 0-4 x 4-1 -3 0 1-3 Thiago Queiroz (IMTec) Aula 5 Aula 5 26 / 43
Resolução... Note que não dá para aplicar o simplex em tabelas, pois observando a tabela inicial tem-se que é satisfeita a condição de otimalidade e a solução básica não é viável (x 3 = 4 e x 4 = 3); A alternativa é aplicar o algoritmo dual simplex em tabelas; Pela Fase I, monta-se a tabela simplex inicial, explicitando as variáveis básicas. Fez-se isto na tabela anterior; Faz-se iteração = 0. Aplicando a Fase II, segue que: 1. A variável básica com menor valor de solução é: x 3 = 4; 2. x 3 = 4 < 0, de forma que a variável x 3 sai da base e B l = 3 3. Existe r Bl j = r 3j < 0 para j não-básica. Observe: para j=1, tem-se -2, e para j=2 tem-se -1; 3.1. O mínimo entre { 1 2 ; 1 1 } ocorre para j=1; 3.2. A variável básica x 1 entra na base, com índice N k = 1; Thiago Queiroz (IMTec) Aula 5 Aula 5 27 / 43
Resolução... Tabela: Tabela simplex inicial. x 1 x 2 x 3 x 4 b VB 1 1 0 0 z x 3 2-1 1 0-4 x 4-1 -3 0 1-3 4. O elemento pivô é o r Bl N k = r 31 = 2. Realiza-se o pivotamento na coluna a Nk = a 1 ; 4.1. A variável x 1 entrou no lugar da variável x 3 ; 4.2. iteração = 1; Tabela: Tabela simplex iteração 1. x 1 x 2 x 3 x 4 operação 1 2 0-2 L 1 L 1 L 2 VB 0 1 2 x 1 1 1 2 1 2 0 2 L 2 1 2 L 2 x 4 0 5 2 1 2 1-1 L 3 L 3 + L 2 Thiago Queiroz (IMTec) Aula 5 Aula 5 28 / 43
Resolução... Voltando ao passo 1 da Fase II, segue que: 1. A variável básica com menor valor de solução é: x 4 = 1; 2. x 4 = 1 < 0, de forma que a variável x 4 sai da base e B l = 4; 3. Existe r Bl j = r 4j < 0 para j não-básica. Observe: para j=2, tem-se 5 2, e para j=3, tem-se 1 2 ; 3.1. O mínimo entre { 1 2 ; 1 5 2 } ocorre para j=2; 2 1 2 3.2. A variável básica x 2 entra na base, com índice N k = 2; Tabela: Tabela simplex iteração 1. x 1 x 2 x 3 x 4 b 1 VB 0 2 1 2 0-2 1 x 1 1 2 1 2 0 2 x 4 0 5 2 1 2 1-1 Thiago Queiroz (IMTec) Aula 5 Aula 5 29 / 43
Resolução... 4. O elemento pivô é o r Bl N k = r 42 = 5 2. Realiza-se o pivotamento na coluna a Nk = a 2 ; 4.1. A variável x 2 entrou no lugar da variável x 4 ; 4.2. iteração = 2; Tabela: Tabela simplex iteração 2. x 1 x 2 x 3 x 4 operação 4 VB 0 0 10 x 1 1 0 6 10 x 2 0 1 1 5 2 5 1 5-11 1 9 5 Voltando ao passo 1 da Fase II, segue que: 5 L 1 L 1 1 2 L 3 5 L 2 L 2 1 2 L 3 2 5 L 3 2 5 L 3 1. A variável básica com menor valor de solução é: x 2 = 2 5 ; 2. x 4 = 2 5 > 0, de forma que a solução ótima foi encontrada; Thiago Queiroz (IMTec) Aula 5 Aula 5 30 / 43
Resolução... Da tabela simplex da última iteração, obtém-se como solução para o primal: (x 1, x 2, x 3, x 4 ) = ( 9 5, 2 5, 0, 0); O valor da função objetivo é: z = x 1 + x 2 = 9 5 + 2 5 = 11 5. Note que é mais fácil obter a solução usando o dual simplex em tabelas do que o algoritmo dual simplex manualmente. Thiago Queiroz (IMTec) Aula 5 Aula 5 31 / 43
Problema dual resolvido em tabelas Uma estratégia simples pode ser aplicada ao problema dual permitindo-o ser resolvido por tabelas (como no simplex em tabelas). Considere um problema primal de otimização linear: (Primal) Minimizar z = x 1 + x 2 2x 1 + x 2 4 sujeito a : x 1 + 3x 2 3 x 1 0, x 2 0. (11) Caso não seja dado o problema dual diretamente, o primeiro passo é escrever o dual do problema e colocá-lo na forma padrão: (Dual) Maximizar g(λ) = 4λ 1 + 3λ 2 2λ 1 + λ 2 1 sujeito a : λ 1 + 3λ 2 1 λ 1 0, λ 2 0. (12) Thiago Queiroz (IMTec) Aula 5 Aula 5 32 / 43
Problema dual resolvido em tabelas Colocando o dual na forma padrão, tem-se: Maximizar g(λ) = 4λ 1 + 3λ 2 + 0λ 3 + 0λ 4 2λ 1 + λ 2 + λ 3 = 1 sujeito a : λ 1 + 3λ 2 + λ 4 = 1 λ 1 0, λ 2 0, λ 3 0, λ 4 0. (13) Pode-se aplicar o simplex em tabelas no problema acima; Lembre-se apenas que o simplex em tabelas, como visto, requer que o problema tenha uma função de minimizar. Ou seja: Minimizar g(λ) = 4λ 1 3λ 2 0λ 3 0λ 4 2λ 1 + λ 2 + λ 3 = 1 sujeito a : λ 1 + 3λ 2 + λ 4 = 1 λ 1 0, λ 2 0, λ 3 0, λ 4 0. (14) Observe que agora o modelo está na forma padrão requerida pelo simplex; Thiago Queiroz (IMTec) Aula 5 Aula 5 33 / 43
Problema dual resolvido em tabelas A ideia é considerar que o problema dual é um problema primal; A partir de agora, monta-se a tabela simplex do modelo (14), resultando em: Tabela: Tabela inicial com dados do problema dual. λ 1 λ 2 λ 3 λ 4 c -4-3 -0-0 g(λ) 2 1 1 0 1 1 3 0 1 1 Não esquecer de multiplicar o valor da função objetivo por (-1) para obter o valor que maximiza o problema dual original. Note na tabela acima que uma base viável consiste em escolher as variáveis λ 3 e λ 4, pois forma a matriz identidade; Thiago Queiroz (IMTec) Aula 5 Aula 5 34 / 43
Problema dual resolvido em tabelas Resulta na seguinte tabela simplex inicial, com as Variáveis Básica (VB): Tabela: Tabela simplex inicial. λ 1 λ 2 λ 3 λ 4 b VB -4-3 0 0 0 λ 3 2 1 1 0 1 λ 4 1 3 0 1 1 Aplicando a Fase II do simplex em tabelas, segue que: 1. O menor custo relativo é: c 1 = 4; 2. c 1 < 0, de forma que a variável λ 1 entra na base. 3. Existe a ik > 0. Observe: para i=3, tem-se 2, e para i=4, tem-se 1; 3.1. O mínimo ocorre para { 1 2 ; 1 1 }, isto é, para l=i=3; 3.2. A variável básica λ 3 sai da base; Thiago Queiroz (IMTec) Aula 5 Aula 5 35 / 43
Problema dual resolvido em tabelas Tabela: Tabela simplex inicial. λ 1 λ 2 λ 3 λ 4 b VB -4-3 0 0 0 λ 3 2 1 1 0 1 λ 4 1 3 0 1 1 4. O elemento pivô é o a ik = a 31 = 1. Realiza-se o pivotamento na coluna a k = a 1 ; 4.1. A variável λ 1 entra no lugar da variável λ 4 (que sai); Tabela: Tabela simplex iteração 1. λ 1 λ 2 λ 3 λ 4 b operação VB 0-1 2 0 2 L 1 L 1 + 4L 2 1 1 1 λ 1 1 2 2 0 2 5 λ 4 0 2 1 1 2 1 2 L 2 1 2 L 2 L 3 L 3 L 2 O processo continua até chegar em algum critério de parada... Thiago Queiroz (IMTec) Aula 5 Aula 5 36 / 43
Interpretação econômica: primal dual Figura: Interpretação econômica entre o par primal dual. Thiago Queiroz (IMTec) Aula 5 Aula 5 37 / 43
Reotimização Uma das principais aplicações do método dual simplex consiste em resolver problemas cujas soluções ótimas se tornaram infactíveis; Isto ocorre, por exemplo, depois que novas restrições são incluídas; Considere que o problema de otimização linear e seu dual (problemas originais): (Primal) sujeito a : { Minimizar z = c T x Ax = b x 0. (15) O seu dual é: (Dual) Maximizar g(λ) = b T λ sujeito a : { A T λ c (16) Considere a partição básica ótima A = [B N]. Thiago Queiroz (IMTec) Aula 5 Aula 5 38 / 43
Reotimização Tal partição está associada as soluções básicas factíveis primal e dual: solução básica primal: ˆxB = B 1 b e ˆx N =0; solução básica dual: ˆλ = (B 1 )c B ; Tais soluções são factíveis, isto é, ˆxB 0 e N T ˆλ c N, e ótimas: f(ˆx) = g(ˆλ). Nosso interesse é inserir uma nova restrição: u T x v; Esta restrição faz o modelo primal mais restrito e o dual mais relaxado. Veja na figura: Figura: Inclusão de uma nova restrição. Thiago Queiroz (IMTec) Aula 5 Aula 5 39 / 43
Reotimização Com a adição, tem-se os problemas modificados: (Primal) sujeito a : Minimizar z = c T x Ax + 0x n+1 = b u T x + x n+1 = v x 0, x n+1 0. (17) O seu dual é: (Dual) { Maximizar g(λ, λ m+1 ) = b T λ + vλ m+1 A sujeito a : T λ + uλ m+1 c 0 T λ + λ m+1 0 (18) Sendo x n+1 a variável de folga e λ m+1 a variável dual associada à nova restrição. Agora o problema primal tem m + 1 restrições e sua base tem ordem m + 1. Thiago Queiroz (IMTec) Aula 5 Aula 5 40 / 43
Reotimização Note que a solução do dual original, ˆλ, e fazendo λ m+1 = 0, satisfazem o problema dual modificado; Basta observar que ao zerar λ m+1 volta-se ao problema dual original, cuja solução ótima foi dada por ˆλ; Além disso, a solução (ˆλ, λ m+1 ) do dual modificado satisfaz com igualdade [ ] [ as restrições ] [ básicas ] duais e a nova restrição, ou seja: B T u b λ cb = ; 0 1 0 λ m+1 Adota-se u T = (u b u N ) T, sendo u T B o vetor dos coeficientes de x B na nova restrição, como também dos coeficientes de λ m+1 nas restrições duas básicas; Thiago Queiroz (IMTec) Aula 5 Aula 5 41 / 43
Reotimização Com isso, tem-se uma nova partição básica para o problema primal [ modificado: ] [ ] [ ] B 0 xb b = ; u B 1 v x n+1 Cuja solução é: ˆx B = B 1 b e ˆx n+1 = v u T B ˆx B; Como ˆx B 0 é a solução ótima do problema original, segue que: Se ˆxn+1 0, então a solução anterior é a solução factível do problema modificado, com ˆx N = 0; Note que ˆxn+1 0 é uma variável de folga que não viola a restrição original: ub T ˆx B + un T ˆx v; Portanto, a solução dos problemas originais primal e dual continuam ótimas e não é preciso reotimizar o modelo modificado; Logo, a restrição inserida está fora ou na fronteira da região factível do problema primal original. Thiago Queiroz (IMTec) Aula 5 Aula 5 42 / 43
Reotimização Por outro lado: Se ˆx n+1 < 0, então a solução básica primal não é factível, pois a nova restrição é violada: ub T ˆx B + un T ˆx > v; Este é o caso mostrado na figura anterior, em que a restrição inserida separa a região de factibilidade do problema primal original. Logo, deve-se aplicar o método dual simplex a partir da solução básica dual factível (λ, λ m+1 ) = (ˆλ, 0); Geralmente, consegue-se a nova solução ótima do problema modificado em poucas iterações. Thiago Queiroz (IMTec) Aula 5 Aula 5 43 / 43