Você está na página 1de 25

Programao

No Linear

Programao No-Linear 1
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 para i = 1,2,..., m

X 0
com
X = (x1 , x 2 ,..., x n )
f (.) e g i (.) funes no lineares
Programao No-Linear 2
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 funo-
objetivo.

f(x)
a b c

Programao No-Linear 3
Mtodos de Otimizao Sem Restries
Mtodo de Minimizao de funes muito simples
Consiste nos seguintes passos:

f(x)
1)chutar 3 pontos (a,b,c).
2)Escolher um ponto x entre a e b ou entre b e c.

f(b) f(c)f(a)
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). a b c
x
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
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
f = , , ,...,
Mtodo consiste em:
1x x 2 x 3 x n

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

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


maximizao

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 x 30 - 2x x

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

30 - 2x

Programao No-Linear 6
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 30- 2x
x
seo
x

30 - 2x 120
r e a m x im a

100

80

f ( x ) = x.(30 2 x ) = 30 x 2x 2
60

40

20

0
0 2 .5 5 7 .5 10 1 2 .5 15

Programao No-Linear 7
rea da
7.5cm
seo
7.5cm
Por inspeo do grfico anterior verifica-se que a
funo alcana o mximo (timo) em x = 7.5

30 - 2x
Soluo do problema da calha pelo Mtodo do Gradiente
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 ))
resduo = |x(i+1)-x(i)| Processo iterativo cessa quando resduo menor que
preciso desejada critrio de parada. Para t=0.1.
1o iterao 2o iterao
x(0) = -3 x(1) = 1.2
x(1) = -3 + 0.1(30 - 4(-3)) = 1.2 x(2) = 1.2 + 0.1(30 - 4(1.2)) = 3.72
resduo=4.2 resduo=2.52

3o iterao 19o iterao


x(2) = 3.72 x(18) = 7.4982
x(3) = 3.72 + 0.1(30 - 4(3.72)) = x(19) = 7.4982+0.1(30 4(7.4982)) =
5.232 7.4989
resduo=1.512 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 Funo Objetivo e Processo de Busca do Mximo
150 150
soluo Soluo
tima tima

100 100

50 Funo
50
Objetivo
Funo
Objetivo
rea

rea
0
Caminho
de Busca

-50
-50
Caminho
de Busca

-100
-100
soluo
inicial

-150
-3 -1.5 0 1.5 3 4.5 6 7.5 9
-150
soluo -3 -1.5 0 1.5 3 4.5 6 7.5 9 10.5 12 13.5 15
soluo

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
Funo Objetivo e Processo de Busca do Mximo

Resolvendo para t: 150

Soluo

16x 2 + 240x 900 0.25x 7.5


tima

t= =
100

1o iterao
960x 3600 64x 2 t para x = 7.5
Funo
Objetivo
50

rea
x(0) = -3 0

Caminho
de Busca

-50

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

-150
-3 -1.5 0 1.5 3 4.5 6 7.5 9 10.5 12 13.5 15
soluo

Programao No-Linear 10
Outro exemplo (caso 2-D) f
x 2x1
Min f (X ) = x12 + 3x 22 f (X) = 1 f (X) =
f 2
6 x
x2

funo objetivo representada por curvas de nvel + vetores gradientes

8 350

7
300
6

250
5

4
200

x2
3
150
2

100
1

0
50

-1
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
x1

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

8 350

6
300

250
2
x2

0 200

-2
150

-4

100
-6

-8 50

-10
-10 -8 -6 -4 -2 0 2 4 6 8 10
x1

Programao No-Linear 12
O tamanho do passo timo t calculado como:
x1 (i + 1) x1 (i ) 2 x1 (i ) x1 x2 tamanho iterao
x (i + 1) = x (i ) t.6 x (i ) passo
2 2 2 -10.0000 10.0000 - 0

-6.4286 -0.7143 0.1786 1


Fazendo
x (i + 1) g (t ) = f (z(t ))
-1.0714 1.0714 0.4167 2
z(t ) = 1
e

x 2 (i + 1) -0.6888 -0.0765 0.1786 3

g (t ) = f (z(t )) = (1 2t ) x12 + 3(1 6t ) x22 -0.1148 0.1148 0.4167 4


2 2

g (t ) = 2(1 2t )x12 ( 2 ) + 6(1 6t )x 22 ( 6) = 0


-0.0738 -0.0082 0.1786 5

-0.0123 0.0123 0.4167 6


Resolvendo para t
-0.0079 -0.0009 0.1786 7
x + 9x
2 2
t= 1 2

2x + 54 x22
2
1
-0.0013 0.0013 0.4167 8

-0.0008 -0.0001 0.1786 9


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

-0.0001 0.0001 0.4167 10

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

f = 80 + 10 x + 20 = 0
x 2 x1x 22
1

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 160
= = 20 que por sua vez, so positivos,
x12 x13 x 2 x = 2, x =1
1 2 confirmando portanto, que o ponto de
2f 160 mnimo.
= = 80
x 22 x1x 32 x = 2, x =1
1 2 Programao No-Linear 14
Resumo
f (X ) = 0 e f (X ) > 0 Mnimo local
f (X ) = 0 e f (X ) < 0 Mximo local Um grande problema desta abordagem est
em resolver sistemas de equaes no-
segundo Strang lineares, os quais geralmente, so resolvidos
f xx > 0 e f xx f yy > f xy
2
Mnimo local atravs de mtodos numricos.

f xx < 0 e f xx f yy > f xy
2
Mximo local

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
Max f (x1 , x 2 ) = x12 + 2 x 2
sujeito a {g1 (x1 , x 2 ) = x12 + x 22 = 1 circunferncia (r = 1)

Programao No-Linear 15
Mtodo dos Multiplicadores de Lagrange
Funo Lagrangiana
h (X, ) = f (X ) i [g i (X ) b i ]
m

i =1
onde: = (1, 2,..., m) so os multiplicadores de Lagrange.
Nota-se que para valores viveis de X: g i (X ) b i = 0, i
assim: h (X, ) = f (X )
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.
h f m g i Este sistema dever fornecer os extremos
x = i = 0 , j = 1, 2,..., n
j x j i =1 x j locais (ou globais). No entanto, para
problemas reais, tais sistemas tornam-se

= g i (X ) + b i = 0 , i = 1,2,..., m
h
i praticamente impossveis de soluciona-los.

Programao No-Linear 16
Exemplo
(1) Se x1 = 0
f (x1 , x 2 ) = x12 + 2 x 2 x 1 1 x 1 = 0 (3)
g(x1 , x 2 ) = x12 + x 22 = 1 x1 = 0 x12 x 22 + 1 = 0

x1 (1 1 ) = 0 ou
( )
h (x1 , x 2 , 1 ) = x12 + 2 x 2 1 x12 + x 22 1 = 1 x 22 = 1 x 2 = 1
ento
1 (x1 , x 2 ) = (0,1)
(2) e
h
(1)
1 = 1
= 2 x1 2x1 = 0 (x1 , x 2 ) = (0,1)
x1 2 2 x 2 = 0 ( 2 )
h 1 x2 = 0 x2 = 1
(2 ) = 2 2 x 2 = 0
x 2 (3)
h
(3)
1
( )
= x12 + x 22 1 = 0
x12 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) :
d 2 f (x )
-Convexa se e somente se 2
0 x
d2f (x)
dx
-Estritamente convexa se e somente se 2
> 0 x
d2f(x) dx
-Cncava se e somente se 0 x
dx2
d 2 f (x )
-Estritamente cncava se e somente se > 0 x
dx 2
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 Semi-
Definida 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] = i, j = 1,2,..., n
x i x j

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: f m g i
1. i 0
x j i =1 x j

em X = X e j = 1,2,..., n
*

* f g i
= 0
m
2. x j i
x j i =1 x j

( )
3. g i X * b i 0
i = 1,2,..., n
[g (X ) b ] = 0
*
para
4. i i i

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:
f m g i
x i = 0 se x *j 0
j i =1 x j
1,2.
f
m g i
0 se x *j = 0
x j i =1 i 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 KKT condio3
Max f (X ) = ln(x1 + 1) + x 2 condio1
( )
g1 X * b1 0
f g 2x1 + x 2 3 0
2 x 1 + x 2 3 1 1 0
x j x j
sujeito a x1 0 condio4
x 0
2
j =1
1
[ ( ) ]
1 g1 X * b1 = 0
m =1 2 1 0 1 [2 x1 + x 2 3] = 0
x1 + 1
g1 (X ) = 2x1 + x 2 convexa, pois : j=2 condio5
2g1 (X ) 2g1 (X ) 2g1 (X ) 1 1 0 x *j 0
=0 =0 =0
x1 2
x 22
x1x 2 condio2 x1 0, x 2 0
2g1 (X ) 2g1 (X ) 2g1 (X ) f
x *j

1 g1 = 0
condio6
. =0 x j
x j
x1 2
x 22
x1x 2 *i 0
f (X ) = ln (x1 + 1) + x 2 cn cov a , pois : j =1 1 0
1
2f (X ) 1 2f (X ) 2f (X ) x1 21 = 0
= <0 =0 =0 x1 + 1
x1 2
(x1 + 1)2
x 22
x1x 2
j=2
2f (X ) 2f (X ) 2f (X ) x 2 (1 1 ) = 0
. =0
x12 x 22
1 2
x x
qualquer soluo que atenda KKT tima
Programao No-Linear 24
Re soluo
1) 1 1 condio 1 ( j = 2 ) Outros tipos de problemas de
x 1 0 condio 5 Programao No-Linear:
1
2) 21 < 0 -Programao Separvel
x1 + 1
3) x 1 = 0 condio 2 ( j = 1) -Programao Quadrtica
4 ) 1 0 2 x 1 + x 2 3 = 0 condio 4 -Programao Geomtrica
5) 2 x 1 + x 2 3 = 0 -Programao Fracional
x2 = 3
-Programao No-Convexa
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