Paralelización de algoritmos basados
en Colonias de Hormigas.
Aplicación del Viajante de Comercio.
Autor: Eduardo Moreno Díaz
Director: Dr. D. José Manuel Martín Ramos
Escuela Politécnica Superior. Universidad de Huelva
Proyecto Fin de Carrera para optar al
Título de Ingeniero en Informática
Julio de 2012
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
ÍNDICE
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
ÍNDICE
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
4
Motivación
1. Introducción
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Nueva Tecnología de
supercomputación paralela
Fiable y de bajo coste
económico
Los ACO’s tienen muchas
aplicaciones en la industria
No existe experimentación
sobre ACO’s con técnicas de
supercomputación
“ Aplicar esta tecnología a los ACO’s mejorará enormemente
las posibilidades de experimentación
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
5
Introducción a los ACO’s
1. Introducción
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Los ACO’s (Ant Colony Optimization) es una metaheurística inspirada en el comportamiento que usan las hormigas para encontrar los caminos más cortos entre fuentes de comida y el hormiguero.
Se caracterizan por la utilización de dos heurísticas:
• Fija: la distancia entre nodos
• Variable: aporte de feromonas
Alto coste
computacional
(memoria/tiempo) Alto
Paralelismo
Implícito
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
6
Pseudocódigo ACO
1. Introducción
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
PROCEDURE AS
Inicialización de parámetros()
WHILE NOT criterio de terminación
crear/resetear hormigas()
construccion()
[optimización del recorrido()]
evaluación()
actualizacion de feromonas()
END WHILE
END PROCEDURE AS
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
7
Extensiones ACO
1. Introducción
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
AS (Ant System)
EAS (Elitis Ant System)
MMAS (Max-Min Ant System)
RAS (Rank-based Ant System)
ACS (Ant Colony System)
ACO
Aporte de
feromonas
diferente
Regla transición
pseudoaleatoria
para ACS
Velocidades de
convergencia
diferenciadas
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
8
El problema del viajante de comercio (TSP)
¿En qué consiste el TSP? Partiendo de un mapa con n ciudades, hay que construir una ruta
que comenzando y terminando en una ciudad concreta, pase por cada una de las ciudades, minimizando la distancia recorrida por el viajante de comercio.
¿Por qué se ha elegido? TSPLib es muy utilizado en la literatura científica para la
comparación entre algoritmos.
1. Introducción
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
9
Objetivos
1. Introducción
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Objetivos
+ = ACO CUDA
3 2 1
Análisis del coste computacional
Proporcionar experimentación
sobre esta tecnología
Marco de estudio que permita mejorar ACO
Tecnología Investigación I+D
Objetivo Objetivo Objetivo
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
ÍNDICE
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
11
¿Qué es CUDA?
2. CUDA
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Compute Unified Device Architecure Arquitectura Unificada de Computación en Dispositivos
Dispositivos gráficos de alto rendimiento
Arquitectura de cálculo paralelo que permite computar procedimientos iterativos
Tecnología SIMT Single Instruction Multiple Thread
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
12
¿ Qué hay que tener en cuenta en CUDA? 2. CUDA
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Unión de resultados
Grupos de Hebras
Sincronización
Subdivisión
• Subdivisión del problema en sub-problemas que puedan ser resueltos de forma paralela
• Grupos de hebras para resolver parcialmente
• Sincronización de la hebras • Unión de los resultados parciales para ofrecer el resultado global que se buscaba
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
13
Diferencias entre CPU y GPU
2. CUDA
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
GPU se compone de N-copias redundantes de CPUs que trabajan de manera paralela.
30 Multiprocesadores de 8 cores (240 cores en total) en los dispositivos utilizados.
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
14
Arquitectura Hardware
2. CUDA
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
15
Modelo de Ejecución
2. CUDA
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
La ejecución se reparte entre la CPU y la GPU.
2 tipos de interacción
Host-Device:
Síncrona
Asíncrona
“ La idea es combinar la ejecución Host-Device intentando minimizar
el número de intercambio de información entre CPU y GPU
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
ÍNDICE
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
17
Pseudocódigo ACO
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
PROCEDURE AS
Inicialización de parámetros()
WHILE NOT criterio de terminación
crear/resetear hormigas()
construccion()
[optimización del recorrido()]
evaluación()
actualizacion de feromonas()
END WHILE
END PROCEDURE AS
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
18
Pseudocódigo ACO
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Crear/resetear hormigas()
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
19
Pseudocódigo ACO
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Construccion()
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
20
Pseudocódigo ACO
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Evaluación()
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
21
Pseudocódigo ACO
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Actualizacion de feromonas()
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
22
Esquema de intercambios CPU/GPU
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
23
Esquema de intercambios CPU/GPU
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Proceso que inicializa las
estructuras de datos del
algoritmo
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
24
Esquema de intercambios CPU/GPU
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Proceso que construye las
soluciones que genera el
algoritmo
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
25
Pseudocódigo Operador de transición
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣 > 𝑚𝑎𝑥
rulette_kernel_pseudocode()
∀𝑡ℎ𝑖 ∈ 𝐴𝑛𝑡𝑠
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0
𝑟𝑛𝑑 ← random(0-1)
∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣
𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚𝑝𝑟𝑜𝑏
𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 + 1
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑣
𝐼𝑓 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 > 0
𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
donde:
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
26
Pseudocódigo Operador de transición
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣 > 𝑚𝑎𝑥
rulette_kernel_pseudocode()
∀𝑡ℎ𝑖 ∈ 𝐴𝑛𝑡𝑠
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0
𝑟𝑛𝑑 ← random(0-1)
∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣
𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚𝑝𝑟𝑜𝑏
𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 + 1
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑣
𝐼𝑓 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 > 0
𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
donde:
Operador ruleta
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
27
Pseudocódigo Operador de transición
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣 > 𝑚𝑎𝑥
rulette_kernel_pseudocode()
∀𝑡ℎ𝑖 ∈ 𝐴𝑛𝑡𝑠
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0
𝑟𝑛𝑑 ← random(0-1)
∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣
𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚𝑝𝑟𝑜𝑏
𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 + 1
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑣
𝐼𝑓 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 > 0
𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
donde:
Regla de transición
Pseudoaleatoria para la
extensión ACS
y evaporación local
Operador ruleta
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
28
Pseudocódigo Operador de transición
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣 > 𝑚𝑎𝑥
rulette_kernel_pseudocode()
∀𝑡ℎ𝑖 ∈ 𝐴𝑛𝑡𝑠
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0
𝑟𝑛𝑑 ← random(0-1)
∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟
𝑠𝑢𝑚𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ,𝑣
𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚𝑝𝑟𝑜𝑏
𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡 + 1
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑣
𝐼𝑓 𝑠𝑢𝑚𝑝𝑟𝑜𝑏 > 0
𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒
𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2𝑛𝑒𝑥𝑡
𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑐𝑖𝑡𝑦𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦𝑛𝑒𝑥𝑡
donde:
Evaluación del coste
Operador ruleta
Regla de transición
Pseudoaleatoria para la
extensión ACS
y evaporación local
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
29
Esquema de intercambios CPU/GPU
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Procedimiento para realiza
los procesos de
evaporación y aporte de
feromonas en los arcos
visitados por las hormigas
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
30
Pseudocódigo Evaporación Global de Feromonas
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
global_evaporated_kernel_pseudocode()
∀𝑡ℎ𝑖𝑗 𝑤ℎ𝑒𝑟𝑒 𝑖 ∈ 𝐶𝑖𝑡𝑖𝑒𝑠 𝑎𝑛𝑑 𝑗 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟
𝜏𝑖𝑗 ← 𝜏𝑖𝑗 ∗ 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑𝑓𝑎𝑐𝑡𝑜𝑟
𝐼𝑓 𝜏𝑖𝑗 < 𝜏0
𝜏𝑖 ← 𝜏0
donde:
“ Es el mismo procedimiento para todas las extensiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
31
Esquema de intercambios CPU/GPU
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Procedimiento adicionales
independientes que
controlan iteraciones,
tiempo, fitness de la mejor
solución
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
32
Esquema de intercambios CPU/GPU
3. ACO’s Paralelos
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Intercambio de información
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
ÍNDICE
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
34
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
¿Mejoran el
tiempo y la
calidad de las
soluciones?
¿Qué
extensión es la
que funciona
mejor?
¿Y en problemas
más complejos
también aportan
mejoras?
La experimentación responde a estas preguntas
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
35
Parámetros empleados
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Parámetros globales válidos para todos los algoritmos: Número de iteraciones: 1000
Alfa: 1
Beta: 2
Número de hormigas: {25, 50, 75, 100, 150, 200}
Porcentaje de Vecinos: {100, 80, 60, 40, 20}
Porcentaje de Evaporación global: 10%
Parámetros específicos para ACS: Porcentaje de Evaporación local: 10%
Aplicación regla pseudoaleatoria: 90%
Parámetro específico para EAS: Número de hormigas Elitista: {50, 75}
Parámetro específico para RAS: Número de Hormigas en el Ranking: {5, 10, 15}
9 semillas para el generador de número aleatorios
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
36
Calidad de las soluciones
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La versión paralela es correcta
6.3
32
8.0
80
7.0
15
6.8
08
6.5
15
51
.65
2
57
.90
2
56
.93
3
55
.17
8
55
.23
6
11
6.2
76
16
7.2
32
14
0.8
55
14
0.8
46
13
0.1
20
6.3
27
7.9
73
7.8
77
6.8
71
6.5
17
51
.49
2
60
.13
0
56
.99
4
55
.30
1
55
.16
6
11
6.2
56
16
8.0
52
14
2.9
53
14
1.2
92
13
0.2
19
1
10
100
1000
10000
100000
1000000
MM
AS
AS
EA
S
RA
S
AC
S
MM
AS
AS
EA
S
RA
S
AC
S
MM
AS
AS
EA
S
RA
S
AC
S
ch130 pr264 pr439
Paralelo Serie
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
37
Mejoras en tiempo de ejecución
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ El tiempo inversamente proporcional a la complejidad del TSP
44
23
0
88
7
44
34
9
1.5
45
0
200
400
600
800
1000
1200
1400
1600
1800
ch130 pr264 pr439
Paralelo Serie Exponencial (Paralelo) Exponencial (Serie)
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
38
Reducción del tiempo (en media) por problema
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La versión paralela ahorra la mitad del tiempo de ejecución
-0,69%
65,87%
56,69%
-10,00%
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
ch130 pr264 pr439
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
39
Aumento de la velocidad (en media) por problema
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La velocidad aumenta mientras más complejo es el TSP
-0,69%
151,81%
176,41%
-20,00%
0,00%
20,00%
40,00%
60,00%
80,00%
100,00%
120,00%
140,00%
160,00%
180,00%
200,00%
ch130 pr264 pr439
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
40
Aumento de velocidad (en media) por extensión
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La extensión ACS reduce su velocidad
352,81%
244,05%
157,61%
235,26%
-60,63%-100,00%
-50,00%
0,00%
50,00%
100,00%
150,00%
200,00%
250,00%
300,00%
350,00%
400,00%
MMAS AS EAS RAS ACS
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
41
Reducción del tiempo por problema y extensión
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La extensión ACS aumenta con respecto a la versión serie
36
,80
%
20
,29
%
-13
,29
%
15
,86
%
-80
,51
%
72
,72
%
33
,60
% 62
,78
%
59
,31
%
-14
5,3
0%
81
,06
%
73
,69
%
74
,17
%
74
,28
%
-14
5,4
5%
-150,00%
-100,00%
-50,00%
0,00%
50,00%
100,00%
MMAS AS EAS RAS ACS MMAS AS EAS RAS ACS MMAS AS EAS RAS ACS
ch130 pr264 pr439
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
42
Aumento de velocidad por problema y extensión
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La extensión ACS reduce su velocidad
58
,24
%
25
,46
%
-11
,73
%
18
,85
%
-44
,60
%
26
6,6
1%
50
,60
%
16
8,7
0%
14
5,7
5%
-59
,23
%
42
7,9
2%
28
0,0
5%
28
7,1
6%
28
8,8
1%
-59
,26
%
-100,00%
0,00%
100,00%
200,00%
300,00%
400,00%
500,00%
MMAS AS EAS RAS ACS MMAS AS EAS RAS ACS MMAS AS EAS RAS ACS
ch130 pr264 pr439
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
43
Relación exploración/explotación. Niveles de Convergencia
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
MMAS ACS AS EAS RAS
300000
275000
250000
225000
200000
175000
150000
125000
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
44
Relación exploración/explotación. Niveles de Convergencia
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
108269 127362 160674 126997 109054 Costes para el PR439
Exploración Explotación
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
45
Ranking de las extensiones
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
MMAS 1 RAS 2 EAS 3
ACS 4 AS 5
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
46
En problemas más complejos
4. Experimentación
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
“ La mejoría en cuanto al tiempo es asombrosa
38
,09
47
,02
25
,25
38
,60
82
,38
14
0,1
1
14
0,5
5
11
2,2
8
13
5,3
8
87
5,0
6
39
8,7
5
46
7,1
1
26
2,5
4
39
3,1
1
3.8
63
,10
46
5,4
8
60
4,2
8
34
8,5
3
55
5,3
7
5.6
80
,46
1.4
17
,18
1.8
16
,47
88
8,1
6
1.5
72
,01
33
.47
6,4
0
47
,79
41
,50
39
,95
45
,88
45
,64
21
1,0
1
37
7,6
7
41
1,6
2
33
2,6
9
35
6,7
3
1.5
15
,43
1.8
08
,46
1.3
85
,99
1.4
62
,03
1.6
34
,95
0
10000
20000
30000
40000
50000
60000
70000
AS
EA
S
MM
AS
RA
S
AC
S
AS
EA
S
MM
AS
RA
S
AC
S
AS
EA
S
MM
AS
RA
S
AC
S
AS
EA
S
MM
AS
RA
S
AC
S
AS
EA
S
MM
AS
RA
S
AC
S
ch130 pr264 pr439 p654 pr1002
Paralelo Serie Exponencial (Paralelo) Exponencial (Serie)
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
ÍNDICE
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
48
Conclusiones
5. Conclusiones
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
CUDA es una magnífica herramienta de paralelización, ya que minimiza
el tiempo de cómputo de un algoritmo de manera notoria, lo que permite
abordar en la experimentación problemas cuyo tamaño y/o complejidad
hasta ahora era impensable con los microprocesadores actuales
Permite validar el desarrollo de nuevos operadores y técnicas de
optimización ya que posibilitan realizar una amplia experimentación en
un corto periodo de tiempo.
Usando la arquitectura SIMT ofrecida por CUDA se mejora un esquema
establecido como son los Clúster de CPU’s tradicionales. Además, el
coste de esta tecnología en el mercado es insignificante si la
comparamos con la usada en los supercomputadores (mainframe).
Mejora los
tiempos de
cómputo
Nuevos
operadores
Mejora los
clústers
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
49
Trabajos Futuros
5. Conclusiones
Par
alel
izac
ión
de
alg
ori
tmo
s b
asad
os
en C
olo
nia
s d
e H
orm
igas
.
Mejorar la extensión ACS
Operador de transición paralelo
Eliminación de cruces en los tours
Otras técnicas de programación CUDA
Islas de hormigas
Uso compartido de varias GPU’s
Estudio de la extensión RAS
Tít
ulo
de
la p
resen
tació
n /
F
ive l
am
ps
tan
ds
co
mfo
rtab
ly t
ickle
d
50
La información comprendida en esta presentación es confidencial y
pertenece a Eduardo Moreno Díaz. Cualquier forma de divulgación,
reproducción, copia o distribución total o parcial de la misma queda
prohibida, no pudiendo ser utilizado su contenido para otros fines sin la
autorización del autor.
Aviso de confidencialidad