**SVRAI** Agentes Deliberativos # Introducción ![](./img/pensador.png align=right width=25%)Este tema introduce de manera informal los conceptos y el material técnico que se desarrollan en el resto del curso. En particular, se analiza la noción de **deliberación**, que constituye el núcleo de la interacción entre la **planificación** y la **actuación**. Comenzaremos motivando el estudio de la deliberación desde un punto de vista computacional. A continuación, introducimos una visión conceptual de una entidad artificial, denominada **actor**, capaz de actuar deliberadamente sobre su entorno, y analizamos sus principales supuestos. A continuación se presentan **modelos** y **funciones de deliberación**. Y acabamos describiendo dos ámbitos de aplicación que se simplificarán en ejemplos ilustrativos de las técnicas tratadas en temas posteriores. # Propósito y motivaciones ## Primera intuición La primera pregunta a la que debemos hacer frente es: *¿Qué es la actuación deliberativa?* Y la abordaremos investigando los principios y mecanismos de razonamiento computacional que sustentan cómo elegir y realizar acciones. Utilizamos la palabra **acción** para referirnos a algo que hace un agente, como ejercer una fuerza, un movimiento, una percepción o una comunicación, con el fin de realizar un cambio en su entorno y en su propio estado. Un **agente** es cualquier entidad capaz de interactuar con su entorno. Un agente que actúa deliberadamente está motivado por algún objetivo previsto. Realiza una o varias acciones justificables mediante un razonamiento sólido con respecto a este objetivo. **La deliberación para actuar consiste en decidir qué acciones emprender y cómo realizarlas para alcanzar un objetivo**. Se refiere a un proceso de razonamiento, tanto antes como durante la actuación, que aborda cuestiones como: - Si un agente realiza una acción, ¿cuál será el resultado? - ¿Qué acciones debe emprender un agente y cómo debe realizar las acciones elegidas para producir un efecto deseado? Este razonamiento permite al agente **predecir**, **decidir qué** hacer y **cómo** hacerlo, y combinar varias acciones que contribuyan conjuntamente al objetivo. El razonamiento consiste en utilizar modelos predictivos del entorno y las capacidades del agente para simular lo que ocurrirá si este realiza una acción. Ilustremos estas nociones abstractas de forma intuitiva. !!!Tip: Ejemplo 1. ![](./img/bird.gif align=right width=300px)Consideremos un pájaro en las tres escenas siguientes: - Para seguir visualmente un objetivo, el pájaro mueve los ojos, la cabeza y el cuerpo. - Para conseguir comida que está fuera de su alcance, el pájaro coge una varilla de alambre, encuentra una cuña para doblar el alambre en forma de gancho y utiliza el gancho para conseguir la comida. - Para alcanzar un gusano que flota en una jarra, el pájaro coge una piedra y la deja caer en la jarra, repite con otras piedras hasta que el agua haya subido a un nivel alcanzable, y entonces coge el gusano. En estas opciones de mencionan acciones como *desplazarse*, *percibir*, *coger*, *agacharse* y *lanzar*: * La primera escena ilustra una coordinación precisa de movimiento y detección que se denomina *servovisión visual*. Este conjunto de acciones coordinadas tiene una finalidad: mantener el objetivo en el campo de visión. Pero es más reactivo que deliberativo. * Las otras dos escenas son bastante más elaboradas: exigen razonar sobre las relaciones causales entre acciones interdependientes que transforman objetos y el uso de estas acciones para lograr un objetivo. Ilustran nuestra noción intuitiva de actuar deliberadamente. Los mecanismos de la acción deliberada siempre han interesado a la filosofía. Son objeto de intensa investigación en varias disciplinas científicas, como la biología, la neurociencia, la psicología y las ciencias cognitivas. Los comportamientos deliberativos de los individuos del ejemplo anterior se han observado y estudiado desde el punto de vista de cómo se desarrollan las capacidades deliberativas, por ejemplo, en especies de córvidos como los cuervos o los grajos. Numerosas otras especies animales tienen la capacidad de simular sus acciones y deliberar sobre la base de tales simulaciones. Las sofisticadas facultades de deliberación humanas son el tema de numerosas investigaciones, en particular en lo que respecta a su desarrollo en bebés y niños pequeños, desde los trabajos de Piaget hasta la reciente diversidad de modelos de psicología más formal. En el contexto de la IA, nos interesa el estudio de las capacidades de deliberación computacional que permiten a un agente artificial *razonar* sobre sus acciones, *elegirlas*, *organizarlas* con un propósito y *actuar* deliberadamente para alcanzar un objetivo. Llamamos **actor** a este agente artificial. Con ello queremos subrayar las funciones de actuación en las que nos centramos y diferenciarlas del significado más amplio de la palabra *agente*. Consideramos **actores físicos**, como los robots, así como **actores abstractos** que actúan en entornos simulados o virtuales, por ejemplo, mediante animación gráfica o transacciones electrónicas en la Web. Para ambos tipos de actores, las funciones sensoriomotoras designan en sentido amplio las funciones de bajo nivel que implementan la ejecución de acciones. ## Motivaciones El objetivo es abordar cómo un actor actúa deliberadamente siguiendo los planteamientos y métodos de la IA: - Comprender, mediante modelos formales eficaces, las capacidades cognitivas que corresponden a la actuación deliberada. - Construir actores que muestren estas capacidades. - Desarrollar tecnologías que respondan a necesidades reales haciendo uso de los actores anteriores. Comprender la deliberación es un objetivo de la mayoría de las ciencias cognitivas. Lo específico de la IA es modelar la deliberación mediante enfoques computacionales que permitan tanto explicar como generar las capacidades modeladas. Además, las capacidades investigadas se comprenden mejor si se plasman los conceptos y teorías en sistemas diseñados y experimentos para probar empíricamente, medir y cualificar los modelos propuestos. La motivación tecnológica para dotar a un actor artificial de capacidades de deliberación se deriva de dos factores: - la **autonomía**, es decir, que el actor desempeñe las funciones previstas sin ser manejado directamente por una persona, y - la **diversidad** de las tareas que el actor puede realizar y de los entornos en los que puede operar. ![](img/RobotQ.png align=right width=100px)Sin autonomía, un dispositivo operado directamente, o teleoperado, no suele necesitar deliberar. Simplemente amplía las capacidades de actuación y detección de un operador humano que se encarga de la comprensión y la toma de decisiones, posiblemente con el apoyo de herramientas de asesoramiento y planificación, por ejemplo, como en la robótica quirúrgica y otras aplicaciones de la teleoperación. ![](img/RobotCar.jpg align=left width=400px)Un sistema autónomo puede no necesitar deliberación si solo opera en el entorno totalmente especificado para el que ha sido diseñado. Los robots de fabricación realizan de forma autónoma tareas como pintar, soldar, ensamblar o realizar el mantenimiento de un almacén sin mucha deliberación. Del mismo modo, una máquina expendedora o un tren sin conductor funcionan de forma autónoma sin necesidad de deliberación. En estos y otros ejemplos similares de automatización, la deliberación corre a cargo del diseñador. El sistema y su entorno están diseñados de tal manera que las únicas variaciones que pueden producirse son las previstas en la fase de diseño en el ámbito de funcionamiento predefinido del sistema. No se espera que haya diversidad en el entorno. Un estado fuera de las condiciones controladas de funcionamiento pone al sistema en un modo de fallo en el que una persona toma medidas deliberadas. ![](img/roomba.jpg align=right width=300px)Del mismo modo, un dispositivo diseñado para una tarea especializada única puede realizarla de forma autónoma sin mucha deliberación, siempre y cuando las variaciones en su entorno estén dentro de su rango diseñado. Por ejemplo, un robot aspirador o cortacésped no delibera, pero puede realizar de forma autónoma sus tareas especializadas en un rango razonable de céspedes o suelos. Sin embargo, puede dejar de funcionar correctamente cuando se encuentra con un suelo resbaladizo, una pendiente pronunciada o cualquier condición fuera del rango para el que fue diseñado. Cuando un diseñador puede dar cuenta, dentro de un cierto rango de funcionamiento, de todos los entornos y tareas a los que se enfrentará un sistema y cuando una persona puede encargarse de deliberar fuera de esta envolvente, mediante teleoperación o reprogramación, entonces la deliberación no suele ser necesaria en el propio sistema. Un sistema de este tipo estará dotado de una biblioteca de comportamientos reactivos (similares al seguimiento visual de objetivos del pájaro del ejemplo anterior) que cubren eficazmente su rango de funcionamiento. Sin embargo, cuando un actor autónomo tiene que enfrentarse a una diversidad de tareas, entornos e interacciones, lograr su propósito requerirá cierto grado de deliberación. Este es el caso de muchas aplicaciones robóticas, como los robots de servicio y personales, los robots de rescate y exploración, las estaciones espaciales y satélites autónomos, o incluso los coches sin conductor. También es el caso de los sistemas de simulación complejos utilizados en aplicaciones de entretenimiento (por ejemplo, videojuegos) o educativas (juegos serios). Es igualmente aplicable a muchos sistemas de control que gestionan infraestructuras complejas como plantas industriales o energéticas, redes de transporte e instalaciones urbanas (en el contexto de lo que se conoce como *ciudades inteligentes*). La autonomía, la diversidad de tareas y entornos, y la necesidad de deliberación no son propiedades binarias que sean verdaderas o falsas. De hecho, suele haber una correlación donde, cuanto mayor es la necesidad de autonomía y diversidad, mayor es la necesidad de deliberación. Esta relación no se limita a los sistemas artificiales. Numerosas especies naturales (plantas y algunos invertebrados como esponjas o gusanos) han sido capaces de evolucionar para encajar en nichos ecológicos estables, aparentemente sin demasiada deliberación. Las especies que tuvieron que enfrentarse a cambios rápidos en su entorno y adaptarse a una amplia gama de condiciones de vida tuvieron que desarrollar más capacidades de deliberación. ## Enfoque y alcance Abordar la deliberación desde el punto de vista de la IA implica dos restricciones: - No interesan las acciones que consisten únicamente en cómputos internos, como sumar *2 + 3* o deducir que *Sócrates es mortal*. Estos cálculos no son acciones que cambien el estado del mundo (la frontera entre las operaciones computacionales y las acciones que modifican el mundo exterior no es tan nítida para un actor abstracto como para uno físico). Pueden utilizarse como parte de la deliberación del actor, pero aquí las daremos por supuestas y quedan fuera de los objetivos marcados. - No interesan las técnicas para diseñar la detección, el accionamiento y el control sensoriomotor necesarios para la ejecución de acciones de bajo nivel. El control sensoriomotor puede ser esencial para actuar, pero su estudio no entra dentro del ámbito aquí abordado. Se asumen que las acciones se realizan con un conjunto de primitivas, llamadas **comandos**, que implementan el control sensoriomotor. El actor realiza sus acciones ejecutando estos comandos. Para deliberar, se basa en modelos de cómo funcionan estos comandos. Es esencial darse cuenta de que la planificación puede ser necesaria para la deliberación, pero rara vez es suficiente: actuar va más allá de la ejecución de órdenes de bajo nivel. Por ello, el ámbito de este curso no se limita a la función de deliberación más estudiada, que es la planificación de las acciones a realizar. La planificación consiste en elegir y organizar las acciones que pueden lograr un objetivo determinado. En muchas situaciones, no hay mucha necesidad de planificar: las acciones a realizar son conocidas. Pero es necesario deliberar mucho para decidir cómo realizar cada acción, teniendo en cuenta el contexto y los cambios del entorno. !!!Tip: Ejemplo 2. ![](./img/desayuno.jpg align=left width=200px)Diana termina de desayunar en el restaurante de un hotel y emprende el camino de vuelta a su habitación. Por el camino, se da cuenta de que el ascensor no está en su planta y decide subir por las escaleras. Tras unos pasos, se da cuenta de que no tiene la llave de su habitación, y recuerda que la ha dejado en la mesa mientras desayunaba. Decide volver a recogerla. En este ejemplo, el actor no necesita planificar la simple tarea de ir a su habitación. Delibera continuamente mientras actúa: toma decisiones oportunistas, simula por adelantado y supervisa sus acciones, se detiene cuando es necesario y decide acciones alternativas. La deliberación consiste tanto en razonar con modelos predictivos como en adquirir dichos modelos. Un actor puede tener que aprender a adaptarse a nuevas situaciones y tareas, tanto como a utilizar los modelos que conoce para su toma de decisiones. Además, incluso si un problema puede abordarse con los modelos genéricos del actor, puede ser más eficiente transformar los cálculos explícitos con estos modelos en funciones sensoriomotoras de bajo nivel. Por lo tanto, es natural considerar el aprendizaje para actuar como una función de deliberación. Hay muchas opciones para adquirir conocimientos sobre el aprendizaje y la adquisición de modelos para planificar y actuar. Aquí nos centramos en las técnicas de deliberación que utilizan modelos predefinidos. # Visión conceptual de un actor ## Una arquitectura sencilla Un actor interactúa con el entorno externo y con otros actores. En una arquitectura simplificada, representada en la figura adjunta (parte izquierda), el actor tiene dos módulos principales: un conjunto de **funciones de deliberación** y una **plataforma de ejecución**. ![Arquitectura de un actor](./img/Figura1_1.png width=50%) Las funciones sensoriomotoras del actor forman parte de su plataforma de ejecución. Transforman las órdenes del actor en actuaciones que ejecutan sus acciones (por ejemplo, el movimiento de una extremidad o de un personaje virtual). La plataforma de ejecución también transforma las señales detectadas en características del mundo (por ejemplo, para reconocer un objeto físico o virtual, o para consultar información de la Web). Las capacidades de la plataforma se describen explícitamente como modelos de los comandos disponibles. Las funciones de deliberación implementan el razonamiento necesario para elegir, organizar y ejecutar acciones que logren los objetivos del actor, para reaccionar adecuadamente a los cambios del entorno y para interactuar con otros actores, incluidos los operadores humanos. Para elegir y ejecutar órdenes que, en última instancia, logren sus objetivos, el actor necesita realizar una serie de funciones de deliberación. Por ejemplo, el actor debe comprometerse con objetivos intermedios, planificar esos objetivos, refinar cada acción planificada en comandos, reaccionar ante los acontecimientos, supervisar sus actividades para comparar los cambios previstos y observados, y decidir si son necesarias acciones de recuperación. Estas funciones de deliberación se representan en la parte derecha de la misma figura como dos funciones principales: **planificación** y **actuación**. La función de actuación se encarga de refinar las acciones en órdenes, reaccionar ante los acontecimientos y supervisar. ## Deliberación jerárquica y continua en línea La visión presentada en la sección anterior funciona adecuadamente como primera aproximación para describir un actor, pero hay que tener en cuenta que es una simplificación excesiva. !!!Tip: Ejemplo 3. Para responder a la petición de un usuario, un robot tiene que llevar un objeto `o7` a la `sala2`. Para ello, planifica una secuencia de acciones abstractas como *navegar hasta*, *buscar* y *entregar*. Una de ellas se refina en *desplazarse hasta la puerta*, *abrir la puerta*, *salir* y *cerrar la puerta*. Una vez en la puerta, el robot refina la acción *abrir puerta* en función de cómo perciba esa puerta en concreto. ![](./img/Figura1_2.png width=50%) La deliberación del robot puede llevarse a cabo mediante una colección de componentes organizados jerárquicamente. En una jerarquía de este tipo, un componente recibe tareas del componente superior y decide qué actividades debe realizar para llevarlas a cabo. Realizar una tarea puede implicar refinarla en pasos de nivel inferior, emitir subtareas a otros componentes por debajo de él en la jerarquía, emitir comandos para ser ejecutados por la plataforma e informar al componente que emitió la tarea. En general, las tareas en diferentes partes de la jerarquía pueden implicar el uso concurrente de diferentes tipos de modelos y funciones de razonamiento especializadas. Este ejemplo ilustra dos principios importantes de la deliberación: la **organización jerárquica** y el **procesamiento continuo en línea**. - **Deliberación jerárquicamente organizada**. Algunas de las acciones que el actor desea realizar no se corresponden directamente con un comando ejecutable por su plataforma. Una acción puede necesitar un mayor refinamiento y planificación. Esto se hace en línea y puede requerir representaciones, herramientas y técnicas diferentes de las que generaron la tarea. Un proceso de deliberación jerarquizado no pretende únicamente reducir la complejidad de búsqueda de la síntesis de planes fuera de línea. Es necesario principalmente para abordar la naturaleza heterogénea de las acciones sobre las que el actor está deliberando, y las correspondientes representaciones y modelos heterogéneos que tales deliberaciones requieren. - **Deliberación en línea continua**. Solo en circunstancias excepcionales el actor realizará toda su deliberación fuera de línea antes de ejecutar cualquiera de sus acciones planificadas. Lo más habitual será que el actor delibere en tiempo de ejecución sobre cómo llevar a cabo las tareas que está realizando en ese momento. La deliberación sigue siendo parcial hasta que el actor alcanza su objetivo, incluso mediante la modificación flexible de sus planes y las repeticiones. Los modelos de predicción del actor suelen ser limitados. Su capacidad para adquirir y mantener un amplio conocimiento sobre el estado actual de su entorno es muy restringida. El coste de los errores menores y de las repeticiones suele ser menor que el coste de una modelización exhaustiva, de la recopilación de información y de una deliberación minuciosa. A lo largo del proceso de actuación, el actor refina y supervisa sus acciones; reacciona ante los acontecimientos; y amplía, actualiza y repara su plan sobre la base de su percepción centrada en la parte relevante del entorno. Las distintas partes de la jerarquía del actor suelen utilizar diferentes representaciones del estado del actor y de su entorno. Estas representaciones pueden corresponder a diferentes cantidades de detalle en la descripción del estado y a diferentes construcciones matemáticas. En la figura del ejemplo anterior, en los niveles superiores puede utilizarse un gráfico de ubicaciones discretas, mientras que en los niveles inferiores pueden emplearse vectores de variables de configuración continuas para las extremidades del robot. Por último, dado que las deliberaciones complejas pueden compilarse mediante el aprendizaje en comandos de bajo nivel, la frontera entre las funciones de deliberación y la plataforma de ejecución no es rígida, sino que evoluciona con la experiencia y capacidades del actor. ## Supuestos No tendría mucho sentido buscar enfoques de representación del conocimiento y razonamiento que sean eficaces en todos los tipos de problemas de deliberación y en todos los niveles de un actor organizado jerárquicamente. Tampoco es interesante enfocarse en actores altamente especializados y adaptados a un único nicho, porque la deliberación consiste en enfrentarse a la diversidad. Como término medio, suelen buscarse algunos enfoques genéricos que puedan adaptarse a diferentes clases de entornos y, para un actor dado, a diferentes niveles de su deliberación. Estos enfoques se basan en supuestos restrictivos que son necesarios desde un punto de vista computacional, y que son aceptables para la clase de entornos y tareas a abordar. Los supuestos de deliberación suelen referirse a lo variable, dinámico, observable y predecible que es el entorno, y a lo que el actor sabe y percibe sobre él mientras actúa. Podemos clasificarlos en: - **Dinámica del entorno**. Un actor puede suponer que se encuentra en un mundo estático salvo por sus propias acciones, o puede tener en cuenta los acontecimientos exógenos y los cambios esperados y/o observados. En ambos casos, la dinámica del mundo puede describirse mediante **modelos discretos**, **continuos** o **híbridos**. De estos, los modelos híbridos son los más generales. Actuar implica necesariamente discontinuidades en la interacción con el entorno, y estas se modelan mejor de forma discreta. Pero un modelo puramente discreto hace abstracción de los procesos continuos que también pueden necesitar ser modelados. - **Observabilidad del entorno**. Rara vez toda la información necesaria para la deliberación es conocida permanentemente por el actor. Algunos hechos o parámetros pueden conocerse siempre, otros pueden ser observables si se realizan acciones específicas de detección y otros permanecerán ocultos. El actor puede tener que actuar basándose en suposiciones o creencias razonables sobre estos últimos. - **Incertidumbre en el conocimiento y las predicciones**. Ningún actor es omnisciente. Puede o no ampliar sus conocimientos con acciones concretas. Puede o no razonar sobre la incertidumbre relativa al estado actual del mundo y al futuro previsto (por ejemplo, con modelos no deterministas o probabilísticos). Abstraer la incertidumbre durante una deliberación de alto nivel puede ser legítimo si el actor puede manejarla a un nivel inferior y corregir su curso de acción cuando sea necesario. - **Tiempo y concurrencia**. Toda acción consume tiempo. Pero la deliberación puede o no necesitar modelarlo explícitamente y razonar sobre su flujo con el propósito de cumplir plazos, sincronizarlos o manejarlos. En temas posteriores haremos diferentes suposiciones sobre el tiempo, la concurrencia y la incertidumbre. Debemos tener en cuenta que, debido a que es principalmente en las funciones sensoriomotoras y los comandos donde se necesitan sistemáticamente modelos continuos, casi todo el contenido se limitará a enfoques discretos. ## Modelos y funciones de deliberación Un actor necesita modelos predictivos de sus acciones para decidir qué acciones hacer y cómo hacerlas. Estos dos tipos de conocimiento se expresan, respectivamente, con **modelos descriptivos** y **operacionales**: - Los **modelos descriptivos** de acciones especifican el *know what* del actor. Describen qué estado o conjunto de estados posibles pueden resultar de la ejecución de una acción o comando. El actor los utiliza para razonar sobre qué acciones pueden lograr sus objetivos. - Los **modelos operativos** de acciones especifican el *know how* del actor. Describen cómo realizar una acción, es decir, qué órdenes ejecutar en el contexto actual y cómo organizarlas para conseguir los efectos previstos de la acción. El actor se basa en modelos operativos para realizar las acciones que ha decidido llevar a cabo. En general, los modelos descriptivos son más abstractos que los modelos operativos. Los modelos descriptivos abstraen los detalles y se centran en los efectos principales de una acción; son útiles en los niveles superiores de una jerarquía de deliberación. Esta abstracción es necesaria porque a menudo es demasiado difícil desarrollar modelos predictivos muy detallados y porque los modelos detallados requieren información que se desconoce en el momento de la planificación. Además, razonar con modelos detallados es computacionalmente muy complejo. Por ejemplo, si planeamos coger un libro de una estantería, en el momento de la planificación no nos preocuparemos por el espacio disponible en el lateral o en la parte superior del libro para introducir los dedos y extraer el libro de la estantería, el modelo descriptivo de la acción se abstraerá de estos detalles, y se centrará en dónde está el libro, si está a tu alcance y si tienes una mano libre para cogerlo. Las simplificaciones que permite un modelo descriptivo no son posibles en un modelo operativo. Para coger realmente el libro, habrá que determinar con precisión dónde se encuentra el libro en la estantería, qué posiciones de la mano y los dedos son factibles y qué secuencias de movimientos y manipulaciones precisas permitirán realizar la acción. Además, es posible que los modelos operativos deban incluir formas de responder a sucesos exógenos, es decir, sucesos que ocurren debido a factores externos que escapan al control del actor. Por ejemplo, puede que haya alguien delante de la estantería, que falte el taburete que se pretendía utilizar para alcanzar el libro de un estante alto o que cualquiera de un número potencialmente enorme de otras posibilidades interfiera en el plan. En principio, los modelos descriptivos pueden tener en cuenta la incertidumbre causada por los sucesos exógenos, por ejemplo, mediante modelos no deterministas o probabilísticos, pero la necesidad de tratar los sucesos exógenos es mucho más imperiosa en los modelos operativos. De hecho, los sucesos exógenos se suelen ignorar en los modelos descriptivos porque no resulta práctico intentar modelizar todos los posibles efectos conjuntos de las acciones y los sucesos exógenos, ni planificar de antemano todas las contingencias. Pero los modelos operativos deben tener formas de responder a tales acontecimientos si se producen, porque pueden interferir en la ejecución de una acción. En el ejemplo de la biblioteca, es posible que haya que pedir a alguien que se aparte del camino, o que haya que subirse a una silla en lugar del taburete que falta. Por último, un actor necesita modelos descriptivos de los comandos disponibles para utilizarlos eficazmente, pero en general no necesita sus modelos operativos. De hecho, los comandos son las primitivas sensoriomotoras de nivel inferior integradas en la plataforma de ejecución; sus modelos operativos corresponden a lo que se implementa en estas primitivas. Llevando esta observación al extremo, si se supone que toda acción conocida corresponde a una orden ejecutable, entonces todos los modelos operativos están incrustados en la plataforma de ejecución y pueden ignorarse en el nivel de deliberación. Esta suposición rara vez se cumple. ## Descripción de estados para la deliberación Para especificar los modelos descriptivos y operativos de las acciones, utilizaremos primitivas de representación que definen el estado de un actor y su entorno; se denominan **variables de estado**. !!!def: Variables de Estado Una variable de estado asocia un atributo relevante del mundo con un valor que cambia con el tiempo. La definición de un estado con variables de estado necesita incluir suficientes detalles para las deliberaciones del actor, pero no necesita ser, ni puede ser, exhaustiva. En un actor organizado jerárquicamente, las diferentes actividades deliberativas pueden necesitar diferentes cantidades de detalles en la descripción del estado. Por ejemplo, en acciones como *agarrar pomo* y *girar pomo*, para elegir los comandos para agarrar y accionar el pomo, el actor necesita razonar sobre parámetros detallados como las coordenadas de configuración del robot y la posición y forma del pomo de la puerta. Donde el actor refina *llevar `o7` a la `habitación2`* en acciones como *ir al pasillo* y *navegar hasta la `habitación1`*, no se necesitan esos detalles. Es más conveniente razonar sobre los valores de variables más abstractas, como `ubicación(robot) = habitación1` o `posición(puerta) = cerrada`. Para establecer correspondencias entre estas variables abstractas y las detalladas, el actor podría disponer de definiciones que dijeran, por ejemplo, que `ubicación(robot) = habitación1` corresponde a una zona determinada en un marco de referencia euclidiano. La organización precisa de una jerarquía de estructuras de datos y de las representaciones de estado es un área bien conocida de la computación. Puede adoptar diferentes formas en dominios de aplicación como la robótica, la realidad virtual o los sistemas de información geográfica. Aquí, mantendremos este punto lo más simple posible y asumiremos que, en cada parte de la jerarquía de deliberación de un actor, la representación del estado incluye no solo las variables utilizadas en esa parte de la jerarquía (por ejemplo, las coordenadas de configuración del robot en la parte inferior), sino también las variables utilizadas más arriba en la jerarquía (por ejemplo, `location(robot)`). Una cuestión importante es la distinción y correspondencia entre los **estados predichos** y los **estados observados**. Cuando un actor razona sobre lo que puede ocurrir y simula cambios de estado para evaluar la conveniencia de una acción, utiliza estados predichos. Cuando razona sobre cómo realizar acciones en un contexto determinado, se basa en los estados observados; puede contrastar sus observaciones con sus expectativas. Los estados predichos son, en general, menos detallados que los observados; se obtienen como resultado de una o varias predicciones que parten de una abstracción del estado observado actual. Para mantener clara la distinción, utilizaremos diferentes notaciones: - $s ∈ S$ es un estado predicho; - $ξ ∈ Ξ$ es un estado observado. Debido a las observaciones parciales e imprecisas, puede haber **incertidumbre** sobre el estado observado actual, así como sobre los futuros estados predichos. Además, la información en un entorno dinámico es efímera. Algunos de los valores de $ξ$ pueden estar desfasados: pueden referirse a cosas que el actor observó anteriormente pero que no puede observar actualmente. Por lo tanto, $ξ$ es el estado del conocimiento del actor, más que el verdadero estado del mundo. En general, el actor debe estar dotado de los medios adecuados para gestionar la incertidumbre y la temporalidad de los datos en $ξ$. La **observabilidad** es una cuestión adicional. Como ya comentamos, parte de la información relevante para el comportamiento del actor puede estar momentánea o permanentemente oculta; debe inferirse indirectamente. En el caso general, el diseño de un actor debe incluir las siguientes distinciones entre variables de estado: - Una variable es **invisible** si no es observable, sino que solo puede estimarse a partir de observaciones e información a priori. - Una variable es **observable** si su valor puede obtenerse realizando las acciones adecuadas. En varios puntos, puede ser visible si su valor es conocido por el actor, u oculta si el actor debe realizar una acción de observación para obtener su valor. Para simplificar, empezaremos suponiendo que los valores de todas las variables de estado se conocen con precisión en cada momento mientras se actúa. Más adelante, consideraremos de forma más realista que algunas variables de estado son observables pero sólo pueden observarse realizando algunas acciones específicas (por ejemplo, transformando un dominio parcialmente observable en un dominio abstraído cuyos estados son conjuntos de estados). También veremos el caso en el que algunas variables de estado son observables de forma permanente o momentánea, pero otras permanecen ocultas. En particular, veremos la clase de modelos conocidos como **modelos parcialmente observables**, en los que se supone que cada variable de estado es siempre conocida o siempre oculta. ## Planificar frente a actuar La arquitectura simple vista anteriormente presentaba la planificación y la actuación como la búsqueda de acciones a realizar y cómo refinar las acciones elegidas en comandos. Discutamos en qué se diferencian estas dos funciones y cómo pueden asociarse en la deliberación del actor. ![](./img/Fig1-3.png align=right width=30%)El propósito de la planificación es sintetizar un conjunto organizado de acciones para llevar a cabo alguna actividad. Por ejemplo, esto puede hacerse mediante un procedimiento de anticipación que combine pasos de predicción dentro de una búsqueda a través de conjuntos alternativos de acciones para un conjunto que conduzca a un estado objetivo deseado. La figura adjunta representa cómo, cuando se está en el estado $s$, se predice que la acción $a$ producirá el estado $s´$. Los problemas de planificación varían en cuanto a los tipos de acciones que deben planificarse, los tipos de modelos predictivos que se necesitan, y los tipos de planes que se consideran satisfactorios. Para algunos tipos de problemas, se han desarrollado métodos de **planificación específicos** que se adaptan a ese tipo de problema. Por ejemplo, la planificación del movimiento sintetiza una trayectoria geométrica y cinemática para mover un sistema móvil (por ejemplo, un camión, un robot o un personaje virtual); la planificación de la percepción sintetiza un conjunto organizado de acciones de detección e interpretación para reconocer un objeto o construir un modelo tridimensional de una escena; la planificación de infraestructuras sintetiza planes para desplegar y organizar instalaciones (como una infraestructura de transporte público) para optimizar su uso o satisfacer las necesidades de una comunidad. Se pueden citar muchos otros ejemplos, como la planificación de la navegación aérea, la planificación de la configuración de satélites, la planificación logística o la planificación de procesos industriales. Sin embargo, muchas formas de planificación tienen puntos en común. La **planificación independiente del dominio** intenta captar estos puntos comunes a un nivel abstracto, en el que las acciones son operadores genéricos de transformación de estados sobre una representación ampliamente aplicable de estados como relaciones entre objetos. La planificación independiente del dominio y la específica del dominio se complementan mutuamente. Hemos visto que en un actor organizado jerárquicamente, la planificación tiene lugar en múltiples niveles de la jerarquía. Entonces, en los niveles altos, las descripciones abstractas de un problema pueden abordarse mediante técnicas de planificación independientes del dominio. El ejemplo de las habitaciones puede requerir un planificador de trayectorias (para desplazarse a las ubicaciones), un planificador de manipulación (para agarrar la manilla de la puerta) y un planificador independiente del dominio en los niveles superiores de la jerarquía. Actuar implica decidir cómo realizar las acciones elegidas (con o sin la ayuda de un planificador) al tiempo que se reacciona ante el contexto en el que tiene lugar la actividad. Cada acción se considera una tarea abstracta que, en función del contexto actual, se transforma progresivamente en acciones u órdenes más concretas. Mientras que la planificación es una búsqueda sobre estados previstos, la actuación requiere una evaluación continua del estado actual, $ξ$, para contrastarlo con un estado previsto, $s$, y adaptarse en consecuencia. Por consiguiente, actuar también incluye reaccionar ante cambios inesperados y acontecimientos exógenos, que son independientes de la actividad del actor. Las técnicas utilizadas en la planificación y la actuación pueden compararse del siguiente modo. La planificación se basa en modelos descriptivos (**saber qué**), mientras que la actuación utiliza principalmente modelos operativos (**saber cómo**). Los planificadores independientes del dominio pueden utilizarse para aprovechar los puntos en común entre las diferentes formas de problemas de planificación, pero esto es menos cierto para los sistemas de actuación, que requieren una programación más específica del dominio. La relación entre planificación y actuación es más compleja que una simple secuencia lineal de *planificar y luego actuar*. Buscar un plan completo antes de empezar a actuar no siempre es factible, y no siempre es necesario. Es factible cuando el entorno es predecible y está bien modelado (por ejemplo, en el caso de una cadena de producción). Es necesaria cuando actuar tiene un coste o un riesgo elevados, y cuando las acciones no son reversibles. A menudo, en este tipo de aplicaciones, el diseñador tiene que diseñar el entorno para reducir la diversidad tanto como sea posible más allá de lo que está modelado y puede predecirse. En entornos dinámicos en los que pueden producirse acontecimientos exógenos difíciles de modelar y predecir de antemano, cabe esperar que los planes fallen si se llevan a cabo a ciegas hasta el final. Sus primeros pasos suelen ser más fiables que el resto y se dirigen hacia los objetivos. La modificación y replanificación del plan son habituales y deben estar integradas en el diseño de un actor. !!! Metafóricamente, la planificación sirve para arrojar luz sobre el camino a seguir, no para tender un raíl de hierro hasta la meta. ![](./img/Figura1_4.png align=right width=30%) La interacción entre la actuación y la planificación puede organizarse de muchas maneras, dependiendo de lo fácil que sea planificar y de lo rápido que cambie el entorno. Un paradigma general es el **esquema de horizonte decreciente**, que se ilustra en la figura adayacente. Consiste en repetir los dos pasos siguientes hasta que el actor haya cumplido su objetivo: 1. Planificar desde el estado actual orientados hacia el objetivo, pero no necesariamente todo el camino hasta el objetivo. 2. Actuar refinando una, o unas pocas, de las acciones del plan convirtiéndolas en órdenes a ejecutar. Un enfoque de horizonte decreciente puede aplicarse de muchas maneras. Las opciones incluyen varios horizontes de planificación, el número de acciones a realizar en cada etapa de planificación y lo que desencadena la replanificación. Además, los procedimientos de planificación y actuación pueden ejecutarse secuencialmente o en paralelo con sincronización. Dependiendo del horizonte de planificación del actor, puede ejecutar cada comando tan pronto como se planifique o esperar hasta que la planificación avance un poco más. Recordemos que el estado observado $ξ$ puede diferir del previsto. Además, $ξ$ puede evolucionar incluso cuando no se está ejecutando ningún comando. Estas situaciones pueden invalidar lo planificado y obligar a replanificar. La interacción entre la actuación y la planificación es relevante incluso si el planificador sintetiza cursos de acción alternativos para diferentes contingencias. De hecho, puede que no merezca la pena planificar todas las contingencias posibles, o que el planificador no sepa de antemano cuáles son todas ellas. ## Otras funciones de deliberación Hemos mencionado otras funciones de deliberación además de la planificación y la actuación: **percepción**, **supervisión**, **razonamiento de objetivos**, **comunicación** y **aprendizaje**. Estas funciones (algunas de ellas es posible que las veamos con más detalle a lo largo del curso) se describen brevemente a continuación: * La **percepción** va más allá de la sensación, incluso con métodos elaborados de procesamiento de señales y comparación de patrones. La deliberación es necesaria tanto en los procesos ascendentes (para obtener datos significativos de los sensores), como en los descendentes (como mecanismos de enfoque de la atención, razonamiento con modelos de sensores y planificar cómo realizar la detección y recopilación de información). Algunas de las cuestiones son cómo mantener una correspondencia entre los datos detectados y los símbolos de deliberación, dónde y cómo utilizar los sensores de la plataforma, o cómo reconocer las acciones y planes de otros actores. * La **supervisión** consiste en comparar las observaciones del entorno con lo que ha previsto la deliberación del actor. Puede utilizarse para detectar e interpretar discrepancias, realizar diagnósticos y desencadenar acciones iniciales de recuperación cuando sea necesario. La supervisión puede requerir planificar qué acciones de observación realizar y qué tipo de pruebas de diagnóstico llevar a cabo. * El **razonamiento de objetivos** es la supervisión de los objetivos del actor, con el fin de mantener en perspectiva sus compromisos y metas. Incluye la evaluación de su pertinencia dadas las evoluciones observadas, las nuevas oportunidades, las limitaciones o los fracasos, utilizando esta evaluación para decidir si deben abandonarse algunos compromisos y, en caso afirmativo, cuándo y cómo actualizar los objetivos actuales. * La **comunicación** y la **interacción** con otros actores abren numerosas cuestiones de deliberación, como la planificación de la comunicación, el reparto y la delegación de tareas, la planificación de iniciativas mixtas y la interacción adversarial. * El **aprendizaje** puede permitir a un actor adquirir, adaptar y mejorar a través de la experiencia los modelos necesarios para la deliberación, así como adquirir nuevos comandos para ampliar y mejorar su plataforma de ejecución. A la inversa, técnicas como el aprendizaje activo pueden requerir por sí mismas actuar con el fin de aprender mejor. # Ejemplos ilustrativos Para ilustrar determinadas representaciones y algoritmos, presentaremos una serie de ejemplos inspirados en dos ámbitos de aplicación: la robótica y la gestión de operaciones. Utilizaremos vistas muy simplificadas de estas aplicaciones para incluir solo las características que son relevantes para el tema que intentamos ilustrar. Resumimos aquí el contexto real en el que podrían darse estas casuísticas. ## Robot de servicios ![](./img/robot.jpg align=left width=30%)Se usa la palabra **factotum** para referirse a un robot de servicio de uso general que consiste en una plataforma móvil equipada con varios sensores (láseres, cámaras, etc.) y actuadores (ruedas, brazos, carretilla elevadora). Este robot opera en entornos estructurados como un centro comercial, un edificio de oficinas, un almacén o un puerto. Realiza tareas de transporte y logística de forma autónoma (por ejemplo, coger objetos, meterlos en cajas, montar cajas en contenedores, desplazarlos, entregarlos o apilarlos en zonas de almacenamiento). Esta plataforma robótica puede ejecutar órdenes parametrizadas, como *localizarse* en el mapa, *desplazarse* por una trayectoria, *detectar* y *evitar* obstáculos, *identificar* y *localizar* objetos, *agarrar*, *soltar* y *empujar* objetos. Conoce algunas acciones que utilizan estos comandos, por ejemplo, *cartografiar* el entorno (ampliar o actualizar el mapa), *ir* a un destino, *abrir* una puerta, *buscar* o *coger* un objeto. Estas acciones y comandos se especifican con modelos descriptivos y operativos. Por ejemplo, *mover* funciona si se le dan puntos de paso en el espacio libre o una trayectoria libre de obstáculos que cumplan las restricciones cinemáticas y de localización; estas últimas son, por ejemplo, los puntos de referencia visuales que requiere la acción *localizar*. El robot debe comprobar y controlar estas condiciones mientras realiza las acciones. En estas acciones hay que gestionar la concurrencia: por ejemplo, *ir* debe ejecutarse en paralelo con *detectar*, *evitar* y *localizar*. El **factotum** necesita planificadores específicos de dominio, por ejemplo, un planificador de movimiento para *mover*, un planificador de manipulación para *agarrar* (posiblemente utilizando acciones de *localizar*, *empujar* y *mover*). Los planes correspondientes son algo más que una secuencia o un conjunto parcialmente ordenado de órdenes: requieren un bucle continuo de control y supervisión. En la fase de preparación de la misión (los niveles superiores de la jerarquía), es legítimo considerar una **tarea logística** como un conjunto organizado de subtareas abstractas para *recoger*, *preparar*, *transportar* y *entregar* las mercancías. Cada subtarea puede descomponerse a su vez en una secuencia de acciones aún abstractas, como *ir*, *tomar* y *poner*. En este caso se necesitan técnicas de planificación de tareas independientes del dominio. Sin embargo, la deliberación no termina con la fase de preparación de la misión. Una acción, como *ir*, puede realizarse de muchas formas en función de las propiedades del entorno: puede requerir o no una trayectoria planificada; puede utilizar diferentes métodos de localización, seguimiento de trayectoria, control de movimiento, detección y evasión. Para realizar una acción *ir* en diferentes contextos, el robot se basa en una colección de habilidades definidas formalmente por métodos. Un método especifica una forma de refinar una acción en comandos. El mismo *ir* puede comenzar con un método (por ejemplo, seguir puntos de ruta GPS), pero puede proseguir con métodos más adaptados cuando así lo requiera el entorno (interiores sin señal GPS) o el contexto. Estos métodos dotan al robot de modelos operativos (su *saber hacer*) y de conocimientos sobre cómo elegir el método más adaptado con los parámetros adecuados. Los métodos para realizar acciones pueden utilizar construcciones de control complejas con procesos concurrentes (*bucles*, *condicionales*, *semáforos*, *multihilo* y *bloqueos en tiempo real*). Pueden desarrollarse a partir de especificaciones formales en alguna representación y/o con técnicas de síntesis de planes. Podría ser útil usar distintas representaciones para cubrir los métodos que necesita el robot **factotum**. Pueden utilizarse técnicas de aprendizaje automático para mejorar los métodos, adquirir sus modelos y adaptar el **factotum** a una nueva operación. Además de actuar con los métodos adecuados, el robot tiene que supervisar su actividad a todos los niveles, incluido posiblemente el nivel de objetivos. La predicción de lo que se necesita para realizar y supervisar correctamente las actividades previstas debe hacerse de antemano. Hacer las predicciones correctas a partir de los modelos combinados de acciones y modelos del entorno es un problema difícil que implica representaciones heterogéneas. Por último, el robot requiere capacidades de percepción ampliadas: razonar sobre lo que es observable y lo que no, integrar las acciones de recopilación de conocimientos con las acciones de cambio del entorno, actuar con el fin de mantener un conocimiento suficiente para la tarea en cuestión con una interpretación coherente de sí mismo y del mundo. ## Gestor de Operaciones ![](./img/hom.jpeg align=right width=30%)Un **gestor de operaciones portuarias** (**HOM**, por sus siglas en inglés) es un sistema que supervisa y controla todas las tareas que se realizan en un puerto. Algunos ejemplos de estas tareas son *descargar* coches de los barcos, *aparcarlos* en zonas de almacenamiento, *trasladarlos* a una zona de reparación, realizar la *reparación*, preparar la *entrega* de coches según los pedidos, y *cargarlos* en camiones cuando estos llegan al puerto. Algunas de estas operaciones son realizadas por trabajadores humanos, otras de forma automática por máquinas (como el robot de la sección anterior). Este entorno presenta varias características que requieren deliberación: - Es **personalizable**: por ejemplo, los procedimientos de entrega pueden personalizarse en función de la marca del coche, del modelo, o de requisitos específicos del minorista. - Es **variable**: los procedimientos de descarga/carga de coches dependen de las marcas de coches (por ejemplo, las zonas de almacenamiento tienen distintos procedimientos de aparcamiento). - Es **dinámico**: los barcos, coches, camiones y pedidos llegan de forma distribuida en el tiempo. - Es **parcialmente predecible y controlable**: los coches pueden dañarse y necesitar reparaciones, las zonas de almacenamiento pueden no estar disponibles, los pedidos tienen requisitos impredecibles, los barcos y camiones tienen retrasos aleatorios, por ejemplo. ![](./img/Figura1_5.png width=40%) A alto nivel, un HOM tiene que llevar a cabo una secuencia sencilla de tareas abstractas: *descarga*, *desembalaje*, *almacenamiento*, *espera de pedido*, *tratamiento*, *entrega*. El problema de la deliberación en un HOM no está en la síntesis del plan, que se puede especificar fácilmente a mano, sino en el refinamiento dinámico de sus tareas en subtareas más concretas. La figura anterior muestra algunos ejemplos de cómo un HOM refina el almacén de tareas abstractas en subtareas para registrar un coche que se va a almacenar, moverlo y otras tareas, hasta llegar a comandos ejecutables. Además, las tareas que hay que perfeccionar y controlar son realizadas por distintos componentes, por ejemplo, naves, compuertas y zonas de almacenamiento o reparación. Cada buque tiene su propio procedimiento para descargar vagones en una puerta. Una puerta tiene su propio procedimiento para aceptar los vagones que se descargan en la cubierta. Por tanto, una opción de diseño natural es modelar el HOM de forma distribuida, como un conjunto de componentes de deliberación que interactúan. Las interacciones entre barcos y compuertas, compuertas y camiones, y camiones y zonas de almacenamiento deben controlarse con respecto a las restricciones y objetivos globales del sistema. Para ello, HOM debe lidiar con la incertidumbre y el no determinismo debidos a eventos exógenos, y al hecho de que cada componente puede -desde el punto de vista de la instalación de gestión- comportarse de forma no determinista. Por ejemplo, en la tarea de sincronizar un barco con una puerta para descargar vagones, el barco puede enviar una solicitud de descarga de vagones al gestor de descargas, y la puerta puede responder que la solicitud cumple sus requisitos y la operación de descarga puede llevarse a cabo de acuerdo con algunas especificaciones de descarga, o que la solicitud no puede gestionarse. Es posible que la instalación de gestión no sepa a priori cuáles serán la solicitud, las especificaciones de descarga y la respuesta. En resumen, un HOM se basa en una colección de componentes interactivos, cada uno de los cuales aplica sus propios procedimientos. Refina las tareas abstractas del plan de alto nivel en una composición de estos procedimientos para abordar cada nueva llegada de objetos y adaptarse a cada evento exógeno. Los mecanismos de refinamiento y adaptación pueden diseñarse mediante un enfoque en el que el HOM es un actor organizado en una jerarquía de componentes, cada acción abstracta es una tarea que debe refinarse y planificarse, y la planificación y actuación en línea se realizan continuamente para adaptar y reparar los planes. El enfoque incorpora uno o varios planificadores dentro de estos componentes, a los que se llama en tiempo de ejecución, cuando el sistema tiene que refinar una acción abstracta para adaptarse a un nuevo contexto. Se basa en mecanismos de refinamiento que pueden activarse en tiempo de ejecución siempre que sea necesario refinar una acción abstracta de un procedimiento o tener en cuenta una adaptación.