The topic of the project is how to support collaboration and cooperation in systems comprised of multiple agents.
As the world around us gets more and more connected, it becomes more important to be able to harness this connectivity to produce systems that can work together and achieve more than the sum of their parts. The view of systems that collaborate deeply affects manufacturing, robotics, transportation, and exploration, which would all transform using techniques that allow components to collaborate.
Our design and analysis techniques are mostly limited to designing systems working on their own and considering other systems as their environment. The aim of this project is to enable systems to collaborate to achieve a mutual goal. Thus, instead of producing one program, we are expecting to produce multiple programs that interact and collaborate together.
The objective of this project is to create theoretical foundations that will enable better collaboration based on three crucial features:
1. Synchronization of multiple agents.
2. Transfer of meaningful information.
3. Clear definition of standalone behavior.
We developed a computational model for supporting the modeling and analysis of systems composed of multiple different collaborating agents. The model allows for rich communication between agents and is unique in the ability of agents to reconfigure their communication interfaces. That is, agents choose during runtime with who to communicate and what to communicate based on need and interest in ad-hoc ways. We support analysis of designs that use our computational model both theoretically and practically. Thus, allowing practitioners to more easily consider more advanced designs for such systems. We also know, in some cases, how to start from high-level descriptions of the common behavior and goals and be able to suggest how to distribute tasks between agents so as to commonly achieve this behavior. The way our model diverges from existing formalisms opens many paths for future exploration. These range from revisiting previous results that are applicable to simpler formalisms and extending them to exploring new opportunities that were not available in previous models. In general, as a community, we are learning how to design systems that are able to collaborate rather than co-exist. Our results are a step in that direction.