IA en Videojuegos
Hay diferentes tipos de IA clasificados por el tipo de uso de su algoritmo.
Los mas comunes en videojuegos son:
- Juegos de suma cero: Minimax
- Búsqueda de caminos: A*
- Agentes inteligentes
- Maquina de estados finitos
- Redes neuronales
- Algoritmos genéticos
- Redes evolutivas: rtNeat
Juegos de suma cero son juegos en los que solo tienen 2 resultados, o 3. Como por ejemplo el ajedrez, Minimax es un algoritmo para realizar la elección de la mejor acción para ganar.
Algoritmo Minimax: se basa en probar todas las posibles jugadas y sus respuestas hasta un nivel máximo.(Tic Tac Toe)
El algoritmo responde con la mejor jugada posible suponiendo que el adversario también elige su mejor jugada.
El término poda alfa-beta es como bien dice la poda de ramas del árbol de elección para ahorrar tiempo y memoria de computación.
Búsqueda de caminos, A* es el algoritmo para que un objeto encuentre el camino y lo siga a voluntad.
Este tipo de algoritmos se llaman pathfinding.
Son algoritmos que buscan un camino existente entre un nodo inicial y un nodo final de un grafo.
Se tiene en cuenta un coste entre nodos ( distancia, dificultad de l terreno).
Algoritmos típicos: Dijkstra, escalada, primero el mejor, A*
Agentes inteligentes son algoritmos que cambian según el estado del entorno.
Un agente inteligente es una entidad que percibe y actúa sobre un entorno de forma razonada.
Las propiedades de un agente inteligente son:
- Autonomía: actúa por su cuenta propia.
- Inteligencia: cerrada o adaptable (Aprendizaje)
- Actividad Reactiva: actúa después de algún suceso producido en el entorno.
- Actividad Proactiva: decide actuar antes de que se de un suceso.
- Sociabilidad: Cooperar con los aliados o ayudar sin que nos pidan ayuda.
Una maquina de estados finitos (SFM) es una entidad abstracta formada por estados y transiciones entre dichos estados.
Cada estado representa una acción: moverse, disparar, perseguir …
Cuando se produce un evento, hay una transición de un estado a otro: no hay enemigos, moverse, poca munición, etc…
Una red de neuronas artificiales (RNA) es un sistema computacional que imita las capacidades de los sistemas biológicos utilizando muchos elementos simples interconectados.
- Clasifica patrones de entrada.
- Necesitan entrenamiento supervisado con muchos ejemplos.
- Son capaces de generalizar el reconocimiento de patrones.
- Una vez entrenadas, funcionan en tiempo real.