Está en la página 1de 5

1

Mtodo de Bsqueda Directo Hooke&Jeeves


Hctor F. Faras Stipo ( cronopio@elo.utfsm.cl )

Abstract Se utiliz el mtodo de bsqueda


directo de Hooke&Jeeves propuesto en [1]
para determinar los parmetros de un
controlador PI utilizando el software Matlab.
I. INTRODUCCIN
Los mtodos analticos imponen demasiadas
restricciones a las funciones objetivos, y resulta
que no siempre es posible resolver el sistema de
ecuaciones analticamente. Para resolver sta
problemtica nacen los mtodos numricos, los
cules se dividen en dos grandes grupos, los
mtodos numricos Indirectos y los Directos [2].
Los mtodos numricos Indirectos utilizan la
funcin objetivo analtica, las primeras y
segundas derivadas, pero las derivadas muchas
veces son de difcil obtencin e incluso puede
que no se conozca la funcin objetivo
analticamente. Entre los mtodos Indirectos ms
conocidos se encuentran: Newton, QuasiNewton, Secante, Regula Falsi.
Los mtodos numricos Directos en cambio,
requieren nicamente los valores que entrega la
funcin objetivo, los que pueden ser resultados
de experimentacin o bien de la evaluacin de
una expresin analtica. Adems el mtodo
Directo utiliza un plan de experiencias
secuencial, el cul utiliza los resultados de los
experimentos o evaluaciones analticas previas
para generar el prximo experimento de una
forma tal que se acelere la obtencin de una
solucin ptima. Entre los mtodos Directos ms
conocidos
se
encuentran:
Fibonacci,
Nelder&Mead, y el no tan conocido
Hooke&Jeeves [1] que ser tratado con
profundidad en este trabajo.
R. Hooke (1635-1702) Filsofo y Fsico ingls
considerado el mecnico ms notable de su
poca y fundador de la meteorologa cientfica.
Fue el primero en formular la teora de los
movimientos planetarios matemticamente y se
dice que fue l quien por primera vez idealizo
que los cuerpos se atraen mutuamente con una
fuerza que vara inversamente al cuadrado de la
distancia que los separa.

T.A. Jeeves public la referencia [1] en el


Journal ACM en 1961.
II. MTODO DE HOOKE&JEEVES PARA
BUSCAR MNIMOS MIRADO DESDE EL
PUNTO DE VISTA DE LOS MTODOS
NUMRICOS
La explicacin del mtodo se realizar para una
funcin de 2 variables para su mejor
comprensin, destacando que el mtodo puede
ser utilizado para una funcin de n variables. El
mtodo consiste bsicamente en realizar la
bsqueda en cada una de las dimensiones
(X1,X2) y luego por la diagonal determinada por
los puntos coordenadas y el punto inicial X0=(
X1(0),X2(0)) en el cul se inicio la bsqueda
variando el paso para cada iteracin en caso de
ser necesario para ir ajustando el resultado hasta
alcanzar la precisin requerida. El vector XBi es
un pivote base que se sita en la coordenada
(X1(i),X2(i)) que minimiza mejor la funcin
objetivo o el resultado del experimento hasta la
iteracin i.

Fig1. Idea bsica del mtodo de bsqueda


Hooke&Jeeves.
El algoritmo en diagrama de flujo para realizar el
mtodo se muestra en la figura 2, en el cual se
debe ingresar:

la funcin objetivo f(X) a minimizar en el


caso de que se conozca(o bien, disponer de
la planta a experimentar);
el nmero N de variables de la funcin f(X);
la tolerancia de error E permitida;
el largo del paso D inicial;
el punto inicial X0=(X1(0),X2(0)..., XN(0) );

2
Ejemplo 1:
f(X1,X2)= cos(X1)+sen(X2);
N=2;
E=0.1;
D=1;
X0=(-1.5;-6);

rojo representan las zonas de mximos locales, y


las ms cercanas al azul las de mnimos locales.
El diagrama de flujo de la figura 2 fue
programado en Matlab y se muestra a
continuacin:
function Hooke(E,D,X0)
N=length(X0);
XB=X0;
YB=f(XB(1),XB(2));
fin=0;count=0;
posicion_de_partida=X0;

Fig2. Diagrama de flujo del algoritmo


implementado.

%determina N

while((fin==0)&(count<=1000))
X=XB;
YA=YB;
A2=0;
while((A2==0)&(fin==0)&(count<=1000))
for i=1:1:N
X(i)=XB(i)+D;
Y=f(X(1),X(2));
if Y<YB
YB=Y;
XB(i)=X(i);
else
X(i)=XB(i)-D;
Y=f(X(1),X(2));
if Y<YB
YB=Y;
XB(i)=X(i);
else
X(i)=XB(i);
end
end
end
count=count+1;
if YA==YB
R=D*N^(0.5);
if R<=E
posicion_final=XB;
minimo=YB;
entorno=R;
fin=1;
else
D=0.5*D;
X0=XB;
end
else
X=2*XB-X0;
YA=f(X(1),X(2));
X0=XB;
if YA<YB
XB=X;
YB=YA;
count=count+1;
else
A2=1;
end
end

Fig3. Grfica de la curva del ejemplo 1.


En la grfica de la curva del ejemplo 1 mostrado
en la figura 3, las tonalidades ms cercanas al

end
end
posicion_de_partida
posicion_final
minimo=YB
entorno=R
iteraciones=count

3
function r=f(x,y)
r=cos(x)+sin(y);

X0 =(-1.5;-6.0)
XB1 =(-2.5;-7.0)
XB2 =(-3.5;-8.0)
XB3 =(-3.5;-8.0)
XB4 =(-3.0;-8.0)
XB5 =(-3.0;-8.0)
XB6 =(-3.25;-7.75)
XB7 =(-3.25;-7.75)
XB8 =(-3.125;-7.875)
XB9 =(-3.125;-7.875)
XB10=(-3.125;-7.875)

Fig4. Grfica de la superficie del ejemplo 1 en


el plano (X1,X2).
En la lnea de comando de Matlab se invoc la
funcin Hooke (lnea 1), lo que arroj los
siguientes resultados:

Los resultados obtenidos son muy buenos, dada


la tolerancia de error aceptada(E=0.1). El
mnimo que debera haber encontrado con exacta
precisin es 2 en las coordenadas (-,-5/2)
que corresponde a un mnimo local.
1

La idea general es utilizar el mtodo de bsqueda


directo para ajustar los parmetros de un
controlador [4], de manera de minimizar alguna
caracterstica del lazo cerrado, como:

>>Hooke(1e-1,1,[-1.5 -6] )
posicin_de_partida= -1.5 -6
posicin_final= -3.1250 -7.8750
mnimo= -1.9996
entorno= 0.0884
iteraciones= 10
>>

X B's en el plano X X

III. APLICACIN EN CONTROL

-5

-5.5
-6

IAE: Integral del valor absoluto del


error;
ITAE: Integral del valor absoluto del
error ponderado por el tiempo;
ISE: Integral del cuadrado del error;
ITSE: Integral del cuadrado del error
ponderado por el tiempo;

En este trabajo se utilizar el criterio de


minimizar la integral del valor absoluto del error
IAE frente a un escaln de referencia para
ajustar los parmetros de un controlador PI
(proporcional-integrativo). En este caso se
utilizar la Planta o proceso a controlar como un
experimento en el cul se va a minimizar el valor
IAE.
Para llevar a cabo nuestro experimento, se utiliz
Simulink de Matlab.

X2

-6.5

-7

-7.5

-8
-8.5

-9
-4

-3.5

-3

-2.5

-2

-1.5

-1

Fig5. Grfica de los puntos XB en cada


iteracin.
En la figura 5 se denota en color rojo el punto
inicial y con azul el final que corresponde al
punto que minimiza la funcin objetivo. A
continuacin se muestran los puntos encontrados
para cada una de las iteraciones del ejemplo 1:

Fig6. Esquema en Simulink para la


realizacin de los experimentos.
En el esquema de la figura 6 se utiliz una Planta
de primer orden con ganancia K y constante de
tiempo Tau; El controlador PI con ganancia
proporcional Kp y ganancia integrativa Kp/Ti.

4
Se hicieron algunas modificaciones sobre el
programa original para utilizar los resultados
experimentales provenientes del Simulink.
La funcin modificada se nombr HookePI en la
cul se debe ingresar:
la tolerancia de error E permitida;
el largo del paso D inicial;
los parmetros iniciales X0=(Kp,Ti);
los parmetros de la planta XP=(K,Tau);
function HookePI(E,D,X0,XP)
global Kp Ti K Tau tout y ref error
N=length(X0);
%determina N
X0
XB=X0;
Kp=XB(1);Ti=XB(2);
K=XP(1);Tau=XP(2);
YB=er;
fin=0;count=0;
while((fin==0)&(count<=150))
X=XB;
YA=YB;
A2=0;
while((A2==0)&(fin==0)&(count<=150))
for i=1:1:N
X(i)=XB(i)+D;
Kp=X(1);Ti=X(2);
Y=er;
if Y<YB
YB=Y;
XB(i)=X(i);
else
X(i)=XB(i)-D;
Kp=X(1);Ti=X(2);
Y=er;
if Y<YB
YB=Y;
XB(i)=X(i);
else
X(i)=XB(i);
end
end
end
count=count+1;
if YA==YB
R=D*N^(0.5);
if R<=E
posicion=XB;
minimo=YB;
entorno=R;
fin=1;
else
D=0.5*D;
X0=XB;
end
else
X=2*XB-X0;
Kp=X(1);Ti=X(2);
YA=er;
X0=XB;
if YA<YB
XB=X;
YB=YA;
count=count+1;
else
A2=1;
end

end
end
end
Kp=XB(1)
Ti=XB(2)
int_error_minima=YB
entorno=R
iteraciones=count
function r=er( )
global K Tau Kp Ti tout ref y error
tiempo=100*Tau;
sim('sist',[0 tiempo])
r=IAE(length(IAE));

Ejemplo 2:
E =1e-5;
D =0.1;
X0=(10,1e-4);
XP=(1,1e-3);
En la lnea de comando de Matlab se invoc la
funcin HookePI (lnea 1), lo que arroj los
siguientes resultados:
>>Hooke(1e-5,0.1,[10 1e-4],[1 1e-3] )
Kp= 9.707
Ti= 9.9111e-4
Int_error_mnima= 1.0291e-4
entorno= 8.6317e-6
iteraciones= 31
>>

Fig7. Grfica de los puntos XB en cada


iteracin.
En la figura 7 se puede ver que a medida que se
acerca al mnimo local el algoritmo disminuye el
paso hasta cumplir con la tolerancia de error.

5
V. REFERENCIAS
1. R. Hooke and T. A. Jeeves, "Direct Search
Solution of Numerical and Statistical Problems",
Journal of the ACM, Vol. 8, April 1961, pp. 212229.
2. Enrique Tarifa, Optimizacin y Simulacin de
Procesos-Mtodos Numricos Universidad
Nacional de Jujuy.

Fig8. Grfica de la respuesta a escaln inicial


y final.
En la figura 8 se aprecia el buen desempeo del
algoritmo para minimizar la integral del valor
absoluto del error.
IV. CONCLUSIONES
En base a los resultados presentados en este
trabajo, se puede concluir que el algoritmo de
bsqueda directa de Hooke&Jeeves entrega
resultados bastante satisfactorios y posee la gran
ventaja de que solo requiere la funcin objetivo o
la planta a experimentar. Cabe destacar que los
resultados encontrados por el mtodo
corresponden a mnimos locales, por lo que la
solucin encontrada no necesariamente va a ser
un mnimo global. Adems como el mtodo
descrito opera en N variables, ste se puede
utilizar en sistemas ms complejos para
encontrar los parmetros del controlador que nos
entregue la mejor respuesta posible del proceso
segn algn criterio como el IAE, ITAE, ISE,
ISTE, o bien, cualquier otro.

3. CECC Biografas Fsicos-Matemticos


(www.cecc.cl).

4. Apuntes del profesor J.Glaria B. del Depto. de


Electrnica de la UTFSM-Valpo Chile.

También podría gustarte