matcom / ia-sim-cmp-21

Repositorio para registrar los proyectos del curso
MIT License
8 stars 0 forks source link

Simulador de un Jefe Técnico de MotoGP #1

Closed arnel-sanchez closed 2 years ago

arnel-sanchez commented 2 years ago

Datos del proyecto

Complete la siguiente información

Nombre:: Simulador de un Jefe Técnico de MotoGP Repositorio: https://github.com/arnel-sanchez/IA-Sim-Com Reporte: https://github.com/arnel-sanchez/IA-Sim-Com/blob/master/Informe/Informe.pdf

Breve resumen

Este resumen (o uno ligeramente más amplio) debe aparecer también en el reporte linkeado arriba.

Existirán varios pilotos con sus respectivas motos, las cuáles difieren entre sí en cuanto a sus prestaciones. Cada piloto posee su propio método de manejo, siendo algunos más cuidadosos y otros más agresivos. La pista se encuentra influenciada por el accionar del clima, puesto que no es lo mismo el manejo durante un día soleado que bajo la lluvia. Por tanto, el resultado de un piloto se verá condicionado por su moto, su modo de conducción y el clima. Sin embargo, durante la carrera las condiciones pueden variar y el Jefe Técnico será el encargado de señalar los ajustes necesarios que el piloto deberá hacer para mejorar su rendimiento. Dicho intercambio de información se hará al finalizar cada vuelta utilizando un lenguaje imperativo, mediante el uso de palabras claves para que el piloto no necesite analizar situaciones complejas y pueda concentrarse en pilotar de la forma mas eficiente posible. De esta manera, la simulación de la carrera será dinámica, puesto que entre las vueltas podrán existir variaciones provocadas por los ajustes propuestos por el Jefe Técnico, el cuál podrá ser una persona o una IA.

Miembros del equipo

Aprobación

Estos elementos serán chequeados por los profesores de la asignatura para aprobar el proyecto.

En caso de que algunas de las condiciones anteriores no se cumplan, en este issue les dejaremos todos los comentarios y discusiones necesarias para lograr la aprobación del proyecto.

Este issue será cerrado una vez se considere definitivamente aprobado o rechazado el proyecto, y se le pondrá la etiqueta correspondiente.

apiad commented 2 years ago

El perfile @darianramon está un poco crudo, al menos ponle un avatar (no tiene porque ser tu foto real, pero algo) y el nombre completo.

arnel-sanchez commented 2 years ago

Ya se lo dejé dicho, pero no lo ha visto xq anda sin fluido eléctrico

apiad commented 2 years ago

Me gusta la idea, lo que me preocupa de cómo lo tienen definido ahora es que se me queda corto el problema para necesitar un DSL con la complejidad que queremos medir. Si solo tienes 6 pilotos, y características fijas para las motos, y una pista fija, tu lenguaje entonces solo puede describir el comportamiento de un piloto.

Si permites que cambien cosas como por ejemplo, como influye una condición del entorno (clima) sobre ciertas características de las motos, ya darías la posibilidad a que el usuario implemente nuevas condiciones de clima que no estaban originalmente. Así mismo me gustaría que la inteligencia de los pilotos se pudiera programar de antemano, para poder evaluar en plan si hay estrategias mejores, hago un piloto más agresivo, hago otro más cuidadoso, entonces el agresivo se caerá si la pista está mojada, cosas así. Y entonces para eso piensa en tu lenguaje qué instrucciones vale la pena tener y qué construcciones son propias del lenguaje, por ejemplo, como son los agentes, como se define la pista, etc, que casi seguro terminarán siendo palabras claves del lenguaje.

arnel-sanchez commented 2 years ago

Ok, le damos taller a eso. Pero la idea es que las características de las motos son fijas pero son configurables y la pista fija pero el medio ambiente es modificable y en dependencia del medio ambiente es la configuración de las motos. No entendemos a lo que se refiere con "Así mismo me gustaría que la inteligencia de los pilotos se pudiera programar de antemano"

apiad commented 2 years ago

No entendemos a lo que se refiere con "Así mismo me gustaría que la inteligencia de los pilotos se pudiera programar de antemano"

Básicamente que lo que cada piloto va a hacer en cada momento no esté predefinido por ustedes del todo, sino que el usuario pueda implementar en el DSL estrategias que ellos seguirán. Puede ser algo como durante la competencia habrá eventos, no sé, se te mete un carro delante, viene una curva, un bache, y el piloto puede escoger diferentes opciones, y algunos pilotos serán más arriesgados que otros, entonces yo quiero poder programar cómo reacciona ante cada una de esas condiciones.

Igual con el tal jefe técnico, no quisiera como un juego en tiempo real donde el usuario tiene que escribir un comando, sino que el usuario programa de antemano la estrategia del jefe técnico, si pasa esto entonces haz esto, si pasa esto otro, de forma que lo que puedes simular y evaluar son diferentes estrategias.

SamuelPupo commented 2 years ago

No entendemos a lo que se refiere con "Así mismo me gustaría que la inteligencia de los pilotos se pudiera programar de antemano"

Básicamente que lo que cada piloto va a hacer en cada momento no esté predefinido por ustedes del todo, sino que el usuario pueda implementar en el DSL estrategias que ellos seguirán. Puede ser algo como durante la competencia habrá eventos, no sé, se te mete un carro delante, viene una curva, un bache, y el piloto puede escoger diferentes opciones, y algunos pilotos serán más arriesgados que otros, entonces yo quiero poder programar cómo reacciona ante cada una de esas condiciones.

Igual con el tal jefe técnico, no quisiera como un juego en tiempo real donde el usuario tiene que escribir un comando, sino que el usuario programa de antemano la estrategia del jefe técnico, si pasa esto entonces haz esto, si pasa esto otro, de forma que lo que puedes simular y evaluar son diferentes estrategias.

Se supone que habra pilotos y jefes tecnicos predefinidos, por lo que la opcion de jugar en tiempo real no es independiente de que los pilotos y los jefes tomen sus propias decisiones.

Cuando tu eres el jefe tecnico que habla con el piloto, le das sugerencias de como mejorar su carrera, pero el piloto tiene caracteristicas propias que influiran en esa decision. Por ejemplo: si le dices que aumente la velocidad porque es muy lento, esta lloviendo y es cuidadoso, no habra mucho efecto en esa orden (no se va a poner en peligro); por el contrario: si es agresivo y le dices que aumente la velocidad, aumenta la probabilidad de caerse.

Si el jefe tecnico se preocupa mas por ganar que por el bienestar del piloto, puede darle ordenes que sean arriesgadas. Por el contrario, si quiere que el piloto solo termine la carrera, puede pedirle que tenga mas cuidado en las curvas.

Se puede simular todo tipo de cosas (configurables, por supuesto) pero que tendran tambien modelos predefinidos.

Por eso es que dar ordenes en tiempo real (que sera opcional) no es contradictorio con el hecho de que se autoconfiguren cosas de antemano.

apiad commented 2 years ago

Ok, a mi lo de tiempo real sigue sin convencerme, pero nada, es decisión de ustedes como quieran diseñar el proyecto. Ya habrá tiempo de sobra de discutir durante el curso. Por mi está listo para aprobar.

@yudivian @sestevez ?

SamuelPupo commented 2 years ago

No entendemos a lo que se refiere con "Así mismo me gustaría que la inteligencia de los pilotos se pudiera programar de antemano"

Básicamente que lo que cada piloto va a hacer en cada momento no esté predefinido por ustedes del todo, sino que el usuario pueda implementar en el DSL estrategias que ellos seguirán. Puede ser algo como durante la competencia habrá eventos, no sé, se te mete un carro delante, viene una curva, un bache, y el piloto puede escoger diferentes opciones, y algunos pilotos serán más arriesgados que otros, entonces yo quiero poder programar cómo reacciona ante cada una de esas condiciones.

Igual con el tal jefe técnico, no quisiera como un juego en tiempo real donde el usuario tiene que escribir un comando, sino que el usuario programa de antemano la estrategia del jefe técnico, si pasa esto entonces haz esto, si pasa esto otro, de forma que lo que puedes simular y evaluar son diferentes estrategias.

Realmente todo tipo de cosas simulables pueden ser configurables antes de iniciar y durante la carrera.

Hacerlo con el DSL seria lo mas logico, para lo cual habria que definir cada uno de estos comandos con los que se interactuara con el programa. Pero como nunca hemos trabajado con uno es donde mas necesitaremos su vision y su ayuda con respecto a que ideas son mas claras y mas factibles (para evitar entrar en callejones sin salida).

SamuelPupo commented 2 years ago

Ok, a mi lo de tiempo real sigue sin convencerme, pero nada, es decisión de ustedes como quieran diseñar el proyecto. Ya habrá tiempo de sobra de discutir durante el curso. Por mi está listo para aprobar.

@yudivian @sestevez ?

Es solo una idea, profe. Realmente nunca hemos trabajado en un proyecto de esta magnitud con anterioridad. Puede que al final sea poco factible hacer lo de tiempo real y se quede como configurable con el DSL antes de iniciar. Ahora mismo estamos con las piezas de lego y pensando que figura podriamos empezar a montar

arnel-sanchez commented 2 years ago

@apiad cuando pueda nos echa un vistazo al proyecto