07 febrero 2017

Guillermo Choque Aspiazu Meta-razonamiento en agentes


En la tesis doctoral de Welicki, publicada el año 2006 con el título “Meta-especificación y catalogación de patrones de software con lenguajes de dominio específico y modelos de objetos adaptativos”, se menciona que para la mayoría de los científicos computacionales “meta” significa “acerca de” y se refiere a un nivel superior de abstracción. A modo de ejemplo se puede citar el caso de los metadatos que son “datos acerca de los datos”, otros elementos que ilustran este concepto son: Una meta-sintaxis es una sintaxis que especifica una sintaxis, un metalenguaje es un lenguaje utilizado para discutir lenguajes, metadatos son datos acerca de los datos y el meta-razonamiento se refiere al razonamiento acerca del razonamiento. En muchos casos, cuando los informáticos resuelven un problema tienden a “ir al nivel meta”. Generalmente, esto significa resolver el problema en forma más general, a un mayor nivel de abstracción, lo cual implica una solución más flexible y con mayores capacidades de adaptación a cambios en su entorno. Pero estos beneficios no son gratuitos, este tipo de soluciones tiene un mayor grado de complejidad y penalidades de rendimiento. Es por esto que el paso a un nivel meta debe ser correctamente analizado, sin dejar de tener en cuenta la relación costo-beneficio y la necesidad de negocio que se desea cubrir.

Russell, en el artículo publicado el año 1998 con el título “Meta-razonamiento”, el meta-razonamiento es cualquier proceso interesado en la operación de otro proceso computacional dentro de la misma entidad. Este término está relacionado con una distinción conceptual entre deliberación en nivel de objeto sobre entidades externas y deliberación meta-nivel sobre entidades internas. Dicho de otro modo, utilizando la nomenclatura de Raja y Lesser, descrita el artículo publicado el año 2001 con el título “Control de meta-nivel de tiempo real en sistemas multiagente”, un agente puede realizar dos tipos de decisiones: (1) Las decisiones de meta o macro-nivel gestionadas por el controlador de meta-nivel. (2) Las decisiones de planificación o micro-nivel gestionadas por el controlador de nivel de dominio. El controlador de meta-nivel se debe diseñar para tomar decisiones rápidas y baratas sobre cuántos recursos se deberán gastar en acciones de dominio y cuantos en acciones de control. Las decisiones de control iniciales se clasifican en: (1) Decisiones de Coordinación. Las cuales dictan si se coordina o no con otros agentes y cuanto esfuerzo se debe gastar en coordinación. (2) Decisiones del Planificador. Dictan si se invoca o no al planificador del nivel de dominio y cuanto esfuerzo debe ser gastado por el planificador. (3) Decisiones de Slack. Prescribirán cuanto tiempo libre o slack deberá ser incluido en una planificación para tratar con eventos inesperados.

La tesis doctoral de Carrascosa, publicada el año 2004 con el título “Meta-razonamiento en agentes con restricciones temporales críticas” realiza el análisis respectivo mencionando que las razones para incorporar la capacidad de meta-razonamiento dentro de un agente inteligente son: (1) Permitir al agente controlar sus deliberaciones al nivel de objeto, decidiendo cuales realizar y cuando parar de deliberar y actuar. (2) Permitir al agente generar comportamientos computacionales y físicos, tales como planificar para obtener información, que requiere razonamiento introspectivo o reflexivo. (3) Permitir al agente recuperarse de errores en sus deliberaciones en nivel de objeto. Se debe tener en cuenta que, tal y como se comenta en el artículo de Raja y Lesser, un agente no está ejecutándose de forma racional si en el momento en el que ha calculado una acción ya no es aplicable. Así, un agente deberá planificar o coordinar tan sólo cuando la mejora esperada supere el costo esperado. Si se gastan recursos en cantidades significativas para realizar esta meta-decisión, entonces las meta-meta-decisiones sobre si se deben gastar esos recursos deberán ser hechas en el contexto de la ganancia global de la utilidad del sistema. Para hacer esto, un agente tendrá que conocer el efecto de todas las combinaciones de acciones antes de tiempo, lo cual es intratable para cualquier problema de tamaño razonable. El problema de cómo aproximar este ideal de secuenciamiento de actividades de dominio y control sin consumir demasiados recursos en el proceso, es el problema de control de meta-nivel para un agente racional de recursos limitados.

De esta manera, y siguiendo también lo expuesto por Raja y Lesser, las actividades del agente pueden ser clasificadas en general en tres categorías: Actividades de dominio, actividades de control y actividades de control de meta-nivel. Las actividades de dominio son acciones primitivas ejecutables que logran las diversas tareas de alto nivel. Las actividades de control son de dos tipos, actividades de planificación que eligen los objetivos de alto nivel, establecen restricciones sobre cómo lograr dichos objetivos y secuencian las actividades del nivel de dominio; y actividades de coordinación que facilitan la cooperación con otros agentes con tal de lograr los objetivos de alto nivel. Las actividades de control de meta-nivel optimizan la ejecución del agente distribuyendo en los momentos adecuados las cantidades de procesador apropiadas y otros recursos a las actividades de control y de dominio.

Teniendo en cuenta que el modelo de meta-razonamiento busca el equilibrio entre realizar alguna computación atómica y ejecutar una acción real que afectará a su entorno, tal como señalan Russell y Wefald en el capítulo de libro publicado el año 1989 con el título “Principios de meta-razonamiento”; cuando se evalúa una computación tiene en cuenta sus dos efectos en la utilidad: Hace que pase el tiempo, y por lo tanto puede incurrir en un costo de oportunidad. Específicamente, esta computación causará que el agente posponga la ejecución de la siguiente acción real por al menos la duración de un paso computacional. Una computación tendrá algún efecto sobre las acciones reales elegidas por el agente. Hay dos posibles resultados de una computación. El más simple es que puede cambiar la que el agente cree que es la mejor acción. El segundo y más difícil de analizar es cuando la computación no causa realmente un cambio en la elección de la acción, sino que añade alguna información al estado del agente. Esa información adicional, en cambio, causará que computaciones posteriores cambien la elección de la acción. Esto es llamado utilidad indirecta de la computación realizada.

No hay comentarios:

Publicar un comentario