Download Inteligencia Artificial en Videojuegos

Document related concepts

Google DeepMind wikipedia , lookup

Videojuego de simulación de vida wikipedia , lookup

Juego de cero jugadores wikipedia , lookup

Inteligencia computacional wikipedia , lookup

Historia de la inteligencia artificial wikipedia , lookup

Transcript
Inteligencia Artificial en
Videojuegos
Javier Alcalá
Ciclo de conferencias Game Spirit 2
Definición de Inteligencia Artificial
►
►
La Inteligencia Artificial (IA) intenta simular la inteligencia
natural
¿Qué es la inteligencia natural?
 Según la RAE:
inteligencia
(Del lat. intelligentĭa)
1. f. Capacidad de entender o comprender
2. f. Capacidad de resolver problemas
3. f. Conocimiento, comprensión, acto de entender
4. f. Sentido en que se puede tomar una sentencia, un dicho o una
expresión
5. f. Habilidad, destreza y experiencia
6. f. Trato y correspondencia secreta de dos o más personas o
naciones entre sí
7. f. Sustancia puramente espiritual
 Falta mencionar el aprendizaje y la memoria
Inteligencia Artificial en Videojuegos
– Javier Alcalá
2
Definición de Inteligencia Artificial
► Entonces… ¿qué es la IA?
 Según la RAE:
inteligencia artificial
1. f. Inform. Desarrollo y utilización de ordenadores
con los que se intenta reproducir los procesos de la
inteligencia humana
 Definición empírica:
Test de Turing
?
Inteligencia Artificial en Videojuegos
– Javier Alcalá
3
Definición de Inteligencia Artificial
► Test de Turing para humanos: captcha
Inteligencia Artificial en Videojuegos
– Javier Alcalá
4
Definición de Inteligencia Artificial
► IA en videojuegos:
 Es la simulación de comportamientos de los
personajes no manejados por el jugador: NPCs,
enemigos, jefes finales, animales…
Inteligencia Artificial en Videojuegos
– Javier Alcalá
5
Orígenes de la IA en videojuegos
►
Los primeros sistemas de
IA (años 50) se aplicaron a
juegos de mesa:
damas (Arthur Samuel) y
ajedrez (Claude Shannon)
►
En los años 60 se
desarrollaron juegos como
el Pong o Spacewar!
basados en la lógica
Inteligencia Artificial en Videojuegos
– Javier Alcalá
6
Orígenes de la IA en videojuegos
► En los 70 surgieron
juegos de 1 jugador
contra enemigos que
se movían mediante
patrones almacenados
► Space Invaders (1978)
añadió dificultad
creciente y respondía
a las acciones del
jugador
Inteligencia Artificial en Videojuegos
– Javier Alcalá
7
Orígenes de la IA en videojuegos
► Pac-Man (1980)
incorporó algoritmos
de búsqueda en
laberintos
► Dragon Warrior (1990)
fue el primer RPG.
Permitía variar las
rutinas de la IA de los
enemigos durante las
batallas
Inteligencia Artificial en Videojuegos
– Javier Alcalá
8
Orígenes de la IA en videojuegos
► En los años 90 se produjo un boom de
nuevos géneros y nuevas técnicas de IA





Máquinas de estados finitos
Redes de neuronas
Computación evolutiva
Lógica difusa
…
Inteligencia Artificial en Videojuegos
– Javier Alcalá
9
Orígenes de la IA en videojuegos
► Battelcruiser 3000AD (1996) incorpora
redes de neuronas
Inteligencia Artificial en Videojuegos
– Javier Alcalá
10
Técnicas de IA empleadas
► Juegos de suma cero: Minimax
► Búsqueda de caminos: A*
► Agentes inteligentes
► Maquina de estados finitos
► Redes de neuronas
► Algoritmos genéticos
► Redes evolutivas: rtNeat
Inteligencia Artificial en Videojuegos
– Javier Alcalá
11
Juegos de suma cero
► Son juegos entre 2 adversarios en los que los
intereses de los jugadores son contrarios:
 Si uno gana, el otro pierde, aunque puede haber tablas
► Cada jugador conoce las posibles jugadas del
contrario
► No interviene el azar en la elección de la mejor
jugada
► Se genera un árbol finito
► Ejemplo: damas, ajedrez, go
Inteligencia Artificial en Videojuegos
– Javier Alcalá
12
Juegos de suma cero
►
Algoritmo Minimax
 Se basa en probar todas las posibles jugadas y sus respuestas
hasta un nivel máximo
Inteligencia Artificial en Videojuegos
– Javier Alcalá
13
Juegos de suma cero
 Llegado a ese nivel se evalúa el tablero y se da un valor positivo,
si es buena la jugada,
o negativo, si es mala
1
0
0
Inteligencia Artificial en Videojuegos
– Javier Alcalá
0
-1
14
0
Juegos de suma cero
 Se propaga el valor hasta el nivel 0
Max
0
Min
0
0
1
0
0
Inteligencia Artificial en Videojuegos
– Javier Alcalá
0
-1
-1
15
0
Juegos de suma cero
► Algoritmo Minimax
 El algoritmo responde con la mejor jugada
posible suponiendo que el adversario también
elige su mejor jugada
► Optimización con poda alfa-beta
Inteligencia Artificial en Videojuegos
– Javier Alcalá
16
Juegos de suma cero
► Partidas históricas de ajedrez:




Kasparov 4
Kasparov 2.5
Kasparov 4
Kasparov 3
Deep Thought 2
DEEP BLUE 3.5
Deep Fritz 4
Deep Junior 3
Inteligencia Artificial en Videojuegos
– Javier Alcalá
(1996)
(1997)
(2002)
(2003)
17
Juegos de suma cero
►
Árbol inicial del ajedrez:
 Juega blancas:
► Peón 1 escaque
► Peón 2 escaques
► Caballo
x8
x8
x4
► 20 movimientos posibles
 Juega negras:
► Las mismas posibilidades
 A nivel 2 hay 400 posibilidades
 A nivel 4 hay unas 20.000 posibilidades
 Crecimiento exponencial ⇒ Desarrollar el árbol completo genera
más posibilidades que átomos hay en la galaxia
►
Nuevos retos: Go, a nivel 2 hay unas 130.000 posibilidades
Inteligencia Artificial en Videojuegos
– Javier Alcalá
18
Búsqueda de caminos
► También llamado 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 del terreno…)
► Algoritmos típicos:
 Dijkstra, escalada, primero el mejor, A*
► El A* nos garantiza el camino óptimo
Inteligencia Artificial en Videojuegos
– Javier Alcalá
19
Búsqueda de caminos
7
4
3
2
2
1
4
3
2
5
3
3
4
2
5
3
4
7
5
8
Inteligencia Artificial en Videojuegos
– Javier Alcalá
2
20
Búsqueda de caminos
► El nivel de un juego se debe diseñar con un
grid o rejilla y ésta se convierte en un grafo
Inteligencia Artificial en Videojuegos
– Javier Alcalá
21
Búsqueda de caminos
Dijkstra
A*
Comparativa de métodos
Inteligencia Artificial en Videojuegos
– Javier Alcalá
22
Agentes Inteligentes
► Un agente inteligente es una entidad que
percibe y actúa sobre un entorno de forma
razonada
Inteligencia Artificial en Videojuegos
– Javier Alcalá
23
Agentes Inteligentes
► Tipos de agentes inteligentes
Agentes
Inteligentes
Agentes
Biológicos
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Agentes
Hardware
Agentes
Software
24
Agentes Inteligentes
► ¿Qué es un agente software?
 Es una entidad que percibe su entorno a través
de sensores y actúa de forma autónoma y
razonada con la mejor acción posible sobre ese
entorno mediante actuadores
 Utiliza el bucle:
PPA (Percepción – Planificación – Actuación)
Percepción
Planificación
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Actuación
25
Agentes Inteligentes
► Sensores:
► Actuadores:
 Detectores de
obstáculos
 Micrófonos



0
1
1
1
1
1
0
0
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Piernas
Brazos
Ruedas
Detecta rincón
Decide girar
a la izquierda
Realiza
el
giro
26
Agentes Inteligentes
► Propiedades:
 Autonomía: actúa por cuenta propia
 Inteligencia: cerrada o adaptable (aprendizaje)
 Actividad:
► Reactivo: actúa después de algún suceso producido en el
entorno
► Proactivo: decide actuar antes de que se dé un suceso
 Sociabilidad: se comunican con el usuario u otros
agentes
 Cooperación: coopera con otros agentes para realizar
tareas más complejas
Inteligencia Artificial en Videojuegos
– Javier Alcalá
27
Agentes Inteligentes
► Aplicaciones en los videojuegos:
 Comportamientos inteligentes
►Agente reactivo: guardián de un castillo
►Agente proactivo: exploradores, atacantes
 Simulación de personalidades
 Exploración de mapas desconocidos
 Simulación de multitudes
Inteligencia Artificial en Videojuegos
– Javier Alcalá
28
Máquinas de Estados Finitos
► Una
máquina de estados finitos es una
entidad abstracta formada por estados y
transiciones entre dichos estados
► Las transiciones se producen por eventos
sucedidos en el entorno
► A su vez, la máquina genera una serie de
acciones según el estado actual en el que
se encuentre
Inteligencia Artificial en Videojuegos
– Javier Alcalá
29
Máquinas de Estados Finitos
► Cada estado representa una acción: moverse,
disparar, perseguir, etc.
► Cuando se produce un evento, hay una transición
de un estado a otro: no hay enemigos, enemigo a
la vista, poca munición, etc.
No hay
enemigos
No hay
enemigos
Patrullar
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Enemigo
a la vista
Disparar
Enemigo
a la vista
30
Máquinas de Estados Finitos
► MEF para un fantasma de Pac-Man
Pac-Man
cerca
Pac-Man
lejos
Pac-Man
cerca
Buscar
Time out
Inicio
Modo comible
desactivado
Pac-Man alcanza
al fantasma
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Perseguir
Pac-Man
lejos
Modo comible
activado
Pac-Man
alcanzado
Modo comible
activado
Comer
Huir
Modo comible
activado
31
Redes de Neuronas
► Una Red de Neuronas Artificiales (RNA) es un
sistema computacional que imita las capacidades
de los sistemas biológicos utilizando muchos
elementos simples interconectados
► Neurona formal
Inteligencia Artificial en Videojuegos
– Javier Alcalá
32
Redes de Neuronas
► Características:


Clasifican patrones de entrada
Necesitan entrenamiento supervisado con
muchos ejemplos
 Son capaces de generalizar el reconocimiento
de patrones
 Ante una entrada desconocida devuelve la
clase más parecida
 Una vez entrenadas, funcionan en tiempo real
Inteligencia Artificial en Videojuegos
– Javier Alcalá
33
Redes de Neuronas
► Percetrón simple
Entrada
Salida
► Perceptrón multicapa
Entrada
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Salida
Oculta
34
Redes de Neuronas
► Uso en videojuegos
Inteligencia Artificial en Videojuegos
– Javier Alcalá
Izquierda
Girar a la
izquierda
Frontal
Girar a la
derecha
Derecha
Seguir de
frente
35
Algoritmos Genéticos
► Si no disponemos de ejemplos para realizar el
aprendizaje, tenemos que emplear mecanismos
basados en aprendizaje por ensayo y error
► Los Algoritmos Genéticos (AG) se utilizan en
aquellos casos en los que no existe un algoritmo
convencional
► Resuelven problemas de optimización
► Se basan en la Teoría de la Evolución de Darwin
(El origen de las especies, 1859)
► Son sistemas muy robustos
Inteligencia Artificial en Videojuegos
– Javier Alcalá
36
Algoritmos Genéticos
►
Principios de la evolución por Selección Natural:
1. Cada individuo tiende a transmitir sus rasgos a su
progenie
2. La naturaleza produce individuos con rasgos
diferentes, debido a mutaciones
3. Los individuos más adaptados, cuyos rasgos son más
favorables para desenvolverse en el medio, tienden a
producir más progenie (sobreviven los más adaptados)‫‏‬
4. Durante largos períodos de tiempo se puede acumular
la variación produciendo nuevas especies
completamente adaptadas a nichos particulares
Inteligencia Artificial en Videojuegos
– Javier Alcalá
37
Algoritmos Genéticos
► Componentes de un AG:
 Individuo: representado por un cromosoma con la
información que queremos optimizar
 Calidad o fitness: da una medida del grado de
adaptación al medio (objetivo, principio 4)
 Operador selección: con probabilidad de selección de
cada individuo proporcional a la calidad (principio 3)‫‏‬
 Operador emparejamiento o reproducción: que
producirá nuevos individuos en la siguiente generación
(principio 1)‫‏‬
 Operador mutación: capaz de alterar el código de los
nuevos individuos, incrementando la riqueza genética
de la población (principio 2)‫‏‬
Inteligencia Artificial en Videojuegos
– Javier Alcalá
38
Algoritmos Genéticos
► Algoritmo:
 Generar una Población aleatoria de NI individuos
 Repetir hasta haber realizado N generaciones
►Repetir hasta alcanzar NI individuos
 Aplicar operador SELECCIÓN: extrae 2 individuos
 Aplicar operador EMPAREJAMIENTO: cruza su información
genética. Esto genera 2 nuevos individuos
 Aplicar operador MUTACION a cada individuo generado
 Devolver el individuo con mayor calidad de la población
Inteligencia Artificial en Videojuegos
– Javier Alcalá
39
Redes Neuronales Evolutivas
► Se combinan las redes neuronales con los
algoritmos genéticos
► Consiste en definir la entrada y la salida de una
red neuronal y los algoritmos genéticos se
encargan de definir la topología interna y los
pesos de cada neurona
 NEAT (NeuroEvolution of Augmenting Topologies)
 rtNEAT (real time NeuroEvolution of Augmenting
Topologies)
Inteligencia Artificial en Videojuegos
– Javier Alcalá
40
Redes Neuronales Evolutivas
► Los personajes entrenados con este
sistema se adaptan fácilmente durante el
juego a los cambios en el entorno
 Juego NERO (nerogame.org)
Inteligencia Artificial en Videojuegos
– Javier Alcalá
41
I+D en IA para Videojuegos
► Un campo de investigación muy abierto
► Normalmente se basa en combinar varias
técnicas
 Por ejemplo, máquinas de estados finitos con
algoritmos genéticos
 Se conseguirían comportamientos
desconocidos, absurdos, divertidos, que
mejoran la experiencia de juego
 Se trata de evitar esto:
Inteligencia Artificial en Videojuegos
– Javier Alcalá
42
I+D en IA para Videojuegos
► Hay que procurar que el jugador esté inmerso en
el juego sin aburrirse, adaptando el nivel de los
enemigos al nivel del jugador ⇒ Concepto de flujo
► Flujo (Mihaly Csikszenmihali)
 Es el estado mental operativo en el cual la persona está
completamente inmersa en la actividad que está
ejecutando
 Se caracteriza por un sentimiento de enfocar la energía,
de total implicación con la tarea y de éxito en la
realización de la actividad
Inteligencia Artificial en Videojuegos
– Javier Alcalá
43
I+D en IA para Videojuegos
► Canal de flujo
∞
(Mucho)
ju
f í f as e D
sl o
ed
la
na
C
Ansiedad
Aburrimiento
(Poco)
0
Habilidades
o
0
(Poca)
Inteligencia Artificial en Videojuegos
– Javier Alcalá
∞
(Mucha)
44
Consultas
► Contacto:
[email protected]
► http://aigamedev.com/
► theory.stanford.edu/~amitp/GameProgramming/
► http://nerogame.org/
► “Fluir (Flow). Una psicología de la felicidad”.
Mihaly Csikszenmihali
► interactive.usc.edu/projects/cloud/flowing/
Inteligencia Artificial en Videojuegos
– Javier Alcalá
45
Inteligencia Artificial en
Videojuegos
Javier Alcalá
GRACIAS
Ciclo de conferencias Game Spirit 2