• Nenhum resultado encontrado

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

N/A
N/A
Protected

Academic year: 2021

Share "Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana"

Copied!
55
0
0

Texto

(1)

Otimização Linear

Profª : Adriana

Departamento de Matemática adriana@fc.unesp.br

(2)

Revisão – Método Simplex

Solução básica factível:

Solução geral usando a partição básica: , xˆ xˆ xˆ N B       = ˆ 1 0 ˆ 0 B N x B b x −  =    =  em que

=

N B

x

x

x

(3)

Revisão

N T N x N 1 1 T B(B b B Nx ) c x c ) x ( f B + − = − −        N T N N 1 T B 1 T BB b c B Nx c x c − + = − − valor da solução básica associada a partição

A função objetivo f(x)=cTx considerando a partição básica:

( ) T TB TN B TB B TN N N x f x c x c c c x c x x     = =   = +   ˆ ( ) f x       = N B x x x

(4)

Revisão

Definição (vetor multiplicador simplex) é o vetor  (m  1),

também chamado de vetor das variáveis duais dado por:

1 T B − = Bc T  T B B = c

Vetor multiplicador simplex na expressão de f(x):

ˆ ( ) ( ) ( ) ( ) 1 1 N1 n m n m n m T T N N N N N f x = f x + cλ a x + + c λ a x T -1 T T T T B N N N N N N N N ˆ ˆ ˆ (x) (x) c B Nx c x (x) TNx c x ( ) ( ) f = f − + = f − + = f x + cλ N x

Custos relativos ou custos reduzidos

1

ˆ

ˆ

ˆ

ˆ

( )

( )

N1 2 2 n m n m N N N N N

f

x

=

f

x

+

c x

+

c x

+ +

c

x

j ˆ ( ) j j T N N N c = c − λ a

(5)

Revisão

Propriedade: (condição de otimalidade) Considere uma partição básica factível com solução básica factível

associada e seja vetor multiplicador

simplex.

Se , então a solução básica é ótima.

1 T B T B c − = 

B N

A = 0 b B xˆB = −1  m n , , 1 j , 0 ) c ( N N j j T  = − − λ a

“Se a condição de otimalidade for verificada, então a solução

básica é ótima”.

Caso não seja ótima ( ), perturbamos essa solução básica factível de modo a diminuir o valor da função objetivo. 0 ˆ k − = N N N T k k c c λ a

(6)

Revisão

Estratégia Simplex: perturbar soluções básicas factíveis que consiste em alterar as variáveis não-básicas por:

     − = =  = . , ,...., 2 , 1 , 0 negativo) relativo custo com (variável , 0 ε k i m n j x x N N j k

A função objetivo passa a valer:

   m n N m n k N k N N N c c c f f N − − + + + + + = x x x 0 ˆ ε ˆ 0 ˆ ) ˆ ( ) ( 1 1   x x ε ˆ ) ˆ ( N k c f + = xf (xˆ)

(7)

Revisão

Alteração nas variáveis não-básicas: k

x x x N N m n k N                  =                 = − 0 ε 0 1 N     x ε ε B B N B B b B Nx xˆ B aNk xˆ y x y -1 -1 -1 − = − = − =   

Alteração nas variáveis básicas:

Direção Simplex

Fornece os coeficientes de como as variáveis básicas são alteradas na estratégia simplex.

(8)

Revisão

Equação vetorial: xB = xˆB − y ε

Como:

como devemos ter

0  i B x ε  0 0 ε ˆ −  = B i B x y x i i i B y x i ˆ ε  Menor valor de :       =  = = y i m y x y x i i B B i ,..., 1 , 0 que tal ˆ mínimo ˆ εˆ   Tamanho do passo

então para todo 0

yi

0

yi  xBi =xˆBi −yi0

(9)

Revisão

Ao resolvermos

Nova partição:

A variável básica se anula (sair da base)

A variável não-básica torna-se positiva (entrar na base)  B xˆ k N xˆ        = =  / y 0 y xˆ min y xˆ ˆ i i B B i   k N B  ] a , , a , , [a B B B B m 1    = ] a , , a , , [a N N N N m n k 1 − =   → → ] a , , a , , [a B´ B N B m k 1   = ] a , , a , , [a N´ N B N m n 1 − =   

(10)

Método Simplex - comentários

Há uma versão do método usando tabelas,

conhecida como “Tableau”.

Estratégias para determinar partição inicial (Fase I).

Algoritmo é finito, porém pode ocorrer ciclagem.

Na análise de pior caso (complexidade de

algoritmo) é um algoritmo que pode ter um número exponencial de iterações.

Na prática, têm obtido sucesso na resolução de problemas de programação linear.

Utiliza três sistemas lineares que devem ser resolvidos de forma eficiente (LU).

(11)

Método Simplex – Exemplo

Considere o problema de otimização linear:

(12)

Exemplo

Os coeficientes das variáveis de folga formam uma matriz identidade:

Fase II: Fase I:

(13)
(14)

Exemplo

(15)

Exemplo

(16)

Método Simplex em Tabelas

Maneira prática de se trabalhar

Interessante para a compreensão do método

Não é eficiente computacionalmente

(17)

Método Simplex em Tabelas

Parâmetros necessários para resolução do problema: coeficientes de um problema de otimização linear

x1 x2 xn: variáveis

c1 c2 cn f : coeficientes da função objetivoa1 a2 an b: coeficientes das restrições

(18)

Exemplo

Na forma padrão, temos:

Matriz básica. No método por tabelas, será sempre a matriz identidade

Se todos os valores forem positivo A solução é ótima, cc, a variável mais negativa é candidata a entrar na base

Variável básica: custo relativo é zero! Se não for , então temos q torna-lo nulo. x1 x2 x3 x4 x5 b -1 -2 0 0 0 f 1 1 1 0 0 6 1 -1 0 1 0 4 -1 1 0 0 1 4

(19)

Exemplo

 Sabemos que podemos escrever cada variável

básica em função das demais variáveis (no caso, das variáveis não-básicas, x1 e x2). Como B = I, isso é feito muito facilmente:

 Basta atribuir valores às variáveis não-básicas x1 e

(20)

Exemplo

• Se fixarmos as variáveis não-básicas x1 e x2 em seus

limites, x1 = 0 e x2 = 0, então as demais variáveis têm como valores x3 = 6, x4 = 4, x5 = 4 e produzem uma solução

factível para o problema que corresponde a um vértice da região factível.

• Em uma tabela simplex, a função objetivo é sempre escrita em termos das variáveis não-básicas: f = – x1 – 2x2

x1 x2 x3 x4 x5 b

-1 -2 0 0 0 f

1 1 1 0 0 6

1 -1 0 1 0 4

(21)

Exemplo

Aumentando x1 ou x2, a função objetivo diminui.

Portanto, a solução básica:

(x1 = 0, x2 = 0, x3 = 6, x4 = 4 e x5 = 4 ) não é ótima.

Aumentar x2 e mantendo x1 = 0 , a função objetivo

diminui com uma taxa de variação –2 e quanto maior o valor de x2, menor será o valor de f.

Ao aumentar x2, o que acontece com as variáveis

(22)

Exemplo

Se x2 cresce e x1 = 0 os valores das variáveis básicas

podem aumentar ou diminuir, entretanto, deve-se preservar a não-negatividade das variáveis:

(23)

Exemplo – Solução ilimitada

 Se no caso anterior tivéssemos:

Solução ilimitada!! x1 x2 x3 x4 x5 b -1 -2 0 0 0 f 1 1 1 0 0 6 1 -1 0 1 0 4 -1 1 0 0 1 4

(24)

Exemplo

Aumentando o valor de x2 e mantendo x1 = 0 os valores das variáveis básicas podem aumentar ou diminuir.

Para preservar a não-negatividade das variáveis:

x2  6

x2  4

Para x2 = 4, x5 se anula. Temos uma nova solução:

variáveis não-básicas: x1 = 0, x2 = 4 entra na base

variáveis básicas: x3 = 2, x4 = 8 e x5 = 0 sai da base Valor da f.o.: f = 0 – 2 x2 = - 8.

Partição anterior: B = [3, 4, 5] NB = [1, 2] Nova partição: B = [3, 4, 2] NB = [1, 5]

(25)

Exemplo

 Nova base: B = [3, 4, 2] NB = [1, 5]

 As colunas da base devem formar uma identidade

entra na base sai da base Efetuar um pivotamento!!! x1 x2 x3 x4 x5 b VB -1 -2 0 0 0 f x3 1 1 1 0 0 6 x4 1 -1 0 1 0 4 x5 -1 1 0 0 1 4

(26)

Exemplo

 Nova base: B = [3, 4, 2] NB = [1, 5]

 As colunas da base devem formar uma identidade

pivô Restrição atingida

entra na base sai da base x1 x2 x3 x4 x5 b VB -1 -2 0 0 0 f x3 1 1 1 0 0 6 x4 1 -1 0 1 0 4 x5 -1 1 0 0 1 4

(27)

Exemplo

Tabela simplex – iteração 1. Variáveis básicas: x3, x4, x2

Os coeficientes das variáveis não básicas x1 e x5 são chamados de custos relativos x1 x2 x3 x4 x5 b VB -3 0 0 0 2 f + 8 x3 2 0 1 0 -1 2 x4 0 0 0 1 1 8 x2 -1 1 0 0 1 4

(28)

Exemplo

Aumentando o valor da variável x1 e x5 = 0 diminui o valor da f. o. diminui com uma taxa de variação –3.

Equações do sistema com x5 = 0

x1  1 x1 x2 x3 x4 x5 b VB -3 0 0 0 2 f + 8 x3 2 0 1 0 -1 2 x4 0 0 0 1 1 8 x2 -1 1 0 0 1 4

(29)

Exemplo

Enquanto a variável não-básica x1 = 1, a variável x3 se anula. Temos uma nova solução básica :

variáveis não-básicas: x1 = 1, x5 = 0 entra na base

variáveis básicas: x3 = 0, x4 = 8 e x2 = 5 sai da base

• Redefinindo as variáveis:

variáveis não-básicas: x3 = 0, x5 = 0

variáveis básicas: x1 = 1, x4 = 8 e x2 = 5

Partição anterior: B = [3, 4, 2] NB = [1, 5] Nova partição: B = [1, 4, 2] NB = [3, 5]

(30)

Exemplo

entra na base

sai da base

 Nova base: B = [1, 4, 2] NB = [3, 5]

 As colunas da base devem formar uma identidade

x1 x2 x3 x4 x5 b

VB -3 0 0 0 2 f + 8

x3 2 0 1 0 -1 2

x4 0 0 0 1 1 8

(31)

Exemplo

 Nova base: B = [1, 4, 2] NB = [3, 5]

 As colunas da base devem formar uma identidade

pivô Efetuar um pivotamento!!! entra na base sai da base x1 x2 x3 x4 x5 b VB -3 0 0 0 2 f + 8 x3 2 0 1 0 -1 2 x4 0 0 0 1 1 8 x2 -1 1 0 0 1 4

(32)

Exemplo

 Com essa tabela:

x1 x2 x3 x4 x5 b

VB 0 0 3/2 0 ½ f + 11

x1 1 0 ½ 0 -1/2 1

x4 0 0 0 1 1 8

(33)

Exemplo

Como essa tabela: (x3, x5) = (0, 0), (x1, x4,x2 ) = (1, 8, 5) (solução básica) e f = -11.

 Atribuindo-se valores positivos a x3 ou x5) a função

objetivo cresce, ou seja, f(x) ≥ -11 para qualquer solução factível x, o que significa que a solução atual é ótima.

Todos os custos relativos são não-negativos condição de otimalidade foi verificada!!

(34)
(35)
(36)

Base Inicial

 Para que o método simplex possa ser aplicado,

precisamos de uma solução básica factível inicial (Fase I)

 Até agora supomos que sabemos facilmente

encontrar uma base factível inicial. Isso é verdade, quando todas as restrições forem de ≤. Por exemplo:

Após a introdução das variáveis de folga:

(37)

Base Inicial

A matriz dos coeficientes das restrições agora é dada por [A I] e uma partição básica factível é dada por:

(38)

Base Inicial

 Suponha agora que as restrições são, originalmente,

de igualdade:

Precisamos encontrar uma partição básica factível de A, isto é, uma partição da forma A = [B N] tal que existe B-1 e x

(39)

Quantas partições existem?

 Seja A10 x 20

Precisamos identificar dez colunas L.I. de A para formar B, e a solução do sistema BxB = b, deve satisfazer xB ≥ 0.

 Procedimento possível:

◦ 1. Escolher dez (m) colunas e resolver o sistema. ◦ 2. Verificar se xB ≥ 0.

◦ 3. Se não, escolher outras dez colunas e retornar ao passo 2.

(40)

Quantas partições existem?

 Se formos testar partição a partição, quantos testes

temos que fazer ?

(41)

Método das duas fases

 As variáveis de folga foram úteis para a classe de

problemas:

 Se não for o caso, podemos introduzir novas

variáveis como se fossem de folga: equivalente a:

uma partição [I N] em que as variáveis de folga começam como as variáveis básicas.

(42)

Fase I

 Obviamente, essas variáveis não podem aparecer

na solução final (pois elas não existem - são variáveis artificiais).

 Método duas-fases: resolvemos primeiro um

problema:

Variáveis artificiais. Não fazem parte do problema original e devem ser

(43)

Fase I

 Se conseguimos uma solução de custo zero para o

problema acima (fase I), a base final não contém nenhuma variável artificial (por quê ?)

 Neste caso, a base final do problema da fase I é

(44)

Fase I

 E se não conseguimos uma solução de custo zero?

(Isto é, na solução ótima da fase I, existe uma variável artificial na base).

(45)

Exemplo

(46)

Qual o problema da Fase I a

resolver?

Caso A: introduzimos uma variável artificial pra

cada restrição:

(47)

Qual o problema da Fase I a

resolver?

Caso B: note que x4 já fornece uma coluna da

matriz identidade. Assim, a rigor, precisamos apenas de uma variável artificial

(48)

Fase I

 Uma vez encontrada uma solução básica em que

todas as variáveis artificiais são não-básicas, temos uma base formada por colunas originais e,

portanto, podemos aplicar o método simplex para resolver o problema original a partir dessa base.

 Método Simplex duas fases:

Fase I – resolve o problema artificial.

Fase II – resolve o problema original, a partir da base

(49)

Exemplo

• Considere o problema:

E o problema artificial definido no caso B em que apenas uma variável artificial é introduzida:

(50)

Exemplo

• Para resolver o problema artificial, aplicamos o método simplex:

(51)
(52)
(53)

Exemplo

Fase II: Aplicar o método simplex a partir da base

obtida na Fase I. A variável artificial é descartada e os índices não-básicos são redefinidos: N1 = 4, N2 = 3.

Base formada por variáveis originais do problema. A variável artificial x5 torna-se não básica. Fim da Fase I.

(54)

Método M-grande

 Em vez de resolver um problema auxiliar (Fase I)

para encontrar a base, simplesmente penalizamos as variáveis artificiais no problema original (Fase II), de modo a garantir que elas sejam nulas na solução ótima. Um objetivo alternativo para o problema artificial é:

(55)

Método M-grande

Valor suficientemente grande para garantir que x5 não aparece na solução ótima.

Referências

Documentos relacionados

Caso você apresente sinais de toxicidade para os ouvidos (enjoos, tonturas, zumbidos e diminuição da audição) ou para os rins, seu médico irá ajustar a dose ou suspender o

Ao final de nossas análises podemos dizer que o autor do evangelho de Mateus, consciente de sua posição marginal na sociedade, adota um linguajar próprio de grupos sectários

Além disso, é necessário considerar que acabo sempre tendo de contar com alunos na maior parte das vezes para preencher o segundo violino, e ainda em todas as vezes nos casos

Contextualizando com a problemática realidade das questões de sanidade e bem-estar animal encontradas na cidade de Uruguaiana, realizar o estágio no setor de Vigilância

O cromatograma da amostra PR003, apresentado na figura 3a, apresentou uma grande quantidade de picos com tempo de retenção acima de 90 minutos, diferentemente dos

4.1.6.6 Nos taludes marginais das linhas de água interiores sujeitas à influência das marés O traçado da linha limite da margem, nas águas interiores sujeitas à influência

T enho de controlar o meu namorado porque só assim consigo garantir que não deixa de gostar de mim – quando sentes medo da rejeição e dependência emocional de alguém

Neste presente estudo foi aplicado um questionário sobre a aceitação de um dos seus detergentes comparado a dois concorrentes utilizando a escala ideal , além