Showing posts with label 4-Leonel. Show all posts
Showing posts with label 4-Leonel. Show all posts

Monday, March 23, 2009

Algoritmos Geneticos

Breve descripción del medio ambiente.


En esta etapa de desarrollo, el medio ambiente es un mundo virtual en dos dimensiones, representando una cancha de futbol pero con las porterías en las esquinas. El juego cuenta con dos equipos, Rojos y Azules, ambos controlados por agentes. Cada escenario cuenta con dos bases en los extremos del mismo en donde los personajes podrán anotar puntos.



Descripción detallada de la acción a aprender por el agente.


El problema que se optimiza utilizando la técnica de algoritmos genéticos es la de generar a un equipo que tenga los mejores atributos para jugar contra algún equipo predeterminado, es decir si se juega contra el equipo A el algoritmo determina que jugadores fueron los mejores y al terminar el partido se realiza el algoritmo de forma que para las generaciones futuras sobreviven los que tengan mejor desempeño contra un equipo.


Solución planteada usando Algoritmos Genéticos


Codificación del cromosoma: Cada cromosoma es un jugador de un equipo y tiene la siguiente configuración:


Cromosoma=(Equipo, pelota,compañeros, enemigos, inteligencia, especialización, vision en x, vision en y, vision en z, velocidad).


Un ejemplo de un cromosoma es el siguiente:(equipo rojo, pelota, rojos, azules, tonto, atacar, 10,10,10,3)


Funcion a maximizar: 


Número de enemigos que elimina, consideramos que para este problema se puede    considerar como un buen jugador al que elimina más jugadores enemigos, debido a que son jugadores que estuvieron participando activamente y que seguramente son los más valiosos, es por eso que los que eliminen más contrarios son los jugadores que se esperaría que sobrevivieran para la siguiente ronda


f(X)= muertes enemigas



Forma de hacer la reproducción:


La función que se define previamente es la que determina como se realiza la reproducción y funciona de la siguiente manera:


Enemigos Matados Probabilidad Esperanza Actual

Jugador 1 4       0.007            0.444                0


Jugador 2                    231                         0.4261          2.566                3


Jugador 3                     7                            0.012            0.077                0


Jugador 4                     3                            0.0055          0.033                0 


Jugador 5                    103                         0.19             1.144                 1


Jugador 6                    194                        0.3579           2.155                2



La reproducción en todas las ocasiones se lleva a cabo de la siguiente forma Jugador 1 y Jugador 6, Jugador 2 y Jugador 5, Jugador 3 y Jugador 4.


Forma de hacer el crossover


El crossover se realiza en los mismos puntos en cada una de las generaciones en los puntos 6 y 4 del cromosoma.


Forma de hacer la mutación:


Se evalúa cada uno de los parámetros del cromosoma y con una probabilidad de 0.1% se modifica de valor, es decir si un jugador tiene un atributo con un determinado valor si es necesario realizar una mutación se tomará el siguiente valor que puede tomar el parámetro, por ejemplo si un jugador tiene como valor en el campo Inteligencia = Tonto, si se realiza una mutación se cambiará por Inteligente.


Ejemplo de una generación de 4 elementos


Jugador 1=(Equipo rojo, Pelota, rojos, azules, tonto, atacar, 10,10,10,3)

Jugador 2=(Equipo rojo, Pelota, rojos, azules, Inteligente, defender 13,13,13,2)

Jugador 3=(Equipo rojo, Pelota, rojos, azules,Atacante,atacar,7,7,7,4)

Jugador 4 =(Equipo rojo, Pelota,rojos,azules,tonto, defender 15,15,15,2)


Conclusiones después de la programación


Al terminar la programación terminamos muy sorprendidos ya que entre más juega el equipo genético contra cualquier otro equipo nos dimos cuenta que se adaptan a las circunstancias y generalmente después de un par de corridas el equipo genético resulta vencedor. por otra parte es interesante ver que si juegan con un equipo completamente diferente tardan un poco en adaptarse por lo que sería recomendable tener un registro de configuraciones exitosas contra algunos equipos.




Video:

Friday, February 27, 2009

Recocido Simulado - Oriam y su Huerto de Tomates

Breve descripción del medio ambiente.
En esta etapa de desarrollo, el medio ambiente es un mundo virtual en dos dimensiones, representando una cancha de futbol pero con las porterías en las esquinas. El juego cuenta con dos equipos, Rojos y Azules, ambos controlados por agentes. Cada escenario cuenta con dos bases en los extremos del mismo en donde los personajes podrán anotar puntos.
 Descripción detallada de la acción a aprender por el agente.
El problema que se optimiza con este algoritmo es la selección de una mejor ruta, para enviar pases. los pases deben ser lo suficientemente buenos para dejar al equipo en una mejor posición. Se pretende realizar una variación del problema del agente viajero, la única diferencia es que no es necesario pasar por todos los puntos, se tratará de elegir la mejor ruta para llegar a la portería enemiga. De no encontrar una ruta lo suficientemente eficiente el agente que tenga posesión de la pelota permanecerá con ella y no la soltará.

Solución planteada usando Recocido Simulado:
 Configuración: Para resolver este problema se plantea utilizar una estructura de datos que almacene una serie de tuplas con diversos elementos que se evaluarán. Una configuración se ve de la siguiente forma:

  ruta=[(distancia, costo,parámetros)..........]

 Reordenamientos: Se realizarán de forma aleatoria, y se probarán las diferentes posibles rutas para cada configuración de jugadores.
  
  ruta2=[(otraDistancia, otroCosto, otroParametro).....] Función objetivo: El objetivo es minimizar el costo de realizar un pase, por lo tanto mientras más bajo sea el valor de la función objetivo la ruta evaluada será mucho mejor.

  f(X)= Costo+distancia+parámetros Aparte de la distancia se evaluarán otros parámetros como si el jugador es visible, alcanzable o está detrás de un objeto, pero al carecer de esos elementos nuestro medio ambiente son despreciados.  

Conclusiones después de la programación
 Al terminar la programación es interesante ver como los agentes deciden por si mismos si pasar la pelota o seguir con ella, y generalmente toman la decisión correcta, al probar los agentes con poca inteligencia contra los que tienen algoritmos más complejos (Recocido Simulado) se puede ver una diferencia bastante grande ya que tienen mejores estrategias y los partidos terminan con una clara ventaja para los agentes más inteligentes.



Link:

http://www.youtube.com/watch?v=HQ_Q_Kd0fQI

Friday, January 30, 2009

Seleccion medio ambiente - Oriam y su huerto de tomates

1. Descripción detallada del medio ambiente.

El medio ambiente será un mundo virtual en 3D diseñado por nosotros, dentro de un videojuego, el medio ambiente contará con plataformas, desniveles y una topología que será distinta en la mayor parte de sus puntos.

El juego se pretende que tenga equipos, uno será controlado por los usuarios y uno por los agentes que programemos, cada escenario contará con dos bases en los extremos del mismo en donde los personajes podrán anotar puntos.

Finalmente, el medio ambiente contara con lugares que dañaran la vida del jugador, incluso matándolo, por lo que los personajes deberán aprender de su medio. De igual manera habrá lugares inaccesibles para los personajes.


2. Plataforma en la que se programara el medio ambiente y lenguaje de programación a ser utilizado.

La plataforma que utilizaremos será la que desarrollemos y utilizaremos el lenguaje de programación C++ con las librerías de OpenGL. Estamos considerando el uso de Python, pero por el momento esa opción queda como tentativa.

3. ¿Cuáles problemas de optimización se encuentran en dicho medio?

El videojuego se enfocará en anotar puntos en cada una de las bases y cuando el rival ( agente) tenga el balón/pelota, puede comunicarse con sus compañeros y planear una ruta eficiente de pases para llegar a la zona de anotación.

4. ¿Qué conocimiento con incertidumbre necesita ser representado?

Por ser un videojuego la incertidumbre siempre estará presente, ya que los agentes no conocen el escenario por lo que conforme lo vayan explorando irán conociéndolo y formando estrategias dependiendo de su experiencia, de igual manera la posición del jugador es cambiante, y tiene que saber en qué lugares puede encontrarse o en donde buscarlo, ya sea para atacarlo o bien alejarse de él.