Processing math: 100%

1 votos

Optimización por enjambre de partículas

No sé por dónde empezar. No sé cómo introducir la información en el algoritmo. Mostrar dos iteraciones del método de optimización por enjambre de partículas (enfoque de vecindad).

Mostrar matemáticamente dos iteraciones de un método PSO. Para el problema el óptimo está en (0,0) la función objetivo es la distancia al óptimo, y las tres partículas se inicializan en (4,3) , (5,6) y (3,7) . (Se entiende que todo el mundo tendrá diferentes números aleatorios, esto está bien)

-1voto

Ben Puntos 442

Muy bien, así que la idea detrás de la optimización de enjambre de partículas es la siguiente:

Tenemos un problema, pero es difícil de resolver. Así que vamos a tomar numerosas conjeturas sobre una solución y llamarlas "partículas". Llamemos a nuestras partículas vi donde i es una variable de índice para las partículas. Por suerte, tenemos una función que nos dice lo buenas que son nuestras conjeturas actuales (en este caso, la función de distancia). Así que vamos a tratar de mejorar nuestras conjeturas.

Sabemos cuál es actualmente la mejor suposición, por lo que deberíamos querer que nuestras partículas exploren esa zona, por lo que deberíamos mover nuestras partículas más cerca de la mejor solución conocida. Llamemos a esta variable g .

Sin embargo, también queremos explorar otras áreas, por lo que también moveremos las partículas basándonos en su propia "memoria", que es su mejor posición conocida. Llamemos a esta variable pi donde i se refiere al i La posición más conocida de las partículas.

También solemos querer tener un componente aleatorio que permita a nuestras partículas explorar zonas completamente nuevas, esto se suele llamar velocidad. Llamemos a esta variable v .

Además, aleatorizaremos el grado de consideración de cada uno de estos componentes, para que las partículas individuales se comporten de forma independiente (y así exploren mejor el espacio de soluciones). Llamemos a estos vectores r1,r2 (tenga en cuenta que se encuentran en el intervalo (0,1)d donde d es la dimensión del espacio en el que trabajamos)$.

Así que cuando mejoremos nuestras conjeturas (ejecutando una iteración de PSO), vamos a sustituir nuestras partículas por

vi=r1g+r2pi+v

Vamos a intentarlo con tu ejemplo. Vamos a dar nombres a nuestras partículas, v1=(4,3) , v2=(5,6) , v3=(3,7)

De sus partículas inicializadas, (4,3) es el más cercano a (0,0) y por lo tanto es nuestra mejor solución global, por lo que g=(4,3) .

Cada partícula sólo ha visto un lugar por lo que actualmente pi=vi

Ahora en la práctica usted querrá tomar variables aleatorias para obtener su ponderación, para mis propósitos tendré todas las variables aleatorias =.5 (en todos los componentes, y v=0 .

Por notación diré vi,new como la partícula actualizada y vi,old para la partícula no actualizada.

tenemos

v1,new=[.5,0.5]t(4,3)+[0.5,0.5]t(4,3)+0=(4,3) v2,new=[.5,0.5]t(4,3)+[0.5,0.5]t(5,6)+0=(1/2,9/2) v3,new=[.5,0.5]t(4,3)+[0.5,0.5]t(3,7)+0=(1/2,5)

Ahora comprobamos, ¿mejoró alguna de nuestras partículas? Bueno, debido a cómo elegí las variables aleatorias, v1 no cambió.

Sin embargo las otras dos partículas se acercaron a (0,0) (puedes comprobarlo con la función distancia). Por lo tanto actualizamos p2=(1/2,9/2) y p3=(1/2,5)

Obsérvese también que v_{2,new} está más cerca de (0,0) que nuestra mejor suposición anterior (4,3) por lo que actualizamos g a g=v2,new .

Ahora podemos continuar con este procedimiento y eso es la optimización por enjambre de partículas. Espero que esto ayude.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X