Closed fergunet closed 9 years ago
Yo soy de la opinión de terminar de definir el algoritmo de "justas coevolutivo". Así que propongo un estudio de técnicas de finalización del algoritmo en base a distintos criterios no basados en el fitness ni en el número de generaciones/simulaciones.
De hecho, no lo aplicaría directamente al algoritmo de justas, sino a los algoritmos anteriores que tenemos (genebot y gpbot). Creo que puede ser interesante si probamos distintas técnicas de finalización: por ejemplo, técnicas basadas en diversidad de individuos, en antiguedad, ...
No sé, yo lo del 4on4 no lo veo... :sweat:
Me parece correcto lo que propone @deantares Vamos a plantearnos condiciones de terminación de los algoritmos de juegos cuando no tenemos un óptimo y, además, el fitness es ruidoso. Yo, para empezar, propondría un número de combates máximo (pero exagerado), estabilidad en la mejor solución (por ejemplo, que sea el mismo el que gane a todos los demás durante varias generaciones seguidas) o estabilidad con respecto a un "evaluador externo", uno o dos individuos a los que se gane el mismo número de veces. Habrá que ver de ellos cuál tarda menos tiempo y/o permite obtener soluciones más estables. También ver qué tipo de condiciones de terminación se usan en juegos más allá de "ya no tengo más tiempo".
Pues yo creo que la cuestión "Tiempo" debe tener cabida en el criterio de terminación, puesto que se trata de un juego, y no se puede estar jugando a un juego eternamente.
Quizás deberíamos hacer una lista de los posibles criterios a tener en cuenta: 1.- Tiempo de evolución 2.- Número de batallas ganadas seguidas por un determinado bot 3.- Número de generaciones sin que el mejor bot haya cambiado (es decir, no podemos mejorarlo más) 4.- Que un porcentaje de la población sea el mismo bot (vamos que la diversidad sea una kk) 5.- ...
Vosotros sabéis más que yo de esto, seguro que se os ocurren diferentes criterios de parada.
Maribel, se hace evolución offline, es decir, no durante el juego, sino previamente a él. En otro caso no sería posible usar un algoritmo evolutivo. ;D
Yo, aparte de las condiciones de terminación, añadiría un estudio de elección del mejor individuo una vez terminado el algoritmo, que es otro caballo de batalla a tener en cuenta. Aunque este está más relacionado con algoritmos sin fitness. Pero igualmente, la definición de una buena función de fitness es crucial para que, tanto los criterios de parada, como la elección del mejor sean efectivas. ;)
Ok, el tiempo d eevolución, es verdad, que no puede ser, pero y las otras tres? por qué no añadís alguna más que vosotros sabéis más del tema.
Respecto a elegir el mejor individuo... podríamos hacer igualmente algunas cosas a probar.
Por ejemplo: -The winner is... el que ha ganado más batallas (justas) durante toda su vida (aunque la última la haya perdido)
Maribel
Abro un página de Wiki para poder ir apuntando todo:
https://github.com/geneura-papers/2015-Evostar/wiki/Gpbot
Sobre la selección del mejor individuo, yo considero que estaría bien pero hacer otro artículo donde sólo se aborde ese enfoque.
Como dibe @mgarenas hay muchas cosas que pueden probarse tanto online en el algoritmo como offline (enfrentamientos entre los individuos de la población final).
Sentíos libres de modificar y añadir lo que queráis a la wiki, para la semana que viene poder empezar a lanzar las ejecuciones.
Como el wiki no me gusta propongo que empecemos a escribir directamente el paper.
¿Esto está terminado? ¿Se cierra el issue? Hay que hacerlo con un commit
, recordad.
He hecho varios cambios y comentarios al abstract. Echadles un ojico, plis. ;)
Título: Usando X para resolver el problema Y
Hipótesis: usar Z (medible) ayuda a...
1) Dominio general: Este artículo propone un método a aplicar en problemas basados en enfrentamientos (por ejemplo, juegos) 2) Dominio de la solución: En este paper, nos centramos en el juego Planet Wars. Métrica que mide Z. Algoritmo que hace... 3) Implementación
Conclusiones: Hemos hecho esto, que funciona por la razón Z, ya que Z mide...
Nota: no se pueden asignar a más de una persona en los issues, así que hago mention a @geneura-papers/gpbot-team .
Id poniendo en los comentarios de abajo lo que se va a hacer en este paper (ideas) e ir actualizando este comentario para tenerlo siempre a la vista.