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).

Saturday, March 3, 2018

Decentralization of Power and Fail-Safe Democracies.

One of the main points of Marxism, Exploitation , is directly related to the idea that an entity that does not take part in production decides how to spend the profits of Production. The same problem arises in Failed Democracies. The only solution is to decentralize Economic and Political Power so that such failures can be overcome.


Let us look at a centralized version of Communism. In this case, the state decides the amount and type of production that occurs. It gives redeemable coupons to workers which they can give to stores to buy products in exchange for the work that the state has assigned them to do.

Let us look at two scenarios. In the first case, the state takes decisions democratically. The population is given the ability to decide about the Economy. This can be done with local assemblies or with the internet. The decisions are then processed and the result is then passed to the individual sectors of the economy.
  Keep in mind that there is a bureaucracy that handles the democratic procedure , produces a solution and sends the signals back.

The second case is the same as before but there is a problem in the democratic procedure. It does not have to be a big problem. Simply the state starts to decide on things that it shouldn't. Some actors have a disproportionate ability to influence Production. It is at this moment that the concept of exploitation that Marx used to describe Capitalism starts to also apply to this scenario, to degenerate Communism.

Can we recover from such a scenario? It is very difficult. The reason for that is that all the processes that organize society are controlled by a single entity. The only solution is a Revolution by the whole of Society. It requires the subversion of big parts of the economy/Society in a scale big enough to be sustainable and to cripple the previous economic system. Small scale uprisings will simply fail unless they inspire others to follow.

There are many Revolutionary parties who want to create a Communist Society. None of them realize that such a Society can be very easily subverted into an Exploitative one.

There is a reason why most Communist Visions are centralized. The rejection of private property in production requires someone to take care and expand the means of production. And this requires that Society decides on the economy as a whole, since the means of production belong to all. Since the public property belongs to all, they all need to contribute in its production. This , thus, requires a centralized way to extract value from Society that is to be spent on the public property.

 Another solution is to provide local rules that prohibit exploitation , maintain the means of production as a public property and at the same time have a decentralized way to invest in Capital goods. In this case, there isn't a centralized control of residue value / profits. In fact there are no profits. All the value is returned to the workers / producers. It is then up to them to invest in capital goods. The capital goods are used by Society and customers only need to give back the cost of investment. The investors have no claim on the product of production and they have no control of production at all. Investments are simply a store of value.
In this case, there can still be and should be democratic structures , both local and centralized. Since the method of value accounting is decentralized, if a centralized democratic structure becomes undemocratic, part of the network could simply split from the rest. The social productive relations depend on this decentralized method of accounting to continue functioning.
The ability to invest will continue to exist since it is local peers that perform it.

As long as economic power is decentralized , the democratic structures that are built on top will need to abide to Society's will.

For the same reason, the Capitalist states need to obey to the economic actors that control the productive forces of the economy. Firms have full control over their production, over the accounting of their revenue, and over the investment opportunities that they could pursue. Capitalist democracies can either obey to the economic actors or be overthrown.

If one needs to create a Society where there is no money, then there is a generalization to the previous solution. You need to build a Society where Societal Power is decentralized. Previously, power was based on money or credit. In a moneyless Society, the democatic structures need to be decentralized and self-healing. If one fails, the other can continue to work and eventually overpower the failed one. This does not mean that Centralized Structures should not exist but that they are powerless without the support of the decentralized Social structure.

Assuming that you believe in a reformist transformation of Society, you need to check that you maintain the political power locally at your political organization, or your trade union. If you allow a secondary party to hold the political power, then that party can do what it wants, and it will most probably succumb to the Economic pressure of the Capitalist class.