Overview
BDRML version 1.0

Designing and representing control algorithms for multi-agent systems is challenging. The collective performance depends on interactions between a system's components, such as software agents or robots, and with their environment. The currently available modeling languages, such as UML, cannot fully express these interactions. The Behaviour-Data Relations Modeling Language (BDRML):
- Describes agent behaviours, not states.
- E.g. defines a "Work" behaviour versus a "Worker" state
- It can therefore model finite-state machines, neural network controllers, behaviour-based controllers, etc.
- Represents both behaviours and data as primitives, so they can relate to each other. This allows BDRML to:
- Explicitly represent what information is communicated and where it is stored
- Combine the capabilities of statecharts and class diagrams (that describe control algorithms) and of sequence charts (that describe communication)
- Allows to specify relations between behaviours and data external to an agent’s memory
- It can therefore represent communication between agents and interactions with their environment
Consider the example below, where a collective task allocation robot control algorithm is represented in the form of (a) statechart, (b) class diagram, (c) sequence chart. A robot searches the environment as a "Scout" and becomes a "Worker" upon finding a worksite, where reward is located. A Worker extracts reward from the worksite (for example, it performs an inspection task or helps a customer nearby), while broadcasting recruitment signals to Scouts that are close. Any Scout that is recruited becomes a Worker as well. A Worker resumes scouting when its worksite is depleted.
In relation to swarm control algorithms, these representations suffer from two of problems:
- Data is not represented explicitly, making it difficult to express where information is stored or how it is operated on
- It is not possible to represent relationships between behaviours and data of multiple different robots

- The Send relation between "Work" and "Worksite location". This makes it clear what data is sent and what behaviour a recruiter is executing while sending the data
- The conditional transition between "Scout" and "Work". This makes it clear when a robot can get recruited
See more examples