Está en la página 1de 2

Trabajo final integrador

PSO: Particle Swarm Optimization


1) Realice una breve descripción del algoritmo PSO
2) instalar Octave (https://www.gnu.org/software/octave/download)
3) Debe descargar el archivo ParticleSwarmOptimization-master.zip
4) Descompactar el zip en un directorio conocido
5) abrir octave
6) Dentro de Octave navegar hasta el directorio donde descompactó el paquete
 Puede leer el contenido del paquete (readme. md)
 Puede ver los dataset que vienen de demostración (tsp_data.m)
 Edite el programa Octave PSO2.m
TIP: los comentarios aparecen en verde

7) Correr el algoritmo PSO2.m para el dataset Ulysses16.tsp (http://elib.zib.de/pub/mp-


testdata/tsp/tsplib/tsp/ulysses16.tsp) que viene en el paquete.
Contiene una matriz de 16 distancias entre nodos de sitios que Ulises deberá recorrer usando PSO
en el famoso problema del viajante de comercio (recorrer todos los sitios una vez con la menor
distancia posible)

TIP: en el archivo PSO2.m


data = berlin52;%burma14;%berlin52;%%ulysses16;

debe cambiar a :
data = ulysses16;

NOTA: para correr un programa en Octave presione F5

8) Determine los parámetros del modelo incluyendo la condición de terminación (Cantidad máxima
de iteraciones1, cantidad de iteraciones sin cambio2, diferencia mínima de costo3). Justifique.
Y complete la siguiente tabla:

Parámetros de performance
max_iterations = 500 Máxima cantidad de iteraciones
swarm_size = 50 Cantidad de partículas
w_high = 1.0 Cota máxima de w
w_low = 0.2 Cota mínima de w
w = w_low Coeficiente de inercia (o temperatura)
w_damp = 1.0 Valor de enfriado del coeficiente de inercia
**< valor => > velocidad de enfriado
c1 = 2 Coeficiente de aceleración cognitiva
1
El algoritmo frena luego de esa cantidad de iteraciones
2
PSO frena luego de esta cantidad de iteraciones sin cambios en el resultado de la función de fitness
3
PSO frena si la diferencia entre el anterior costo y el actual es menor que este umbral
c1 𝟄 [0;2]
c2 = 2 Coeficiente de aceleración social
c2 𝟄 [0;2]

Parámetros de recocido simulado


T_init = 1000 Tiempo inicial
T_end = 1 Tiempo de corte
T_rate = 0.99 Tasa de cambio del Tiempo
T_cur = T_init Tiempo actual
SA_m = 0 Contador de movimientos de cada partícula
SA_gen = 30 Cantidad de movimientos de partículas por cada
movimiento global

NOTA: considere que el algoritmo tiene predeterminada la condición de terminación por cantidad
máxima de iteraciones: max_iterations = 500;
NOTA: los parámetros en gris se colocaron solo por completitud

8) genere un informe de los resultados, levantando una tabla con sus pruebas
TIP: debe correr varias veces
TIP: el buffer de salida lo hallará haciendo click en la ventana command window

Definiciones importantes
Elipsoide de Hayford: conjunto de distancias (a,b) a dos puntos referencia sobre una superficie
(ver https://www.um.es/geograf/sigmur/temariohtml/node5_mn.html)

Referencia:
https://github.com/mschof/ParticleSwarmOptimization/blob/master/README.md

También podría gustarte