Monday, March 26, 2018

The Concept of Role in MultiAgent Systems.

In this post, I will consider two types of Processes. Social processes with multiple agents and computational processes performed by computers.
In the first case, the function of the process is the production of a tangible or intangible good. In the second, the computation of a value.

Secondly, this is not just a theoretical discussion. Social processes (as well as computational processes) can be described in a digital specification language, which is then used to create the communication tools that the agents will use to interact with the others to perform their task.
Understanding the concept of role helps us in designing a better specific. language.

Here's what I will try to show. The different roles in a multiagent process do not describe the functionality that each one performs, but rather it devides the work into parts that have fitness functions that can better be fulfilled by the agents, or the system as a whole has material conditions that make it work better with such a division.

Let us look at two examples.

What is the role of the doctor?

One could say that the role of the doctor is to inspect a patient and prescribe medication.The role here would be defined by the functionality of the agent.

In the computational context, the role is described by the type of the inputs and the type of the output.

ex. toString : Integer -> String

In PL, we already have a description Language for such a thing, it is the standard Type System that each language provides to the programmer.
 Could on thus say that a specification language of roles is redundant? If we are to introduce a new specif. system, we need to understand what it describes.
More importantly, if roles describe something different, then the specific. lang should be independent of the type system that describes the functionality of the process.

Going back to the doctor, the description of the work that a doctor does , does not explain the reason that there should be a specific person that is to perform that job. There are material conditions that  explain that.

First of all, the job of the doctor requires specific knowledge that needs to be acquired by a human being. Because of our limitations , we can only understand so much, thus it is necessary to split knowledge in smaller parts.
All doctors need to have that knowledge and there are institutions that train and verify the skill of subjects, medical schools.

At the same time, there are other material conditions that lead to the role of the doctor. There is the problem of locality. Even though drugs can be researched and produced in certain locations, doctors need to be locally found where the patients are. Because of this , we have doctors that are located in each city , individually or in hospitals.
   Doctors at the same time require certain instruments to perform their job. Based on the cost, some are acquired by doctors individually. Costlier ones are available at hospitals. Here we see that the role of the doctor is also determined by the cost of acquiring their medical instruments. People who cannot buy them cannot play the role of the doctor even if they have a medical degree.
At the same time, we have found that higher-level roles, roles that describe a subset of the multiagent system is also affected by materialistic conditions.

Hospitals and the roles they contain cannot be understood in isolation to each other. There are cooks, cleaning personnel , nurses, administration staff that all work in coordination and in parallel.


 Returning now to the case of a Multiagent Computational System, the roles are again created for material reasons.

First of all , certain types of computation require specific hardware requirements. Some require a lot of memory, other require a lot of cpu power, fast double precision arithmetic, fast encryption and decryption modules or ecc memory.

The requirements of hardware and software for a bank, a rocket , a phone or a car computer are quite different.

Next, Agency is an important factor for creating new roles. The client and the seller cannot be the same role. Each one has a different motivation. The first wants to buy something he finds useful and not pay much , the other wants to make money. The seller here, wouldn't be able to decide what the client should buy because he does not know the preferences of the client and his income.

Thirdly, data are owned by specific institutions or people. They do not wish to give them, thus they need to perform the computation that is related to their data by themselves.

Forthly, we have the concept of authority, in which a specific agent is given the task of validating a specific type of information, or authorizing a specific computation.
There are many material reasons why a specific agent needs to be an authority ,which leads us to create that role.


As we saw, the context of the computation, social process, the material conditions in which those processes are performed determine the roles that need to be introduced into our system. Thus, our design would need to allow the change of the schema of roles without affecting the rest of the type system.

How does one do that? That is a question to which I have no answer at the moment. (But I have some ideas).

No comments:

Post a Comment