You are on page 1of 16

1.

Mtodo da Funo de Penalidade Exterior


Nessa tcnica a funo objetivo penalizada na regio vivel, ou seja, somente quando
alguma restrio violada. A funo penalidade definida por:
( ) ( )
{ }
( )
2
2
1 1
max 0,
m n
j k
j k
P x g x h x
= =
( = + (





Se todas as restries so satisfeitas ( ) 0 P x = . Portando, neste caso, a funo pseudo-
objetivo equivale funo objetivo original. Se uma ou mais restries so violadas, o
quadrado dessas funes adicionado funo pseudo objetivo.
As restries so elevadas ao quadrado para assegurar que a tangente funo de
penalidade seja nula sobre a fronteira da regio vivel. Com isto, pode se assegurar a
continuidade da derivada da funo pseudo objetivo.
Nesta formulao da funo penalidade, a derivada segunda da funo pseudo objetivo
no continua sobre a fronteira que limita a regio vivel. Isto uma possvel causa de
mal-condicionamento numrico para mtodos de minimizao de segunda ordem.
O mtodo da penalidade exterior o mais fcil de ser incorporado ao processode
otimizao.
2. Mtodo da Funo de Penalidade Interior
A funo objetivo nesse mtodo penalizada na regio vivel quando o ponto x se
aproxima da fronteira que limita esta regio. As funes de restries jamais so violadas.
Quando o processo interrompido, a soluo encontrada vivel.
Este mtodo fornece uma sequencia de solues viveis melhores mas, em contrapartida,
o problema de minimizao irrestrita mais complicado. A funo penalidade definida
por:
( )
( )
1
1
m
j
j
P x
g x
=




A funo de penalidade interior utilizada apenas para as restries de desigualdade.Para
as restries de igualdade o mtodo de penalidade exterior deve ser aplicado. Desta
maneira, a funo pseudo objetivo definida como:
( ) ( )
( )
( )
2
` `
1 1
1
, ,
m n
p p p p k
j k
j
x r r F x r r h x
g x
= =

u = + + (





O ajuste de rp e rp: a diferena entre rp e rp deve-se ao fato de que o primeiro
inicializado com um valor elevado que decrescido ao longo das iteraes.
3. Mtodo do Lagrangeano Aumentado
A funo pseudo-objetivo desse mtodo dada pela expresso abaixo:
( ) ( ) ( )
.
,
p p
Func penalidade
x r F x r P x u = +

Os mtodos de transformao, tais como penalidade interior, exterior e estendida, so
dependentes dos parmetros de penalizao. O mtodo do Lagrangeano Aumentado, ao
contrario dos mtodos de penalidade, converge para o ponto timo sem necessidade de
um parmetro de penalizao tendendo para o infinito.
3.1 Problemas de restrio de igualdade
Minimizar :
( ) F x (1)
Sujeito a :
( ) 0 1,
k
h x k l = = (2)
O numero de restries l deve ser menor que o numero de variveis de projeto n. Se l=n
o problema necessitar da soluo de n equaes no lineares simultaneamente definida
pela equao 2, e a funo objetivo valer para qualquer projeto que satisfaa as
restries . Se l > n, o problema no ser significativo de maneira que este apresentar
mais equaes que incgnitas.
As condies de Kuhn-Tucker necessitam da criao do Lagrangeano
( ) ( )
1
, ( )
l
k k
k
L X F X h X
=
= +


(3)
Ento as condies estacionrias de L(X,) juntamente com as exigncias viveis da eq.2
so as condies necessrias para o timo .Tambm, pode ser mostrado de
consideraes tericas que o mnimo do Lagrangiano, sujeito as condies de viabilidade
da eq.2, fornece a soluo do problema original das eqs.1 e 2.Portanto, pode-se usar a
abordagem da funo da penalidade exterior para criar a funo pseudo-objetiva a ser
minimizada como segue
( ) | |
{ }
2
1
, , ( ) ( ) ( )
l
p k k p k
k
A X r F X h X r h X
=
= + +


(4)
Enquanto a eq. 4, apresenta ser uma modificao simples do mtodo da penalidade
exterior , esta forma da funo pseudo- objetivo tem algumas caractersticas interessantes.
Primeiro, se toda k=0, a eq.4 se reduz ao mtodo clssico da penalidade exterior. Neste
caso, o problema de otimizao resolvido sequencialmente pelo aumento de rp. Por
outro lado, se especificamos os multiplicadores k em seus valores timos
*
c, o mnimo
de
( )
, ,
p
A X r fornece o mnimo real de F(X) para alguns valores positivos, mas finitos de
rp. Portanto, se =
*
conhecido no inicio, somente uma minimizao sem restrio
necessria.
Na prtica, no conhecemos
*
ento necessrio comear com um valor arbitrrio de
(normalmente zero ou um ) .O mtodo comumente recomendado iniciar com =0,
k=1,l e um valor de rp pequeno.
3.2 Problemas de restrio de desigualdade
Minimizar :
( ) F x (5)
Sujeito a :
( ) 0 1,
j
g x j m s =
(6)
O primeiro passo converte este para um problema de restrio de igualdade usando
varivel de folga z.
( ) 0 + 1,
j j
g x z j m s =
(7)
A funo pseudo objetivo fica

( ) ( ) ( )
{ }
2
2 2
`k
1
, , ( ) ( )
m
p j j p j j
j
A x r F x g x z r g x z
=
( = + + + +


(8)
Matematicamente usa-se a equao equivalente
( ) ( ) { }
2
`
1
, ,
m
p j j p j
j
A x r F x r
=
= + +


(9)
Onde
max ( ),
2
j
j j
p
g x
r
(
=
(
(


(10)
Aspectos atraentes do MMLA

- pouco sensvel ao valor de rp;
- respeita as restries;
- a atualizao do ML acelera o processo de convergncia;
- o projeto inicial pode ser vivel ou no;
- os valores de
*
diferente de zero identificam automaticamente o conjunto de restries
ativas.


4. Exerccios propostos - pag: 191 e 192

5.5 ) Considere o problema de minimizao com restries de igualdade:

Minimizar: (


Sujeito a:



a) Escreva a expresso para o Langrangiano aumentado com

.

(

) () {

()

()]



Para

:

(

) (

) (



b) Comeando com , faa trs iteraes para o mtodo ALM.

Figura 1 Para lambda=0 e rp=1.

N da iterao Valor da Funo
0 13.4222
1 5.1841
2 1.4436
3 1.3916

c) Repita o item b, comeando com .

Figura 2 para lambda = 1.

1 1.5 2 2.5 3 3.5 4
0
2
4
6
8
10
12
14
n de iteraes
e
= 0,0 / rp = 1.0
1 1.5 2 2.5 3 3.5 4
0.5
1
1.5
2
2.5
3
3.5
4
n de iteraes
e
= 1,0 / rp = 1,0
N da iterao Valor da Funo
0 1.4358
1 3.7556
2 0.6032
3 0.5164


d) Repita o item b, comeando com .


Figura 3 Para lambda=-4,0.


N da iterao Valor da Funo
0 10.8649
1 2.2826
2 1.3835
3 1.3352


5.6 ) Considere o problema de minimizao com restries de desigualdade:

Minimizar: (


Sujeito a:



a) Escreva a expresso para o Langrangiano aumentado com

.
(

) () {

()

()


1 1.5 2 2.5 3 3.5 4
1
2
3
4
5
6
7
8
9
10
11
n de iteraes
e
= -4,0 / rp = 1,0
(

) () {



Onde:

()

]
Para

]

(

) (

]
( [

])



b) Comeando com , faa trs iteraes para o mtodo ALM.

Figura 5.6.1 -Grfico para lambda=0,0 e rp=1,0.
N da iterao Valor da Funo
0 13.2993
1 1.1232
2 0.7523
3 0.7500

c) Repita o item b, comeando com .
1 1.5 2 2.5 3 3.5 4
0
2
4
6
8
10
12
14
n de iteraes
e
=0,0 / rp = 1,0

Figura 5.6.2 -Grfico para lambda=2,0 e rp=1,0.
N da iterao Valor da Funo
0 19.6771
1 1.4995
2 1.0835
3 1.0833

d) Repita o item b, comeando com .

1 1.5 2 2.5 3 3.5 4
0
2
4
6
8
10
12
14
16
18
20
n de iteraes
e
= 2,0 / rp = 1,0
1 1.5 2 2.5 3 3.5 4
0
2
4
6
8
10
12
= -1,0 / rp = 1,0
n de iteraes
e
Figura 5.6.3 -Grfico para lambda=-1,0 e rp=1,0.
N da iterao Valor da Funo
0 10.0340
1 0.5183
2 0.0848
3 0.0833

5.7 )Considere o problema de minimizao com restries de desigualdade:

Minimizar: (


Sujeito a:



a) Escreva a expresso para o Langrangiano aumentado com

.

(

) () [

()]



Onde:

()

]
Para

]
(

) (

]
( [

])

) (

)

b) Comeando com , faa trs iteraes para o mtodo ALM.

Figura 5.7.1 Grfico da funo pseudo-objetivo para lambda1=lambda2=0.
N da iterao Valor da Funo
0 17.8327
1 2.3829
2 2.0841
3 2.0833

c) Repita o item b, comeando com

.


1 1.5 2 2.5 3 3.5 4
2
4
6
8
10
12
14
16
18
1= 0,0 / 2 = 0,0
n de iteraes
e
1 1.5 2 2.5 3 3.5 4
0
2
4
6
8
10
12
14
16
18
20
1= 1,0 / 2 = 1,0
n de iteraes
e
Figura 5.7.2 Grfico da funo pseudo-objetivo para lambda1=lambda2=1
N da iterao Valor da Funo
0 18.8056
1 1.9406
2 1.5837
3 1.5833

d) Repita o item b, comeando com

.


Figura 5.7.3 Grfico da funo pseudo-objetivo para lambda1=lambda2=-1.
N da iterao Valor da Funo
0 34.4927
1 3.5357
2 2.0130
3 1.9414


5. Problemas implementados no MATLAB

%%Mtodo utilizado: Max_descida
%Mtodos de Otimizao

clearall
clc

n=2; %numero de variveis
Xo=[2; 2];
1 1.5 2 2.5 3 3.5 4
0
5
10
15
20
25
30
35
1= 1,0 / 2 = 1,0
n de iteraes
e
acabou=0;

X=Xo;
it=0;
while (acabou==0)
it=it+1;
S=-gradi(X);

alpha_ast=aurea(S,X);

X=X+alpha_ast*S;

if(it>3)
acabou=1;
end

M(it)=omega(alpha_ast,S,X);
end
omega(alpha_ast,S,X);
plot(M)

Funo Pseudo-objetivo ex. 5.5)
%% Exemplo 5.5

function f = omega(a,S,Xo)

rp=1.0;
lamb=0.0;
X=Xo+a*S;

X1=X(1);
X2=X(2);

func=(X1-1)^2+(X2-1)^2+lamb*(X1-X2-2)+rp*((X1-X2-2)^2);

f=func;

Clculo do Gradiente da funo Pseudo-Objetivo ex. 5.5)
%% Problema 5.5

rp=1.0;
lamb=0.0;

symsX1X2
func=(X1-1)^2+(X2-1)^2+lamb*(X1-X2-2)+rp*((X1-X2-2)^2);

MGRA(1,1)=diff(func,X1);
MGRA(2,1)=diff(func,X2);

X1=Xo(1);
X2=Xo(2);

gradiente=subs(MGRA);

f=gradiente;

%%Mtodo da Seco urea

function f = aurea(S,Xo)
%Busca do Mnimo
%Mtodo da Seo urea
%% Escolha do intervalo

ok=0;
it=0;
a=0;
b=10;

while (ok==0)
it=it + 1

m=(a+b)/2;

omega_a=omega(a,S,Xo);
omega_m=omega(m,S,Xo);
omega_b=omega(b,S,Xo);


if(omega_a<omega_m)
a=a-(m-a);
b=m;
elseif (omega_a>omega_m&&omega_b>omega_m)
ok=1;
elseif (omega_b<omega_m)
b=b+(b-m);
a=m;
end
end

%%
ao=a;
bo=b;

Lo=(bo-ao);
tau=0.61834;

as=ao;
bs=bo;
ns=2;
Ls=Lo;
xs=as+(1-tau)*(Ls);
ys=as+tau*(Ls);

for s=1:ns

%calculo da funo para 'xs' e 'ys'

omega_xs=omega(xs,S,Xo);
omega_ys=omega(ys,S,Xo);

if(omega_xs>omega_ys)
as=xs;
xs=ys;
%e a a o novo intervalo fica sendo [xs-bs]
Ls=(bs-as);
ys=as+tau*(Ls);

elseif(omega_xs==omega_ys)
as=xs;
bs=ys;

%neste caso raro, temos que adotar novos pontos de reduo do
%intervalo

Ls=(bs-as);
xs=as+(1-tau)*(Ls);
ys=as+tau*(Ls);
elseif (omega_xs<omega_ys)
bs=ys;
ys=xs;

Ls=abs(bs-as);
xs=as+(1-tau)*(Ls);
end
end

%Agora, aps algumas iteraes usamos uma aproximao por um
polinmio de 3grau.
%declaramos a matriz de coeficientes

C=zeros(4,4);

for i=1:4
C(1,i)=as^(i-1);
C(2,i)=xs^(i-1);
C(3,i)=ys^(i-1);
C(4,i)=bs^(i-1);
end

O=zeros(4,1);
O(1,1)=omega(as,S,Xo);
O(2,1)=omega(xs,S,Xo);
O(3,1)=omega(ys,S,Xo);
O(4,1)=omega(bs,S,Xo);

coef=zeros(4,1); % matriz dos coeficientes do polinmio
coef=C\O;

%coef=inv(C)*O;
%dizemos que o alpha barra que seria o alpha mnimo dado por:

alpha_barra=(-coef(3,1)+sqrt((coef(3,1)^2)-
(3*coef(2,1)*coef(4,1))))/(3*coef(4,1));

f=alpha_barra;


Funo Pseudo-objetivo ex. 5.6)
function f = omega(a,S,Xo)

rp=1.0;
lamb=-1.0;
X=Xo+a*S;

X1=X(1);
X2=X(2);

func=(X1-1)^2+(X2-1)^2+lamb*max((X1+X2-0.5),((-lamb)/(2*rp)))
...
+ rp*(max((X1+X2-0.5),((-lamb)/(2*rp))))^2;


Clculo do Gradiente da funo Pseudo-Objetivo ex. 5.6)
%% Problema 5.6

function f = gradi(Xo)

rp=1.0;
lamb=-1.0;

syms X1 X2

if ((Xo(1)+Xo(2)-0.5)>(-lamb)/(2*rp))
func=(X1-1)^2+(X2-1)^2+lamb*(X1+X2-0.5)+ rp*(X1+X2-0.5)^2;
else
func=(X1-1)^2+(X2-1)^2+lamb*((-lamb)/(2*rp))+rp*((-
lamb)/(2*rp))^2;
end

MGRA(1,1)=diff(func,X1);
MGRA(2,1)=diff(func,X2);

X1=Xo(1);
X2=Xo(2);

gradiente=subs(MGRA);
f=gradiente;
f=func;


Funo Pseudo-objetivo ex. 5.7)
%Exemplo 5.7

function f = omega(a,S,Xo)

rp=1.0;
lamb1=-1.0;%lambda para restrio de desigualdade
lamb2=-1.0;%lambda para restrio de igualdade
X=Xo+a*S;

X1=X(1);
X2=X(2);

func=(X1-1)^2+(X2-1)^2+lamb1*max((X1+X2-0.5),((-lamb1)/(2*rp)))
...
+ rp*(max((X1+X2-0.5),((-lamb1)/(2*rp))))^2+lamb2*(X1-X2-
2)+rp*((X1-X2-2)^2);

f=func;


Clculo do Gradiente da funo Pseudo-Objetivo ex. 5.7)
%% Problema 5.7

function f = gradi(Xo)

rp=1.0;
lamb1=-1.0;%lambda para restrio de desigualdade
lamb2=-1.0;%lambda para restrio de igualdade
syms X1 X2

if ((Xo(1)+Xo(2)-0.5)>(-lamb1)/(2*rp))
func=(X1-1)^2+(X2-1)^2+lamb1*(X1+X2-0.5)+ rp*(X1+X2-0.5)^2 ...
+ lamb2*(X1-X2-2)+rp*((X1-X2-2)^2);
else
func=(X1-1)^2+(X2-1)^2+lamb1*((-lamb1)/(2*rp))+rp*((-
lamb1)/(2*rp))^2 ...
+lamb2*(X1-X2-2)+rp*((X1-X2-2)^2);
end


MGRA(1,1)=diff(func,X1);
MGRA(2,1)=diff(func,X2);

X1=Xo(1);
X2=Xo(2);

gradiente=subs(MGRA);

f=gradiente;

You might also like