Estoy construyendo un algoritmo genético para abordar el problema del vendedor ambulante. Desafortunadamente, alcancé picos que pueden mantenerse durante más de mil generaciones antes de mutar de ellos y obtener mejores resultados. ¿Qué operadores de cruce y mutación generalmente funcionan bien en este caso?¿Operadores de GA sugeridos para un problema TSP?
Respuesta
Podrían aclarar
"Desafortunadamente, me golpeó picos que pueden sostener durante más de mil generaciones antes de mutar de ellos y conseguir mejores resultados"?
Puede verificar los operadores de cruce, que se aseguran de que no haya nodos que se repitan en los cromosomas hijo. Algunos de esos operadores de cruce son los operadores Crossover de pedido (OX) y Edge Crossover.
La mutación puede ser tan simple como simplemente intercambiando dos posiciones en un solo cromosoma.
BTW, ya que ha etiquetado "python", eche un vistazo a Pyevolve, también tiene un ejemplo de TSP.
Mutación ordenada y cruce cruzado ordenado (ver this article). Generalmente, las operaciones estándar de mutación y cruce cruzado dan como resultado soluciones no válidas (es decir, ciudades duplicadas y/o faltantes en una ruta).
Hubo un similar question recientemente.
Tengo a Java applet that implements the TSP using ordered cross-over and mutation, si está interesado en comparar el rendimiento de su implementación.
Si su problema es que los picos permanecen durante más de mil generaciones, entonces el problema podría no ser con los operadores de cruce y mutación. Puede que no esté presentando o manteniendo suficiente variación para su población: examinaría las proporciones de cruces, de mutaciones y de supervivientes de una generación a otra, y posiblemente elevaría la proporción de mutaciones.
- 1. Datos para TSP simple
- 2. TSP - Sucursales y límites
- 3. Problema de implementación en el servidor JBOSS 5.0.1.GA
- 4. ¿Por qué la declaración de JavaScript "ga = ga || []" funciona?
- 5. operación de cruce en el algoritmo genético para TSP
- 6. Seguimiento de Hashtags y Querystrings en GA
- 7. Sobrecarga de operadores para enumeraciones
- 8. Procedimiento almacenado de T-SQL para devolver los resultados de búsqueda "sugeridos" del estilo de google
- 9. Hibernate confusión. ¿Cuáles son las diferencias entre ga, GA y versiones finales? ¿Compatibilidad? ¿Repositorio?
- 10. Cómo configurar JBOSS 5.1.0 GA ClassLoader
- 11. ASP.NET MVC: Autorización dentro de una Acción - Patrones sugeridos o ¿esto es un olor?
- 12. Hibernate 3.5-Final en JBoss 5.1.0.GA
- 13. Opuesto a aspnet_regiis -ga <UserName>
- 14. JBoss 5.1.0 GA servlet API versión
- 15. ¿Has usado un algoritmo de vendedor ambulante para resolver un problema?
- 16. Operadores de comparación para cadenas de C
- 17. Operadores booleanos simples para indicadores de bit
- 18. Sobrecarga de operadores Plugin para Java
- 19. ¿Estilo aplicable para operadores de infijo?
- 20. ¿Qué es un buen algoritmo genético (GA) o un marco de optimización de enjambre de partículas (PSO) para .NET?
- 21. seguimiento de eventos en el GA no disparar
- 22. Cómo obtener operadores definidos para un tipo en .net
- 23. + =, +, == y = operadores
- 24. Sobrecarga de operadores de corchetes para aceptar el valor
- 25. Sobrecarga de múltiples operadores
- 26. && = y = || operadores
- 27. Pregunta sobre significados predefinidos para los operadores
- 28. problema del estadio: Proporcione un algoritmo para resolver el problema
- 29. ¿Qué significa GA en las versiones de hibernación?
- 30. Operadores de Python
http://stackoverflow.com/questions/1544055/rossover-operation-in-genetic-algorithm-for-tsp might help. –