Usted También puede querer ver una técnica llamada "recocido simulado". Al igual que los algoritmos genéticos, esto utiliza una función de evaluación para determinar la calidad de las soluciones candidatas, pero la generación de los candidatos tiende a ser más simple. Cada tipo de algoritmo ofrece mejores resultados en determinadas circunstancias: a partir de una breve encuesta de Google, parece que la genética tiene ventaja, pero el recocido será más rápido de implementar.
Aquí es un documento de comparación (para un dominio diferente, no programación): http://www.ee.utulsa.edu/~tmanikas/Pubs/gasa-TR-96-101.pdf
Hemos utilizado recocido simulado en una aplicación de programación grande y funcionaba bien.
Para ser sincero, si el volumen de personal es inferior a aproximadamente 40, recomendaría dar una representación visual de la lista y dejar que el usuario finalice el programa. Tal vez usaría un algoritmo para producir un calendario candidato para comenzar, y luego dejaría que el usuario juegue con él. Todavía podría usar la función de evaluación para verificar el trabajo del usuario y dar su opinión sobre cuán buena es su solución.
-1 Aunque los problemas de los algoritmos de schduling serían relevantes para Operation Research, simplemente mencionar O sin elaborar no es una respuesta. Es como decir Por qué no usar IA, matemáticas o aloritmos – tovare
Tomando un punto, me siento avergonzado. Pero en mi defensa, el OR es alink y con una breve pregunta sin restricciones sobre el dominio del problema no es fácil dar una respuesta elaborada. – Jonke
Sí, como pena, necesitas encontrar un buen código de muestra de GA y publicar el enlace ;-) – tovare