SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Práctica 1 de Algoritmos Evolutivos y Bioinspirados

                                     Eduardo Moreno Díaz
                      Alumno Ingeniería Informática Universidad de Huelva
                                          eduardo.diaz@alu.uhu.es


                    Resumen                             ya que cuando se enfrentan a casos muy complejos
                                                        resultan ineficientes respecto a tiempo y recursos
    Este documento realiza un estudio entre             empleados.
diferentes    implementaciones    de     algoritmos
evolutivos genéticos aplicados para resolver el                  Este estudio analiza diferentes versiones de
problema del “viajante de comercio” o TSP               estos algoritmos para enfrentarlos a tres casos del
(Travelling Salesman Problem en inglés). Los            TSP, CH130, problema de 130 ciudades con 6110
algoritmos estudiados son el genético básico, con       de coste; A280, 280 ciudades con un camino
población estacionaria y generacional, y paralelo       mínimo de 2579; y P654, formado por 654 ciudades
con población estacionaria. Al final, se expondrán      cuya solución óptima es 34643.
las diferencias de comportamiento entre el
algoritmo de colonia de hormigas SH y SCH y los                  Los algoritmos de comparación SH y SCH
diferentes algoritmos implementados.                    [2] son los algoritmos que funcionan a la perfección
                                                        sobre estos casos de estudio, por lo que acercarse a
PALABRAS CLAVES: Optimización, viajante,                los resultados que éstos presentan hace que resulte
algoritmo evolutivo, colonia hormiga, algoritmo         interesante la comparación con los genéticos.
genético, paralelización.

1. Introducción                                         2. Descripción de problema

         El problema del viajante de comercio es                En su descripción matemática, el TSP
uno de los problemas más conocidos y quizás el          formado por el conjunto finto de ciudades C, trata
mejor estudiado en el campo de la optimización          de encontrar la permutación P = {co, c1, …, cn} tal
combinatoria computacional. A pesar de la aparente      que
sencillez de su planteamiento, el TSP es uno de los
problemas más complejos.

         En su formulación más general, se trata de
que, dado un conjunto de N ciudades, encontrar el       sea mínimo. La distancia entre ciudades viene dada
circuito más corto que partiendo de una de ellas,       por la matriz D = N x N donde d[x, y] representa la
pase por todas las demás y retorne a la ciudad          distancia entre las ciudades x e y.
origen. Cabe destacar que, en principio, esta
formulación no recoge premisas de conexión entre
ciudades, sino que el grafo formado por las ciudades
es fruto del producto cartesiano de todas las
ciudades,     formando     un    grafo    completo.
Evidentemente, dicho grafo presenta bucles o lazos      Representación de la solución
que el algoritmo de resolución debe controlar.
                                                                 La representación que se hará de la
         Son muchos los intentos que los                solución será la lista de ciudades, ordenada en orden
matemáticos han realizado para tratar de dar            de paso, que representa el itinerario a seguir.
respuesta a estos problemas, Edsger Dijkstra,
Kruskal [1], etc. Dicho algoritmos de resolución son
muy eficientes en problemas de poca complejidad
Representación 1. Ejemplo de solución


Función objetivo
                                                               Representación 3. Operador de mutación 2-Opt
         La función de evaluación para el problema
del TSP será la suma de las todas las distancias
entre ciudades que aparecen en la lista representada
por la solución.                                         3. Ciclo de Vida de los Algoritmos
                                                         Genéticos
Operador de selección
                                                                 Un algoritmo genético básico sigue el
         El operador de selección utilizado es el de     procedimiento descrito en la figura 1:
“torneo”. Se eligen cierto número de individuos
aleatorios de la población y se selecciona al mejor,     Procedure AGB
obteniéndose así al padre 1. Se repite de nuevo el
proceso y se elige al padre 2. Estos dos individuos       Sf = 0
se cruzan para obtener a dos nuevos hijos que
formarán parte de la nueva población para las             InicializarPoblación()
siguientes iteraciones.
                                                          Mientras (¬criterioParada) Hacer
Operador de cruce                                           Padres = SeleccionarPadres()
                                                            Hijos = CruzarPadres()
         Como operador de cruce se utilizará el             Mutar(Hijos)
conocido como Order Crossover OX1 [3]. Consiste             Reemplazar()
en tomar una parte de la solución de tamaño                 Sf = AlmacenarMejorIndividuo(Poblacion)
aleatorio no superior a la mitad del tamaño de la         Fin
solución. Esta parte forma parte del nuevo hijo. El
resto del hijo se rellena con los datos del otro padre    Devolver Sf
que son elegidos en orden, teniendo en cuenta de
que si el hijo ya tiene los valores que el segundo       Fin
padre le va a proporcionar, éste no puede
duplicarlos. El proceso alterna a los padres y se crea          Figura 1. Pseudocódigo Algoritmo Genético Básico
el nuevo hijo. Un ejemplo se puede ver en la
representación 2.                                                 Este procedimiento requiere de ciertas
                                                         particularidades a la hora de utilizarse en las
                                                         implementaciones estudiadas. Las principales
                                                         diferencias tienen que ver con la forma de
                                                         reemplazar la población al final del proceso. Para el
                                                         genético con población estacionaria, el hijo
                                                         reemplaza a la peor solución existente en la
                                                         población, siempre y cuando su función de coste
                                                         presente mejor valor que la que va a reemplazar. En
                                                         cambio, en el genético generacional los hijos
       Representación 2. Operador de cruce OX1
                                                         siempre reemplazan a los padres. Además, otro
                                                         punto destacable es que en el generacional, se debe
Operador de mutación                                     conservar el elitismo de la población, para ello,
                                                         siempre se pasa al mejor individuo a la nueva
        El operador de mutación usado es el 2-Opt.       población.
Se basa en realizar una permutación entre un par de
ciudades de la solución elegidas aleatoriamente                    El algoritmo genético paralelo estudiado
como puede apreciarse en la representación 3.            esta realizado utilizando el esquema de islas que se
                                                         observa     en     la   representación    4.    Esta
implementación consiste en tener diferentes             AGB Generacional
poblaciones de individuos separadas físicamente e ir          - % de Cruce: 70%
transfiriendo el mejor individuo de cada una de               - % de Mutación: 10%
ellas al resto. Con esta técnica se favorece                  - Tamaño torneo (tamaño población / 10)
principalmente la diversidad poblacional tan                  - # de torneos: tamaño de la población
necesaria en estos algoritmos. Además permite                 - Criterio de parada: 20.000 iteraciones sin
distribuir el coste computacional ente diferentes               encontrar solución mejor
máquinas ya que cada isla podría estar ubicada en
una CPU diferente y que cada cierto tiempo se           AG Estacionario Paralelo:
comunicarían entre ellas para transferir al mejor              - # Islas: 6
individuo de su población.                                     - Criterio de parada: las mismas que haya
                                                                 dado el estacionario básico
                                                               - Iteraciones intercambio: 10*tamaño
         Respecto a las técnicas de transferencia de             solución
individuos existen varios tipos de interconexión:
anillo, estrella, topología tipo toro, etc. Para este            El tamaño de la población esta ligado al
estudio se ha utilizado el esquema de anillo, en la     caso de estudio que se esté realizando. Para el
que cada isla esta conectada a dos islas, una para      CH130 se ha utilizado 100 individuos; para el A280
enviar y otra para recibir. Además se ha                150; y para el P654, 200.
implementado hilos (threads) que simulan las
diferentes CPUs.                                                 La máquina empleada es un ordenador
                                                        Intel Pentium Dual Core a 2.66 GHZ por CPU y
                                                        2GB de RAM bajo Windows XP SP2 y con
                                                        máquina Virtual de Java v1.6

                                                                 A continuación, se muestran las tablas de
                                                        resultados parciales por algoritmo y caso de estudio:



               Representación 4. Modelo de islas


4. Experimentación

         Se ha realizado un proceso de
                                                           Tabla 1. Resultados Parciales AG Básico Estacionario
experimentación con las tres implementaciones del
estudio, genético básico con población estacionaria,
genético básico con población generacional y
genético paralelo con población estacionaria; con
tres casos de estudio del problema TSP: CH130,
A280 y P654. Además, se ha utilizado los
algoritmos SCH y SH cómo algoritmos de
comparación con los genéticos
                                                          Tabla 2. Resultados Parciales AG Básico Generacional
          La parametrización utilizada en las pruebas
es la siguiente:

AGB Estacionario
       - % de Cruce: 100%
       - % de Mutación: 10%
       - Tamaño torneo (tamaño población / 10)
       - # de torneos: 2
       - Criterio de parada: 20.000 iteraciones sin
         encontrar solución mejor
600000
                                                         opt) no representa un cambio lo bastante importante
           Básico Estacionario                           como para que se produzcan resultados interesantes.
  500000
           Básico Generacional
  400000
                                                                  Atendiendo al tiempo empleado, cabe decir
                                                         que consumen muchos recursos a ese nivel. Los dos
  300000
                                                         procesadores sobre los que se han estado ejecutando
  200000                                                 la batería de pruebas han estado funcionando a
                                                         pleno rendimiento durante todo el tiempo de
  100000
                                                         ejecución.
      0
                CH130             A280            P654
                                                                  Para comparar         la versión      básica
                                                         estacionaria con la paralela estacionaria, se calcula
           Gráfica 1. Comparativa de resultados
                                                         el speedup (tiempo dividido entre el número de islas
                                                         utilizadas) sobre este último, resultando este valor
                                                         0,33 para el caso CH130, 2,66 para el A280 y 6 para
                                                         el P654. Como se aprecia, el tiempo de ejecución en
                                                         cada isla ha sido insuficiente ya que no se aproxima
5. Análisis de Resultados                                al tiempo de ejecución de la versión básica. Este
                                                         hecho explica los malos resultados que se han
         Observando las gráficas 2, 3 y 4 se puede       obtenido. El criterio de parada empleado en esta
notar la mala calidad que han ofrecido algunas de        implementación no ha sido el adecuado, debiéndose
las semillas utilizadas. Además, para hacer cumplir      haber optado por utilizar el mismo tiempo que en el
el criterio de parada establecido, algunas han           básico en cada isla.
realizado muchas más iteraciones que otras.

         En las gráficas 2 y 3, se muestra una           6. Concluciones
convergencia muy rápida para la versión con
población generacional. Además es la que ofrece los               Los algoritmos genéticos son sencillos de
resultados con mejor calidad.                            implementar ya que ni sus estructuras de datos ni
                                                         sus funcionalidades requieren de conocimientos
          También resulta interesante estudiar como      muy avanzados sobre ellos, con lo cual resultan
el hecho de aumentar la población del genético           muy interesantes para aplicar como primera idea a
básico al paralelo no ha ofrecido los resultados que     cualquier problema al que se tenga que buscar
cabría esperar. La causa de este efecto podría           solución. El hecho de no requerir una gran
deberse a la falta de diversidad poblacional de las      experiencia sobre el propio problema en cuestión
islas. Puede observarse en los ficheros de resultados    corrobora esta conclusión.
generados durante las pruebas, que el individuo
transferido pasa muy rápidamente de una isla otra                 Los resultados obtenidos en comparación
creando una élite que dificulta la selección de          con los algoritmos basados en colonias de hormigas
individuos peores y que son los que realmente            SCH y el SH han estado muy próximos incluso se
permiten el nacimiento de individuos diferentes que      han llegado a mejorar con alguna semilla. Pero cabe
tal vez resulten interesantes.                           decir, que los tiempos con el que se han ejecutado
                                                         dichos algoritmos fueron mucho más cortos que los
        La escala del caso de estudio también hace       empleados por los genéticos [2].
que el algoritmo funcione peor en igualdad de
condiciones. Los algoritmos genéticos utilizan                    Requieren de tiempo de ajuste para que
muchos parámetros y es difícil un ajuste que             funcionen adecuadamente. Son una ventaja ya que
funcione a la perfección para una gran variedad de       el abanico de problemas a los que se puede aplicar
problemas.                                               es bastante amplio pero que ofrezcan los resultados
                                                         deseados requiere de tiempo.
         Respecto al operador de mutación, también
hubiera sido útil estudiar diferentes posibilidades de            La versión con población generacional que
permutación como la 5-opt, 10-opt, etc. Al tratarse      se ha desarrollado ha aportado los mejores
de casos de estudio con una longitud de solución         resultados de entre las dos implementadas, haciendo
notable, un simple cambio de un valor por otro (2-       interesante estudiar cómo se comportaría la versión
                                                         paralela con esta forma de evolución poblacional.
American Mathematical Society. 7 (1956), pp. 48–50

                                                             [2] E.M Díaz (2011). Práctica 1 Algoritmos Evolutivos y
7. Referencias                                                   Bioinspirados.
[1] J. B. Kruskal: On the shortest spanning subtree and
                                                              [3] Davis. L. (1985) Appliying Adaptative Algorithms to
the
                                                                  Epistatic Domains
    traveling salesman problem. En: Proceedings of the




Anexo I

Tabla de resultados globales


A continuación, se muestra la tabla de resultados globales obtenidos en la batería de pruebas realizada. Los
valores de tiempo están dados en minutos




                                             Tabla 3. Resultados Finales


Gráficas de resultados parciales

Las siguientes gráficas muestran los resultados parciales obtenidos para las diferentes implementaciones del
algoritmo genético generados y los casos de estudio sobre los que se han aplicado




                                      Gráfica 2. Evolución caso estudio CH130
Gráfica 3. Evolución caso estudio A280




Gráfica 4. Evolución caso estudio P654

Weitere ähnliche Inhalte

Andere mochten auch

O AbraçO Salvador De Vidas
O AbraçO Salvador De VidasO AbraçO Salvador De Vidas
O AbraçO Salvador De VidasJNR
 
Independência dos Eua
Independência dos EuaIndependência dos Eua
Independência dos EuaCatia Abate
 
A fabula dos_feijoes_cinzentos
A fabula dos_feijoes_cinzentosA fabula dos_feijoes_cinzentos
A fabula dos_feijoes_cinzentosMara Pinto
 
Abengoa Annual Report 2013 - CSR
Abengoa Annual Report 2013 - CSRAbengoa Annual Report 2013 - CSR
Abengoa Annual Report 2013 - CSRAbengoa
 
Encíclica rerum novarum hans
Encíclica rerum novarum   hansEncíclica rerum novarum   hans
Encíclica rerum novarum hansRarden Luis
 
2016 sfc newsletter - nov 2016
2016 sfc   newsletter - nov 20162016 sfc   newsletter - nov 2016
2016 sfc newsletter - nov 2016Ana Paula Sousa
 
ApresentaçãO Para DéCimo Ano, Aula 91 92
ApresentaçãO Para DéCimo Ano, Aula 91 92ApresentaçãO Para DéCimo Ano, Aula 91 92
ApresentaçãO Para DéCimo Ano, Aula 91 92luisprista
 
Livro Nova Culinaria Paranaense
Livro Nova Culinaria ParanaenseLivro Nova Culinaria Paranaense
Livro Nova Culinaria ParanaenseGrupo CANAL
 
400 dicas para windows xp
400 dicas para windows xp400 dicas para windows xp
400 dicas para windows xpLuiz Avelar
 
Abrac final_road_show
 Abrac final_road_show Abrac final_road_show
Abrac final_road_showBoris Mesel
 

Andere mochten auch (19)

Abismos submarinos
Abismos submarinosAbismos submarinos
Abismos submarinos
 
O AbraçO Salvador De Vidas
O AbraçO Salvador De VidasO AbraçO Salvador De Vidas
O AbraçO Salvador De Vidas
 
Independência dos Eua
Independência dos EuaIndependência dos Eua
Independência dos Eua
 
Lecturas de gestion
Lecturas de gestionLecturas de gestion
Lecturas de gestion
 
SISTEMA ABRANGENTE DE NEGÓCIOS
SISTEMA ABRANGENTE DE NEGÓCIOS SISTEMA ABRANGENTE DE NEGÓCIOS
SISTEMA ABRANGENTE DE NEGÓCIOS
 
A fabula dos_feijoes_cinzentos
A fabula dos_feijoes_cinzentosA fabula dos_feijoes_cinzentos
A fabula dos_feijoes_cinzentos
 
Los 40 Principales Pintores
Los 40 Principales PintoresLos 40 Principales Pintores
Los 40 Principales Pintores
 
Binder4-5
Binder4-5Binder4-5
Binder4-5
 
Abengoa Annual Report 2013 - CSR
Abengoa Annual Report 2013 - CSRAbengoa Annual Report 2013 - CSR
Abengoa Annual Report 2013 - CSR
 
Khatarsis2008
Khatarsis2008Khatarsis2008
Khatarsis2008
 
Encíclica rerum novarum hans
Encíclica rerum novarum   hansEncíclica rerum novarum   hans
Encíclica rerum novarum hans
 
Normas ABNT
Normas ABNTNormas ABNT
Normas ABNT
 
2016 sfc newsletter - nov 2016
2016 sfc   newsletter - nov 20162016 sfc   newsletter - nov 2016
2016 sfc newsletter - nov 2016
 
ApresentaçãO Para DéCimo Ano, Aula 91 92
ApresentaçãO Para DéCimo Ano, Aula 91 92ApresentaçãO Para DéCimo Ano, Aula 91 92
ApresentaçãO Para DéCimo Ano, Aula 91 92
 
Livro Nova Culinaria Paranaense
Livro Nova Culinaria ParanaenseLivro Nova Culinaria Paranaense
Livro Nova Culinaria Paranaense
 
sudestada18.pdf
sudestada18.pdfsudestada18.pdf
sudestada18.pdf
 
400 dicas para windows xp
400 dicas para windows xp400 dicas para windows xp
400 dicas para windows xp
 
Vocabulario
VocabularioVocabulario
Vocabulario
 
Abrac final_road_show
 Abrac final_road_show Abrac final_road_show
Abrac final_road_show
 

Ähnlich wie Implementacion Genetico AEB

Vrptw algoritmos geneticos
Vrptw algoritmos geneticos Vrptw algoritmos geneticos
Vrptw algoritmos geneticos Julius Csr
 
Implementaciones ACO AEB
Implementaciones ACO AEBImplementaciones ACO AEB
Implementaciones ACO AEBedmodi
 
A01213521 cine maximos
A01213521 cine maximosA01213521 cine maximos
A01213521 cine maximosAbraham Prado
 
Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdfUniversidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdfarturoruizlopez1
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadamartinp
 
Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicosESCOM
 
68682 101665-1-pb
68682 101665-1-pb68682 101665-1-pb
68682 101665-1-pbisabel84
 
5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdf5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdfarturoruizlopez1
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticosRichar León
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoVane Erraez
 
Inteligencia
InteligenciaInteligencia
Inteligenciagabinoweb
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticosKevin Medina
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoyenpochih
 

Ähnlich wie Implementacion Genetico AEB (20)

Vrptw algoritmos geneticos
Vrptw algoritmos geneticos Vrptw algoritmos geneticos
Vrptw algoritmos geneticos
 
Implementaciones ACO AEB
Implementaciones ACO AEBImplementaciones ACO AEB
Implementaciones ACO AEB
 
A01213521 cine maximos
A01213521 cine maximosA01213521 cine maximos
A01213521 cine maximos
 
Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdfUniversidad_Autonoma_de_Queretaro_IMPLEM.pdf
Universidad_Autonoma_de_Queretaro_IMPLEM.pdf
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursada
 
A Geneticos
A GeneticosA Geneticos
A Geneticos
 
Padilla e
Padilla ePadilla e
Padilla e
 
Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicos
 
A Geneticos
A GeneticosA Geneticos
A Geneticos
 
68682 101665-1-pb
68682 101665-1-pb68682 101665-1-pb
68682 101665-1-pb
 
AG (1).pptx
AG (1).pptxAG (1).pptx
AG (1).pptx
 
5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdf5581-Texto del artículo-5653-1-10-20141008.pdf
5581-Texto del artículo-5653-1-10-20141008.pdf
 
A G's
A G'sA G's
A G's
 
Clase7 2004
Clase7 2004Clase7 2004
Clase7 2004
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticos
 
ALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
Inteligencia
InteligenciaInteligencia
Inteligencia
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 

Implementacion Genetico AEB

  • 1. Práctica 1 de Algoritmos Evolutivos y Bioinspirados Eduardo Moreno Díaz Alumno Ingeniería Informática Universidad de Huelva eduardo.diaz@alu.uhu.es Resumen ya que cuando se enfrentan a casos muy complejos resultan ineficientes respecto a tiempo y recursos Este documento realiza un estudio entre empleados. diferentes implementaciones de algoritmos evolutivos genéticos aplicados para resolver el Este estudio analiza diferentes versiones de problema del “viajante de comercio” o TSP estos algoritmos para enfrentarlos a tres casos del (Travelling Salesman Problem en inglés). Los TSP, CH130, problema de 130 ciudades con 6110 algoritmos estudiados son el genético básico, con de coste; A280, 280 ciudades con un camino población estacionaria y generacional, y paralelo mínimo de 2579; y P654, formado por 654 ciudades con población estacionaria. Al final, se expondrán cuya solución óptima es 34643. las diferencias de comportamiento entre el algoritmo de colonia de hormigas SH y SCH y los Los algoritmos de comparación SH y SCH diferentes algoritmos implementados. [2] son los algoritmos que funcionan a la perfección sobre estos casos de estudio, por lo que acercarse a PALABRAS CLAVES: Optimización, viajante, los resultados que éstos presentan hace que resulte algoritmo evolutivo, colonia hormiga, algoritmo interesante la comparación con los genéticos. genético, paralelización. 1. Introducción 2. Descripción de problema El problema del viajante de comercio es En su descripción matemática, el TSP uno de los problemas más conocidos y quizás el formado por el conjunto finto de ciudades C, trata mejor estudiado en el campo de la optimización de encontrar la permutación P = {co, c1, …, cn} tal combinatoria computacional. A pesar de la aparente que sencillez de su planteamiento, el TSP es uno de los problemas más complejos. En su formulación más general, se trata de que, dado un conjunto de N ciudades, encontrar el sea mínimo. La distancia entre ciudades viene dada circuito más corto que partiendo de una de ellas, por la matriz D = N x N donde d[x, y] representa la pase por todas las demás y retorne a la ciudad distancia entre las ciudades x e y. origen. Cabe destacar que, en principio, esta formulación no recoge premisas de conexión entre ciudades, sino que el grafo formado por las ciudades es fruto del producto cartesiano de todas las ciudades, formando un grafo completo. Evidentemente, dicho grafo presenta bucles o lazos Representación de la solución que el algoritmo de resolución debe controlar. La representación que se hará de la Son muchos los intentos que los solución será la lista de ciudades, ordenada en orden matemáticos han realizado para tratar de dar de paso, que representa el itinerario a seguir. respuesta a estos problemas, Edsger Dijkstra, Kruskal [1], etc. Dicho algoritmos de resolución son muy eficientes en problemas de poca complejidad
  • 2. Representación 1. Ejemplo de solución Función objetivo Representación 3. Operador de mutación 2-Opt La función de evaluación para el problema del TSP será la suma de las todas las distancias entre ciudades que aparecen en la lista representada por la solución. 3. Ciclo de Vida de los Algoritmos Genéticos Operador de selección Un algoritmo genético básico sigue el El operador de selección utilizado es el de procedimiento descrito en la figura 1: “torneo”. Se eligen cierto número de individuos aleatorios de la población y se selecciona al mejor, Procedure AGB obteniéndose así al padre 1. Se repite de nuevo el proceso y se elige al padre 2. Estos dos individuos Sf = 0 se cruzan para obtener a dos nuevos hijos que formarán parte de la nueva población para las InicializarPoblación() siguientes iteraciones. Mientras (¬criterioParada) Hacer Operador de cruce Padres = SeleccionarPadres() Hijos = CruzarPadres() Como operador de cruce se utilizará el Mutar(Hijos) conocido como Order Crossover OX1 [3]. Consiste Reemplazar() en tomar una parte de la solución de tamaño Sf = AlmacenarMejorIndividuo(Poblacion) aleatorio no superior a la mitad del tamaño de la Fin solución. Esta parte forma parte del nuevo hijo. El resto del hijo se rellena con los datos del otro padre Devolver Sf que son elegidos en orden, teniendo en cuenta de que si el hijo ya tiene los valores que el segundo Fin padre le va a proporcionar, éste no puede duplicarlos. El proceso alterna a los padres y se crea Figura 1. Pseudocódigo Algoritmo Genético Básico el nuevo hijo. Un ejemplo se puede ver en la representación 2. Este procedimiento requiere de ciertas particularidades a la hora de utilizarse en las implementaciones estudiadas. Las principales diferencias tienen que ver con la forma de reemplazar la población al final del proceso. Para el genético con población estacionaria, el hijo reemplaza a la peor solución existente en la población, siempre y cuando su función de coste presente mejor valor que la que va a reemplazar. En cambio, en el genético generacional los hijos Representación 2. Operador de cruce OX1 siempre reemplazan a los padres. Además, otro punto destacable es que en el generacional, se debe Operador de mutación conservar el elitismo de la población, para ello, siempre se pasa al mejor individuo a la nueva El operador de mutación usado es el 2-Opt. población. Se basa en realizar una permutación entre un par de ciudades de la solución elegidas aleatoriamente El algoritmo genético paralelo estudiado como puede apreciarse en la representación 3. esta realizado utilizando el esquema de islas que se observa en la representación 4. Esta
  • 3. implementación consiste en tener diferentes AGB Generacional poblaciones de individuos separadas físicamente e ir - % de Cruce: 70% transfiriendo el mejor individuo de cada una de - % de Mutación: 10% ellas al resto. Con esta técnica se favorece - Tamaño torneo (tamaño población / 10) principalmente la diversidad poblacional tan - # de torneos: tamaño de la población necesaria en estos algoritmos. Además permite - Criterio de parada: 20.000 iteraciones sin distribuir el coste computacional ente diferentes encontrar solución mejor máquinas ya que cada isla podría estar ubicada en una CPU diferente y que cada cierto tiempo se AG Estacionario Paralelo: comunicarían entre ellas para transferir al mejor - # Islas: 6 individuo de su población. - Criterio de parada: las mismas que haya dado el estacionario básico - Iteraciones intercambio: 10*tamaño Respecto a las técnicas de transferencia de solución individuos existen varios tipos de interconexión: anillo, estrella, topología tipo toro, etc. Para este El tamaño de la población esta ligado al estudio se ha utilizado el esquema de anillo, en la caso de estudio que se esté realizando. Para el que cada isla esta conectada a dos islas, una para CH130 se ha utilizado 100 individuos; para el A280 enviar y otra para recibir. Además se ha 150; y para el P654, 200. implementado hilos (threads) que simulan las diferentes CPUs. La máquina empleada es un ordenador Intel Pentium Dual Core a 2.66 GHZ por CPU y 2GB de RAM bajo Windows XP SP2 y con máquina Virtual de Java v1.6 A continuación, se muestran las tablas de resultados parciales por algoritmo y caso de estudio: Representación 4. Modelo de islas 4. Experimentación Se ha realizado un proceso de Tabla 1. Resultados Parciales AG Básico Estacionario experimentación con las tres implementaciones del estudio, genético básico con población estacionaria, genético básico con población generacional y genético paralelo con población estacionaria; con tres casos de estudio del problema TSP: CH130, A280 y P654. Además, se ha utilizado los algoritmos SCH y SH cómo algoritmos de comparación con los genéticos Tabla 2. Resultados Parciales AG Básico Generacional La parametrización utilizada en las pruebas es la siguiente: AGB Estacionario - % de Cruce: 100% - % de Mutación: 10% - Tamaño torneo (tamaño población / 10) - # de torneos: 2 - Criterio de parada: 20.000 iteraciones sin encontrar solución mejor
  • 4. 600000 opt) no representa un cambio lo bastante importante Básico Estacionario como para que se produzcan resultados interesantes. 500000 Básico Generacional 400000 Atendiendo al tiempo empleado, cabe decir que consumen muchos recursos a ese nivel. Los dos 300000 procesadores sobre los que se han estado ejecutando 200000 la batería de pruebas han estado funcionando a pleno rendimiento durante todo el tiempo de 100000 ejecución. 0 CH130 A280 P654 Para comparar la versión básica estacionaria con la paralela estacionaria, se calcula Gráfica 1. Comparativa de resultados el speedup (tiempo dividido entre el número de islas utilizadas) sobre este último, resultando este valor 0,33 para el caso CH130, 2,66 para el A280 y 6 para el P654. Como se aprecia, el tiempo de ejecución en cada isla ha sido insuficiente ya que no se aproxima 5. Análisis de Resultados al tiempo de ejecución de la versión básica. Este hecho explica los malos resultados que se han Observando las gráficas 2, 3 y 4 se puede obtenido. El criterio de parada empleado en esta notar la mala calidad que han ofrecido algunas de implementación no ha sido el adecuado, debiéndose las semillas utilizadas. Además, para hacer cumplir haber optado por utilizar el mismo tiempo que en el el criterio de parada establecido, algunas han básico en cada isla. realizado muchas más iteraciones que otras. En las gráficas 2 y 3, se muestra una 6. Concluciones convergencia muy rápida para la versión con población generacional. Además es la que ofrece los Los algoritmos genéticos son sencillos de resultados con mejor calidad. implementar ya que ni sus estructuras de datos ni sus funcionalidades requieren de conocimientos También resulta interesante estudiar como muy avanzados sobre ellos, con lo cual resultan el hecho de aumentar la población del genético muy interesantes para aplicar como primera idea a básico al paralelo no ha ofrecido los resultados que cualquier problema al que se tenga que buscar cabría esperar. La causa de este efecto podría solución. El hecho de no requerir una gran deberse a la falta de diversidad poblacional de las experiencia sobre el propio problema en cuestión islas. Puede observarse en los ficheros de resultados corrobora esta conclusión. generados durante las pruebas, que el individuo transferido pasa muy rápidamente de una isla otra Los resultados obtenidos en comparación creando una élite que dificulta la selección de con los algoritmos basados en colonias de hormigas individuos peores y que son los que realmente SCH y el SH han estado muy próximos incluso se permiten el nacimiento de individuos diferentes que han llegado a mejorar con alguna semilla. Pero cabe tal vez resulten interesantes. decir, que los tiempos con el que se han ejecutado dichos algoritmos fueron mucho más cortos que los La escala del caso de estudio también hace empleados por los genéticos [2]. que el algoritmo funcione peor en igualdad de condiciones. Los algoritmos genéticos utilizan Requieren de tiempo de ajuste para que muchos parámetros y es difícil un ajuste que funcionen adecuadamente. Son una ventaja ya que funcione a la perfección para una gran variedad de el abanico de problemas a los que se puede aplicar problemas. es bastante amplio pero que ofrezcan los resultados deseados requiere de tiempo. Respecto al operador de mutación, también hubiera sido útil estudiar diferentes posibilidades de La versión con población generacional que permutación como la 5-opt, 10-opt, etc. Al tratarse se ha desarrollado ha aportado los mejores de casos de estudio con una longitud de solución resultados de entre las dos implementadas, haciendo notable, un simple cambio de un valor por otro (2- interesante estudiar cómo se comportaría la versión paralela con esta forma de evolución poblacional.
  • 5. American Mathematical Society. 7 (1956), pp. 48–50 [2] E.M Díaz (2011). Práctica 1 Algoritmos Evolutivos y 7. Referencias Bioinspirados. [1] J. B. Kruskal: On the shortest spanning subtree and [3] Davis. L. (1985) Appliying Adaptative Algorithms to the Epistatic Domains traveling salesman problem. En: Proceedings of the Anexo I Tabla de resultados globales A continuación, se muestra la tabla de resultados globales obtenidos en la batería de pruebas realizada. Los valores de tiempo están dados en minutos Tabla 3. Resultados Finales Gráficas de resultados parciales Las siguientes gráficas muestran los resultados parciales obtenidos para las diferentes implementaciones del algoritmo genético generados y los casos de estudio sobre los que se han aplicado Gráfica 2. Evolución caso estudio CH130
  • 6. Gráfica 3. Evolución caso estudio A280 Gráfica 4. Evolución caso estudio P654