Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf ·...

24
Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação matemática seja caracterizado como de programação não-linear, ele deve apresentar uma função objetivo não linear, ou pelo menos uma das restrições caracterizada por uma função não linear. Os problemas de programação linear podem ser classificados, de acordo com o número de variáveis e restrições em: a) Problemas mono-variados sem restrição x x x x f Min 12 3 2 ) ( 4 6 - + = b) Problemas multi-variados sem restrição 2 1 2 2 2 2 1 2 1 2 2 2 ) , ( x x x x x x x f Min - - + = c) Problemas mono-variados com restrição 2 0 : . ) 4 ln( ) 2 ( 3 ) ( 2 2 2 2 + + - = x a s x x x x f Min d) Problemas multi-variados com restrição j x s r k x f s r q f a s dw w c x x x z Min j rs k j j j rs k k rs rs k j x j n j = = = 0 , , , : . ) ( ) ,..., , ( , 0 2 1 δ Condições de otimalidade Para que uma solução seja considerada ótima para um problema de programação não-linear, ela deverá satisfazer um conjunto de condições atribuídas a Karush, Kuhn e Tucker. Tais condições, são também conhecidas por condições de KKT. Seja o problema de otimização não linear definido como: ) ( ,..., 1 0 ) ,..., , ( : . ) ,..., , ( 2 1 2 1 i n i n u m i x x x g a s x x x f z Min = = onde ) ,..., , ( 2 1 n x x x f e ) ,..., , ( 2 1 n i x x x g são funções diferenciáveis em cada uma das variáveis n j x j ,..., 1 , = , e seja i u um escalar associado a restrição ) ,..., , ( 2 1 n i x x x g . Então,

Transcript of Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf ·...

Page 1: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Problemas de Programação Não-Linear

Tipos de problemas

Para que um problema de programação matemática seja caracterizado como de programação não-linear, ele deve apresentar uma função objetivo não linear, ou pelo menos uma das restrições caracterizada por uma função não linear. Os problemas de programação linear podem ser classificados, de acordo com o número de variáveis e restrições em:

a) Problemas mono-variados sem restrição

xxxxfMin 1232)( 46 −+=

b) Problemas multi-variados sem restrição

21222

2121 222),( xxxxxxxfMin −−+=

c) Problemas mono-variados com restrição

20:.

)4ln()2(3)(2

222

≤≤

++−=

xas

xxxxfMin

d) Problemas multi-variados com restrição

jx

srkxf

srqfas

dwwcxxxzMin

j

rs

kj

j

j

rs

k

k

rs

rs

k

j

x

jn

j

∀≥

∀=

∀=

=

∑∫

0

,,

,:.

)(),...,,(

,

021

δ

Condições de otimalidade

Para que uma solução seja considerada ótima para um problema de programação não-linear, ela deverá satisfazer um conjunto de condições atribuídas a Karush, Kuhn e Tucker. Tais condições, são também conhecidas por condições de KKT.

Seja o problema de otimização não linear definido como:

)(,...,10),...,,(:.

),...,,(

21

21

ini

n

umixxxgas

xxxfzMin

=∀≤

=

onde ),...,,( 21 nxxxf e ),...,,( 21 ni xxxg são funções diferenciáveis em cada uma das variáveis

njx j ,...,1, =∀ , e seja iu um escalar associado a restrição ),...,,( 21 ni xxxg . Então,

Page 2: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

),...,,( **2

*1

*nxxxx = pode ser uma solução ótima para o problema de programação não-linear

acima, somente se existem m números muuu ,..., 21 (conhecidos pelo nome de multiplicadores

de Lagrange) que satisfaçam todas as seguintes condições:

a) 0)()(1

** =∇+∇ ∑=

m

i

ii xguxf

b) mixgu ii ,...,10)( * =∀=

c) miui ,...,10 =∀≥

d) *( ) 0 1,...,ig x i m≤ ∀ =

Se além destas condições a função ),...,,( 21 nxxxf é convexa e o conjunto de soluções viáveis

definido pelas restrições 0),...,,( 21 ≤ni xxxg é convexo, então ),...,,( **2

*1

*nxxxx = é o mínimo

global ou solução ótima do problema.

Na figura abaixo é ilustrada a condição de otimalidade para um problema de programação não linear, onde a solução ótima é Sx ∈* . Note-se que existem multiplicadores 1u e 2u positivos,

e 03 =u para os quais as quatro condições de KKT são satisfeitas. Além disto, a função

objetivo representada pelas curvas de nível tracejadas (verde) e o conjunto solução definido pelo poliedro (azul) são convexas.

f∇

1g∇

2g∇

1x

2x

f∇−

01 ≤g 02 ≤g

03 ≤g

*x

S

Definição

Uma função ),...,( 1 nxxf é convexa se, e somente se, para quaisquer dois pontos

distintos, ),...,( 1 nxx ′′ e ),...,( 1 nxx ′′′′ , tem-se:

),...,()1(),...,()],...,()1(),...,([ 1111 nnnn xxfxxfxxxxf ′′′′−+′′≤′′′′−+′′ λλλλ

Page 3: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

para todo escalar 10 ≤≤ λ .■

A convexidade de uma função f também poderá ser verificada através da sua matriz hessiana )(xH que deverá ser semidefinida positiva, isto é, deverá satisfazer a seguinte condição:

0)( ≥vxHvT

[ ] 0

...

...

............

...

...

...2

1

2

2

2

2

1

2

2

2

22

2

12

2

1

2

21

2

21

2

21 ≥

∂∂

∂∂

∂∂

∂∂

∂∂

∂∂

n

nnn

n

n

n

v

v

v

x

f

xx

f

xx

f

xx

f

x

f

xx

f

xx

f

xx

f

x

f

vvv

para qualquer vetor [ ]n

T vvv ...21=v , situação em que a função é convexa. Se esta

condição é satisfeita com desigualdade, então a função é dita ser estritamente convexa.

Definição

Um conjunto solução S é convexo se, e somente se, para quaisquer dois pontos

distintos Sxx n ∈′′ ),...,( 1 e Sxx n ∈′′′′ ),...,( 1 e para todo escalar 10 ≤≤ λ , tem-se que:

Sxxxx nn ∈′′′′−+′′ ),...,()1(),...,( 11 λλ ■

A intersecção de conjuntos convexos também é um conjunto convexo.

Para o caso particular de problemas que não possuem restrições, as condições de KKT se resumem a condições de otimalidade bem conhecidas:

Problemas multi-variados sem restrição: sem restrições, as condições (b), (c) e (d) de KKT não existem, e a condição (a) é simplificada para:

0)( * =∇ xf

Problemas mono-variados sem restrição: simplificando ainda mais, para problemas mono-variados tem-se:

0)( *

=dx

xfd

e neste caso em particular a convexidade da função f poderá ser confirmada se:

0)(

2

2

≥dx

xfd

Page 4: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Exemplo

Determinar a solução ótima para o seguinte problema de programação não-linear:

0

0

32:.

2

1

21

221

≤+

+

x

x

xxas

xxMax

Colocando este problema na forma padrão de um NLP, e associando os respectivos multiplicadores lagrangeanos, tem-se:

)(0

)(0

)(032:.

32

21

121

221

ux

ux

uxxas

xxMin

≤−

≤−

≤−+

−−

e construindo as condições de KKT:

a)

=

+

+

+

0

0

1

0

0

1

1

2

1

2

321

1

uuu

x

ou

=−+−

=−+−

01

022

31

211

uu

uux

b)

=−

=−

=−+

0][

0][

0]32[

23

12

211

xu

xu

xxu

c)

0

0

0

3

2

1

u

u

u

d)

≤−

≤−

≤−+

0

0

032

2

1

21

x

x

xx

Buscando soluções para o sistema de KKT, tem-se:

a) Se )0;0;0();;( 321 =uuu tem-se sistema incompatível;

b) Se )0;0;0();;( 221 =xuu tem-se )1;0();( 31 −=ux que é inviável;

c) Se )0;0;0();;( 131 =xuu tem-se sistema incompatível;

d) Se )0;0;0()32;;( 2132 =−+ xxuu tem-se )1;1;1();;( 121 =uxx ;

Page 5: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

e) Se )0;0;0();;( 211 =xxu tem-se )1;0();( 32 −=uu que é inviável;

f) Se )0;0;0()32;;( 2122 =−+ xxxu tem-se )2

1;

2

3;

2

3();;( 311 =uux ;

g) Se )0;0;0()32;;( 2113 =−+ xxxu tem-se )2;1;3();;( 212 =uux ;

h) Se )0;0;0();;32( 2121 =−+ xxxx tem-se sistema incompatível.

As soluções correspondentes às tentativas 4, 6 e 7, apresentadas acima, são pontos que satisfazem as condições de KKT. Verificando a convexidade da função objetivo tem-se:

[ ] 21

2

1

21 )(2

00

02

v

v

v

vv −=

que é negativo para qualquer valor de 1v , e portanto a função não é convexa, e em princípio nada se pode afirmar a respeito das soluções encontradas. Entretanto, da análise do conjunto de soluções viáveis, conclui-se que se trata de um poliedro convexo compacto (pode ser inscrito em uma “bola” de dimensão finita). Dado esta particularidade, existe ponto de ótimo global, que deve ser uma das soluções pesquisadas acima. Verificando valor da função objetivo em cada caso, conclui-se que a solução )0;2;1;3;0();;;;( 32121 =uuuxx é a solução

desejada, e o valor da função objetivo correspondente é 3.

Exercício proposto 1

Aplique as condições de KKT para encontrar a projeção de um ponto fixo P , de coordenadas ),...,,( 21 nppp sobre um conjunto convexo definido por:

},...,1,0|),...,,{( 21 njbxxxxS jjn =∀≤≤=

Considere a projeção de P sobre o conjunto S , como sendo o ponto de coordenada Sxxx n ∈),...,,( 21 mais próximo de P . Construa um algoritmo a partir do que você pode

observar.

Page 6: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Métodos de Busca Mono-Variados

Método de Newton

Em matemática, a série de Taylor (de Brook Taylor) de uma função f infinitamente diferenciável é a série de potências dada por:

∑∞

=

−=0

)(

)(!

)()(

n

nn

axn

afxf

onde, !n é o fatorial de n e )()( af n denota a n -ésima derivada de f no ponto a . Se 0=a , a série também é chamada de Série de Maclaurin (de Colin Maclaurin). Com essa ferramenta, podem ser moldadas funções trigonométricas, exponenciais e logarítmicas em polinômios. Com base nesta expansão de funções em série, Newton propôs o seguinte método de busca mono-variado sem restrições.

Dado uma função convexa )(xf e um ponto inicial 0x , expande-se a função em uma função

quadrática, através da série de Taylor.

)()(21

)()()()( 02

0000 xfxxxfxxxfxf ′′−+′−+=

Derivando a expressão acima em relação à variável x , e igualando a zero, tem-se:

0)()()()( 000 =′′−+′= xfxxxfxfdx

d ou

)(

)(

0

00

xf

xfxx

′′

′−= ,

que é uma aproximação do ponto de mínimo, considerando que a função original foi substituida por uma série de Taylor de segunda ordem. O método consiste, então, em repetir o processo, tomando como ponto inicial o valor do último x calculado. Em outras palavras, calcula-se:

)(

)(1

n

nnn

xf

xfxx

′′

′−=+

até que ε≤−+ nn xx 1 .

Exemplo

xxxxfMin 1232)( 46 −+=

Derivada primeira: 121212)( 35 −+=′ xxxf

Derivada segunda: 24 3660)( xxxf +=′′

Page 7: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

n nx )( nxf )( nxf ′ )( nxf ′′

0 1,500 19,969 119,625 384,750

1 1,189 -2,618 36,701 170,851

2 0,974 -7,278 9,631 88,230

3 0,865 -7,863 1,585 60,551

4 0,839 -7,884 0,073 55,060

5 0,838 -7,884 0,000 54,794

6 0,838 -7,884 0,000 54,793

Na figura abaixo é ilustrada a condição de otimalidade para um problema de programação não linear, onde a solução ótima é Sx ∈* . Note-se que existem multiplicadores 1u e 2u positivos,

e 03 =u para os quais as quatro condições de KKT são satisfeitas.

-20

-10

0

10

20

30

40

50

-1,5 -1,0 -0,5 0,0 0,5 1,0 1,5

Método da Biseção ou de Bolzano

Dado uma função convexa )(xf , e sua derivada primeira )(xf ′ , e um intervalo de busca ],[ ba , calcula-se o ponto médio 2/)( bac += , e o valor da derivada )(cf ′ neste ponto médio.

Então, se:

0)( >′ cf descarta-se ],[ bc , pois o ponto de mínimo se encontra em ],[ ca ;

0)( <′ cf descarta-se ],[ ca , pois o ponto de mínimo se encontra em ],[ cb .

De fato, este método não deveria ser caracterizado como sendo aplicado a problemas sem restrições, visto que a busca se restringe a um intervalo inicial, isto é, bxa ≤≤ , que de fato é uma restrição. A idéia central do método é reduzir o intervalo pela metade a cada iteração, garantindo que a solução ótima desejada não se encontra na parte descartada, como mostra a figura abaixo. Todos os métodos baseados nesta idéia, são também conhecidos como métodos

de redução intervalar.

Page 8: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Exemplo

xxxxfMin 1232)( 46 −+=

Derivada primeira: 121212)( 35 −+=′ xxxf

Intervalo de busca: ]5.1;5.1[ +−∈x

n a b c )(cf )(cf ′

0 -1,500 1,500 0,000 0,000 -12,000

1 0,000 1,500 0,750 -7,695 -4,090

2 0,750 1,500 1,125 -4,640 26,710

3 0,750 1,125 0,938 -7,575 6,578

4 0,750 0,938 0,844 -7,883 0,340

5 0,750 0,844 0,797 -7,841 -2,072

6 0,797 0,844 0,820 -7,876 -0,919

7 0,820 0,844 0,832 -7,883 -0,303

8 0,832 0,844 0,838 -7,884 0,015

9 0,832 0,838 0,835 -7,884 -0,145

10 0,835 0,838 0,836 -7,884 -0,065

11 0,836 0,838 0,837 -7,884 -0,025

12 0,837 0,838 0,838 -7,884 -0,005

13 0,838 0,838 0,838 -7,884 0,005

14 0,838 0,838 0,838 -7,884 0,000

Note-se que a cada iteração é necessário calcular apenas o valor da função derivada, em um ponto, o que de fato faz com que o custo computacional seja muito baixo, especialmente nos casos em que o cálculo da função derivada é mais fácil de ser realizado que da própria função original.

Método da Secção Aurea

O método da secção aurea é apropriado para determinar o ponto de mínimo em funções convexas, quando a função derivada é desconhecida ou pode não ser definida em todo intervalo de busca. O método baseia-se na proporção aurea utilizada pelos arquitetos gregos e pintores renascentistas em suas obras. Esta proporção, definida pela constante 1,61803...=ϕ , possui propriedades matemáticas interessantes. E pode ser obtida de diversas formas:

Page 9: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

a) 2

51+=ϕ

b) ...1111 ++++=ϕ

c) 1

lim−

∞→=

n

n

n F

Fϕ , onde ),,...,13,8,5,3,2,1,1( 1 nn FF − é a sequencia de Fibonacci.

Os gregos a utilizavam por razões de modularização. Na figura ao lado, se escolhermos valores de a e b tais que ϕ=ba / , então a proporção também se mantém na relação

aba /)( + , isto é, ϕ=+ aba /)( . Esta propriedade pode ser utilizada para construir uma sequencia de reduções intervalares eficientes, onde a cada redução de intervalo a função objetivo é avaliada uma única vêz.

O método da secção aurea calcula dois novos pontos, 1x e 2x , inseridos no intervalo corrente ],[ ul , como segue:

ϕ

)(1

luux

−−= e

ϕ

)(2

lulx

−+=

Para estes dois pontos são calculados os valores da função, )( 1xf e )( 2xf , e a seguinte comparação é realizada:

Se )()( 21 xfxf < mantém-se o intervalo ],[ 2xl ;

Se )()( 21 xfxf > mantém-se o intervalo ],[ 1 ux ;

Ao aplicar novamente o procedimento de redução intervalar, um dos novos pontos calculados coincide com um dos pontos calculados na redução anterior, e para este o valor da função já foi calculado, como mostra a figura abaixo.

Exemplo

xxxxfMin 1232)( 46 −+=

Intervalo de busca: ]5.1;5.1[ +−∈x

Page 10: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

n l u 1x 2x )( 1xf )( 2xf

0 -1,500 1,500 -0,354 0,354 4,300 -4,198

1 -0,354 1,500 0,354 0,792 -4,198 -7,830

2 0,354 1,500 0,792 1,062 -7,830 -6,053

3 0,354 1,062 0,625 0,792 -6,920 -7,830

4 0,625 1,062 0,792 0,895 -7,830 -7,787

5 0,625 0,895 0,728 0,792 -7,595 -7,830

6 0,728 0,895 0,792 0,831 -7,830 -7,883

7 0,792 0,895 0,831 0,856 -7,883 -7,875

8 0,792 0,856 0,816 0,831 -7,872 -7,883

9 0,816 0,856 0,831 0,841 -7,883 -7,884

10 0,831 0,856 0,841 0,846 -7,884 -7,882

11 0,831 0,846 0,837 0,841 -7,884 -7,884

12 0,831 0,841 0,835 0,837 -7,884 -7,884

13 0,835 0,841 0,837 0,838 -7,884 -7,884

14 0,835 0,838 0,836 0,837 -7,884 -7,884

15 0,836 0,838 0,837 0,838 -7,884 -7,884

16 0,837 0,838 0,838 0,838 -7,884 -7,884

O método de Fibonacci é uma variante do método da seção aurea, no qual a fração descartada é calculada pela proporção existente entre números sucessivos da sequencia de Fibonacci ao invés de utilizar a constante ϕ . Em situações onde a variável do problema precisa ser inteira, a escolha deste método pode trazer benefícios, caso o intervalo inicial seja apropriadamente escolhido levando em consideração os números da seqüência.

Método de Armijo

É um dos métodos mais simples e que não requer que a função seja convexa. O método de Armijo baseia-se na busca sucessiva do tamanho do passo a ser dado na direção de decréscimo da função. Na k -ésima iteração, a partir de um ponto inicial kx , escolhe-se um

passo de tamanho s , e se sxk + não conduzir a um valor de f melhor, o passo é reduzido

sucessivamente por um fator 10 << β , definido a priori, até que a seguinte condição seja satisfeita, para o menor valor inteiro não negativo de n :

)()()( k

n

k

n

k xfsxfsxf ′+≤+ βαβ (1)

Na expressão acima, 10 << α é escolhido arbitrariamente; este fator é usado para obter-se um reta secante da função, no ponto kx , como mostra a figura abaixo. Note-se que, quando a

condição (1) for satisfeita, há garantias de que a função no ponto sx n

k β+ é melhor que em

kx . Então, faz-se sxxn

kk β+=+1 , e tomando-se este como ponto inicial da iteração 1+k ,

repete-se o processo até que ε≤−+ kk xx 1 , onde ε é um valor de precisão numérica, também

escolhido a priori.

Page 11: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Exemplo

xxxxfMin 1232)( 46 −+=

Derivada primeira: 121212)( 35 −+=′ xxxf

Parâmetros: 7,0=α

6,0=β

001,0=ε

)(xfs ′−=

k kx )( kxf )( kxf ′ s n sx n

k β+ )( sxf n

k β+ )()( k

n

k xfsxf ′+ αβ

0 -1,500 55,969 -143,625 143,625 13 -1,312 34,870 37,110

1 -1,312 34,870 -85,850 85,850 12 -1,126 22,387 23,639

2 -1,126 22,387 -50,787 50,787 11 -0,941 15,042 15,837

3 -0,941 15,042 -30,875 30,875 10 -0,755 10,397 11,007

4 -0,755 10,397 -20,092 20,092 7 -0,192 2,310 2,487

5 -0,192 2,310 -12,088 12,088 5 0,748 -7,686 -5,644

6 0,748 -7,686 -4,174 4,174 9 0,790 -7,825 -7,809

7 0,790 -7,825 -2,395 2,395 9 0,814 -7,869 -7,866

8 0,814 -7,869 -1,237 1,237 9 0,827 -7,881 -7,880

9 0,827 -7,881 -0,596 0,596 9 0,833 -7,883 -7,883

10 0,833 -7,883 -0,277 0,277 9 0,835 -7,884 -7,884

11 0,835 -7,884 -0,126 0,126 9 0,837 -7,884 -7,884

12 0,837 -7,884 -0,057 0,057 9 0,837 -7,884 -7,884

Método das Penalidades

Dado uma função convexa )(xf e um conjunto de restrições do tipo 0)( ≥xgi , mi ,...,1=∀

aplica-se a seguinte transformação:

Page 12: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

{ }2)](;0[min)( ∑ ⋅+

i

ii xgPxfMin

Com isto, o problema que era restrito passa a ser tratado como um problema sem restrições. Aplica-se, então, algum método de busca monovariado sem restrições. Note-se que o fator de penalidade iP é aumentada gradativamente, de modo a tornar a penalização fora da área de

viabilidade cada vez maior, sendo que para cada valor de iP , uma nova busca é realizada, de

modo a encontrar uma nova aproximação para a solução ótima. Quando entre duas iterações sucessivas deste método, já não houver diferença significativa no valor da solução, termina-se a busca.

Exemplo

xxxxfMin 1232)( 46 −+=

25,0:. 2 ≤xas

Problema transformado pelo método de penalidades

2246 )}25,0;0{min()1232()( +−⋅+−+= xPxxxxfMin ipenal

k kx iP 1+kx )( 1+kpenal xf )( 1+kxf

0 0,000 0 0,838 -7,884 -7,884

1 0,838 1 0,812 -7,699 -7,867

2 0,812 10 0,689 -6,873 -7,379

3 0,689 100 0,542 -6,003 -6,196

4 0,505 1000 0,505 -5,806 -5,831

5 0,501 10000 0,501 -5,784 -5,786

6 0,500 100000 0,500 -5,782 -5,782

7 0,500 1000000 0,500 -5,781 -5,781

-10,00

-5,00

0,00

5,00

10,00

15,00

20,00

25,00

-1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 2,0

P=1000 P=100 P=10 P=1

Page 13: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Método das Barreiras

Dado uma função convexa )(xf e um conjunto de restrições do tipo 0)( ≥xgi , mi ,...,1=∀

aplica-se a seguinte transformação:

)()(

xg

PxfMin

i

i

i

∑+

Com isto, dado uma solução inicial viável 0x , o problema que era restrito passa a ser tratado

como um problema sem restrições. Então, o método realiza a busca resolvendo o problema transformado para valores de iP , sucessivamente decrescentes, até que em duas iterações

seguidas não existam diferenças significativas no valor da solução.

Exemplo

xxxxfMin 1232)( 46 −+=

25,0:. 2 ≤xas

Problema transformado pelo método de barreiras

246

25,0)1232()(

x

PxxxxfMin i

−+−+=

k kx iP 1+kx )( 1+kpenal xf )( 1+kxf

0 0,000 1 0,230 2,322 -2,752

1 0,230 0,1 0,405 -3,607 -4,776

2 0,405 0,01 0,469 -5,129 -5,463

3 0,469 0,001 0,490 -5,578 -5,681

4 0,490 0,0001 0,497 -5,717 -5,749

5 0,497 0,00001 0,499 -5,761 -5,771

6 0,499 0,000001 0,500 -5,775 -5,778

7 0,500 0,0000001 0,500 -5,779 -5,780

-10,00

-5,00

0,00

5,00

10,00

15,00

20,00

25,00

-1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 2,0

Page 14: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Métodos de Busca Multi-Variados

Método do Gradiente

Dado uma função convexa diferenciável ),...,,( 21 nxxxfz = e um ponto ),...,,( 21k

n

kkk xxxx = ,

determina-se um novo ponto:

)(1 kkk xfxx ∇⋅−=+ α

onde α é obtido de forma que:

)]([ kk xfxfMinz ∇⋅−= αα

Exemplo

22

21 )2()3(2)( ++−= xxxfMin

+

=∇

)2(2

)3(4

)(

2

1

x

x

xf

Ponto Gradiente Novo Ponto k

kx1 kx2

),( 21kk xxz

kx1 kx2

α 1

1+kx

12

+kx

),( 12

11

++ kk xxz

0 0,00 0,00 22,00 -12,00 4,00 0,26 3,12 -1,04 0,95

1 3,12 -1,04 0,95 0,48 1,92 0,49 2,88 -1,98 0,03

2 2,88 -1,98 0,03 -0,46 0,04 0,28 3,01 -1,99 0,00

3 3,01 -1,99 0,00 0,06 0,02 0,31 3,00 -2,00 0,00

Método de Newton

Dado uma função ),...,,( 21 nxxxfz = , convexa e duas vezes diferenciável, e um ponto

),...,,( 21k

n

kkk xxxx = , determina-se um novo ponto:

dxx kk ⋅+=+ α1

onde α é obtido de forma que:

][ dxfMinz k ⋅+= αα

e d é uma direção de busca descendente obtida como segue:

)()(1 kk xfxHd ∇⋅−= −

Page 15: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Observações

Se ),...,,( 21 nxxxf é uma função quadrática, então o método de Newton converge em

uma iteração, e o valor de α , na busca uni-direcional é igual a 1;

Este método é interessante quando nos encontramos próximo ao ponto de mínimo,

onde toda função tende a de comportar como uma função quadrática.

Exemplo

22

21 )2()3(2)( ++−= xxxfMin

=

0

00x

+

=∇

)2(2

)3(4

)(

2

1

x

x

xf

=

20

04

)(xH

=−

50,00

025,0

)(1 xH

Solução

=∇

4

12

)( 0xf

=

−=

2

3

4

12

50,00

025,0

d

⋅+

=+=

2

3

0

001 αα dxx

O mínimo da função ][ 0 dxf ⋅+α é obtido com 1=α . Então:

=

2

31x ⇒

=

+−

=∇

0

0

)22(2

)33(4

)(xf

o que confirma que se trata de um ponto de ótimo local.

Page 16: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Método das Direções Viáveis

Dado uma função ),...,,( 21 nxxxfz = , e um conjunto de restrições ini bxxxg ≥),...,,( 21 ,

convexas e diferenciáveis, e um ponto ),...,,( 21k

n

kkk xxxx = , determina-se um novo ponto:

dxx kk ⋅+=+ α1

onde α é obtido de forma que

][ dxfMinz k ⋅+= αα

i

k

i bdxgas ≥⋅+ )(:. α

e d é uma direção de busca viável, obtida através da solução do seguinte problema de programação linear:

dxfMin k ⋅∇ )(

Iidxgas k

i ∈∀≥⋅∇ 0)(:.

njd j ,...,111 =∀≤≤−

onde I é o conjunto de índices correspondentes às restrições ativas no ponto kx , isto é, { }i

k

i bxgiI == )(| .

Método das Combinações Convexas (Frank-Wolfe)

Dado uma função ),...,,( 21 nxxxfz = , não-linear, convexa e diferenciável, e um conjunto

compacto de restrições lineares, isto é:

),...,,( 21 nxxxfzMin =

mibxaas ij jij ,...,1:. =∀≤⋅∑

njx j ,...,10 =∀≥

e um ponto ),...,,( 21k

n

kkk xxxx = , resolve-se o seguinte PPL:

k

jjj

k

yx

xfMin ⋅

∂∑

)(

mibyaasj i

k

jij ,...,1:. =∀≤⋅∑

njyk

j ,...,10 =∀≥

Page 17: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Com a resolução do PPL acima, obtém-se a solução ótima ),...,,( 21k

n

kkk yyyy = . Assim, um

novo ponto pode ser obtido através da seguinte expressão:

)(1 kkkk xyxx −⋅+=+ α

onde α é obtido de forma que

)]([10

kkk xyxfMinz −⋅+=≤≤

αα

Note-se que neste método de busca, a direção de caminhamento a cada iteração é dada por kkk xyd −= , que é uma direção de melhoramento viável no ponto kx .

Page 18: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Problema Prático Nº 1

Dado o problema abaixo:

Min ( ) ( )22

21 344 −+−= xxz

s.a: x x1 22 4+ ≤

x1 2≤

determine se os seguintes pontos satisfazem as condições de Karush-Kuhn-Tucker:

a) ( ) ( )x x1 2 2 1, ,=

b) ( )x x1 2 13

2, ,=

c) ( ) ( )x x1 2 4 3, ,=

Encontre a solução ótima para o problema acima, usando os seguintes métodos numéricos:

a) método das combinações convexas;

b) método das penalidades.

Page 19: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Problema Prático Nº 2

Efetuar o ajuste da função, usando o método dos mínimos quadrados:

4213222

21121 ),( cxxcxcxcxxf +++=

considerando a série de pontos dados:

k kx1 kx2 ),( 21kk xxF

1 1,00 0,50 2,70

2 1,20 0,40 3,00

3 1,40 0,70 3,60

4 1,60 0,80 4,50

5 1,30 0,20 2,50

6 1,90 0,30 3,50

7 1,50 0,90 4,40

8 1,70 1,20 5,10

9 1,90 1,00 5,60

10 2,10 0,60 5,00

Page 20: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Problema Prático Nº 3

No caso de transporte de passageiros, fatores como ar condicionado, calefação, poltronas leito, serviço de bar, som ambiente, televisor e vídeo a bordo, entre outros, passam a ter importância na disputa pelo mercado. Pode-se dizer que os níveis de serviço estão relacionados com o conforto proporcionado ao passageiro. Para a determinação de como estes fatores deverão interferir no comportamento da demanda é possível utilizar modelos de divisão de mercado, baseados em funções de utilidade, que deverão ser ajustadas a partir de dados obtidos através de pesquisas de mercado.

Nestes modelos de divisão de mercado, considera-se que o usuário dispõe de um conjunto de alternativas entre as quais deverá fazer a sua escolha. Cada uma destas alternativas apresenta características próprias, as quais são denominadas de atributos. Entre os atributos relevantes para o caso do transporte rodoviário de passageiros, podem ser citados, além dos fatores de conforto acima apresentados, aspectos tais como: tempo de viagem, preço da passagem, imagem da empresa no mercado, etc.

Considerando que os aspectos acima costumam ser aditivos, é comum a utilização de funções de utilidade que seguem o modelo:

∑=j

ijji xaU

Nesta expressão, U i é a utilidade da i -ésima alternativa (viagem) disponível, xij é o valor do

j -ésimo atributo na i -ésima alternativa, e a j é um fator de ponderação do j -ésimo atributo,

o qual deverá ser ajustado a partir de pesquisas de mercado.

Considerando a utilidade das alternativas disponíveis, calculadas pela expressão acima, a probabilidade de escolha de uma alternativa em particular, por um usuário qualquer, denotada por Pi , poderá ser calculada, usando o modelo logit multinomial, cuja expressão é a seguinte:

=

k

U

U

ik

i

e

eP

Em outras palavras, esta probabilidade de escolha corresponde ao percentual da demanda que deverá fazer uso de uma viagem em particular, dado as características de conforto apresentadas pela mesma.

Estes modelos de distribuição de mercado, são bastante úteis para as empresas determinarem o nível ideal de serviço, especialmente nos casos em que existe concorrência. Colocando em confronto as diversas alternativas que a empresa estuda, e as existentes no mercado, será possível determinar a priori os efeitos de cada uma na distribuição da demanda. Com isto a empresa poderá melhor planejar novas aquisições para a frota.

Page 21: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

A realização de pesquisas de mercado, na qual é observada a preferênica dos usuários, pode ser bastante útil para calibrar o modelo apresentado acima. Nestas pesquisa procura-se obter as informações que permitam determinar os parâmetros do modelo de utilidade, de modo a obter a função que melhor justifique os dados colhidos, e conseqüentemente, o comportamento do mercado.

Para realizar o ajuste dos parâmetros do modelo de utilidade é comum a utilização do método dos mínimos quadrados, segundo o qual a determinação dos parâmetros é feita de modo que a soma dos quadrados dos desvios entre os dados de demanda observados e os determinados pelo modelo sejam minimizados.

Considere, então, os dados apresentados no quadro abaixo, onde estão apresentadas as características de 7 alternativas distintas de viagem, envolvendo várias operadoras (empresas), entre duas cidades, para as quais foram computadas o número de passagens vendidas ao longo de um certo período.

Atributo das alternativas Numero de

Ordem Conforto Roteiro Preço

Passageiros Transportados

1 Convencional Direto 13,50 508

2 Convencional Semi-Direto 12,10 345

3 Ar Cond Direto 15,20 505

4 Ar Cond Direto 16,00 224

5 Ar Cond Semi-Direto 13,50 443

6 Leito + Ar Cond Semi-Direto 27,30 316

7 Leito + Ar Cond Direto 29,50 219

Com ajuda de um pacote de otimização não linear, e considerando uma função de utilidade linear, determine os parâmetros do modelo, faça uma análise dos resultados obtidos e determine:

a) Quanto, em média, o passageiro pagaria a mais na passagem pelo ar condicionado instalado a bordo?

b) Quanto, em média, o passageiro pagaria a mais na passagem por uma viagem direta?

c) Quanto, em média, o passageiro pagaria a mais na passagem por uma viagem em ônibus leito?

Page 22: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Problema Prático Nº 4

Na figura abaixo está apresentado o gráfico de uma função típica do tempo de viagem em uma via urbana, em função do fluxo existente na via. Como pode ser percebido, quanto maior o fluxo, maior tende a ser o tempo de viagem ao longo da via.

Tempo x Fluxo

Fluxo (vph)

Te

mp

o d

e v

iag

em

(min

)

0

5

10

15

20

25

0 500 1000 1500

Esta curva pode ser aproximada por uma função do tipo:

t x tx

Ca a aa

a

( ) = +

04

1

onde: xa fluxo na ligação a , em veículos por hora (vph);

t xa a( ) é o tempo de viagem na ligação a , em minutos;

Ca é a capacidade nominal da ligação a , em vph; e

ta0 tempo de viagem com fluxo livre, isto é, sem tráfego na via, em minutos.

Segundo o princípio de Wardrop, "cada usuário tenta minimizar o próprio tempo de viagem, escolhendo a rota de menor duração entre a origem e o destino". Na medida em que cada usuário vai escolhendo sua rota, os tempos de percurso sobre as vias se modificam, podendo fazer com que outras rotas menos congestionadas, que antes não eram interessantes, passem a ser consideradas, dando origem a uma troca de rotas por parte dos usuários. O equilíbrio deste sistema é alcançado quando nenhum usuário pode diminuir seu tempo de viagem através de uma mudança unilateral de percurso. O fluxo resultante na condição de equilíbrio pode ser obtido resolvendo-se o seguinte modelo não-linear* :

Min z t w dwao

x

a

a= ∫∑ ( )

* Pode-se demonstrar, aplicando as condições de Karush-Kuhn-Tucker, que o ponto de mínimo deste modelo satisfaz as condições de equilíbrio do princípio de Wardrop.

Page 23: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

s.a: srqf rs

k

rs

k ,∀=∑

afx ka

rs

r s k

rs

ka ∀=∑∑∑ ,δ

ksrf rs

k ,,0∀≥

onde: rs

kf é o fluxo no k -ésimo caminho que conecta a origem r ao destino s ;

rsq é a demanda existente entre a origem r ao destino s ;

ka

rs

,δ é igual a 1 se o k -ésimo caminho que conecta a origem r ao destino s contém

o arco a , e é igual a zero em caso contrário.

Considere a rede, a demanda por viagens entre os pares O-D e os dados dos arcos apresentado abaixo.

DO − rsq (vph)

1-5 1200

1-3 500

2-4 700

a 0at (minutos) aC (vph)

1-2 20 1000

1-3 30 700

2-3 15 800

2-4 35 1000

3-4 20 700

4-5 15 1000

Na condição de equilibrio do fluxo na rede, responda:

a) Qual será o fluxo em cada trecho da rede ?

b) Qual será o tempo de viagem entre todos os pares de origem e o destino ?

Page 24: Problemas de Programação Não-Linearmayerle.deps.prof.ufsc.br/private/eps5115/PNL 01.pdf · Problemas de Programação Não-Linear Tipos de problemas Para que um problema de programação

Problema Prático Nº 5

Considere o mercado abaixo que comercializa uma única commoditie, o qual é formado por dois produtores, P1 e P2, e três consumidores, C1, C2 e C3. Para estas entidades são conhecidas, respectivamente, as curvas de custo marginal, argm

pC , e as funções inversas da demanda, 1−cD :

1arg

1 10 qCm += 2arg

2 8,012 qCm +=

11

1 5,145 dD −=− 21

2 5,062 dD −=−

31

3 2,148 dD −=−

Além disto, são conhecidos os custos unitários de transporte entre os diversos produtores e consumidores, apresentados na matriz T :

=

1,25,32,4

8,47,38,2

T

Para este mercado determinar os preços de equilíbrio e quantidades comercializadas, nos seguintes casos:

a) os produtores P1 e P2 pertencem aos mesmos acionistas, e podem transportar e vender a commoditie diretamente nos mercados consumidores, recebendo pelo produto vendido, o preço do mercado consumidor, descontado os custos do transporte;

b) em cada local de produção (P1 e P2) existem muitos produtores, e cada um possui uma capacidade muito pequena de produção, e os arcos de transporte correspondem possibilidades de pedidos dos mercados consumidores, que compram do produtor que apresentar menor custo;

c) P1 e P2 são dois grandes produtores, mas de acionistas diferentes, os quais vendem o produto para os consumidores, que optam sempre pelo menor preço do mercado.

P1

P2

C2

C1

C3