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

Slides:



Advertisements
Presentaciones similares
Inteligencia artificial y sus aplicaciones
Advertisements

INTELIGENCIA ARTIFICIAL
DATA WAREHOUSE Presentador Por: Andrés Fabián Cortes Solano.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
¿Cómo hacer para que una máquina comprenda el LN?
Introducción IA en Juegos Modelado y Comportamiento de Personajes MIGJRV Luis Peña.
Introducción a la Programación
Ciclo de desarrollo del software
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Definición Machine learning traducido al español significa el aprendizaje automático o también aprendizaje de las maquinas. A partir de esto podemos darle.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Programación 1 Introducción
Requerimientos del Usuario y Requerimientos del Sistema 3ero BB
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Software La buena programación no se aprende de generalidades, sino viendo cómo los programas significativos pueden hacerse claros, “fáciles” de leer,
METODOLOGIA DE LA PROGRAMACION
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Elemento Lógico (Software)
Representación del Conocimiento
© 2009 IBM Corporation End User Programming (Naturalmente) Pablo Pedemonte – SW Engineer 16 Sep 2010.
Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.
Sistema de Información
INTRODUCCIÓN A LA SIMULACIÓN DE EVENTOS DISCRETOS
Marcos para la clasificación pedagógica de objetos para el aprendizaje: un caso de estudio Miguel A. Sicilia, Elena García y Salvador Sánchez Universidad.
Fundamentos de programación
5.3 APROXIMACIONES AL DISEÑO
LENGUAJE DE PROGRAMACIÓN
PROGRAMACIÓN PROCEDIMENTAL
PROGRAMACIÓN ESTRUCTURADA. PROGRAMACÍÓN IMPERATIVA El programa detalla los pasos necesarios para realizar una tarea. Existe un estado global de programa.
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Colegio de Bachilleres Plantel 13 Xochimilco-Tepepan Integrantes: Karen Elizabeth González Monroy Elizabeth De Jesús Vergara Grupo:308.
Sistemas Inteligentes Distribuidos Sistemas Inteligentes Distribuidos Sesión 13 L. Enrique Sucar / Marco López Sesión 13 L. Enrique Sucar / Marco López.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Diccionario de Datos.
INGENIERIA DE REQUERIMIENTOS Taxonomía de Aplicaciones
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Inteligencia Artificial
INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Introducción a los programas
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Facultad de Ingeniería
PROGRAMAS INFORMATICOS
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Metodología de la programación
Ingeniería de Requisitos
PRESENTADO POR: LINA MARCELA IGUA TORRES SONIA MOYANO ESPINOSA DAVID MAHECHA MEDINA CRISTIAN HERNÁNDEZ GERMAN RAMÍREZ.
Elaborado por: Mayoral Cruz Matilde Morales Espinoza Anllhins
Taller: Inteligencia Computacional
Diagrama de Transición de Estado
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Aplicación JAVA implementando Arboles de Decisión
Ramas de I.A. ROBOTICA SISTEMAS DE VISION SISTEMAS EXPERTOS
Proceso de desarrollo de Software
PARCIAL 1 Introducción a los programas. Concepto de Programa  El término programa (d el latín programma, que a su vez proviene de un vocablo griego)
60´s Inicio de los Sistemas Expertos Se buscaban soluciones generales 70´s Los sistemas son más eficientes en dominios acotados La calidad y cantidad.
PARCIAL 1 Introducción a los programas. Concepto de Programa  El término programa (d el latín programma, que a su vez proviene de un vocablo griego)

Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
Entregables del Proyecto
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

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

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

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

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 ....

CETINIA 2009Diseño basado en comportamiento5 Tomar decisiones

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

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....

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

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

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.

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

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

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

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

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.

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

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

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.

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

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.

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

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.

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

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

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

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

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

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

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

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.

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

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

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.