La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño basado en comportamientos y planificación Luis Peña 2009.

Presentaciones similares


Presentación del tema: "Diseño basado en comportamientos y planificación Luis Peña 2009."— Transcripción de la presentación:

1 Diseño basado en comportamientos y planificación Luis Peña 2009

2 CETINIA 2009Diseño basado en comportamiento2 Tomar decisiones ¿Por qué es importante la IA en el modelado de personajes automáticos? RealismoInteracciónDiversión Presentar comportamientos “humanos” No repetitivos Planificados Entorno dinámico Posible actuación por parte del usuario humano Relaciones consistentes Sorpresa Emoción DIVERSIÓN BUSCAMOS ENCONTRAMOS Realismo Interacción Diversión Poca Inteligencia Poca reactividad Aburrimiento

3 CETINIA 2009Diseño basado en comportamiento3 Tomar decisiones Hay BUENAS.........y MALAS decisiones

4 CETINIA 2009Diseño basado en comportamiento4 Tomar decisiones ¿Cómo tomar “buenas” decisiones? Percibir Actuar Pensar  Máquinas de Estados  Algoritmos Genéticos  Planificadores  Redes Nueronales ....  Máquinas de Estados  Algoritmos Genéticos  Planificadores  Redes Nueronales ....

5 CETINIA 2009Diseño basado en comportamiento5 Tomar decisiones

6 CETINIA 2009Diseño basado en comportamiento6 Técnicas Básicas Sistemas de reglas Máquinas de estados finitos Definición de comportamientos Scripting Árboles de decisión

7 CETINIA 2009Diseño basado en comportamiento7 T.B.: Sistemas de Reglas Planteamiento más básico Computación basada en las estructuras condicionales de los lenguajes de programación. Si Enemigo a vista entonces atacar Si no Si Amigo a vista y herido entonces curar compañero Si no Si Amigo a vista, no herido entonces mover a x,y.... Si Enemigo a vista entonces atacar Si no Si Amigo a vista y herido entonces curar compañero Si no Si Amigo a vista, no herido entonces mover a x,y....

8 CETINIA 2009Diseño basado en comportamiento8 T.B.: Sistemas de Reglas Ventajas  Muy simple Problemas  Muy limitado  Difícil de depurar / modificar  No adaptativo  Nula escalabilidad

9 CETINIA 2009Diseño basado en comportamiento9 Técnicas Básicas Sistemas de reglas Máquinas de estados finitos Definición de comportamientos Scripting Árboles de Decisión

10 CETINIA 2009Diseño basado en comportamiento10 T.B.: Máquinas de Estados Finitos Máquina (hypotetical device) de Turing: “Una máquina de estados finitos es un modelo que tiene un número de estados finito en los cuales nos podemos encontrar en un instante y que dadas unas entradas puede hacernos transitar de un estado a otro o permite activar acciones o salidas relacionadas con dicho estado” Una FSM (Máquina de Estados Finitos) sólo puede estar en un estado en cada instante. Los agentes se dirigen en base al estado en el que se encuentran.

11 CETINIA 2009Diseño basado en comportamiento11 T.B.: Máquinas de Estados Finitos Las FSMs están compuestas por 4 elementos principales:  estados que definen el comportamiento y pueden producir acciones  transiciones de estado que son movimientos de un estado a otro  reglas o condiciones que deben cumplirse para permitir un cambio de estado  eventos de entrada que son externos o generados internamente, que permiten el lanzamiento de las reglas y permiten las transiciones

12 CETINIA 2009Diseño basado en comportamiento12 T.B.: Máquinas de Estados Finitos Esquema general AI Depot

13 CETINIA 2009Diseño basado en comportamiento13 T.B.: Máquinas de Estados Finitos Ejemplos: Fantasmas del PacMan CazarEvadir PacMan come Power Pill Fin de tiempo Power Pill

14 CETINIA 2009Diseño basado en comportamiento14 T.B.: Máquinas de Estados Finitos Ejemplos: Bots del Quake

15 CETINIA 2009Diseño basado en comportamiento15 T.B.: Máquinas de Estados Finitos Ventajas de una FSM  Su simplicidad hace fácil para los desarrolladores sin experiencia  Predictibilidad (en FSM deterministas)  las FSM son rápidos de diseñar e implementar  FSM en una técnica antigua de representación de conocimiento verificada como una técnica de inteligencia artificial, con muchos ejemplos de los que aprender  Las FSM son relativamente flexibles en su implementación.  Bajo uso del procesador  Es fácil determinar si se puede llegar o no a un estado.

16 CETINIA 2009Diseño basado en comportamiento16 T.B.: Máquinas de Estados Finitos Desventajas de una FSM  La naturaleza predecible de las FSM deterministas puede no resultar conveniente en algunos dominios  Si se implementa un sistema grande usando FSMs puede ser difícil de administrar y mantener sin un buen diseño.  No es apropiado para todos los dominios de problema, solo debe ser usado cuando el comportamiento de un sistema puede ser descompuesto en estados separados con condiciones bien definidas para las transiciones.  Las condiciones para las transiciones entre estados son rígidas, significando que están fijadas

17 CETINIA 2009Diseño basado en comportamiento17 Técnicas Básicas Sistemas de reglas Máquinas de estados finitos Definición de comportamientos Scripting Árboles de Decisión

18 CETINIA 2009Diseño basado en comportamiento18 T.B.: Definición de Comportamientos (Behaviors) Abstracción de las FSM Encapsulan transiciones de estados que se agrupan para definir un comportamiento Se pueden definir como una cadena de acciones que describen un comportamiento determinado.

19 CETINIA 2009Diseño basado en comportamiento19 T.B.: Definición de Comportamientos (Behaviors) Comportamiento de Patrulla

20 CETINIA 2009Diseño basado en comportamiento20 T.B.: Definición de Comportamientos (Behaviors) Permiten aplicar varias técnicas en diferentes niveles:  Planificación para la selección de la secuencia de acciones  Combinación dinámica de acciones para comportamientos más realistas  Combinación de distintas FSM para distintos comportamientos.

21 CETINIA 2009Diseño basado en comportamiento21 Técnicas Básicas Sistemas de reglas Máquinas de estados finitos Definición de comportamientos Scripting Árboles de Decisión

22 CETINIA 2009Diseño basado en comportamiento22 T.B.: Scripting Aumenta la modularidad de una solución. Fomenta la creación de contenido durante más tiempo. Aportaciones de usuarios. Mejora (algo) la depuración de los comportamientos. Permite separa la programación del motor del juego de la IA de los NPC.

23 CETINIA 2009Diseño basado en comportamiento23 T.B.: Scripting Varios tecnologías:  Funciones C/C++  Lenguajes de Scripting (incluso javascript)  Descripciones en Texto

24 CETINIA 2009Diseño basado en comportamiento24 T.B.: Scripting Las tareas más comunes que un diseñador quiere realizar vía un script han de ser sencillas  Sencillez para activar/desactivar propiedades o marcadores de objetos  Encontrar objetos y su pertenencia a determinados grupos (e.g. El enemigo más cercano...)  Control simple del tiempo y las esperas  Fácil selección de estados / comportamientos para un agente. IDEA BASE

25 CETINIA 2009Diseño basado en comportamiento25 T.B.: Scripting Los programadores de la IA proporcionan a los diseñadores de los scripts las funciones e incluso comportamientos de tal modo que la gestión interna del comportamiento recaiga en el motor y no en el script Es posible combinar scripts manualmente (el diseñador indica que comportamiento desea en cada instante aunque el control lo lleve el motor de la IA) También es posible que se especifiquen varios comportamientos y se combinen DINAMICAMENTE. IDEA BASE

26 CETINIA 2009Diseño basado en comportamiento26 T.B.: Scripting Es necesario tener un intérprete del lenguaje de scripting, habitualmente vale con unas líbrerías. Se cargan los scripts generados, almacenados en ficheros externos y se incluyen como parte de la lógica. Ejemplo LUA

27 CETINIA 2009Diseño basado en comportamiento27 T.B.: Scripting Ejemplo LUA i nt main(int argc, char* argv[]) { lua_State* luaVM = lua_open(0); if (NULL == luaVM) { printf("Error Initializing lua\n"); return -1; } // initialize lua standard library // functions lua_baselibopen(luaVM); lua_iolibopen(luaVM); lua_strlibopen(luaVM); lua_mathlibopen(luaVM); printf("Simple Functional lua interpreter\n"); printf("Based on lua version 4.0.1\n"); printf("Registering Custom C++ Functions.\n"); lua_register( luaVM, "addNPC", l_addNPC ); lua_register( luaVM, "deleteNPC", l_deleteNPC ); printf("Enter lua commands. type 'exit' to exit\n"); printf("\n>"); lua_dofile(luaVM, "./startup.lua"); // Print out the NPC's that //have been added. theNPCManager->Dump(); lua_close(luaVM); return 0; } Parte en el motor del juego Parte en el motor del juego

28 CETINIA 2009Diseño basado en comportamiento28 T.B.: Scripting Ejemplo LUA -- Simple lua script -- comments indicated with a '--' -- New C functions exposed to lua -- addNPC("NPC Name") -- deleteNPC("NPC Name") addNPC("Joe"); addNPC("Sue"); addNPC("KillBot2000"); addNPC("BotToDelete"); addNPC("Krista"); addNPC("Brandon"); deleteNPC("BotToDelete"); El script se almacena En un fichero por separado El script se almacena En un fichero por separado

29 CETINIA 2009Diseño basado en comportamiento29 Técnicas Básicas Sistemas de reglas Máquinas de estados finitos Definición de comportamientos Scripting Árboles de Decisión

30 CETINIA 2009Diseño basado en comportamiento30 T.B.: Árboles de Decisión Técnica que permite analizar decisiones secuenciales basada en el uso de resultados y probabilidades asociadas.  Resume los ejemplos de partida, permitiendo la clasificación de nuevos casos.  Facilita la interpretación de la decisión adoptada.  Proporciona un alto grado de comprensión del conocimiento utilizado en la toma de decisiones.  Explica el comportamiento respecto a una determinada tarea de decisión.  Reduce el número de variables independientes.

31 CETINIA 2009Diseño basado en comportamiento31 T.B.: Árboles de Decisión Requiere de un conjunto de entrenamiento para ajustar los caminos del árbol y la clasificación de resultados. Los resultados del árbol deben ser un conjunto finito de resultados discretos.. Observaciones importantes

32 CETINIA 2009Diseño basado en comportamiento32 T.B.: Árboles de Decisión Existen varios algoritmos para, dado un conjunto de parámetros a evaluar, crear un árbol de decisión que clasifique los resultados  ID3  C4.5 o C5.0  CART (Árboles de Decisión y Regresión) Algoritmos de Creación

33 CETINIA 2009Diseño basado en comportamiento33 T.B.: Árboles de Decisión El algoritmo de ID3 es el siguiente: (1) Seleccionar el atributo Ai que maximice la ganacia, e.d, el que tenga menor entropia. (2) Crear un nodo para ese atributo, con tanto sucesores como valores tenga. (3)Introducir los ejemplos en los sucesores según el valor que tenga el atributo Ai. (4) Por cada sucesor, (1)SI sólo hay ejemplos de una clase ck Entonces etiquetarlo con ck SINO, llamar al id3 con una tabla formada por los ejemplos de ese nodo, eliminando la columna del atributo Ai Ejemplo ID3 ID3 intenta encontrar el árbol más sencillo que separa mejor los ejemplos. Para ello utiliza la entropía para elegir o tomar decisiones.


Descargar ppt "Diseño basado en comportamientos y planificación Luis Peña 2009."

Presentaciones similares


Anuncios Google