Escolar Documentos
Profissional Documentos
Cultura Documentos
Programao No-Linear
Os modelos empregados em Programao Linear so, como o prprio nome diz, lineares (tanto a funo-objetivo quanto as restries). Este fato , sem dvida, a maior das restries impostas sobre um modelo de Programao. Em grande parte das aplicaes, modelos lineares refletem apenas aproximaes dos modelos reais. Fenmenos fsicos ou econmicos so geralmente melhor representados por modelos no-lineares. A maioria das no-linearidades englobadas em um modelo de programao est dentro de 2 principais categorias: 1)Relaes observadas empiricamente, tais como variaes no-proporcionais em custos, resultados de processos e caractersticas de qualidade. 2)Relaes deduzidas estruturalmente, que englobam fenmenos fsicos, deduzidos matematicamente e regras administrativas. Em geral, os modelos empregados em Programao No-Linear so do tipo: Max (ou Min ) f (X )
sujeito a g i (X ) b i X 0 com para i = 1,2,..., m
X = (x1 , x 2 ,..., x n )
Os mtodos para resoluo de problemas de Programao No-Linear podem ser divididos em 2 grupos: 1) Modelos sem restries e 2) Modelos com restries O principal conceito envolvido em Programao No-Linear o de taxa de variao derivadas e gradientes. O grande problema que dificulta a obteno da soluo tima nos problemas de Programao No-Linear so os mnimos e mximos (extremos) locais da funoobjetivo.
f(x) a b c
Programao No-Linear
Mtodos de Otimizao Sem Restries Mtodo de Minimizao de funes muito simples Consiste nos seguintes passos: 1)chutar 3 pontos (a,b,c). 2)Escolher um ponto x entre a e b ou entre b e c. supondo que escolhemos entre b e c: 3)Se f(b) < f(x) 3 novos pontos so (a,b,x). 4)Seno 3 novos pontos so (b,x,c). 5)Repetir processo at preciso desejada. Problema deste Mtodo: Extremamente dependente da inicializao (problema comum aos Mtodos determinsticos). Funo precisa ser avaliada em muitos pontos alto custo computacional. Informao da derivada da funo permite alcanar o extremo com menor nmero de avaliaes da funo melhor eficincia computacional.
Programao No-Linear 4
f(x) f(b) f(c)f(a)
Mtodo do Gradiente (ou Mtodo de Cauchy ou Mtodo do Passo Mais Descendente (Steepest Descent Method)). Derivada fornece a informao da taxa de variao da funo (1-D). Para o caso n-D, o vetor gradiente fornece a direo da maior taxa de variao da funo.Vetor Gradiente f f f f Mtodo consiste em:
, f = , ,..., x x x x 2 3 n 1
Procurar o mximo (ou mnimo) na direo de maior taxa de crescimento (decrescimento) da Funo Objetivo a partir de uma soluo (ponto) inicial X(0). maximizao
minimizao
Exemplo De uma longa folha de metal de 30 cm de largura deve-se fazer uma calha dobrando as bordas perpendicularmente folha. Quantos centmetros devem ser dobrados de cada lado de modo que a calha tenha capacidade mxima ?
30 cm
30 - 2x
x x
30 - 2x
Programao No-Linear
Supondo v constante, a vazo torna-se diretamente proporcional rea da seo! Portanto, maximizando A implica em maximizar Q(A,v).
rea da seo x x
x 30- 2x
30 - 2x
120 r e a m x im a
100
f ( x ) = x.(30 2 x ) = 30 x 2x
80
2
60 40
20
0 0 2 .5 5 7 .5 10 1 2 .5 15
Programao No-Linear
rea da seo
7.5cm 7.5cm
Por inspeo do grfico anterior verifica-se que a funo alcana o mximo (timo) em x = 7.5
f ( x ) = x.(30 2 x ) = 30 x 2 x 2 f (x ) = f ( x ) = 30 4 x x (i + 1) = x (i ) + t (30 4x (i ))
30 - 2x
resduo = |x(i+1)-x(i)| Processo iterativo cessa quando resduo menor que preciso desejada critrio de parada. Para t=0.1.
1o iterao x(0) = -3 x(1) = -3 + 0.1(30 - 4(-3)) = 1.2 resduo=4.2 3o iterao x(2) = 3.72 x(3) = 3.72 + 0.1(30 - 4(3.72)) = 5.232 resduo=1.512 2o iterao x(1) = 1.2 x(2) = 1.2 + 0.1(30 - 4(1.2)) = 3.72 resduo=2.52 19o iterao x(18) = 7.4982 x(19) = 7.4982+0.1(30 4(7.4982)) = 7.4989 resduo=0.0007
Programao No-Linear 8
O grfico da esquerda mostra o caminho de busca (trajetria) da soluo tima realizada pelo algoritmo para t = 0.1 e o da direita para t = 0.4.
Funo Objetivo e Processo de Busca do Mximo 150 soluo tima 100
50
Funo Objetivo
rea
Caminho de Busca
-50
-100
-150
-3
-1.5
1.5
4.5
6 soluo
7.5
10.5
12
13.5
15
trajetria funo do tamanho do passo Deve existir um tamanho de passo timo ?! A soluo tima ser alcanada mais rapidamente quanto menos a Funo Objetivo for avaliada! Para isso, vamos fazer, sem perda de generalidade, algumas alteraes no Mtodo do Gradiente substituindo x(i+1) por Z(t), ou seja, uma expresso que funo do tamanho do passo t e x(i) por simplesmente x. O Mtodo ento fica:
Z( t ) = x + t .f ( x) = x + t .f ( x)
Programao No-Linear 9
g (t ) = f (Z( t ) )
Igualando a derivada de g(t) (em relao a t) a zero (g'(t)=0) e ento resolvendo para t, encontra-se uma funo que descreve os valores timos de t para cada soluo x. No exemplo, Z(t) fica:
Z( t ) = x + t (30 4 x)
0.25x 7.5 t= = 960x 3600 64x 2 t para x = 7.5 16x 2 + 240x 900
rea
Funo Objetivo 50
-100
-150
-3
-1.5
1.5
4.5
6 soluo
7.5
10.5
12
13.5
15
10
Min
2 f (X ) = x1 + 3x 2 2
f x f (X) = 1 f x2
2x1 f (X) = 6 x 2
funo objetivo representada por curvas de nvel + vetores gradientes
350
7 300 6 250
x2
200
3 150 2 100
50
-1 -10
-9
-8
-7
-6
-5 x1
-4
-3
-2
-1
Programao No-Linear
11
A prxima figura mostra o "caminho de busca" no plano x1x2 dada a soluo inicial em (-10,10).
350
6 300 4 250 2
x2
200
-2 150 -4 100 -6
-8
50
-10 -10
-8
-6
-4
-2
0 x1
10
Programao No-Linear
12
Fazendo
x (i + 1) z(t ) = 1 x 2 (i + 1)
e
2
g (t ) = f (z(t ))
2
2 g (t ) = f (z(t )) = (1 2t ) x1 + 3(1 6t ) x2 2
Resolvendo para t
-0.0079
t=
x + 9x 2x + 54 x2 2
2 1 2 1 2 2
resduo =
Programao No-Linear
13
Uma outra maneira de encontrar extremos de uma funo no-linear simplesmente igualar as derivadas parciais a zero e resolver o sistema de equaes no-lineares. Exemplo
Min f (x1 , x 2 ) = 80 + 20 x 2 + 10 x1x 2 + 10 x1 x1x 2
Resolvendo este sistema, na regio x1 , x 2 0 , tem-se: x1 = 2 e x2 = 1. Para confirmar que temos um ponto de mnimo, podemos substitu-lo, nas derivadas parciais de 2o ordem:
2f
2 x1
= =
160
3 x1 x 2 x = 2, x =1 1 2
= 20 = 80
2f x 2 2
160 x1x 3 2 x = 2, x =1 1 2
que por sua vez, so positivos, confirmando portanto, que o ponto de mnimo.
Programao No-Linear 14
Resumo
f (X ) = 0 e f (X ) > 0 Mnimo local f (X ) = 0 e f (X ) < 0 Mximo local segundo Strang
2 f xx > 0 e f xx f yy > f xy Mnimo local 2 f xx < 0 e f xx f yy > f xy Mximo local
Um grande problema desta abordagem est em resolver sistemas de equaes nolineares, os quais geralmente, so resolvidos atravs de mtodos numricos.
sujeito a
(r = 1)
15
Programao No-Linear
onde:
i =1
Portanto, se (X, ) = (X*, *) um extremo local ou global para a funo sem restrio h(X, ), ento X* um extremo para o problema original. Assim, h(X, ) analisado normalmente como um modelo sem restries. Com isso, n + m derivadas devem ser igualadas a zero. m g i f h Este sistema dever fornecer os extremos = 0 , j 1 , 2 ,..., n = = i x locais (ou globais). No entanto, para j x j i =1 x j problemas reais, tais sistemas tornam-se h = g i (X ) + b i = 0 , i = 1,2,..., m praticamente impossveis de soluciona-los. i
Programao No-Linear 16
Exemplo
2 f (x1 , x 2 ) = x1 + 2x 2 2 g(x1 , x 2 ) = x1 + x2 2 =1
(1)
x 1 1 x 1 = 0
Se x1 = 0
(3)
2 2 h (x1 , x 2 , 1 ) = x1 + 2 x 2 1 x 1 + x2 2 1
x1 = 0 x1 (1 1 ) = 0 ou = 1 1 (2) 1 = 1 2 2 x 2 = 0 ( 2 )
2 x1 x2 2 +1 = 0
x2 2 = 1 x 2 = 1
1 x2 = 0 x2 = 1
(3)
2 x1 1+1 = 0
x1 = 0
Estes pontos so mximo e mnimo locais. Neste caso, estes pontos so mximo e mnimo globais. Como estamos querendo maximizar, a soluo tima (x1,x2)=(0,1). f(0,1)=02+2.1=2.
Programao No-Linear 17
No exemplo anterior, os extremos locais so tambm globais. Porm, este fato foi observado apenas por inspeo dos resultados. Uma maneira mais elegante de verificar isto consiste em analisar a questo de convexidade de uma funo, uma vez que esta propriedade pode garantir a existncia de mnimos ou mximos globais.
Funes Convexas e Cncavas Unidimensionais
Uma funo de uma nica varivel f(x) uma funo convexa se, para cada par de valores de x, por exemplo, x e x com x<x tem-se:
f [ x+ (1 )x] f (x) + (1 )f (x) 0 < <1
Se pode ser recolocado por <, f uma funo estritamente convexa. Se pode ser recolocado por por , f uma funo cncova. Se pode ser recolocado por por >, f uma funo estritamente cncova. A interpretao geomtrica destas propriedades a seguinte: se para cada par de pontos sobre o grfico de f(x), um segmento de reta conectando estes 2 pontos estiver inteiramente acima ou sobre o grfico de f(x), f(x) dita convexa.
Programao No-Linear
18
Convexa
Concva
Convexa e Cncava
Estritamente Convexa
Estritamente Concva
No Convexa e No Cncava
Programao No-Linear
19
O raciocnio anlogo para funes cncavas. De maneira mais formal, o teste de convexidade (ou concavidade) pode ser realizado atravs da derivada segunda.f(x) : -Convexa se e somente se
d 2 f (x ) dx
2
0 x d2f (x)
dx
2
> 0 x
d 2 f (x ) dx 2
> 0 x
Esta propriedade pode ser generalizada para o caso de 2 variveis. A seguinte tabela resume as condies.
Programao No-Linear
20
As propriedades acima originam da anlise da matriz Hessiana. De modo formal, uma funo com n variveis dita convexa se a sua respectiva matriz Hessiana SemiDefinida Positiva. Com isso, o conceito de convexidade pode ser generalizado para n dimenses. Apenas como recordao, a matriz Hessiana de uma funo f de n variveis :
2 f (x1 , x 2 ,..., x n ) H[i][ j] = x i x j i, j = 1,2,..., n
Uma matriz Semi-Definida Positiva se qualquer uma das seguintes propriedades satisfeita.
1) x t Hx 0
vetor x
2) todo autovalor de H 0 Hx = x com x autovetores 3) todas submatrizes principais possuem det er min antes 0 4) todo piv 0
Programao No-Linear
21
Se f(X), g1(X), g2(X),..., gm(X) so diferenciveis, ento: X* = (x1*, x2*, ..., xn*) pode ser uma soluo tima para um problema de Programao No-Linear somente se existe m nmeros 1, 2, ..., m tais que todas as condies KKT so satisfeitas: m g i f i 0 1. x j i =1 x j * em X = X e j = 1,2,..., n m g i * f = 0 2. x j i x j i =1 x j
3. g i X * b i 0 4.
* i i i
( ) para [g (X ) b ] = 0
i = 1,2,..., n
5. X * j 0 j = 1,2,..., n 6. i 0 i = 1,2,..., n
Nas condies 2 e 4 existem o produto de 2 quantidades, portanto, no mnimo umas dessas 2 quantidades deve ser zero para satisfazer a igualdade.
Programao No-Linear 22
( ) ( )
g i = 0 se x *j 0 x j g i 0 se x *j = 0 x j
Os multiplicadores de Lagrange i correspondem para variveis duais. As condies KKT no garantem soluo tima ainda, faz-se necessrio verificar as condies de convexidade-concavidade. Se f(X) cncava e g1(X), g2(X), ...., gm(X) so convexas (Programao No-Linear Convexa) e condies KKT satisfeitas, X* = (x1*, x2*, ..., xn*) tima.
Programao No-Linear
23
Exemplo
Max f (X ) = ln(x1 + 1) + x 2
( )
2 x 1 + x 2 3 sujeito a x1 0 x 0 2
1 [2 x1 + x 2 3] = 0 condio5 x* j 0 x1 0, x 2 0
[ ( ) ]
f condio6 1 g1 = 0 x j x j * i 0 j =1 1 0
1 x1 2 1 x +1 =0 1 j=2 x 2 (1 1 ) = 0
Programao No-Linear
24
Outros tipos de problemas de Programao No-Linear: -Programao Separvel -Programao Quadrtica -Programao Geomtrica -Programao Fracional -Programao No-Convexa
X * = (0,3) tima
Programao No-Linear
25