Planificación reactiva

En inteligencia artificial, la planificación reactiva denota un grupo de técnicas para la selección de acciones por parte de agentes autónomos. Estas técnicas difieren 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, solo calculan una siguiente acción en cada instante, según el contexto actual. Los planificadores reactivos a menudo (pero no siempre) explotan 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 en un peyorativo 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 planes.

Condiciones condicionantes (producciones).
Una regla de acción de condición, o regla if-then, es una regla en el formulario: si condición es 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 organizarse en estructuras relativamente planas, pero con mayor frecuencia 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 se organizan en una pila simple, con capas superiores que subsumen los objetivos de las inferiores. Otros sistemas pueden usar árboles, o pueden incluir mecanismos especiales para cambiar qué subconjunto de objetivo / regla 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 sumamente complejas para compensar la falta de estructura.

Una parte importante de cualquier algoritmo de selección de acción distribuida es un mecanismo de resolución de conflictos. Este es un mecanismo para resolver conflictos entre acciones propuestas cuando se cumple más de una condición de reglas en un instante dado. El conflicto se puede resolver, por ejemplo, por

asignando prioridades fijas a las reglas de antemano,
asignación de preferencias (por ejemplo, en la arquitectura Soar),
aprender las utilidades relativas entre las 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 desean 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 estados finitos
La máquina de estados finitos (FSM) es un modelo de comportamiento de un sistema. Los FSM se utilizan ampliamente en informática. El comportamiento de modelado 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 condicionantes. En cada instante, solo un estado del FSM está activo, y sus transiciones son evaluadas. Si se toma una transición activa otro estado. Eso significa que, en general, las transiciones son las reglas en la siguiente forma: si la condición es luego activar-nuevo-estado. Pero las transiciones también pueden conectarse al estado «propio» en algunos sistemas, para permitir la ejecución de acciones de transición sin cambiar realmente el estado.

Hay dos formas de cómo producir un comportamiento por 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 entonces. Sin embargo, más a menudo es el último caso. Aquí, cada estado está asociado con una secuencia de comandos, que describe una secuencia de acciones que el agente debe realizar si su FSM está en un estado determinado. Si una transición activa un nuevo estado, la secuencia de comandos anterior simplemente se interrumpe y se inicia la nueva.

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 en el nivel atómico están asociados con un script (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. Vea el artículo de Damian Isla (2005) para ver un ejemplo de ASM de robots de juegos de computadora, que utiliza FSM jerárquicas.

Aproximaciones difusas
Tanto las reglas if-then como las FSM se pueden combinar con lógica difusa. Las condiciones, estados y acciones no son más booleanas o «sí / no» respectivamente, pero son aproximadas y suaves. En consecuencia, el comportamiento resultante tendrá una transición más suave, especialmente en el caso de las 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.

Ver la arquitectura de Alex Champandard.

Enfoques conexionistas
Los planes reactivos pueden expresarse también por 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 el transductor de actividad. Típicamente, 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 las reglas y las FSM en segundo lugar, en segundo lugar, las redes a menudo son adaptables y, en tercer lugar, se puede utilizar el mecanismo de inhibición y, por lo tanto, el comportamiento puede ser También se describe de forma proscriptiva (por medio de reglas, uno puede describir el comportamiento solo de manera prescriptiva). 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 en comparación con las reglas if-then. 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 de planificación reactiva típico simplemente evalúa si-entonces gobierna o calcula el estado de una red conexionista. Sin embargo, algunos algoritmos tienen características especiales.

Volver a evaluar: con una representación lógica adecuada (que solo es adecuada para reglas nítidas), las reglas no necesitan ser reevaluadas en cada paso del tiempo. En su lugar, se puede utilizar una forma de caché que almacena la evaluación del paso anterior.
Lenguajes de script: a veces, las reglas o FSM son directamente los primitivos de una arquitectura (por ejemplo, en Soar). Pero más a menudo, los planes reactivos se programan en un lenguaje de scripting, donde las reglas son solo una de las primitivas (como en JAM o ABL).
Gobierno
La dirección es una técnica reactiva especial utilizada en la navegación de agentes. La forma más simple de dirección reactiva se emplea en los vehículos Braitenberg, que mapean las entradas de los sensores 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 realizado en pujas de Craig Reynolds. Por medio de la dirección, se puede lograr una forma simple de:

hacia un objetivo de navegación
Obstáculos para evitar obstáculos
un muro siguiendo el comportamiento
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 computadora, cientos de soldados pueden ser manejados por esta técnica. Sin embargo, en casos de terreno más complicado (por ejemplo, un edificio), la dirección debe combinarse con la búsqueda de caminos (como, por ejemplo, en Milani), que es una forma de planificación.