Você está na página 1de 25

Programao No Linear

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

f (.) e g i (.) funes no lineares


Programao No-Linear 2

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

X(i + 1) = X(i ) + t.f (X(i ))

minimizao

X(i + 1) = X(i ) t.f (X(i ))

t o tamanho do passo i o nmero da iterao


X = (x1 , x 2 ,..., x n )
Programao No-Linear 5

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

Quanto deve medir x para que a calha tenha capacidade mxima ?

30 - 2x

Programao No-Linear

A capacidade de escoamento de gua da calha , formalmente, a vazo!


Q(A, v ) = A.v

Q(A,v) a vazo (cm3/s); A a rea da seo (cm2); e v a velocidade do fludo (cm/s).

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

Soluo do problema da calha pelo Mtodo do Gradiente

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

Funo Objetivo e Processo de Busca do Mximo 150 Soluo tima 100

50 Funo Objetivo rea

50

Funo Objetivo

rea
Caminho de Busca

-50

-50 Caminho de Busca


-100 soluo inicial -150 -3 -1.5 0 1.5 3 soluo 4.5 6 7.5 9

-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

Substituindo Z(t) em f(x), temos:

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)

Substituindo Z(t) em f, fica:


g ( t ) = 30 x + 900 t 240 xt 2x2 + 16 x2 t + 480 xt 2 1800 t 2 32x2 t 2

g ( t ) = 900 240 x + 16 x2 + 960 xt 3600 t 64 x2 t

Resolvendo para t: 1o iterao x(0) = -3

Funo Objetivo e Processo de Busca do Mximo 150 Soluo tima 100

0.25x 7.5 t= = 960x 3600 64x 2 t para x = 7.5 16x 2 + 240x 900
rea

Funo Objetivo 50

0 Caminho de Busca -50

x(1) = -3 + 0.25(30 - 4(-3)) = 7.5


Programao No-Linear

-100

-150

-3

-1.5

1.5

4.5

6 soluo

7.5

10.5

12

13.5

15

10

Outro exemplo (caso 2-D)

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).

funo objetivo representada por curvas de nvel + vetores gradientes 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

O tamanho do passo timo t calculado como:


x1 (i + 1) x1 (i ) 2 x1 (i ) x (i + 1) = x (i ) t.6 x (i ) 2 2 2
x1 -10.0000 -6.4286 x2 10.0000 -0.7143 1.0714 -0.0765 0.1148 -0.0082 0.0123 -0.0009 0.0013 -0.0001 0.0001 tamanho passo 0.1786 0.4167 0.1786 0.4167 0.1786 0.4167 0.1786 0.4167 0.1786 0.4167 iterao 0 1 2 3 4 5 6 7 8 9 10

Fazendo
x (i + 1) z(t ) = 1 x 2 (i + 1)

e
2

g (t ) = f (z(t ))
2

-1.0714 -0.6888 -0.1148 -0.0738 -0.0123

2 g (t ) = f (z(t )) = (1 2t ) x1 + 3(1 6t ) x2 2

2 ( 2) + 6(1 6t )x 2 g (t ) = 2(1 2t )x1 2 ( 6 ) = 0

Resolvendo para t
-0.0079

t=

x + 9x 2x + 54 x2 2
2 1 2 1 2 2

-0.0013 -0.0008 -0.0001

resduo =

(x1 (i + 1) x1 (i)) + (x 2 (i + 1) x 2 (i))


2

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

O sistema no-linear fica:


80 f = + 10 x 2 + 10 = 0 x 2 x1 x 2 1 f = 80 + 10 x + 20 = 0 1 2 x x x 2 1 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.

Otimizao com Restries e Funo-Objetivo No-Linear


Min ou Max f (X ) X satisfaa as equaes g1 (X ) = b1 g (X ) = b 2 2 . g m (X ) = b m f (X ) e g i (X ) no lineares X = (x1 , x 2 ,..., x n ) Exemplo m =1 e n = 2
2 Max f (x1 , x 2 ) = x1 + 2x 2

sujeito a

{g1 (x1 , x 2 ) = x12 + x 2 2 = 1 circunferncia

(r = 1)
15

Programao No-Linear

Mtodo dos Multiplicadores de Lagrange Funo Lagrangiana


h (X, ) = f (X ) i [g i (X ) b i ]
m

Nota-se que para valores viveis de X: g i (X ) b i = 0, i assim: h (X, ) = f (X )

onde:

= (1, 2,..., m) so os multiplicadores de Lagrange.

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

ento h = 2 x1 2x1 = 0 (1) x1 h ( ) 2 = 2 2 x 2 = 0 x 2 h 2 = x1 + x2 (3) 2 1 = 0 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

(x1 , x 2 ) = (0,1) e (x1 , x 2 ) = (0,1)

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

-Estritamente convexa se e somente se -Cncava se e somente se


d2f(x) dx2 0 x

0 x d2f (x)
dx
2

> 0 x

-Estritamente cncava se e somente se

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

Condies para Otimizao com Restries de Karush-Kuhn-Tucker (KKT)

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

Assim, as condies 3 e 4 podem ser combinadas para uma forma equivalente:


* g i X b i = 0 se i 0 3,4. * g i X b i 0 se i = 0

( ) ( )

Da mesma maneira, pode-se combinar as condies 1e 2:


m f i x j i =1 1,2. m f x j i =1 i

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

KKT condio1 g f 1 1 0 x j x j j =1 1 2 1 0 x1 + 1 j=2 1 1 0 condio2 x* j

condio3 g1 X * b1 0 2x1 + x 2 3 0 condio4 1 g1 X * b1 = 0

( )

m =1 g1 (X ) = 2x1 + x 2 convexa, pois :

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

[ ( ) ]

2g1 (X ) 2g1 (X ) 2g1 (X ) =0 =0 =0 2 2 x1 x 2 x1x 2

2g1 (X ) 2g1 (X ) 2g1 (X ) . =0 2 2 x1 x 2 x1x 2

f (X ) = ln (x1 + 1) + x 2 cn cov a , pois :

f condio6 1 g1 = 0 x j x j * i 0 j =1 1 0

1 2f (X ) 2f (X ) 2f (X ) =0 =0 = <0 2 2 2 x 2 x1x 2 x1 (x1 + 1)

2f (X ) 2f (X ) 2f (X ) . =0 2 x1 x 2 x x 2 1 2 qualquer soluo que atenda KKT tima

1 x1 2 1 x +1 =0 1 j=2 x 2 (1 1 ) = 0

Programao No-Linear

24

Re soluo 1) 1 1 condio 1 ( j = 2 ) x 1 0 condio 5 2) 1 21 < 0 x1 + 1

Outros tipos de problemas de Programao No-Linear: -Programao Separvel -Programao Quadrtica -Programao Geomtrica -Programao Fracional -Programao No-Convexa

3) x 1 = 0 condio 2 ( j = 1) 4 ) 1 0 2 x 1 + x 2 3 = 0 condio 4 5) 2 x 1 + x 2 3 = 0 x2 = 3 6) x 2 0 1 = 1 condio 2 ( j = 2 ) 7 ) nenhuma condio violada por : x 1 = 0, x 2 = 3, 1 = 1 1 = 1

x 1 = 0, x 2 = 3, 1 = 1 satisfazen do condies KKT

X * = (0,3) tima

Programao No-Linear

25

Você também pode gostar