Está en la página 1de 26

INF 3144: Investigación de Operaciones

Metaheurı́sticas poblacionales
Particle Swarm Optimization

Leslie Pérez Cáceres


leslie.perez@pucv.cl

Escuela de Informática
Pontificia Universidad Católica de Valparaı́so

Junio, 2019

1/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Propuesto por James Kennedy y Russell C. Eberhart (1995)


Inspirado en el movimiento de las bandadas de aves
Algoritmo perturbativo poblacional
Originalmente propuesto para problemas continuos
Comunicación entre agentes maneja diversificación y
intensificación

2/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

3/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

xi +1

vi

xi

3/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

Guiadas por la mejor posición personal y global del enjambre


p = {p1 , p2 , . . . , pn } → información cognitiva
g = {g1 , g2 , . . . , gn } → información social

xi +1

vi

xi

3/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

Guiadas por la mejor posición personal y global del enjambre


p = {p1 , p2 , . . . , pn } → información cognitiva
g = {g1 , g2 , . . . , gn } → información social

xi +1

vi
pi
gi
xi

4/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

Guiadas por la mejor posición personal y global del enjambre


p = {p1 , p2 , . . . , pn } → información cognitiva
g = {g1 , g2 , . . . , gn } → información social

Actualización de la velocidad y posición en cada iteración

5/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

Guiadas por la mejor posición personal y global del enjambre


p = {p1 , p2 , . . . , pn } → información cognitiva
g = {g1 , g2 , . . . , gn } → información social

Actualización de la velocidad y posición en cada iteración

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

5/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Partı́culas: posición (solución) y velocidad en el espacio de


búsqueda
x = {x1 , x2 , . . . , xn } → solución
v = {v1 , v2 , . . . , vn } → como cambiar la solución

Guiadas por la mejor posición personal y global del enjambre


p = {p1 , p2 , . . . , pn } → información cognitiva
g = {g1 , g2 , . . . , gn } → información social

Actualización de la velocidad y posición en cada iteración

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

5/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

xi +1

vi
p
g
xi

6/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

xi +1

vi
p
g
xi

6/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

xi +1

vi
p
g
xi

7/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

xi0

vi vi0 p
g
xi

8/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

Los factores c1 y c2 controlan cuanto se toma en cuenta la


influencia personal y la influencia social

9/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

Los factores c1 y c2 controlan cuanto se toma en cuenta la


influencia personal y la influencia social
Por ejemplo, considere la búqueda realizada por PSO si:
(c1 = 0) & (c2 > 0)
(c1 > 0) & (c2 = 0)

9/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

Los factores c1 y c2 controlan cuanto se toma en cuenta la


influencia personal y la influencia social
Por ejemplo, considere la búqueda realizada por PSO si:
(c1 = 0) & (c2 > 0)
(c1 > 0) & (c2 = 0)
Intensificación vs. diversificación

9/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

vi = vi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

xi = xi + vi

Los factores c1 y c2 controlan cuanto se toma en cuenta la


influencia personal y la influencia social
Por ejemplo, considere la búqueda realizada por PSO si:
(c1 = 0) & (c2 > 0)
(c1 > 0) & (c2 = 0)
Intensificación vs. diversificación
Los números aleatoreos r1 y r2 hacen la búsqueda realizada por
el algoritmo estocástica

9/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

inicializar particulas(n particulas);


while criterio de termino() do
actualizar mejor global();
actualizar velocidad(c1 , c2 );
actualizar posicion();
actualizar mejor personal();
end
return mejor solucion;

10/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

m
(xi2 − 10 cos(2π xi ) + 10)
P
Frastrigin =
i =0

http://cg.kw.ac.kr/kang/pso/
11/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization (PSO)

Inicializar particulas(n particulas);


while criterio de termino() do
Actualizar mejor global();
Actualizar velocidad(c1 , c2 );
Actualizar posicion();
Actualizar mejor personal();
end
return mejor solucion;

12/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization: topologı́as

La topologı́a de red define como las partı́culas comparten


información de sus mejores posiciones y por lo tanto indica que tan
global es la información que manejan.
Estrella: todas las partı́culas se comunican con todas

Anillo: cada partı́cula se comunica con las m mas cercanas

m =4

13/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization: topologı́as

La topologı́a de red define como las partı́culas comparten


información de sus mejores posiciones y por lo tanto indica que tan
global es la información que manejan.
Rueda: solo una partı́cula se comunica con todas las demás

Von Neumann: Se define una red en 2 dimensiones, donde cada


partı́cula esta conectada hacia arriba, abajo y lados

14/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization: inercia

Para controlar el movimiento de las partı́culas → factor de inercia

vi = wvi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

15/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization: inercia

Para controlar el movimiento de las partı́culas → factor de inercia

vi = wvi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

Si w es grande, es difı́cil cambiar la dirección de las partı́culas

15/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Particle Swarm Optimization: inercia

Para controlar el movimiento de las partı́culas → factor de inercia

vi = wvi + r1 c1 (pi − xi ) + r2 c2 (gi − xi )

Si w es grande, es difı́cil cambiar la dirección de las partı́culas

Si w es pequeño, partı́culas cambiarán rápidamente su dirección

15/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO


Ejercicio práctico

Suponga que esta ejecutando un PSO para optimizar la siguiente


función:
−1
NP
minimizar z = 100 · (xi +1 − x12 )2 + (1 − xi )2
i =1
xi ∈ [0, 100]
N=4
Partı́cula: x = {0.4, 1.2, −3.2, 2.4}
Mejor personal: p = {1.2, 2.5, −2.1, 2.2}
Mejor global: g = {1.4, 1.1, −0.4, 3.1}
c1 = 1, c2 = 2, w = 1
Velocidad: v = {−0.8, 0.2, −1.2, 0.1}
¿Cual es la nueva posición de la partı́cula x?
* Considere números aleatorios: {0.21, 0.43, 0.12, 0.84, 0.63, 0.12, 0.92, 0.43}

16/1

Leslie Pérez Cáceres INF 3144 - Metaeurı́sticas poblacionales - PSO

También podría gustarte