Inteligencia Artificial en Videojuegos

Inteligencia Artificial en Videojuegos Javier Alcalá Ciclo de conferencias Game Spirit 2 Definición de Inteligencia Artificial ► ► La Inteligencia

2 downloads 180 Views 1MB Size

Recommend Stories


Aprendizaje en Inteligencia Artificial
Aprendizaje en Inteligencia Artificial Alberto Pesquera Martín 1. Introducción Máquina que Aprende: Sistema Organizado que transforma un mensaje de En

Inteligencia Artificial
Inteligencia Artificial I.T. en Informática de Sistemas, 3º Curso académico: 2008/2009 Profesores : Sascha Ossowski, David Pearce, y Rubén Ortiz –1–

Story 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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.