Post on 21-Oct-2018
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,
),...,,( **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 ′′′′−+′′≤′′′′−+′′ λλλλ
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
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 ;
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.
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 +=′′
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.
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:
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
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.
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:
{ }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
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
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 ∇⋅−= −
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.
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 =∀≥
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 .
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.
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
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.
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?
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.
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 ?
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