SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Inteligencia Artificial
para Videojuegos
Decisión
Representación del conocimiento
● Decidir es lo más llamativo de un NPC, casi
todo lo demás “se da por sentado”
Representación del conocimiento 2
Motivación
● Para decidir bien no sólo hacen falta
“muchos datos”, sino conocer y ser sabio
○ Dato < Información < Conocimiento < ¡Sabiduría!
Representación del conocimiento 3
Motivación
“El dataísmo es una forma pornográfica de
conocimiento que anula el pensamiento”
- Byung-Chul Han
● En realidad la mayoría de los juegos usan
sistemas de decisión muy simples
○ Tanto a nivel individual como en grupo, aunque se
aparente complejidad, apenas hay conocimiento ni
razonamiento
Representación del conocimiento 4
Motivación
“‘Humo y espejos’ no es un insulto, es la manera en
la que trabajamos” - Ian Millington
● Cada algoritmo es diferente, pero en
esencia comparten un mismo modelo
Representación del conocimiento 5
Toma de decisiones
* Las estructuras internas son
específicas del algoritmo utilizado
● Turing asocia por primera vez la “IA” con el
Ajedrez en un informe de 1946
○ Su sistema Turochamp era manual, se jugaba con
instrucciones escritas en un papel (= conocimiento)
Representación del conocimiento 6
Hitos históricos
● Los Sims (2000) por su
parte, integran el
conocimiento en
el propio escenario
● Black and White (2001) analiza tus acciones
y según ellas construye IA a varios niveles
○ Produce comportamiento
emergente, aprendiendo
con el algoritmo ID3
(crea árboles de decisión)
Representación del conocimiento 7
Hitos históricos
● El conocimiento se puede representar
computacionalmente a varios niveles
○ Representación atómica
■ Caja negra sin mostrar estructura interna
(Ej. Valores enumerados de estado como Herido)
○ Representación factorizada
■ Compuesta de una serie de factores
(Ej. Propiedades booleanas como Tóxico, o enteras como
Salud, Munición...)
○ Representación estructurada
■ Basada en objetos con factores y relaciones
con otros objetos (... a su vez estructurados)
(Ej. Componentes software como partes de la armadura)
Representación del conocimiento 8
Nivel de representación
Herido
Salud: 8
Avatar
Pie
Brazo
Arma Brazalete
Tóxico: true
● El conocimiento también
puede estar implícito en forma de código
○ A mediados de los 90 casi todos los juegos se
programaban ad hoc (con guiones)
○ Son casi funciones auxiliares que “dirigen” a la IA
Representación del conocimiento 9
Guionización
SCRIPTING
SCRIPTS
Lenguaje de guionización Comentario
Lua Se volvió un estándar de facto en los 2000
Scheme Notación fea (LISP)
Python Sintaxis buena para novatos
Java Compilado y difícil de integrar
Javascript Común en la web
Blueprints Visual e integrado en Unreal Engine
Visual Scripting Visual e integrado en Unity
● Técnica sencilla, rápida y fácil de
comprender e implementar
○ Recibe todo el conocimiento del agente
■ A menudo, sólo se consulta el estado del mundo
○ Es un árbol con nodos de decisiones y de acciones
○ Se parte del nodo raíz, se toman decisiones simples
según los conocimientos hasta proponer 1 acción
de entre las posibles acciones a realizar
Representación del conocimiento 10
Árbol de decisión
Ej. Booleano Ej. Enumeración Ej. Valor numérico Ej. Vector 3D
Si es cierto Si está en cierto conjunto
de valores
Si está en cierto rango de
valores
Si su longitud está en
cierto rango
DECISION TREE
● Lo más básico es decidir con if-then-else, y
esto es un recurso para representar en fichero
dichas sentencias condicionales anidadas
○ Los árboles binarios son
los más eficaces
○ Habrá que ver cómo se
representa el entorno
y si se puede percibir
directamente
o mediante un único
Interfaz con el Mundo
Representación del conocimiento 11
Árbol de decisión
* Siempre mejor, para depurar fallos
● Su complejidad es muy baja
○ Aún así, mejor usar árboles equilibrados (misma
profundidad en las ramas), postergar y hasta
cortocircuitar las decisiones más costosas
○ Ej. Operaciones AND y OR
Representación del conocimiento 12
Árbol de decisión
● Puede ser interfaz o clase abstracta
● Los nodos pueden ser decisiones o acciones
Representación del conocimiento 13
Pseudocódigo
* Devuelve el nodo hijo (directo)
* Devuelve la acción
del final (hoja)
● Las decisiones se van especializando
○ Ej. Para valores numéricos (reales)
Representación del conocimiento 14
Pseudocódigo
● El método para tomar la decisión se suele
implementar recursivamente
○ Se empieza llamando, por lo tanto, al nodo raíz
Representación del conocimiento 15
Pseudocódigo
Espacio < O(n)
donde n son los nodos de decisión
Tiempo = O(log2
n)
si el árbol está equilibrado y todos
los tests de decisión tienen un
coste computacional constante
● Implementar un árbol de decisión con
múltiples ramas también es fácil
Representación del conocimiento 16
Pseudocódigo
● Se pueden añadir conectores
lógicos e incluso mezclar
ramas y convertirlos en
grafos dirigidos (¡acíclicos!)
● Pueden añadirse nodos
aleatorios o probabilistas
○ Con memoria para no cambiar mucho de decisión...
pero con caducidad (timers), para no atascarse
● Incluso es posible usar aprendizaje máquina
(ID3) para crear o ampliar el árbol
Representación del conocimiento 17
Más allá del árbol
● ¿Cómo son las ramas del árbol equilibrado?
A. Número de decisiones simples ni alto ni bajo
B. Nodos de acción a la misma profundidad
C. Nodos de decisión a la misma distancia
D. Número de decisiones lo más bajo posible
● Desarrolla tu respuesta (en texto libre)
Representación del conocimiento 18
Participación
● Millington, I.: Artificial Intelligence for
Games. CRC Press, 3rd Edition (2019)
● Wexler, J.: Artificial Intelligence in Games:
A look at the smarts behind Lionhead
Studio's "Black and White" and where it can
and will go in the future (2002)
Representación del conocimiento 19
Más información
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...

Más contenido relacionado

Similar a Representación del conocimiento

Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 
Sistema multimedia interactivo
Sistema multimedia interactivoSistema multimedia interactivo
Sistema multimedia interactivoFederico Peinado
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligenteFederico Peinado
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Federico Peinado
 
Activa tu mente 2.pdf
Activa tu mente 2.pdfActiva tu mente 2.pdf
Activa tu mente 2.pdfssuserc769b5
 
Planificación Sesión 1 Tecnología y Comunidad
Planificación Sesión 1 Tecnología y ComunidadPlanificación Sesión 1 Tecnología y Comunidad
Planificación Sesión 1 Tecnología y ComunidadIntel Aprender Chile
 
Producción y proceso de desarrollo
Producción y proceso de desarrolloProducción y proceso de desarrollo
Producción y proceso de desarrolloFederico Peinado
 
Trabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuariosTrabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuariosCristina Guano
 
Trabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuariosTrabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuariosCristina Guano
 
Partes de la computadora
Partes de la computadoraPartes de la computadora
Partes de la computadoraLorenzo Plummer
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entornoFederico Peinado
 
El sistema informático quinti y vicky
El sistema informático quinti y vickyEl sistema informático quinti y vicky
El sistema informático quinti y vickyagustin de angelis
 

Similar a Representación del conocimiento (20)

Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
 
Plataforma e interfaz
Plataforma e interfazPlataforma e interfaz
Plataforma e interfaz
 
Decisión
DecisiónDecisión
Decisión
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Sistema multimedia interactivo
Sistema multimedia interactivoSistema multimedia interactivo
Sistema multimedia interactivo
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligente
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)
 
Activa tu mente 2.pdf
Activa tu mente 2.pdfActiva tu mente 2.pdf
Activa tu mente 2.pdf
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
 
Planificación Sesión 1 Tecnología y Comunidad
Planificación Sesión 1 Tecnología y ComunidadPlanificación Sesión 1 Tecnología y Comunidad
Planificación Sesión 1 Tecnología y Comunidad
 
Percepción
PercepciónPercepción
Percepción
 
Producción y proceso de desarrollo
Producción y proceso de desarrolloProducción y proceso de desarrollo
Producción y proceso de desarrollo
 
Trabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuariosTrabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuarios
 
Trabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuariosTrabajo de sistemas mono y multiusuarios
Trabajo de sistemas mono y multiusuarios
 
I.a videojuegos
I.a videojuegosI.a videojuegos
I.a videojuegos
 
Partes de la computadora
Partes de la computadoraPartes de la computadora
Partes de la computadora
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
 
El sistema informático quinti y vicky
El sistema informático quinti y vickyEl sistema informático quinti y vicky
El sistema informático quinti y vicky
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Interacción
InteracciónInteracción
Interacción
 

Más de Federico Peinado

Más de Federico Peinado (20)

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
 
Puntos de ruta tácticos
Puntos de ruta tácticosPuntos de ruta tácticos
Puntos de ruta tácticos
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estados
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
 
Física y animación
Física y animaciónFísica y animación
Física y animación
 
Aplicación según tipología del juego
Aplicación según tipología del juegoAplicación según tipología del juego
Aplicación según tipología del juego
 
Industria y negocio
Industria y negocioIndustria y negocio
Industria y negocio
 
Postproducción y distribución
Postproducción y distribuciónPostproducción y distribución
Postproducción y distribución
 
Mercadotecnia
MercadotecniaMercadotecnia
Mercadotecnia
 
Criatura y persona
Criatura y personaCriatura y persona
Criatura y persona
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localización
 
Objeto y máquina
Objeto y máquinaObjeto y máquina
Objeto y máquina
 

Representación del conocimiento

  • 2. ● Decidir es lo más llamativo de un NPC, casi todo lo demás “se da por sentado” Representación del conocimiento 2 Motivación
  • 3. ● Para decidir bien no sólo hacen falta “muchos datos”, sino conocer y ser sabio ○ Dato < Información < Conocimiento < ¡Sabiduría! Representación del conocimiento 3 Motivación “El dataísmo es una forma pornográfica de conocimiento que anula el pensamiento” - Byung-Chul Han
  • 4. ● En realidad la mayoría de los juegos usan sistemas de decisión muy simples ○ Tanto a nivel individual como en grupo, aunque se aparente complejidad, apenas hay conocimiento ni razonamiento Representación del conocimiento 4 Motivación “‘Humo y espejos’ no es un insulto, es la manera en la que trabajamos” - Ian Millington
  • 5. ● Cada algoritmo es diferente, pero en esencia comparten un mismo modelo Representación del conocimiento 5 Toma de decisiones * Las estructuras internas son específicas del algoritmo utilizado
  • 6. ● Turing asocia por primera vez la “IA” con el Ajedrez en un informe de 1946 ○ Su sistema Turochamp era manual, se jugaba con instrucciones escritas en un papel (= conocimiento) Representación del conocimiento 6 Hitos históricos
  • 7. ● Los Sims (2000) por su parte, integran el conocimiento en el propio escenario ● Black and White (2001) analiza tus acciones y según ellas construye IA a varios niveles ○ Produce comportamiento emergente, aprendiendo con el algoritmo ID3 (crea árboles de decisión) Representación del conocimiento 7 Hitos históricos
  • 8. ● El conocimiento se puede representar computacionalmente a varios niveles ○ Representación atómica ■ Caja negra sin mostrar estructura interna (Ej. Valores enumerados de estado como Herido) ○ Representación factorizada ■ Compuesta de una serie de factores (Ej. Propiedades booleanas como Tóxico, o enteras como Salud, Munición...) ○ Representación estructurada ■ Basada en objetos con factores y relaciones con otros objetos (... a su vez estructurados) (Ej. Componentes software como partes de la armadura) Representación del conocimiento 8 Nivel de representación Herido Salud: 8 Avatar Pie Brazo Arma Brazalete Tóxico: true
  • 9. ● El conocimiento también puede estar implícito en forma de código ○ A mediados de los 90 casi todos los juegos se programaban ad hoc (con guiones) ○ Son casi funciones auxiliares que “dirigen” a la IA Representación del conocimiento 9 Guionización SCRIPTING SCRIPTS Lenguaje de guionización Comentario Lua Se volvió un estándar de facto en los 2000 Scheme Notación fea (LISP) Python Sintaxis buena para novatos Java Compilado y difícil de integrar Javascript Común en la web Blueprints Visual e integrado en Unreal Engine Visual Scripting Visual e integrado en Unity
  • 10. ● Técnica sencilla, rápida y fácil de comprender e implementar ○ Recibe todo el conocimiento del agente ■ A menudo, sólo se consulta el estado del mundo ○ Es un árbol con nodos de decisiones y de acciones ○ Se parte del nodo raíz, se toman decisiones simples según los conocimientos hasta proponer 1 acción de entre las posibles acciones a realizar Representación del conocimiento 10 Árbol de decisión Ej. Booleano Ej. Enumeración Ej. Valor numérico Ej. Vector 3D Si es cierto Si está en cierto conjunto de valores Si está en cierto rango de valores Si su longitud está en cierto rango DECISION TREE
  • 11. ● Lo más básico es decidir con if-then-else, y esto es un recurso para representar en fichero dichas sentencias condicionales anidadas ○ Los árboles binarios son los más eficaces ○ Habrá que ver cómo se representa el entorno y si se puede percibir directamente o mediante un único Interfaz con el Mundo Representación del conocimiento 11 Árbol de decisión * Siempre mejor, para depurar fallos
  • 12. ● Su complejidad es muy baja ○ Aún así, mejor usar árboles equilibrados (misma profundidad en las ramas), postergar y hasta cortocircuitar las decisiones más costosas ○ Ej. Operaciones AND y OR Representación del conocimiento 12 Árbol de decisión
  • 13. ● Puede ser interfaz o clase abstracta ● Los nodos pueden ser decisiones o acciones Representación del conocimiento 13 Pseudocódigo * Devuelve el nodo hijo (directo) * Devuelve la acción del final (hoja)
  • 14. ● Las decisiones se van especializando ○ Ej. Para valores numéricos (reales) Representación del conocimiento 14 Pseudocódigo
  • 15. ● El método para tomar la decisión se suele implementar recursivamente ○ Se empieza llamando, por lo tanto, al nodo raíz Representación del conocimiento 15 Pseudocódigo Espacio < O(n) donde n son los nodos de decisión Tiempo = O(log2 n) si el árbol está equilibrado y todos los tests de decisión tienen un coste computacional constante
  • 16. ● Implementar un árbol de decisión con múltiples ramas también es fácil Representación del conocimiento 16 Pseudocódigo
  • 17. ● Se pueden añadir conectores lógicos e incluso mezclar ramas y convertirlos en grafos dirigidos (¡acíclicos!) ● Pueden añadirse nodos aleatorios o probabilistas ○ Con memoria para no cambiar mucho de decisión... pero con caducidad (timers), para no atascarse ● Incluso es posible usar aprendizaje máquina (ID3) para crear o ampliar el árbol Representación del conocimiento 17 Más allá del árbol
  • 18. ● ¿Cómo son las ramas del árbol equilibrado? A. Número de decisiones simples ni alto ni bajo B. Nodos de acción a la misma profundidad C. Nodos de decisión a la misma distancia D. Número de decisiones lo más bajo posible ● Desarrolla tu respuesta (en texto libre) Representación del conocimiento 18 Participación
  • 19. ● Millington, I.: Artificial Intelligence for Games. CRC Press, 3rd Edition (2019) ● Wexler, J.: Artificial Intelligence in Games: A look at the smarts behind Lionhead Studio's "Black and White" and where it can and will go in the future (2002) Representación del conocimiento 19 Más información
  • 20. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias...