Otimização Linear Profª : Adriana Departamento de Matemática adriana@fc.unesp.br wwwp.fc.unesp.br/~adriana
Perguntas?? Dada uma solução básica factível (vértice de S e, portanto, candidata à solução ótima), 1) Essa solução é ótima? 2) Caso não seja ótima, como determinar uma outra solução básica factível melhor?
Pergunta 1 A solução atual é ótima? Considere uma solução básica factível: xˆ xˆ, xˆ em que xˆ 0 1 xˆ b 0 E a solução geral usando a mesma partição básica, isto é: x x x Qual o valor desta solução geral??
Pergunta 1 A função objetivo f(x)=c x pode ser expressa considerando a partição básica: coeficientes das variáveis básicas na função objetivo x f ( x) c x c c c x c x x f (x) c x x x 1 ( b x x 1 ) c coeficientes das variáveis não-básicas na função objetivo x c 1 b c 1 x c x valor da solução básica associada a esta partição: f ( xˆ )
Vetor Multiplicador Simplex c b 1 corresponde ao valor da função objetivo em ˆx f ( xˆ ) c xˆ c xˆ c ( b) c ( 0) = c ( b) 1 1 1 f ( xˆ ) c xˆ c xˆ c ( b) c ( 0) c b 1 Definição (vetor multiplicador simplex) é o vetor (m 1), também chamado de vetor das variáveis duais dado por: c 1 c 1 1 c c c
Vetor Multiplicador Simplex Vetor multiplicador simplex na expressão de f(x): f (x) f (x) ˆ c x c x f (x) ˆ x c x -1 f xˆ c λ x ( ) ( ) Expressando por colunas: (,,, ) c λ ( a, a,, a ) c c c 1 2 nm 1 2 nm (,,, ) x (,,, ) c λ a c λ a c 1 1 2 2 n λ a m n m x x x 1 2 n m f ( x) f ( xˆ ) ( c λ a ) x ( c λ a ) x ( c λ a ) x 1 1 1 2 2 2 nm nm nm
Custos Relativos f ( x) f ( xˆ ) ( c λ a ) x ( c λ a ) x 1 1 1 nm nm nm cˆ ( c λa ) j j j Custos relativos ou custos reduzidos Reescrevendo f(x): f( x) f( xˆ ) cˆ x cˆ x cˆ x 1 1 2 2 nm nm
Exemplo Considere o problema de otimização linear Forma padrão
Exemplo Intersecção das retas: x 1 + x 2 = 4 e x 1 = 3
Exemplo x 1 + x 2 = 4 (variável de folga associada: x 3 ) x 1 = 3 (variável de folga associada: x 4 ) Logo, o vértice (solução básica) deve ser obtido com a partição: = (1, 2, 5) = (3, 4)
Exemplo Atribuindo zero às variáveis não-básicas: x 3 = x 4 = 0 odos positivos: solução básica factível.
Exemplo n-m variáveis não-básicas = ( 1, 2, 3 ) = (1, 2, 5) = ( 1, 2 ) = (3, 4) m variáveis básicas
Cálculo dos custos relativos cˆ ( c λ a ) j j j OU c
Cálculo dos custos relativos Como OU
Cálculo dos custos relativos
Condição de Otimalidade Propriedade: (condição de otimalidade) Considere uma partição básica factível A com solução básica 1 1 factível associadaxˆ e seja o vetor b 0 c multiplicador simplex. Se (c λ a ) 0, j1,,n m então a solução básica é j j ótima. Se a condição de otimalidade for verificada, então a solução básica é ótima.
Perguntas 1) Essa solução é ótima? Condição de otimalidade!!! 2) Caso não seja ótima, como determinar uma outra solução básica factível melhor?
A solução não é ótima... Resposta à segunda pergunta: como determinar uma solução básica factível melhor?? Supondo que a solução atual não seja ótima (a condição de otimalidade está violada), isto é, suponha que exista k tal que: cˆ c λ a 0 * Problemas de minimização k k Perturbamos essa solução básica factível de modo a diminuir o valor da função objetivo. k Essa estratégia é o fundamento do Método Simplex
Exemplo
Exemplo ( = -1 = I)
Cálculo dos custos relativos cˆ e cˆ 1 2 são negativos e não satisfazem a condição de otimalidade.
Estratégia Simplex cˆ k c k λ a k 0 Perturbamos essa solução básica factível de modo a diminuir o valor da função objetivo. Estratégia Simplex: perturbar soluções básicas factíveis que consiste em alterar as variáveis não-básicas por: x x k j ε 0, 0, (variávelcom custo relativo negativo) j 1,2,..., n m, i k. Em outras palavras, apenas uma variável não-básica deixa de ser nula. Essa estratégia é o fundamento do Método Simplex
Estratégia Simplex - resultado na função objetivo x x k j ε 0, 0, (variávelcomcustorelativo negativo) j 1,2,..., n m, i k. A função objetivo passa a valer: f ( x) f (ˆ) x cˆ 0 cˆ k ε ˆ nm 0 c 1 x 1 f x ˆ) cˆ ε f (xˆ ) ( k x k x nm
Estratégia Simplex - resultado na função objetivo A função objetivo decresce quando cresce, a uma taxa ĉ k Quanto menor o valor de c k Ƹ, mais rápido a função objetivo decresce. Isso justifica a escolha da variável não-básica a ser perturbada com o menor custo relativo Regra de Dantzig
Direção Simplex e amanho do Passo Qual o tamanho do passo? Mudando as variáveis não-básicas, as variáveis básicas também são alteradas, de modo que o sistema Ax = b seja satisfeito. Alteração nas variáveis não-básicas é: k x x x m n k 0 ε 0 1 x ε ε k y xˆ a xˆ x b x y -1-1 -1 As variáveis básicas são modificadas por: Direção Simplex
Direção Simplex e amanho do Passo -1 Direção Simplex: é o nome dado ao vetor y a k, o qual fornece os coeficientes de como as variáveis básicas são alteradas na estratégia simplex. A direção simplex é a solução do sistema de equações lineares y. a k
Direção Simplex e tamanho do Passo Reescrevendo a equação vetorial: x xˆ y ε Considerando a não-negatividade das variáveis básicas: y i 0 então x 0 para todo ε 0 i x xˆ 0 y i 0como x y 0 i i xˆ i i y i i ε devemos ter ε ˆ x i y i εˆ Logo, o menor valor de é dado por: xˆ xˆ mínimo i tal que yi 0, i 1 m y y,..., i amanho do passo
amanho do Passo Se no cálculo do passo, todos os y i 0...... 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. Disso concluímos que o problema não tem solução ótima (a solução ótima será ilimitada!)
Exemplo (obtida para x i =0) 1 xˆ b
Exemplo A solução é ótima? Multiplicador Simplex: Solução do sistema = c ou : Custos relativos: k = 1 (x 1 é alterada pela estratégia simplex)
Exemplo A direção simplex indica a maneira como as variáveis básicas se modificam, ao aumentar uma dada variável não-básica (no caso, 1 = 1) x 3 = 4 - x 4 = 3 - x 5 = 7/2 Qual o valor máximo para??
Exemplo amanho do passo:
Atualização Ao resolvermos Determinamos qual variável básica vai se anular (sair da base) Isso sugere uma nova partição! A variável básica xˆ se anula (sair da base) A variável não-básica xˆ k torna-se positiva (entrar na base) De fato, -ésima variável básica: k - ésima variável não-básica: xˆ xˆ i ˆ min / yi 0 y yi x xˆ x k ˆ ˆ xˆ y xˆ y 0
Atualização ova partição básica, com a troca de índices: k
Atualização Isto significa que as matrizes básicas e não-básicas são alteradas por apenas uma coluna: [a [a 1,,a,,a,,,, a a m 1 k nm ] ] [a,,a,, a 1 [a,,a,, a k m ] 1 nm ] eorema: A matriz, definida anteriormente, é invertível, de modo que A = [ ] é uma nova partição básica. Pode-se mostrar as colunas de são linearmente independentes (invertível).
Atualização Com isso mostramos que a estratégia simplex produz uma solução básica factível (novo vértice), para o qual a função objetivo tem um valor menor. f ( x) f ( xˆ) cˆ εˆ f ( xˆ) k Podemos repetir o procedimento, isto é, encontrar outra solução básica melhor a partir daquela em mãos, enquanto a condição de otimalidade não for verificada.
Graficamente, no exemplo Índice da variável não-básica escolhida para entrar ( 1 = 1) (escolhemos aquela com menor custo relativo) Índice da variável básica escolhida para sair ( 2 = 4) (escolhemos aquela que primeiro se anulava ao aumentarmos.) ova partição: = (3,1,5) =(4,2)
Algoritmo Simplex Supomos que temos uma partição básica factível já determinada. Em alguns casos, será necessário efetuar alguns procedimentos para obtê-la
Algoritmo
Algoritmo
Exercício Seja o exemplo: