23.07.2013 Views

Resolución del Problema de Steiner Generalizado utilizando - NEO ...

Resolución del Problema de Steiner Generalizado utilizando - NEO ...

Resolución del Problema de Steiner Generalizado utilizando - NEO ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong><br />

<strong>Generalizado</strong> <strong>utilizando</strong> un<br />

Algoritmo Genético Paralelo<br />

M. Aroztegui, S. Árraga, S. Nesmachnow<br />

Instituto <strong>de</strong> Computación<br />

Universidad <strong>de</strong> la República<br />

Montevi<strong>de</strong>o, Uruguay.<br />

Departamento <strong>de</strong> Lenguajes y Ciencias <strong>de</strong> la Computación<br />

Universidad <strong>de</strong> Málaga<br />

Febrero 2003.


Motivación <strong><strong>de</strong>l</strong> trabajo<br />

Diseño <strong>de</strong> re<strong>de</strong>s <strong>de</strong> comunicaciones confiables.<br />

Investigación <strong>de</strong> técnicas <strong>de</strong> programación evolutiva.<br />

Aplicación <strong><strong>de</strong>l</strong> procesamiento <strong>de</strong> alto <strong>de</strong>sempeño.<br />

Proyecto :<br />

“Algoritmos Genéticos Paralelos y su<br />

Aplicación al Diseño <strong>de</strong> Re<strong>de</strong>s <strong>de</strong><br />

Comunicaciones Confiables”<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>Generalizado</strong><br />

<strong>utilizando</strong> un Algoritmo Genético Paralelo


El <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> (GSP)<br />

Grafo no dirigido, pon<strong>de</strong>rado : G=(V,E,C).<br />

Conjunto distinguido <strong>de</strong> nodos terminales T, (2≤|T|≤|V|).<br />

Matriz R={r ij } i,j∈T : requisitos <strong>de</strong> conectividad –caminos<br />

disjuntos– entre pares <strong>de</strong> nodos terminales.<br />

GSP : hallar subgrafo G T <strong>de</strong> G, <strong>de</strong> costo mínimo, tal que todo par<br />

<strong>de</strong> nodos terminales sean r ij arista conexos en G T (existan r ij<br />

caminos disjuntos entre los nodos i y j en G T ).<br />

El GSP es NP difícil<br />

Alternativa<br />

Heurísticas para hallar buenas soluciones en tiempos razonables.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>Generalizado</strong><br />

<strong>utilizando</strong> un Algoritmo Genético Paralelo


A<br />

4<br />

5<br />

2<br />

1<br />

E<br />

2<br />

El <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong><br />

3<br />

2<br />

3<br />

3<br />

Grafo original<br />

2<br />

2<br />

1<br />

1<br />

1<br />

2<br />

5<br />

3<br />

D<br />

3<br />

2<br />

4<br />

4<br />

2<br />

3<br />

B<br />

6<br />

2<br />

C<br />

3<br />

Ejemplo<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo<br />

A<br />

rAB = 3, rAC = 3<br />

rBD = 2, rBC = 3<br />

r AE = 1, r AD = 2.<br />

Requerimientos <strong>de</strong> caminos Grafo solución<br />

2<br />

1<br />

E<br />

2<br />

2<br />

2<br />

1<br />

1<br />

2<br />

D<br />

3<br />

2<br />

4<br />

4<br />

3<br />

2<br />

B<br />

2<br />

3<br />

C


Solución <strong>utilizando</strong> un Algoritmo Genético (AG)<br />

Propuesta: aplicar técnicas evolutivas (AG) al GSP.<br />

Mo<strong><strong>de</strong>l</strong>os paralelos tomando en cuenta dimensión <strong>de</strong> problemas.<br />

Mo<strong><strong>de</strong>l</strong>o inicial<br />

Algoritmo Genético Paralelo (AGP) <strong>de</strong> población distribuida.<br />

Codificación binaria simple<br />

Cromosoma representa aristas <strong><strong>de</strong>l</strong> grafo.<br />

Operadores <strong>de</strong> evolución sencillos.<br />

Cruzamiento y mutación pue<strong>de</strong>n generar soluciones no<br />

factibles <strong><strong>de</strong>l</strong> GSP.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Solución <strong>utilizando</strong> un Algoritmo Genético<br />

Operadores utilizados :<br />

Selección proporcional al fitness escalado.<br />

Cruzamiento <strong>de</strong> un punto.<br />

Mutación <strong>de</strong> inversión <strong><strong>de</strong>l</strong> valor <strong>de</strong> un alelo.<br />

Población inicializada eliminando aristas <strong><strong>de</strong>l</strong> grafo original.<br />

Función <strong>de</strong> fitness : evalúa el costo <strong><strong>de</strong>l</strong> grafo representado.<br />

f<br />

=<br />

C<br />

ORIG<br />

−<br />

∑ − n 1<br />

0<br />

[ BIT ( i)<br />

* C ( i)<br />

]<br />

C ORIG costo <strong><strong>de</strong>l</strong> grafo original,<br />

C : [0,|E|-1] → R retorna el costo asociado a una arista,<br />

BIT : [0,|E|-1] → [0,1] da el valor correspondiente a una arista en el cromosoma.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Solución <strong>utilizando</strong> un Algoritmo Genético<br />

Cálculo <strong>de</strong> factibilidad<br />

Heurística O(|T| 2 ) para verificar grados nodos terminales.<br />

Ford–Fulkerson para hallar caminos entre pares <strong>de</strong> nodos<br />

terminales. O(|E|.r MAX . |T| 2 ).<br />

Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> paralelismo<br />

Subpoblaciones con migración.<br />

Selección y reemplazo proporcional al fitness.<br />

Parámetros a estudiar:<br />

Topología, frecuencia y tasa <strong>de</strong> migración.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>Generalizado</strong><br />

<strong>utilizando</strong> un Algoritmo Genético Paralelo


Validación <strong><strong>de</strong>l</strong> AGP<br />

Resultados obtenidos<br />

Implementación<br />

Lenguaje C++, compilador GNU G++, biblioteca MPICH.<br />

Plataforma <strong>de</strong> ejecución<br />

Cluster <strong>de</strong> 4 equipos Intel monoprocesador (Pentium III, 400 MHz),<br />

SO SuSE Linux 8.0, conectados mediante LAN ethernet a 100 Mbps.<br />

Comparación <strong>de</strong> calidad <strong>de</strong> resultados con literatura existente<br />

(heurística Ant Systems).<br />

Se mejoró la calidad <strong>de</strong> soluciones para grafos <strong>de</strong> validación.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Resultados obtenidos<br />

Configuración <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o <strong>de</strong> migración<br />

Sensibilidad <strong>de</strong> resultados en función <strong>de</strong> parámetros <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o<br />

Frecuencia : los mejores resultados se obtuvieron<br />

consistentemente con frecuencia máxima.<br />

Tasa : valor <strong>de</strong> equilibrio entre mo<strong><strong>de</strong>l</strong>o fuertemente distribuido<br />

y un mo<strong><strong>de</strong>l</strong>o panmíctico.<br />

Topología : la escasa disponibilidad <strong>de</strong> equipos no permite<br />

extraer resultados concluyentes.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Resultados obtenidos<br />

Comparación entre mo<strong><strong>de</strong>l</strong>o paralelo y panmíctico<br />

Evaluando calidad <strong>de</strong> resultados y eficiencia <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o.<br />

Escenario <strong>de</strong> pruebas<br />

Configuración óptima <strong>de</strong> migración.<br />

Parámetros probabilísticos iguales en ambos mo<strong><strong>de</strong>l</strong>os.<br />

Grafos <strong>de</strong> 100 vértices, 500 aristas, 20 terminales y entre 0 y 4<br />

restricciones <strong>de</strong> caminos.<br />

Criterios <strong>de</strong> parada utilizados<br />

Número fijo <strong>de</strong> generaciones.<br />

Calidad <strong>de</strong> solución : incremento relativo <strong><strong>de</strong>l</strong> fitness menor a<br />

uno por mil en las últimas 10 generaciones.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Fitness<br />

5000<br />

4500<br />

4000<br />

3500<br />

3000<br />

2500<br />

2000<br />

1500<br />

1000<br />

500<br />

Speedup casi lineal<br />

Resultados obtenidos<br />

panmíctico AGP<br />

1734,12<br />

0<br />

3,00 1099,00 2195,00 3291,00 4386,00 5482,00<br />

tiempo (s)<br />

Evolución <strong><strong>de</strong>l</strong> fitness con el tiempo<br />

6382,6<br />

Speedup débil.<br />

Con esfuerzo pre<strong>de</strong>finido y con calidad <strong>de</strong> resultado.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Conclusiones<br />

Aporte <strong><strong>de</strong>l</strong> trabajo : Algoritmo Genético Paralelo para el<br />

<strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong>.<br />

Enfoque evolutivo serial preciso en pruebas <strong>de</strong> validación<br />

(obteniendo mejores resultados que la heurística Ant Systems)<br />

Mo<strong><strong>de</strong>l</strong>o <strong>de</strong> AGP alcanza calidad <strong>de</strong> resultados comparable<br />

con el serial, con speedup casi lineal<br />

Los resultados alientan a continuar la investigación en el área.<br />

Estudiando nuevos tópicos <strong>de</strong> diseño<br />

Ampliando el horizonte <strong>de</strong> aplicabilidad<br />

Analizando factores que no fue posible estudiar concluyentemente.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo


Nuevos mo<strong><strong>de</strong>l</strong>os paralelos<br />

Trabajo actual y futuro<br />

Investigar la escalabilidad <strong><strong>de</strong>l</strong> mo<strong><strong>de</strong>l</strong>o al aumentar los<br />

recursos computacionales<br />

Poblaciones dinámicas para entorno heterogéneo.<br />

Representaciones alternativas<br />

Trabajar con soluciones no factibles.<br />

Representación basada en lista <strong>de</strong> caminos.<br />

<strong>NEO</strong> <strong>Resolución</strong> <strong><strong>de</strong>l</strong> <strong>Problema</strong> <strong>de</strong> <strong>Steiner</strong> <strong>Generalizado</strong> <strong>utilizando</strong> un Algoritmo Genético Paralelo Paralelo

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!