1 de mayo de 2015

Inteligencia Artificial (2/2)

Habíamos planteado el siguiente problema: ¿cómo puede la computadora guiar al corredor a través de la pista?

Si el lector es programador comprenderá que hay infinidad de formas de hacerlo. Ante todo hay que tener un equilibrio. En proyectos anteriores utilizaba demasiadas variables, mucha información que se le daba a la computadora para que la procesará y devolviera una respuesta o solución lo más acertada posible. Esto consumía muchos recursos, ahora un cambio radical, la poca utilización de variables, un mínimo de información para ser procesado por la computadora.

¿Cuáles son las ventajas y desventajas?

Si utilizamos demasiada información, la decisión tomada por la computadora será más cercana a la óptima, pero consumirá más recursos, por lo que el resultado de la decisión tomará más tiempo. Además, darle demasiada información puede resultar inútil en situaciones de simple resolución.

Por otro lado, el empleo de poca información da como resultado decisiones menos precisas, con un mayor porcentaje de errores, pero menor consumo de recursos y por lo tanto mayor velocidad de respuesta.

En este caso en particular, no hubo equilibrio en la utilización de la información, ya que la computadora no contaba con la información suficiente para que los corredores siguieran el rumbo establecido.

Si lo aplicáramos a la vida real, podríamos imaginar que el corredor tuviera limitada su visión a unos cuantos metros de su automóvil (como si de niebla se tratara) y ninguna señal que le indicara las curvas de la pista.

Hay muchas maneras de solucionar este problema. Una de ellas sería establecer variables que contuvieran datos de las áreas en las que debe corregir la dirección del corredor. La computadora podría verificar dichas áreas y establecer el giro del corredor para que pueda mantenerse dentro de la pista. Esto se pude efectuar con algunas variables numéricas de posición que cambiarían según la sección de la pista donde se encuentren.

Afortunadamente, el diseño de las pistas de este juego se había realizado con pequeñas secciones de 16x16 pixeles, y cada pantalla cuenta con 18x11 secciones o tiles. De esa forma, podríamos almacenar la información de la pantalla en una variable de tipo matriz de 18x11 elementos. En cada uno de esos elementos, estableceríamos la dirección que debe tomar el corredor. Para entenderlo mejor, veamos la siguiente imagen:
La computadora solo tendría que verificar dentro de qué sección de la pista se encuentra y compararla con la información de la variable matricial. De esa forma podría efectuar el giro hasta la posición indicada por la variable.

¿Cuál es el resultado?
En el siguiente video tenemos la respuesta:

Este comportamiento todavía puede ser mejorado, pero el ejemplo es a modo de ilustración. Como hemos visto, si ajustamos la cantidad de información equilibradamente al problema planteado, obtendremos mejores resultados.

No hay comentarios.:

Publicar un comentario