Sie sind auf Seite 1von 6

Primer Examen Parcial-Métodos Numéricos en Finanzas

Wilson S. Bohorquez O.
Jhonatan S. Mora R.
Nicolas A. Verano
Universidad Nacional de Colombia
Bogotá D.C.

1. Optimización de Enjam- respectivamente.


bre de Partículas (PSO) Para mejorar el algoritmo se hace una regula-
ción de la velocidad usando el método de peso
1.1. Introducción
de inercia (IW) introducido por Shi y Eberhart.
El algoritmo PSO es usado en este trabajo para El IW método consiste en multiplicar la veloci-
determinar el valor máximo de una función de dad anterior por un factor ω llamado inercia en
dos variables en un rectángulo [a, b] × [a, b], el calculo de la velocidad actual de esta manera
este algoritmo fue propuesto originalmente por la ecuación (1) se reescribe como
Kennedy y Eberhart a mediados de los noventa
del siglo pasado. vt+1 = ωvt + r1 c1 (p − x) + r2 c2 (g − x) (2)

donde ω será tomado como un valor lineal


decreciente, dado que esto hará que el enjambre
1.2. Descripción del algoritmo converja más rápidamente al valor optimo.
El algoritmo consiste en la construcción de una
población estocástica, los miembros de la pobla- En la ecuación (2) el término ωvt es llamado
ción son llamados partículas y son representa- componente inercial y es responsable de
dos en forma vectorial por su posición x en el es- mantener a la partícula moviéndose en su di-
pacio de búsqueda. Una partícula también alma- rección original, el segundo término r1 c1 (p − x)
cena una posición p (su mejor posición personal) es llamado la componente cognitiva, actúa
con el mejor valor fitness1 que la partícula ha como la memoria de la partícula, causando que
alcanzado hasta el momento, es decir la posición esta tienda a la región de busqueda donde tuvo
donde la función ha alcanzado un mayor valor. mayor fitness, y el tercer término r2 c2 (g − x)
Las partículas cambian de posición de acuerdo llamado componente social, causa que la par-
a un proceso que incorpora una velocidad. Tal tícula se diriga a la región donde la población
velocidad es calcula a partir de la mejor posición encontró su mejor fitness.
alcanzada por la partícula p y la posición g de
la partícula con el mejor valor fitness de la po- Por otro lado, para evitar que las partículas se
blación o enjambre (llamado el mejor global). muevan demasiado lejos del espacio de búsque-
La fórmula para calcular la velocidad es da, se usa una técnica llamada velocidad de
sujeción para limitar la velocidad máxima de
vt+1 = vt + r1 c1 (p − x) + r2 c2 (g − x) (1) cada partícula. Para un espacio de búsqueda
limitado por el rango. [−xmax , xmax ], el ajus-
Como se observa en la fórmula (1) la velocidad te de velocidad limita la velocidad al rango
actual vt+1 es calculada sumando a la velocidad [−vmax , vmax ]. En muchas optimizaciones, el
anterior vt dos componentes que son una com- espacio de búsqueda no está centrado alrededor
binación lineal de la componente cognitiva de 0 y, por lo tanto, el rango [−xmax , xmax ]
(p − x) y la componente social (g − x), los no es una definición adecuada del espacio de
escalares en la combinación están conformados búsqueda. En tal caso el espacio de búsque-
por dos constantes c1 y c2 llamadas constantes da es delimitado por [xmin , xmax ], definimos
de aprendizaje, cuyos valores frecuentemente vmax = xmax−xmin .
2
son iguales y mayores que uno, que son mul-
tiplicados por dos números aleatorios r1 y r2 ; Una vez la velocidad ha sido calculada, la posi-
1 fitness hace referencia al valor f (x), si f es la función ción de cada partícula es actualizada aplicando
a la que se la va a determinar el valor optimo. la nueva velocidad a la posición previa de la par-

1
tícula
xt+1 = xt + vt+1 (3)
Este procedimiento es repetido hasta que se
cumple alguna condición de parada.

1.3. Algoritmo
Entradas:
f ⇐Función
xmin , xmax , c1 , c2
max_iter ⇐ Máximo de iteraciones
vmax , vmin , stop_criter Figura 1: Resultado 1
SP ⇐ numero de partículas
d ⇐ Cantidad de variables
Resultados para c = 3
Inicio del algoritmo CPU-time 0.17
k = 0 ⇐Contador Gbest (0,0)
P ⇐ población inicial gbest 60
v ⇐ velocidad inicial iteraciones 1051
F I ⇐Calculo del fitness
P best ⇐Calculo mejor posición personal
F best ⇐Mejor fitness personal
Gbest ⇐Mejor posición global
gbest ⇐Mejor fitness global
while(v stop_criter)
ω = vmax − (vmax − vmin )k/max(max_ite, k)
v = ωv + r1 c1 (P best − P ) + r2 c2 (Gbest − P )
v = max(min(vmax , v), −vmax )
P =P +v
F I ⇐Actualización del fitness
P best ⇐Actualización mejor posición personal
F best ⇐Actualización Mejor fitness personal
Gbest ⇐Actualización Mejor posición global
gbest ⇐Actualización Mejor fitness global Figura 2: Resultado 2
Verificación criterio de parada
k=k+1
Resultados para c = 5
Salidas: CPU-time 0.19
Gbest Gbest (0,0)
gbest gbest 100
iteraciones 1111
1.4. Resultados
A continuación se muestra los resultados obte-
nidos, aplicando la función
f (x, y) = −(x2 + y 2 ) + 10c(cos(cx) + cos(cx))
(4)
para la región de búsqueda [−10, 10]×[−10, 10] y
para c ∈ {2, 3, 5, 10}. Se muestra en cada cuadro
el punto donde el algoritmo encontró el máximo,
el valor máximo, el tiempo CPU-time, el número
de iteraciones y la correspondiente gráfica.
Resultados para c = 2
CPU-time 0.15
Gbest (-2e-8,1e-8)
gbest 40 Figura 3: Resultado 3
iteraciones 1003

2
PN
Resultados para c = 10 tales que i s wti = 1. De esta manera, la f.d.p
CPU-time 0.21 a posteriori en el instante t, p(xt /yt ) puede ser
Gbest (0,0) aproximada por
gbest 200
Ns
iteraciones 1208 X
p(xt /yt ) = wti δ(xt − xit ) (7)
k=1

Los pesos son elegidos usando el principio de im-


portance sampling, el cual se basa en suponer
que p(x) ∝ π(x) es una f.d.p de la cual es difícil
obtener muestras pero para la cual π(x) puede
ser evaluada. Adicionalmente, sean xi ∼ q(x),
i = 1, . . . , Ns muestras que son facilmente ge-
neradas a partir de una función q(·) propuesta,
llamada función de importancia. Entonces una
aproximación ponderada de la f.d.p p(x) viene
dada por

Ns
X
Figura 4: Resultado 4 p(x) ≈ wi δ(x − xi ) (8)
k=1

donde
2. Filtro de partículas π(xi )
wi ∝ (9)
q(xi )
2.1. Introducción
es el peso normalizado de la partícula i-ésima.
El filtro de partículas es un método empleado
para estimar el estado de un sistema dinámico Además, si la muestra xi0:t fue extraída a partir
xt = f (xt−1 , νt+1 ) (5) de la densidad propuesta q(x0:t /y1:t ), entonces
los pesos en (7) son definidos por (9) serán
yt = g(xt , ηt ) (6)
p(xi0:t /t1:t )
donde las funciones deterministas f y g no son wki ∝ (10)
necesariamente lineales, y los ruidos νt y ηt no q(xio:t /tt:t )
son necesariamente Gaussianos. Este método fue
Volviendo al caso secuencial, en cada iteración,
propuesto en 1993 por N. Gordon, D. Salmond
uno podría obtener muestras que constituyan
y A. Smith como filtro bootstrap para implemen-
una aproximación a p(x0:t /y1:t−1 ) y desea apro-
tar filtros bayesianos recursivos mediante el mé-
ximar p(x0:t /t1:t ) con un nuevo conjunto de
todo de Monte Carlo. Este algoritmo es conocido
muestras. Si la función de densidad de impor-
también como SIS (Sequential Importance Sam-
tancia es seleccionada para ser factorizada como
pling) o algortimo Condensation.
q(x0:t /y1:t ) = q(xt /x0:t−1 , y1:t )q(x0:t−1 /y1:t−1 )
2.2. Descripción del algoritmo (11)
El algoritmo consiste en presentar la función entonces se pueden obtener muestras
i
de densidad de probabilidad (f.d.p) a posteriori x0:t ∼ q(x0t i/y1:t ), aumentando así las muestras
mediante un conjunto de partículas aleatorias existentes x0:t−1 ∼ q(x0t −1 /y1:t−1 ) con el nuevo
i
con pesos asociados y calcular la estimación final estado x t ∼ q(xt /x0:t−1 , y1:t ).
del estado del sistema en base a estas muestras
y pesos. A medida que el número de muestras se Para derivar la ecuación de actualización de pe-
hace grande, por el método de Monte Carlo, la sos se aplica el teorema de Bayes para obtener
aproximación a la f.d.p a posteriori es exacta y una fórmula recursiva que relacione la f.d.p a
la describe completamente, permitiendo a este posteriori con la f.d.p a priori
método conseguir una estimación Bayesiana
p(yt /xt )p(xt /xt−1 )
optima. p(x0:t /y1:t ) = p(x0:t−1 /t1:t−1 )
p(yt /tt−1 )
Para describir con detalle el algoritmo, sea (12)
{xi0:t | i = 1, . . . , Ns } el conjunto aleatorio de es- ∝ p(yt /xt )p(xt /xt−1 )p(x0:t−1 /y1:t−1 )
tados con pesos asociados {wti | i = 1, . . . , Ns }, (13)

3
Sustituyendo (11) y (13) en (10) se obtiene El remuestreo consiste en transformar la medida
aleatoria {xit , wti } en el nuevo conjunto {x∗i 1
t , Ns }
i i i i
p(yt /xt )p(xt /xt−1 )p(x0:t−1 /t1:t−1 ) ∗i
wti ∝ (14) donde cada nueva partícula xt se genera re-
q(xit /xi0:t−1 , y1:t )q(xi0:t−1 /y1:t−1 ) muestreando la f.d.p a posteriori aproximada
i i i
i p(y t /x t )p(x t /x t−1 ) Ns
∝ wk−1 (15)
q(xit /xi0:t−1 , y1:t )
X
p(xt /yt ) = wi δ(xt − xi )
t t (20)
t=1
Además, si se cumple la propiedad mar-
koviana para la función de importancia con una probabilidad correspondiente a su peso
q(xit /xi0:t−1 , y1:t ) = q(xit /xit−1 , y1:t ). Esto es P r(x∗i i
t = xt ) = wt , el resultado es una i.i.d de
particularmente útil en el caso concreto cuando la f.d.p discreta (20).
solo un estimador filtrado de p(xt /yt ) es reque-
rido en cada paso. El cual es el escenario que
nosotros supondremos y para el cual solo xit
2.3. Algoritmo
necesita ser guardado y podemos desechar el
camino xi0:t−1 y la historia de las observaciones Entradas:
y1:t−1 . Así los pesos modificados serán Ns ⇐ Numero de partículas
x0 ⇐Generar partículas iniciales
i i p(yt /xit )p(xit /xit−1 ) w = 1/Ns ⇐ Pesos Iniciales
wt ∝ wk−1 (16)
q(xit /xit−1 , yt ) T ⇐Longitud de la secuencia
Inicio del algoritmo:
y la f.d.p filtrada a posteriori p(xt /yt ) puede ser for i : 1 : T
aproximada por Obtener muestra a partir de la función de importancia
Ns
xt ∼ q(xt /xt−1 , yt )
p(xt /yt ) =
X
i
wt δ(xt − xt ) i
(17) Actualizar las P f.d.pi y la función de importancia
i
t=1
p(x t /y t ) = t=1 w t δ(x t − xt )
p(xxt /xt−1 ) ∝ p(yt /xt )p(xt /xt−1 )p(yt /yt−1 )p(xt−1 /yt−1 )
donde los pesos son definidos por la fórmula (16). q(xt /xt−1 , yt ) = q(xt /xt−1 , yt )q(xt−1 /yt−1 )
Se actualizan los pesos
Para terminar en cada paso de la iteración se p(yt /xit )p(xit /xit−1 )
wti ∝ wk−1 i
q(xit /xit−1 ,yt )
calcula la estimación de la variable de estados xbt
con el valor esperado de las partículas {xit | i = Se normalizan
1, . . . , Ns } bajo la medida {wti | i = 1, . . . , Ns } w = PNws wi
i=1 t
Se calcula el valor estimado de xt
Ns PNs i i
X xbt = i=1 w t xt
xbt = wti xit (18) Se re-muestrea la medida {xit , wti | i = 1, . . . Ns }, si es necesario
i=1
end
Un problema con este algoritmo es que después Salidas:
de un cierto número de iteraciones solo un pe- estimación de la variable de estados
queño número de partículas o ninguna tienen pe- x
b
sos despreciables, este fenómeno se conoce como Desviación de la estimación con respecto a los datos
el problema de degeneración de los pesos. Este previamente simulados
problema puede ser cuantificado mediante el ta- RMSE
maño de la muestra Nef f que se puede estimar
por 2.4. Resultados
1
Nef f ≈ Nef f = P
b
i 2
(19) Primero se simulará la variable de estados
t=1 (wt )
Si todas las partículas tienen el mismo peso xt+1 = 1 + sin(0,04πt) + 0,5xt + νt+1 (21)
wti = 1/Ns , entonces la efectividad de las
partículas es máxima Nef f = Ns , por otro donde νt ∼ Gamma(3, 2). Por otro lado, se su-
lado si todas las partículas menos una tienen pondrá que variable de medida es dada por la
peso cero, la efectividad es mínima Nef f = 1, función
lo que significa que un bajo tamaño muestral (
efectivo indica una degeneración del algoritmo, 0,2x2t + ηt si t ≤ 30
yt = (22)
una buena solución para este problema es la 0,5xt − 1 + ηt si t > 30
elección de una buena función de importancia y
el empleo del remuestreo. donde ηt ∼ N (0, 1e − 5), para realizar una
estimación de la variable de medida aplicando

4
el algoritmo de filtración de partículas.

La simulación y la estimación se realizaron para


una secuencia de T = 60.

Los resultados de la simulación se muestran en


las siguientes gráficas

Figura 7: estimación variable de estados

Figura 5: Variable de estados-no observable

Figura 8: estimación variable de medida

En seguida se hace una comparación gráfica de


los valores simulados y estimados de cada varia-
ble:

Figura 6: Variable de medida

La estimación de la variables se realizo con un


número de partículas de 200, los resultados se
muestran en la tabla y las gráficas siguientes:

Valores para la estimación


CPU-time 0.03
RMSE 0.01289 Figura 9: comparación variables de estado

5
Figura 10: comparación variables de medida

Claramente las gráficas de la simulación y la es-


timación son casi similares ya que la simulación
de las variables brinda una desviación de 0.01289
con respecto al valor estimado.

Referencias
1. James Blondin, Particle Swarm Optimiza-
tion: A Tutorial. Consultado el 05-06-2019.
2. Julio Barrera , Osiris Álvarez-Bajo , Juan J.
Flores , Carlos A. Coello Coello, Limiting the
velocity in the Particle Swarm Optimization
Algorithm. Consultado 05-06-2019

3. M. Sanjeev Arulampalam, Simon Maskell,


Neil Gordon, and Tim Clapp, A Tutorial on
Particle Filters for Online Nonlinear/Non-
Gaussian Bayesian Tracking. Consultado 13-
06-2019

Das könnte Ihnen auch gefallen