Presentacion Proyecto Fin de Carrera

50
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

Transcript of Presentacion Proyecto Fin de Carrera

Page 1: Presentacion Proyecto Fin de Carrera

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

Page 2: Presentacion Proyecto Fin de Carrera

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

Page 3: Presentacion Proyecto Fin de Carrera

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

Page 4: Presentacion Proyecto Fin de Carrera

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

Page 5: Presentacion Proyecto Fin de Carrera

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

Page 6: Presentacion Proyecto Fin de Carrera

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

Page 7: Presentacion Proyecto Fin de Carrera

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

Page 8: Presentacion Proyecto Fin de Carrera

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

.

Page 9: Presentacion Proyecto Fin de Carrera

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

Page 10: Presentacion Proyecto Fin de Carrera

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

Page 11: Presentacion Proyecto Fin de Carrera

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

Page 12: Presentacion Proyecto Fin de Carrera

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

Page 13: Presentacion Proyecto Fin de Carrera

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.

Page 14: Presentacion Proyecto Fin de Carrera

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

.

Page 15: Presentacion Proyecto Fin de Carrera

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

Page 16: Presentacion Proyecto Fin de Carrera

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

Page 17: Presentacion Proyecto Fin de Carrera

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

Page 18: Presentacion Proyecto Fin de Carrera

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()

Page 19: Presentacion Proyecto Fin de Carrera

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()

Page 20: Presentacion Proyecto Fin de Carrera

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()

Page 21: Presentacion Proyecto Fin de Carrera

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()

Page 22: Presentacion Proyecto Fin de Carrera

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

.

Page 23: Presentacion Proyecto Fin de Carrera

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

Page 24: Presentacion Proyecto Fin de Carrera

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

Page 25: Presentacion Proyecto Fin de Carrera

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:

Page 26: Presentacion Proyecto Fin de Carrera

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

Page 27: Presentacion Proyecto Fin de Carrera

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

Page 28: Presentacion Proyecto Fin de Carrera

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

Page 29: Presentacion Proyecto Fin de Carrera

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

Page 30: Presentacion Proyecto Fin de Carrera

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

Page 31: Presentacion Proyecto Fin de Carrera

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

Page 32: Presentacion Proyecto Fin de Carrera

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

Page 33: Presentacion Proyecto Fin de Carrera

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

Page 34: Presentacion Proyecto Fin de Carrera

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

Page 35: Presentacion Proyecto Fin de Carrera

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

Page 36: Presentacion Proyecto Fin de Carrera

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

Page 37: Presentacion Proyecto Fin de Carrera

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)

Page 38: Presentacion Proyecto Fin de Carrera

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

Page 39: Presentacion Proyecto Fin de Carrera

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

Page 40: Presentacion Proyecto Fin de Carrera

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

Page 41: Presentacion Proyecto Fin de Carrera

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

Page 42: Presentacion Proyecto Fin de Carrera

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

Page 43: Presentacion Proyecto Fin de Carrera

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

Page 44: Presentacion Proyecto Fin de Carrera

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

Page 45: Presentacion Proyecto Fin de Carrera

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

Page 46: Presentacion Proyecto Fin de Carrera

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)

Page 47: Presentacion Proyecto Fin de Carrera

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

Page 48: Presentacion Proyecto Fin de Carrera

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

Page 49: Presentacion Proyecto Fin de Carrera

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

Page 50: Presentacion Proyecto Fin de Carrera

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