BETA
This is a BETA experience. You may opt-out by clicking here

More From Forbes

Edit Story

Distributed Artificial Intelligence (Part I): A primer on MAS, ABM, and Swarm Intelligence

This article is more than 5 years old.
I. Setting the stage

Almost two years ago, I paused thinking about the future of AI and drew down some “predictions” about where I thought the field was going.

One of those forecasts concerned reaching a general intelligence in several years, not through a super powerful 100-layers deep learning algorithm, but rather through something called collective intelligence. However, except for very obvious applications (e.g., drones), I have not read or seen any big development in the field and I thus thought to dig a bit into that to check what is currently going on.

As part of the AI Knowledge Map then, I will have a look here not only at Swarm Intelligence (SI) but more generally at Distributed AI, which also includes Agent-Based Modeling (ABM) and Multi-Agent Systems (MAS).


II. Distributed AI (DAI)

Let’s start from the broader classification. Distributed Artificial Intelligence (DAI) is a class of technologies and methods that span from swarm intelligence to multi-agent technologies and that basically concerns the development of distributed solutions for a specific problem.

It can prevalently be used for learning, reasoning, and planning, and it is one of the subsets of AI where simulation has a way greater importance than point-prediction. In this class of systems, autonomous learning processing agents (distributed at large scale and independent) reach conclusions or a semi-equilibrium through interaction and communication (even asynchronously). One of the big benefits of those with respect to neural networks is that they do not require the same amount of data to work — far to say though these are simple systems.

According to Ponomarev and Voronkov (2017), a DAI can be defined by three main characteristics:

  • It is a method for the distribution of tasks between agents;
  • It is a method of distribution of powers;
  • It is a method of communication of the agents.

These are the minimum requirements to be considered a distributed AI, but we can keep digging in and observe the next level of details of those systems (Decker, 1987; Dumke et al., 2009):

  • The agents’ granularity may differ. They can, in fact, be either coarse-grained (acting at a task-level problem decomposition), or fine-grained (if at a statement-level decomposition);
  • The agent’s knowledge is heterogeneous. This could be either redundant or specialized;
  • There are different ways of distributing the control in the system. There are multiple classifications when it comes to the type of control system that could be used: benevolent or competitive; team or hierarchical; static or shifting roles;
  • There exist different ways of communicating. This could happen through a blackboard model or a message-model, and either at low or high-level content.

Hence, in order to structure a DAI system, it is not only necessary to intervene on the system functionalities, but also design the agent architecture (e.g., the degree of heterogeneity, reactive or deliberative, etc.) as well as the system one (communication, protocols, human involvement, etc.), as first evidenced in Parunak (1996).

All these dichotomies for the system to correctly run ask the designers to make several calls, in particular to guarantee that the communication/interaction between agents has a fixed language/protocol to be followed, and finally that those results are synthesizable and actionable.

What we have described are the building blocks for any DAI system, but it might sound sometimes confusing since some of the features can look conflicting at times. It could be then useful to highlight another bifurcation (Stone and Veloso, 2000): in a DAI context, you might either want to analyze a system where several branches work together to achieve a common goal or designing multiple independent agents and look for an emerging solution from their interactions. In the first case, you are facing a Distributed Problem Solving (DPS) type of issue, while in the latter you are dealing with Multi-Agent Systems at their best.

This is an important distinction because it draws a line between simply distributed and decentralized systems. It is indeed very different to have a system where there is a centralized process of task distribution and re-composition or a spontaneous allocation of tasks in a decentralized fashion.


III. Distributed Problem Solving

In DPS, multiple agents work together to solve a specific problem (Durfee, 2001). The key in these systems is that cooperation is required since no individual agent has sufficient information, knowledge, and capabilities to solve the whole problem. Being sure that information and capabilities are correctly allocated in such a way that agents complement rather than conflict between each other is the real challenge for any researcher.

Typical application areas are distributed planning and control, interpretation, cooperating expert systems, cognitive models of cooperation, and human cooperation backed by digital tools, among many.

Any solution in these systems is reached through coherence (designing incentives for the agents to work together) and competence (agents need to know how to work well together), and usually targeted to either constraint-satisfaction problems (DCSPs) or distributed constraint-optimization problems (DCOPs). For each class of problems, multiple algorithms have been designed (Yeoh and Yokoo, 2012) but in general, every approach consists of reducing a larger problem into interdependent sub-tasks — spatial, temporal, or functional that they might be. The partial solutions are then integrated and fit into an overall solution (Durfee et al., 1989).

It is easy to understand the requiring cooperation increases the complexity of the system exponentially, so why not looking for a unified bigger problem solver? In other words, have DPS approaches a legitimate rationale to be implemented?

Well, they do (Durfee et al., 1989). First of all, it is relatively cheap to connect multiple devices from a hardware standpoint, even cheaper than having a centralized processor. Second, many AI applications are distributed by nature and design, whether we like it or not. The ability to modularize the problem into subproblems is also a great advantage since modules are easier to check, debug, and maintain. Finally, having DPSs facilitates the integration of AI into human society because cooperation is the evolutionary mechanism we, as a race, have followed to prosper.

Continue reading Part II here -->