一句话:首次针对任意 LTL 规约,从多智能体环境合成能处理非确定性与隐藏动作的协调进程。
本文研究反应式综合的一个新应用:为一组相互作用的反应式程序/智能体合成协调程序,使组合系统无死锁并满足长期行为规约。作者将每个智能体建模为 Hoare CSP 中的进程,把待协调的智能体网络称为环境,并在给定任意线性时序逻辑(LTL)规约时构造一个协调者进程(若存在)来引导环境动作。核心技术难点是协调者只有环境状态的部分信息,来源既包括环境内部非确定性,也包括协调者不可见的内部动作;本文首次同时处理这两类部分信息且支持任意 LTL 规约。作者证明协调合成问题按环境规模是 PSPACE-难的,并用原型实现为若干协调问题合成了紧凑解。
This paper presents a method for synthesizing a reactive program to coordinate the actions of a group of other reactive programs so that the combined system satisfies a temporal specification of its desired long-term behavior. Traditionally, reactive synthesis has been applied to the construction of a stateful hardware circuit. This work is motivated by applications to other domains, such as the IoT (the Internet of Things) and robotics, where it is necessary to coordinate the actions of multiple sensors, devices, and robots to carry out a task. The mathematical model represents each agent as a process in Hoare’s CSP model. Given a network of interacting agents, called an environment , and a temporal specification of long-term behavior, the synthesis method constructs a coordinator process (if one exists) that guides the actions of the environment agents so that the combined system is deadlock-free and satisfies the given specification. The main technical challenge is that a coordinator may have only partial information of the environment state, due to non-determinism within the environment and internal environment actions that are hidden from the coordinator. This is the first method to handle both sources of partial information and to do so for arbitrary linear temporal logic specifications. It is established that the coordination synthesis problem is PSPACE -hard in the size of the environment. A prototype implementation is able to synthesize compact solutions for a number of coordination problems.
@article{paperbot560,
title = {Synthesis of coordination programs from linear temporal specifications},
author = {Suguman Bansal and Kedar S. Namjoshi and Yaniv Sa'ar},
journal = {Proceedings of the ACM on Programming Languages},
volume = {4},
number = {POPL},
year = {2019},
doi = {10.1145/3371122}
}