En inteligencia artificial , la planificación reactiva denota un conjunto de técnicas para la selección de acciones por parte de agentes autónomos . Estas técnicas se diferencian de la planificación clásica en dos aspectos. Primero, operan de manera oportuna y, por lo tanto, pueden hacer frente a entornos altamente dinámicos e impredecibles . En segundo lugar, calculan solo una acción siguiente en cada instante, según el contexto actual. Los planificadores reactivos a menudo (pero no siempre) aprovechan los planes reactivos , que son estructuras almacenadas que describen las prioridades y el comportamiento del agente.
Aunque el término planificación reactiva se remonta al menos a 1988, el término " reactivo " se ha convertido ahora en un peyorativo [¿ según quién? ] utilizado como antónimo de proactivo . Dado que casi todos los agentes que utilizan la planificación reactiva son proactivos, algunos investigadores han comenzado a referirse a la planificación reactiva como planificación dinámica .
Representación del plan reactivo
Hay varias formas de representar un plan reactivo. Todos requieren una unidad de representación básica y un medio para componer estas unidades en planos.
Reglas de condición-acción (producciones)
Una regla de acción de condición, o regla si-entonces, es una regla en la forma: condición si entonces acción . Estas reglas se llaman producciones . El significado de la regla es el siguiente: si la condición se cumple, realice la acción. La acción puede ser externa (por ejemplo, recoger algo y moverlo) o interna (por ejemplo, escribir un hecho en la memoria interna o evaluar un nuevo conjunto de reglas). Las condiciones son normalmente booleanas y la acción se puede realizar o no.
Las reglas de producción pueden estar organizadas en estructuras relativamente planas, pero más a menudo se organizan en una jerarquía de algún tipo. Por ejemplo, la arquitectura de subsunción consiste en capas de comportamientos interconectados , cada uno en realidad una máquina de estados finitos que actúa en respuesta a una entrada apropiada. Estas capas luego se organizan en una pila simple, con capas superiores subsumiendo los objetivos de las inferiores. Otros sistemas pueden usar árboles o pueden incluir mecanismos especiales para cambiar qué subconjunto de metas / reglas es actualmente más importante. Las estructuras planas son relativamente fáciles de construir, pero solo permiten la descripción de un comportamiento simple o requieren condiciones inmensamente complicadas para compensar la estructura que falta.
Una parte importante de cualquier algoritmo de selección de acciones distribuidas es un mecanismo de resolución de conflictos. Este es un mecanismo para resolver conflictos entre acciones propuestas cuando se cumple la condición de más de una regla en un instante dado. El conflicto se puede resolver, por ejemplo,
- Asignar prioridades fijas a las reglas de antemano,
- asignar preferencias (por ejemplo, en la arquitectura Soar ),
- aprender las utilidades relativas entre reglas (por ejemplo, en ACT-R ),
- explotando una forma de planificación .
Los sistemas expertos a menudo utilizan otras heurísticas más simples , como la actualidad, para seleccionar reglas, pero es difícil garantizar un buen comportamiento en un sistema grande con enfoques simples.
La resolución de conflictos solo es necesaria para las reglas que quieren tomar acciones mutuamente excluyentes (cf. Blumberg 1996).
Algunas limitaciones de este tipo de planificación reactiva se pueden encontrar en Brom (2005).
Máquinas de estado finito
La máquina de estados finitos (FSM) es un modelo de comportamiento de un sistema. Los FSM se utilizan ampliamente en informática. Modelar el comportamiento de los agentes es solo una de sus posibles aplicaciones. Un FSM típico, cuando se usa para describir el comportamiento de un agente, consiste en un conjunto de estados y transiciones entre estos estados. Las transiciones son en realidad reglas de acción de condición. En cada instante, solo un estado del FSM está activo y se evalúan sus transiciones. Si se toma una transición, se activa otro estado. Eso significa que, en general, las transiciones son las reglas en la siguiente forma: si condición, entonces activa-nuevo-estado . Pero las transiciones también pueden conectarse con el estado "propio" en algunos sistemas, para permitir la ejecución de acciones de transición sin cambiar realmente el estado.
Hay dos formas de producir comportamiento por parte de un FSM. Dependen de lo que un diseñador asocie con los estados; pueden ser "actos" o guiones. Un 'acto' es una acción atómica que debe realizar el agente si su FSM es el estado dado. Esta acción se realiza en cada paso de tiempo. Sin embargo, más a menudo es el último caso. Aquí, cada estado está asociado con un script, que describe una secuencia de acciones que el agente debe realizar si su FSM se encuentra en un estado determinado. Si una transición activa un nuevo estado, el script anterior simplemente se interrumpe y se inicia el nuevo.
Si un script es más complicado, se puede dividir en varios scripts y se puede explotar un FSM jerárquico. En tal autómata, cada estado puede contener subestados. Solo los estados a nivel atómico están asociados con un guión (que no es complicado) o una acción atómica.
Computacionalmente, las FSM jerárquicas son equivalentes a las FSM. Eso significa que cada FSM jerárquico se puede convertir en un FSM clásico. Sin embargo, los enfoques jerárquicos facilitan mejor los diseños. Véase el artículo de Damian Isla (2005) para ver un ejemplo de ASM de bots de juegos de ordenador , que utiliza FSM jerárquicos.
Enfoques difusos
Tanto las reglas si-entonces como las FSM se pueden combinar con lógica difusa . Las condiciones, estados y acciones no son más booleanos o "sí / no" respectivamente, pero son aproximados y suaves. En consecuencia, el comportamiento resultante tendrá una transición más suave, especialmente en el caso de transiciones entre dos tareas. Sin embargo, la evaluación de las condiciones difusas es mucho más lenta que la evaluación de sus contrapartes nítidas.
Vea la arquitectura de Alex Champandard .
Enfoques conexionistas
Los planes reactivos pueden expresarse también mediante redes conexionistas como redes neuronales artificiales o jerarquías de flujo libre. La unidad de representación básica es una unidad con varios enlaces de entrada que alimentan a la unidad con "una actividad abstracta" y enlaces de salida que propagan la actividad a las siguientes unidades. Cada unidad en sí misma funciona como transductor de actividad. Normalmente, las unidades están conectadas en una estructura en capas.
Lo positivo de las redes conexionistas es, en primer lugar, que el comportamiento resultante es más suave que el comportamiento producido por reglas del tipo "si-entonces" nítidas y FSM, en segundo lugar, las redes son a menudo adaptativas y, en tercer lugar, se puede utilizar el mecanismo de inhibición y, por tanto, el comportamiento también descrito proscriptivamente (por medio de reglas se puede describir el comportamiento sólo prescriptivamente). Sin embargo, los métodos también tienen varios defectos. Primero, para un diseñador, es mucho más complicado describir el comportamiento de una red comparándolo con las reglas si-entonces. En segundo lugar, solo se puede describir un comportamiento relativamente simple, especialmente si se va a explotar la característica adaptativa.
Algoritmos de planificación reactiva
El algoritmo típico de planificación reactiva simplemente evalúa las reglas si-entonces o calcula el estado de una red conexionista. Sin embargo, algunos algoritmos tienen características especiales.
- Evaluación rete : con una representación lógica adecuada (que es adecuada solo para reglas precisas), las reglas no necesitan ser reevaluadas en cada paso de tiempo. En su lugar, se puede utilizar una forma de caché que almacena la evaluación del paso anterior.
- Lenguajes de secuencias de comandos: a veces, las reglas o FSM son directamente las primitivas de una arquitectura (por ejemplo, en Soar ). Pero más a menudo, los planes reactivos se programan en un lenguaje de programación , donde las reglas son solo una de las primitivas (como en JAM o ABL).
Direccion
La dirección es una técnica reactiva especial que se utiliza en la navegación de agentes. La forma más simple de dirección reactiva se emplea en los vehículos Braitenberg , que asignan las entradas del sensor directamente a las salidas del efector y pueden seguir o evitar. Los sistemas más complejos se basan en una superposición de fuerzas atractivas o repulsivas que afectan al agente. Este tipo de dirección se basa en el trabajo original en boids de Craig Reynolds. Por medio de la dirección, se puede lograr una forma simple de:
- hacia una navegación de meta
- comportamiento de evitación de obstáculos
- un comportamiento de seguimiento de la pared
- enemigo acercándose
- evitación de depredadores
- comportamiento de la multitud
La ventaja de la dirección es que es computacionalmente muy eficiente. En los juegos de ordenador , esta técnica puede conducir a cientos de soldados. En los casos de terreno más complicado (por ejemplo, un edificio), sin embargo, la dirección debe combinarse con la búsqueda de caminos (como por ejemplo en Milani [1] ), que es una forma de planificación .
Ver también
Referencias
- Blumberg, B .: Viejos trucos, nuevos perros: etología y criaturas interactivas . Tesis doctoral, Instituto Tecnológico de Massachusetts (1996).
- Brom, C . : Planificación reactiva jerárquica: ¿Dónde está su límite? En: Actas del taller MNAS. Edimburgo, Escocia (2005)
- Bryson, J .: Inteligencia por diseño: principios de modularidad y coordinación para agentes adaptativos complejos de ingeniería . Tesis de doctorado, Instituto de Tecnología de Massachusetts (2001)
- Champandard, AJ: Desarrollo de juegos de inteligencia artificial: criaturas sintéticas con comportamientos reactivos y de aprendizaje . New Riders, Estados Unidos (2003)
- Grand, S., Cliff, D., Malhotra, A . : Criaturas: agentes de software autónomos de vida artificial para entretenimiento en el hogar . En: Johnson, WL (eds.): Actas de la Primera Conferencia Internacional sobre Agentes Autónomos. Prensa ACM (1997) 22-29
- Huber, MJ: JAM: Una arquitectura de agente móvil basada en la teoría de BDI . En: Actas de la Tercera Conferencia Internacional sobre Agentes Autónomos (Agents'99). Seattle (1999) 236-243
- Isla, D .: Manejo de la complejidad en Halo 2 . En: Gamastura online, 03/11 (2005)
- Milani, A., Poggioni, V., Planificación en entornos reactivos . En Computational Intelligence, 23 (4), 439–463, Blackwell-Wiley, (2005) [2]
- Reynolds, CW Bandadas, manadas y escuelas: un modelo de comportamiento distribuido . En: Computer Graphics, 21 (4) (Actas de la conferencia SIGGRAPH '87) (1987) 25-34.
- de Sevin, E. Thalmann, D .: Un modelo motivacional de selección de acciones para humanos virtuales . En: Computer Graphics International (CGI), IEEE Computer Society Press, Nueva York (2005)
- Producto Softimage / Behavior . Avid Technology Inc.
- Tyrrell, T .: Mecanismos computacionales para la selección de acciones . Doctor. Disertación. Centro de Ciencias Cognitivas, Universidad de Edimburgo (1993)
- van Waveren, JMP: El robot de Quake III Arena. Tésis de maestría. Facultad ITS, Universidad Tecnológica de Delft (2001)
- Wooldridge, M. Introducción a los sistemas de agentes múltiples . John Wiley y sus hijos (2009)
- Pogamut2 . Plataforma para la creación rápida de prototipos de agentes en Unreal Tournament 2004 - usando POSH - planificador reactivo diseñado y desarrollado por JJ Bryson.
- [3] . Wortham, RH, Gaudl, SE & Bryson, JJ, Instinct: Un planificador reactivo de inspiración biológica para sistemas integrados inteligentes, en: Investigación de sistemas cognitivos. (2018)
enlaces externos
- Creatures , una implementación de planificación reactiva de Grand et al.