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 ...
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