Think Fast, Think Distributed !

Since I need to implement an Artificial Intelligence program to complete my next project, I decided, quite quickly, to turn myself towards Multi-Agent Systems.
Of course, I could go for Machine Learning and other connexionist possibilities. Those are possibilities that I do not exclude, but here is the thing : I want to achieve this project as soon as possible. I can not wait years to obtain enough data from devices to perform a Data Science model. Also, the main idea is to provide a system able to “manage” a possible important number of devices at the same time. To do so, I need a more solid approach then a statistic algorithm. Therefore, I opted for a Multi-Agent system.

What is a Multi-Agent System ?

The idea of a Multi-Agent System (MAS), is, like the name is suggesting it, to create a set of agents, to put them in a specific environment and to define their interactions amongst themselves or within the environment.
The entity that we call agent, is the major actor of our system. Despite appearances, an agent can be self-sufficient or not. (Keep in mind that the agent can be a robot, a process, or even a human ! This is the global system that matters.)
MAS has already prove it efficacity in the modelling of Collective and Distributed Intelligence : this field is directly inspired by studies of social behaviors and Bio-Inspired Systems (like ants or bees).

Why should I distribute the Intelligence ?

If we speak about intelligence, it is quite easy to end up talking about knowledge. Following this notion, how do we inject knowledge in a simple program ? Different ways have proved their worth using for example the semantics of the knowledge.
The distribution of the intelligence is made through the creation of a social organization inside the system. This lies on the idea that knowledge is not just cognitive, but also social
Therefore, distribute intelligence gives two main advantages :
  • It gives the system a kind of multi-expertise aspect that can resolve problems through various means.
  • It allows the system to deconstruct a big problem into several little ones that will be resolved in parallel. This makes the resolution easier in addition to makes it faster.

The real application

Since my project is to put intelligence in a medical device network, I want to incorporate a distributed intelligence for reasons explain above. More precisely, I want to include a Distributed Contraint Optimization Problem (DCOP).
This DCOP choice is quite simple.
Every device within the hospital’s network is connected to a patient (or a room) and add series of specific constraints to the system. The intelligent way to think here, is to detect every room in the medical service that needs an intervention, and then prioritize them (to define which intervention is more important). To do so, the system will include an agent for each room. Each agent will focus on the question “should I call the nurse ?” and will take a decision on its own. Then, all agents of the system will communicate with each other in order to optimize their decision (“should we call the nurse together to limit her moves ?”, “should I wait before calling here since you are in more critical state then me ?”, [and so on …]). Conditions to satisfy are defined as mathematical constraints. That way, the problem can be brought back to a classic constraint optimization problem.











No comments:

Post a Comment

Improve the Configuration of Docker Compose with Environment Variables

I recently started working on a new python project (yeah!). This project is really interesting, but the first lines of code are at least a d...