Theoretical Model of Online Community*)

Russian version

Sergei Parinov, parinov@ieie.nsc.ru
http://rvles.ieie.nsc.ru/~parinov/
Institute of Economics & IE SB RAS

November 1999

Some part of this paper published as: Sergei Parinov, Tatyana Nesterenko. Agent-Based Model of an Online Community and "TAO" Method. Workshop 2000: Agent-Based Simulation. Christoph Urban (Editor). SCS European Publishing House, 2000, pp.187-192.

*) Design of the model by TAO language was made by Tatyana Nesterenko (RRIAI).

            Introduction

One of the major results of socio-economic applications of Internet technologies is the emergence in the society of a large number of the so-called online communities. In the simplest case, those are groups of people whose communication is based on Internet technologies (Web forums, distribution lists, chats, etc.). In more complex cases, in addition to virtual method, people use special means for coordination of their activity, which differ both from the market and hierarchy models of socio-economic system management.

Groups of people that conduct their socio-economic activity in the latter mode, form the so-called fully functional online communities. Network economy is a variety of online community, in which participants implement mainly economic objectives and tasks; they realize their interactions via Internet technologies. In general, online communities do exist and can occur not only in economy but also within any other field of human activity.

The concept of information interactions (see [S. Parinov]) offers a systemic description of socio-economic structures that are close to online communities in their features. This paper formulates a theoretical model of online community and gives the results of its computer testing.

1. “Agent-Based Simulation” Method for Socio-Economic System Modeling

Previously, based on the thermodynamic modeling apparatus (see [Ye.I. Latkin et al]), we have made attempts of qualitative analysis of an economic system network model (see [Duncan K. Foley]). However, due to complexity of the object being modeled, we assume that computer experiments based on the “agent-based simulation” approach should be more fruitful.

The area of the agent computer economic research is defined as follows (see [Leigh Tesfatsion]):

ACE (Agent-based Computational Economics) can be characterized as a computer study of economies that have been modeled in the form of developing decentralized systems of autonomous interacting agents. The central objective of such research is the study of obviously spontaneous formation of global regulators for economic processes, such as non-planned coordination of trade in decentralized market economies that economists associate with the “invisible hand” of Adam Smith. It is necessary to explain how those global regulators emerge from the repeated local interactions of autonomous agents mediated by socio-economic institutions (see also Leigh Tesfatsion. How Economists Can Get Alife: Abbreviated Version, http://www.econ.iastate.edu/tesfatsi/getalife.htm)

ACE method is a variety of economic studies from the paradigm Complex Adaptive Systems/CAS. Here " Complex Adaptive Systems " are defined as follows (see http://www.econ.iastate.edu/tesfatsi/caswork.htm):

Many natural systems as well as ever growing number of artificial (man-made) systems are characterized by the evident complex behavior that occurs as a result of non-liner time-spatial interactions between a large number of components or subsystems. Examples of such natural systems include immune and nervous systems, multicellular organisms, ecologies, and insect communities. Artificial systems having similar properties include parallel and distributed computer systems, large-size communication networks and program systems, as well as economies. Particularly, those systems quite recently got a name of Complex Adaptive Systems (see also http://www.cs.iastate.edu/~honavar/cas.html).

Our scheme of information interactions is based on the decentralized information activity of multiple autonomous agents. As a result of their interaction, the most successful “products” of the agent information activity emerge and are distributed in the system (in the form of new variants of technological links, general economic agreements and “rules of the game”). Combined, they form technological and institutional pattern of an economic system and, thus, determine the conditions for further agent interaction within the system. In such form our concept of a socio-economic system that is working based on information interactions of its agents, is directly related to the area described by the ACE method.

2. Principle Notions of TAO

Quite a wide range of software products is known that are used to build agent models (see review on http://www.econ.iastate.edu/tesfatsi/acecode.htm. However, we are interested, in the first place, in the TAO (Technology of Active Objects) software package created in RRIAI; the package has a perfect interface and quite powerful mathematical base.

In TAO a multi-agent system (MAS) is created as a collection of active objects (agents) with the following properties:

The behavior of any active object is described by a set of constraints (i.e., by a model) which defines a space of correct states of the object. An active object is able to choose the optimal solution from the space by analyzing the stream of events coming from outside.

TAO ensures a high-level specification of the complex models of real-life entities. The interaction between active objects is organized as an asynchronous event-driven process. At each moment an active object can independently change its own state reacting to the events generated by other active objects.

An abstract global clock is the main active object of any multi-agent system constructed by TAO. It generates the next time moment at which all other active objects can change their states. An active object computes its current state knowing the past (previous states of the MAS) and planning the future.

Dynamic reconfiguration of the multi-agent system is supported. The number of active objects as well as their links and models can be changed.

A hierarchy of active objects can be defined. The master active object is able to control the behavior of its subordinate active objects. Metaconstraints are used for this purpose.

TAO is closely related to a constraint-based agent-oriented language. To specify an application problem in this language, the user has to perform the following three steps:

Decomposition of the problem into a collection of communicating agents.

Description of the structure and behavior of active objects. Any active object has slots whose values define its state, a model of behavior, and a set of references to external active objects. In the model, the slots of the active object and the slots of the external ones are connected by constraints.

Creation of the multi-agent system (TAO program). It is necessary to set the initial state of MAS and to specify the metaconstraints for control and reconfiguration. In fact, any complete TAO program can be regarded as a master agent with respect to the members of the implemented MAS.

TAO is implemented in the form of an integrated programming system with a high-level input language used to specify multi-agent systems. The overall architecture of the system is shown in Fig. 1.

Fig. 1. Architecture of the TAO system

The main notion of the TAO language is that of an active object which has some properties of a traditional object; in particular, it can inherit information from other objects and ensures encapsulation of data and actions. We distinguish the following features of active objects:

the behavior of an active object is described by a single model rather than by separate, unrelated methods;

an active object is autonomous and exists over time.

interaction between active objects is based on events rather than on exchange of methods as in the classical object-oriented approach.

The description of an active object includes, in particular, the following sections:

a set of slots whose values determine the state of the active object;

a set of references to external active objects whose state information this object can analyze;

a set of local active objects that are subordinated to the current object;

a model of behavior, represented by a system of constraints;

control – a selected part of the model that is responsible for the reconfiguration of the local MAS.

On the whole, the MAS described in the TAO language is a hierarchic network of active objects. The compiler of the TAO system builds the executable representation of a network of active objects. This network may change dynamically in the process of MAS operation.

Since the states of active objects are calculated asynchronously, each of them can be associated with an individual software module that solves the corresponding system of constraints (the constraint solver). This module can be executed in a separate processor or node of the computational network.

Interaction between active objects is coordinated by a special manager. It ensures, in particular, it ensures exchange of data between active objects, receipt of signals and other information from the outside environment (including the user), switching the MAS to a new state, the interface with the system performing graphic visualization of the behavior of active objects, etc.

In TAO, the user is regarded as an active object that can influence the operation of the MAS by generating signals, data, commands, etc.

The process of computation of the state of MAS is called in TAO a computation step. We assume also that there exists an abstract clock that counts the computation steps. At each step the environment goes into a new state. This means, in particular, that the state of MAS and, therefore, the states of all active objects have a fixed connection with the number of the computation step. The organization of calculations is such that the state of an active object can change at most once at each step. Each active object is recomputed at each step after the values of all of its outer objects have been calculated, and cannot change their values. To modify effectively the state of MAS, one needs additional information. Its sources in TAO are the following:

the connection between active objects and the outside world;

the dependence of objects on the previous state of MAS;

the reconfiguration of the set of active objects.

Here the outside world is represented either by the user, who changes the state of MAS through input devices (keyboard, mouse, etc.), or some sensors or an arbitrary program (e.g., a DBMS), which informs MAS that new information has arrived. In all cases the connection with the outside world is provided by special procedures written in the TAO implementation language (C++). The interface to such a procedure can be described within an active object. Active objects that have a connection with the outside world are given a generic name sensors, since they generate events for the active objects. Sensors do not usually depend on other objects, and they are recomputed at the very beginning of each computation step.

In TAO for each active object, its link is represented by a set of other active objects that it can “see” at the time. If this set does not change over the entire lifetime of the system, we say that the link is static, otherwise the link is dynamic. On the one hand, each agent is independent; on the other hand, it is limited by its task and its model, which defines the types of other agents that the object can “see.” The real agents existing near this object are shown to it by a certain management structure containing the object as its part. This combination of agents and the facilities for controlling them is called the environment. It defines the separate tasks for all objects and combines them all to solve one common problem.

We give below a fragment of the formal description of an environment.

Main ( Var < Environment variables >

Agents < The set of agents >

Model < Model of the environment >

Init < Initial values of variables >

Control < Control facilities >

)

Like an active object, the environment contains a number of variables (or slots) whose values are recomputed at each step (section Var). The relationships between them are described in the form of a system of constraints in the section Model. The initial values are given in the section Init. The section Agents lists all agents of the system. We will not describe types of agents here; we will only say that their declarations should precede the description of the environment.

Finally, the Control section contains the program of the system’s operation. It consists of a number of instructions that should be executed asynchronously. Stripped of the syntactic detail, an instruction looks like this:

<condition> ® <action>.

Here <condition> means a certain predicate on the values of environment variables and the slots of agents that have been computed at the current step, and <action> refers to a certain operation (for instance, removing an agent or setting up a link between agents). As a result of applying an instruction, a certain configuration of agents and links is prepared for the next computation step.

We describe now the algorithm of operation of the entire system. At the preparatory step, all variables and slots are given initial values, and the initial links are created. Each computation step begins with recomputing all agents in the order determined by their dependencies on each other. Next, the model of the environment is recomputed. After that, the system is rebuilt by executing all instructions. It should be noted that the links between active objects could be changed only through explicit instructions. If new links are not specified for an agent, then it preserves its old links. After this section is executed, the system goes to the next computation step.

3. TAO Based Information Interaction Model

When forming a model by means of TAO, it is necessary to solve two problems:

1) compose the main functional part of the model;

2) create a graphical interface that would visualize the course of computer experiments with the model.

When specifying an economic system, we should describe the direct participants of economic activity as well as its the most important objects as active agents. Their composition we are borrowing from the concept of information interactions (see [S. Parinov]). Thus, let the economic system consist of the following types of active agents (each type can be represented by several agents):

1) Macrotechnology with its parameters of optimal distribution of syzers over jobs;

2) Information space that defines the borders of information interactions for syzers;

3) Institutional structure that sets the rules of formation and performance of additional subspaces for the syzer interactions;

4) Collective model of environment that is the instrument of syzer interaction;

5) The totality of economic activity participants (syzers) that interact with each other because of and using the components mentioned in the previous line items.

3.1 Description of active agent types in the ÒÀÎ System

Macro-technology

Internal slots “visible” from outside are the following parameters of working places of macrotechnology:

vectors of yield factors for each syzer working place that he can occupy in the course of production process;

final result of macrotechnology application by syzers in the form of general source for subsistence of individual syzers and the system as a whole.

External object for an agent is the “collective model” that provides the vector of syzer distribution over the jobs to macrotechnology.

At the first stage of the study a simplified and determinate model of the macrotechnology behavior is used.

Macrotechnology provides the syzers with yield factor matrix as well as the final yield size that has formed after distribution of syzers over the jobs took place.

 

type technology = active object /* the name of object */

(

out /* external objects */

CM : coll_model; /* external agent, from which

the object receives syzers distribution to the working

places */

public /* the slots, visible outside */

const output_matrix : array [M * N] of real;

/* matrix of of yield factors for each syzer

working place,

M – number of syzers,

N – number of working places */

output_total : real; /* final yield size */

tmp

i : integer;

init /* initialization of an agent */

/* yield factors are generated randomly */

for_all i in [1..M*N] output_matrix[i]:= random([0..1]);

model

output_total = sum_for i in [1..N]

( output_matrix[(i-1)*N + CM.syzers_distribution[i]] );

)

Information Space

Agent sets a metrics of information space that defines the distance between any two points of this space, as well as the topology of distribution of syzers over space.

Let us put syzers to the nodes of flat square grid (plane checker-ruled as a notebook). Each syzer thus aquires a certain pair of coordinates (i, j), where i, j are integer numbers. Assume that the closest neighbors of this syzer are the four syzers “dwelling” in the (i ± 1, j) and (i, j ± 1). It is convenient to presume that the grid has finite dimensions, say LxL nodes (syzers). Sizers are numbered with the help of digit pairs 0 <= i, j < L; to determine neighbor coordinates arithmetic by module L is used. This means that if i = L – 1, then i + 1 is considered to be 0, and if i = 0, then i – 1 equals to L – 1. Evidently, the grid of LxL cells contains 2* L2 pairs of neighbors. Let us define the metrics of distance D between syzers S( i, j ) and S( n, m ) as the number of cells between them D(S(i, j), S(n,m)) = max(abs(i – n), abs(j – m)).

Thus, for each syzer the agent creates syzer subsets that this syzer (observer) can see in the area of selection of his possible interactions.

External objects for the agents are all syzers; upon their stability there depend:

à) the “velocity” of information dissipation over the system space defined by the computer technology development level;

b) the “velocity” of the flow of the change of system states that devalues the content of information flows distributed; in fact, it is defined by the given agent based on the comparison of the data received about stability/instability of syzer state with the information stored in the “memory” of the “information space” agent.

The model calculates for each syzer (observer) which of the surrounding syzers are available for interactions and in which mode (full-fledged or unilateral interaction). The dimension of the available syzer group depends on the degree of their remoteness from the observer, as well as the combination of “velocity” parameters for dissipation and devaluation of information flows.

Let the subsets of syzers get into the observer's domain of choice depending on meeting the following conditions: if the state of remote syzers is stable during a certain period of time and the number of steps is no less than the number of cells (distance measurement scale) between him and the observer. Since syzer’s state cannot change more frequently than once per step, then, by definition, syzer-observer can see in his choice domain four of his nearest neighbors (they are not more than one cell of space far). If syzers located at the distance of two cells from the observer preserve stable condition for two or more steps, they also fall into its domain of choice, etc. Thus, in one step of the system life information flows coming from the observer retain actuality within the radius of one cell. Consequently, the ratio between the information flow dissemination velocities and their obsoletion in this case is equal to one cell of space per one step of the system life. As noted before, the ICT development can increase this factor to several cells per one step.

 

type vid = array[1..N] of boolean; /* vector of the nearest syzers */

type inf_space = active object /* name of agent type */

(

out

S : array[1..N] of syzer; /* array of all syzers */

public

zone_A : array[1..N] of vid; /* array of vectors, which

contain subset of syzers with who

the corresponding syzer can

interact */

tmp

i, j : integer;

model

for_all i in [1..N] (

for_all j in [1..N] (

if (length(i, j) = 1) or /* the syzers are neighbors */

(S[j].state >= length(i,j))/* syzer #j keeps the steady state no less

of time steps than the number of cells

between it and the syzer #i */

then zone_A[i][j] = true

else zone_A[i][j] = false ));

);

Institutional Structure

A set of slots “visible” from the outside is a set of syzer information images and macrotechnology obtained as projections of the states of appropriate “original” objects on the artificial space set by a system of coordinates that is formed by the rules and constraints of the given institutional structure. Also, the results of vital activity resource distribution in the form of a share of each individual syzer are supplied to the outlet of each agent.

Agent contains in the form of his local slot values the system of rules and standards for the formation of coordinate system for the new interaction subspace on the basis of real objects of economic system. The procedure is in place through which syzers are represented in the new subspace by their monotype simplified information images. Same stands for macrotechnology.

External objects for an agent are a set of syzers and macrotechnology (several macrotechnologies in the general case) of economic system.

General performance scheme for an institutional structure comprises a mechanism of maintaining the projection of the objects in economic system within a certain artificial coordinate system. It is necessary to allow for the existence of a basic (or vacuous) institutional structure that defines the constraints of natural space for interactions.

Basic institutional structure reflects objects and agents “as is”, i.e. without distortions and transmutations. It is only necessary to add to its description the following “natural” distribution of the vital forces maintenance resource:

Let R be the resource in question obtained by the syzer community in an economic system; it is distributed over the whole set of agents. Designate distribution function as F. Then the share of this resource received by an individual agent in the process of distribution is F(R, A(i)). Let the “natural” state of function F be the direct proportional dependence of the agent’s share on the yield factor (i.e., the higher the agent's yield factor, the higher share of R he recieves in the process of resource distribution).

type inst_structure = active object /* name of the agent type */

(

out /* external objects: */

S : array [1..M] of syzer; /* array of syzers */

tech : technology; /* macro-technology */

public

syzer_resource : array[1..M] of real; /* vector of values of

output_total distribution among syzers */

tmp

i : integer;

model

for_all i in [1..M]

(syzer_resource[i] = F(tech.output_total, s[i]));

/* F – function of distribution for syzer #i*/

);

 

Collective Model of Environment

A set of slots "visible" from outside is a composition of environment models of individual syzers.

Agent's local slots can be the parameters for joining the local environment models of individual syzers into the general compositional model of environment.

External objects for an agent are all the syzers.

Agent behavior model is a composition of environment models of individual syzers that forms a unified model of environment; the latter becomes available to syzers. Owing to fast feedback syzers can introduce sufficiently large number of variants playing among themselves different variants of changes in their jobs in macrotechnology, etc. Protocol of information exchange between syzers inside the “collective model of environment” agent can be based on the TCP/IP protocol principle: when one is “speaking”, all the rest are “listening”, when two or more start to speak simultaneously, everybody ceases speaking and the “conversation” continues after a delay of random length, etc.

 

type coll_model = active object

(

out

S : array [1..M] of syzer;

public

syzers_distribution : array[1..M] of integer;

/* the syzer distribution to the working

places : element #i is a job number

distributed to the syzer #i */

model

/* the distribution of syzers is made according to the variant

of collective model, which has maximal sum of the yield factors */

...

);

 

Syzer

Set of slots visible from the outside:

à) parameters of his current state,

b) his current model of environment in the form of locally optimal variant of syzer job changes.

Outside objects for an agent can be:

à) multitude of institutional structures as additional spaces for organizing wider interaction with the rest of syzers in the system,

b) multitude of macrotechnology jobs for each subspace,

c) subset of other syzers with who interaction is possible in each subspace,

d) collective model for each of the subspaces.

Agent behavior model: syzer maximizes his share of the vital activity maintenance resource received by the system. For this purpose he has to take the job that he can occupy with the maximum yield factor. The area of job enumeration by syzers is limited by the local vicinity of information space. Based on the data from his domain of choice and using his mental model of environment, syzer generates the variants of changes both in his personal position relative to macrotechnology jobs and the optimal, in his opinion, position of other syzers located in his domain of choice.

These variants become available to other syzers from the domain of choice via the collective model of environment. It is through this model that a syzer gets information on similar variants of other syzers. Job change variants are ranked in the collective model by diminution of the yield increment produced by them. If by the moment of the end of negotiations in collective model the best ranked job change variant provides higher yield than the current variant, then syzers replace the current one with the variant of better rank. If additional institutional structures are present in the system, they create several subspaces in the syzer domain of choice; they are distinguished by a larger number of syzers that can be contacted to agree on the activity via the collective model.

 

type syzer = active object

(

public

syzer_model : array[1..N] of integer;

/* syzer gives the collective model its

variant of job distribution:

i-th place contains the number of syzer, distributed to the job #i */

syzer_state : integer; /* indicator of syzer state stability */

out

tech : technology;

inst : inst_structure;

inf : inf_space;

CM : coll_model;

model

< Model of syzer behavior >

);

 

3.2 Brief description of the model as a whole

For the convenience of formalized recording of the model let us present the functional part as two blocks:

1. Block of subspace selection by syzers for interactions with other syzers in the system. In this block syzers solve the problem of participating in one or several institutional structures that provide better conditions for organizing interactions between them. In the same block syzers create new institutional structures and improve the existing ones.

2. Sizer interaction implementation block within the given institutional structure. In this block syzers solve their problems with maximizing the yield from their participation in the public labor division within the constraints imposed by the selected institutional structure.

Actually, the second block can be a model of the whole system for the case when only one institutional structure exists in the system (e.g., the so-called “natural” one) and syzers do not have possibilities to create new structures. Further we shall mould mainly the model of the second block, as it is the key element for information interaction analysis. System model consisting of both blocks will be needed later when studying institutional aspects of its performance.

The list of main variables involved in the system model at the 2nd block level as well as their use by active agents, are given in Fig 2.

Fig. 2. Interactions between agents and variables of the 2nd block model

Oval zone with variable name superimposed over the agent “body” shows which agent defines its values. Arrow from the oval zone to other agents shows where this variable is used.

The set of those variables is defined in the agent models as follows:

Output_matrix = {contains a set of yield factors R(i, j); prior to the start of model performance value vector of such factors for each syzer is generated by the random-number generator with normal distribution in the interval from 0 to 1; normal distribution parameters can be regulated in order to have factor matrix with clearly expressed syzer specialization relative to macrotechnology jobs; in the initial model configuration the yield factor matrix remains unchanged in the course of entire time period of the model performance}.

Output_total = {number that characterizes the size of final yield from the macrotechnology use; depends on the syzer distribution over jobs; in the initial model configuration this variable is calculated as the sum of syzer yield factors corresponding to what job (working place) they are occupying}.

Sizer_resource = {vector of values of output_total distribution among syzers; in the simplest case its values are determined in direct proportion with yield factors of the syzers with who they occupied their working places in macrotechnology; in the general case distribution is set by a certain function F; its variations are one of the boundary conditions in computer experiments with the model planned}.

Zone_A = {contains a subset of syzers with who the given syzer can interact; subset contains 4 syzers from the nearest vicinity located in the neighboring nodes of the space grid, and other syzers that keep the steady state no less of time steps than the number of cells between them and the given syzer; the model parameter is the size of the «closest environs» that is planned to be varied in the experiments with the model}.

Syzer_distribution = {vector of the number of macrotechnology jobs which syzers will take at the next time interval of the model performance; is defined as the composition of “seating” on work place variants that have the highest expected value of output_total}.

Syzer_model = {subvector of the number of macrotechnology jobs that the given syzer is forming in his local model as being the optimal one from the viewpoint of his “visibility” zone – zone_A}.

Syzer_state = {number equal to the quantity of the model time steps during which the given syzer kept his macrotechnology job unchanged; is used to define the zone_A variable}.

Add to the model description sections on “initialization” and “linking”. The TAO model of the system comprised of those objects will look as follows:

Specification

<Description of the agents` types>

End

Main ( Var M : integer; /* number of syzers */

N : integer; /* number of jobs */

Agents T : technology;

CM : coll_model;

Inf : inf_space;

Inst : inst_structure;

S : array [1..M] of syzer;

Model

Init < Initial values of variables >

Control < Linking of the obgects >

)

3.3 Result of Computer Experiments with the Model

The following additional simplifications were adopted when encoding the model with the use of TAO programming language:

1. Nine syzers are active in the system. Macrotechnology contains six jobs. Yield factors for each syzer for each individual job are set by the random number generator.

2. How is the new variant formed of distribution over jobs, how are the conflicts handled at the cross-links between various collective models?

Collective model just defines which of the variants it receives has the highest total yield factor. The best variant becomes the candidate to replace the current version of “seating”. However, the conflict of joining between collective models can emerge for various syzer groups. Strictly speaking, this problem is not within the “collective model” agent competence. It should be resolved by the “macrotechnology” agent.

In the general case this conflict can be of the following types:

1) in composing collective models it can happen that more than one syzer is occupying one workplace;

2) there are vacant workplaces, i.e., technological chain is not in place (this conflict can be ignored for the time being or be excluded by equality or excess of syzer number over the number of jobs).

Solutions for Conflict 1 can vary. E.g., conflicting syzers are seated on the vacant workplaces at random. This way looks like a “stupid” solution of the similar conflict under the local optimization of a syzer (see below).

Supplement to collective model: there can be situations when totally identical collective models emerge (for instance, when syzers are stable for a long time all collective models will contain a complete set of syzers and, thus, will be identical). Apparently, it is necessary to trace such cases and combine the duplicating versions of collective models into a single one. But the reverse operation should also be envisaged: if there is a need to break collective models into parts, how will that happen?

3. How does a syzer select a locally optimal variant of distribution over jobs?

He knows a subset of syzers for enumeration (this subset he receives from the information environment). Methods of enumerating the subset of jobs:

1) syzers can only exchange jobs between each other, i.e., the subset of jobs is set by the current distribution over jobs for the given syzer subset (in this case there is no problem of local distribution conflict with their unification in a collective model);

2) job subset depends on other system parameters, i.e., is given to the syzer in exogeneous form;

3) all macrotechnology jobs are included into the enumeration domain (in this case solution of possible conflicts is needed: when several syzers have selected the same job the conflict can be at the two levels – inside the collective model and at its outlet).

Let us implement the first variant in the step-by-step scheme of movement to a local optimum: syzer finds job numbers for each partner-syzer from the enumeration subset that have better factors than the current values. If conflicts take place (i.e., more than one syzer claims the same job), then syzer randomly distributes the conflicting colleagues over the vacant jobs (this is the «stupid» way of conflict resolution); or he uses one of the optimization algorithms («optimal» method of solving the conflict).

With account for the additional implementation constraints, the model in the final form, prepared for the initialization of initial values of all variables at the zero step, looks as follows:

Init

M := 9;

N := 6;

T(

Out_matr := random([0..1]); /* random initialization of the

yield factors*/

Out_total := 0; /* final yield is equal to zero */

);

S[1](

Nom := 1; /* the number of current syzer */

state := 0; /* indicator of syzer stability */

W := 1; /* the number of job for given syzer */

/* all variables of the form sm?– the first

propsal of the syzer to the collective model */

sm1 := 3; /* syzer #3 is distributed to the working

place #1*/

sm2 := 1;
sm3 := 9;
sm4 := 5;
sm5 := 0;
sm6 := 2;
);

S2: Syzer (
Nom = 2;
state = 0;
W = 2;
sm1 = 9;
sm2 = 4;
sm3 = 0;
sm4 = 2;
sm5 = 7;
sm6 = 0;
);
S3: Syzer (
Nom = 3;
state = 0;
W = 3;
sm1 = 0;
sm2 = 5;
sm3 = 3;
sm4 = 2;
sm5 = 6;
sm6 = 1;
);
S4: Syzer (
Nom = 4;
state = 0;
W = 4;
sm1 = 8;
sm2 = 7;
sm3 = 5;
sm4 = 6;
sm5 = 1;
sm6 = 4;
);
S5: Syzer (
Nom = 5;
state = 0;
W = 5;
sm1 = 1;
sm2 = 3;
sm3 = 5;
sm4 = 7;
sm5 = 0;
sm6 = 9;
);
S6: Syzer (
Nom = 6;
state = 0;
W = 6;
sm1 = 2;
sm2 = 4;
sm3 = 6;
sm4 = 8;
sm5 = 5;
sm6 = 3;
);
S7: Syzer (
Nom = 7;
state = 0;
W = 0;
sm1 = 9;
sm2 = 8;
sm3 = 7;
sm4 = 6;
sm5 = 5;
sm6 = 4;
);
S8: Syzer (
Nom = 8;
state = 0;
W = 0;
sm1 = 0;
sm2 = 1;
sm3 = 2;
sm4 = 3;
sm5 = 4;
sm6 = 5;
);
S9: Syzer (
Nom = 9;
state = 0;
W = 0;
sm1 = 3;
sm2 = 9;
sm3 = 2;
sm4 = 0;
sm5 = 8;
sm6 = 4;
);

CM (

syzer_distr[1] = 1; /* initial distribution of syzers

to the jobs */

syzer_distr[2] = 2; /* 2nd working place is occupied by

2nd syzer */

syzer_distr[3] = 3;
syzer_distr[4] = 4;
syzer_distr[5] = 5;
syzer_distr[6] = 6;
syzer_distr[7] = 0;
syzer_distr[8] = 0;
syzer_distr[9] = 0;
);

Control

T(CM`);
Inf (S`);
for_all i in [1..M] S[i] (T, Inf, Coll_model`);
CM (T, S);
).

Ten computation cycles have been exercised during which the model achieved the state of equilibrium. In the process of computations the states of active agents have changed as follows.

Macrotechnology – random-number generator defined the following yield factors for each of the 9 syzers (columns in Table 2) for each of the 6 jobs (rows in Table 2). For each syzer, its maximum values of yield factor for all jobs are given in blue. It can be seen that job number one is the best for two syzers – 6 and 7. At the same time, yield factor of syzer 7 is higher at this job. Similarly, two syzers have the best yield factors for the jobs number 5 and 6.

Table 2

1

2

3

4

5

6

7

8

9

Out_matr[1]

0.56

0.54

0.42

0.1

0.12

0.92

0.97

0.08

0.16

6 or 7

Out_matr[2]

0.53

0.06

0.19

0.73

0.11

0.85

0.52

0.2

0.77

4

Out_matr[3]

0.41

0.97

0.4

0.54

0.13

0.19

0.79

0.43

0.83

2

Out_matr[4]

0.43

0.3

0.1

0.1

0.2

0.44

0.73

0.23

0.99

9

Out_matr[5]

0.85

0.82

0.34

0.22

0.31

0.82

0.39

0.63

0.4

1or 8

Out_matr[6]

0.18

0.65

0.49

0.7

0.75

0.9

0.23

0.07

0.84

3 or 5

0.85

0.97

0.49

0.73

0.75

0.92

0.97

0.63

0.99

The last row of Table 2 has the maximum yield factor values for each of the 9 syzers. The last row gives us numbers of the syzers that have the best factor for each of the jobs.

Starting from the 7th step syzers have “found” distribution over jobs that has the maximum possible total yield value (5.38 units) among all the possible variants: 1 syzer – 7th job, 2nd – 6th, 3rd – 2nd, 4th – 9th, 5th – 1st, 6th – 5th. Respectively, 3rd and 4th syzers had not got jobs under the optimal distribution.

Table 3

Syzer #

1

2

3

4

5

6

7

8

9

Total

His job #

5

3

0

0

6

2

1

0

4

5.38

Taking into account that the model had built-in competition between syzers for the macrotechnology jobs, the optimal distribution obtained has one non-trivial feature: it seems that syzer 4 should have taken job 2 (see the right column of Table 2); however, syzer 6 took it. Among all syzers that compete for the job number 2, syzer 6 in particular has the highest yield factor.

Information environment – defines for every syzer-observer the quantity of partner syzers that he is able to «see» in his domain of choice. Table 4 contains the number of partners for each syzer (in the row) himself included, visible in his domain of choice at each of the 10 steps of model performance.

Table 4

steps/

syzers

1

2

3

4

5

6

7

8

9

10

1

5

5

7

5

5

5

6

8

8

8

2

5

6

7

5

6

6

8

9

9

9

3

5

5

6

5

5

6

7

9

8

8

4

5

6

7

6

6

6

7

9

8

8

5

5

6

6

6

6

6

9

9

8

8

6

5

6

6

6

7

7

8

9

7

7

7

5

5

6

5

6

6

7

8

9

9

8

5

6

6

5

5

5

7

9

8

8

9

5

5

5

5

6

6

7

8

8

8

As seen from Table 4, at the first step syzers only see their immediate neighbors (plus themselves, i.e., the total of 5). As individual syzers find their optimal place in the macrotechnology, their state is stabilized and information environment makes them visible in the domains of choice of their most remote neighbors. If, after a certain period of stability, a syzer charges his job again he disappears from the domains of choice of the remote syzers. Extension of domains of choice observed in accordance with the Table 4 data with the increase in the number of model steps, means gradual stabilization of all syzer states in the model. This also enables them to accelerate the finding of their globally optimal distribution over jobs.

Institutional Structure – in this implementation it has a vacuous form, therefore it is excluded from the model.

Collective model collects proposals from the syzers for changes in their distribution over jobs. Since, due to the possible scantiness of domain of choice, syzers can propose fragmentary variants, collective model also makes a composition of those fragments for the entire macrotechnology. Table 5 gives us data on what the best variants (by the maximum total yield) have entered the collective model at each step (“maximum yield” row), as well as which syzer had this best variant (“syzer #” row). In the case when the combination of syzer proposals had not covered all the macrotechnology jobs, collective model placed vacant syzers to the vacant jobs; those syzers have had the maximum yield factors for those jobs. Selection order was defined by the job number (from the lower to the higher). Total yields of the best variant after such amendment are given in the «adjustment» row of Table 5. These data show that the necessity to adjust has only occurred once at the first model step (only at the first step the total yield of the adjusted variant is higher than that of the initial variant).

Table 5

Steps

1

2

3

4

5

6

7

8

9

10

Max yield

3.44

5.16

5.16

4.23

4.9

5.12

5.38

5.38

5.38

5.38

Syzer #

1

8

8

4

9

3

3

2

1

1

Adjustment

4.34

5.16

5.16

4.23

4.9

5.12

5.38

5.38

5.38

5.38

The best variant of change in syzer distribution over jobs that has been found by the collective model at this step is handed to macrotechnology and becomes the current one at the next step. However, at some other model steps the best variant of syzer distribution received by the collective model, had smaller values of the total yield than the variant currently in use (e.g., step 4). In such cases collective model left the current variant of syzer distribution in the macrotechnology.

Syzers build the best (from the viewpoint of their local domains of choice) variants of changes in their distribution over jobs and pass the results to the collective model. Individual syzer constructs his variant for the collective model in the following way: he starts the distribution from the first job. Of all visible syzers he selects the one with the maximum yield factor for this job. And he places this syzer on the first workplace. The syzer from the list of visibles that has not yet been distributed over previous jobs and that has the highest yield factor is put to the next job. Thus, if vacant jobs are more numerous than the number of visible syzers, the last jobs remain unclaimed.

Fig. 3 shows the diagrams of changes in syzer distribution over macrotechnology jobs that were chosen as the best at each step of model performance.

Fig. 3. Diagram of syzer distribution over jobs at each step of computations
(job numbers are at the Y axis, step numbers are at the Õ axis).

The diagrams in Fig. 3 show that starting from step 8 distribution over jobs has become stable. Table 6 gives the data on the changes in the individual syzer yield factors resulting from the change in their distribution over jobs. Initially, the model has a built-in priority of collective over individual. Therefore the data in the Table indicates that some syzers have been lowering their individual yield factors for the sake of maximizing the total yield from the use of macrotechnology by the entire syzer community.

Table 6

steps/

syzes

1

2

3

4

5

6

7

8

9

10

1

0.43

0

0

0

0

0

0.85

0.85

0.85

0.85

2

0.97

0.97

0.97

0.97

0.97

0.97

0.97

0.97

0.97

0.97

3

0.34

0

0

0

0

0

0

0

0

0

4

0.73

0

0

0

0

0

0

0

0

0

5

0

0.75

0.75

0.75

0.75

0.75

0.75

0.75

0.75

0.75

6

0.9

0.85

0.85

0.85

0.85

0.85

0.85

0.85

0.85

0.85

7

0.97

0.97

0.97

0.97

0.97

0.97

0.97

0.97

0.97

0.97

8

0

0.63

0.63

0.63

0.63

0.63

0

0

0

0

9

0

0.99

0.99

0.99

0.99

0.99

0.99

0.99

0.99

0.99

The final result of the model performance is the total yield factor of macrotechnology at each step of the model computations. The graph of this indicator is given in Fig. 4.

The strictly growing variation of this indicator indicates the existence of optimizing behaviour in the sytem being modeled. The mechanism of reaching equilibrium is working in the model (in the given example equilibrium is attained at the 8th step). This positive result of computer testing in the proposed model of the basic feature of socio-economic systems (tendency to reach equilibrium), makes it possible to plan new computer experiments to research specific features of the system and solve various problems of research.

Fig. 4. Graph of changes in the macrotechnology total yield (model computation step – Õ axis)

4. Resume

Review of publications and discussions in Internet forums on the problems above shows that the following areas are isolated in the contemporary application of the technology of active agents for modeling the socio-economic systems:

1. Application of simulation or fully artificial models of societies to the development of theoretical tools of social theory; this is related to the work on the agent behavior standards as well as the problem of emergence of the standards themselves.

2. The use of logical formalism to analyze the problem of rights, liabilities and responsibilities that are formed by legislation and at random (as it happens to organizations).

3. Adequacy of social systems and agent specifications to the reflection of behavior of the real actors. This is important for understanding of the real processes of steady development, interactions between physical and social systems (e.g., in the process of climatic changes and their consequences).

In addition to those fundamental task we plan the following research:

à) modeling and analysis of various scenarios and mechanisms of coordination between “personal” and “public” (how and which compromises of this kind influence the optimizing properties of the model);

b) decentralized method of management and performance (such as development of individual agent strategies enables to achieve common goals even without central regulation);

c) stability conditions (such as cooperation between intellectual agents can produce a stable system that demonstrates stable behavior under various marginal conditions).

Besides, also of interest is the study on the general properties of the model with the change in private behavior models of active agents. For instance, how does equilibrium distribution of syzers over jobs depend on the difference in their yield factors? What is the dependence of equilibrium characteristics in the model from the information space parameters, institutional structure, collective model, syzer behavior characteristics, etc.?

References

S. Parinov. Toward a Theory and Agent-Based Model of the Networked Economy, RVLES, 1999, http://rvles.ieie.nsc.ru/parinov/theory/eng/

E.I. Latkin, S.I. Parinov. Microeconomic Model of Agents’ Interaction, Vestnik Rossijskogo Gumanitarnogo Nauchnogo Fonda, #3, 1996 (in Russian)

Duncan K. Foley. Statistical Equilibrium Theory of Markets, Journal of Economic Theory, 62 (1994), 321-345.

Leigh Tesfatsion. Web Site for Agent-Based Computational Economics (ACE), http://www.econ.iastate.edu/tesfatsi/ace.htm

Robert Axelrod. Complexity of Cooperation, http://pscs.physics.lsa.umich.edu/Software/ComplexCoop.html  

Werner Hildenbrand. Information and Coordination of Economic Activities, http://www.econ2.uni-bonn.de/sfb/Welcome.eng.html  

Michael Rothschild. The Bionomics Institute, http://www.bionomics.org/ 

Arie Segev, Carrie Beam. Negotiation and Collaboration in Electronic Commerce http://haas.berkeley.edu/~citm/nego-proj.html  

Philip E. Agre. Computational Research on Interaction and Agency, http://weber.ucsd.edu/~pagre/aij-intro.html  

Arie Segev, Carrie Beam. Auctions and Bargaining in Electronic Commerce, http://www.haas.berkeley.edu/~citm/nego-proj.html/

Jose Castro Caldas and Helder Coelho. The Origin of Institutions: socio-economic processes, choice, norms and conventions, Journal of Artificial Societies and Social Simulation vol. 2, no. 2, 1999, http://www.soc.surrey.ac.uk/JASSS/2/2/1.html

What are Agents? http://www.or.uni-passau.de/workshop2000/agents.html

Jose M. Vidal, Edmund H. Durfee. Learning Nested Agent Models in an Information Economy, 1998, http://xxx.lanl.gov/abs/cs.MA/9809108

Pietro Terna. Simulation Tools for Social Scientists: Building Agent Based Models with SWARM, Journal of Artificial Societies and Social Simulation vol. 1, no. 2, 1998, http://www.soc.surrey.ac.uk/JASSS/1/2/4.html

Laszlo Gulyas, Tamas Kozsik and John B. Corliss. The Multi-Agent Modelling Language and the Model Design Interface, Journal of Artificial Societies and Social Simulation vol. 2, no. 3, http://www.soc.surrey.ac.uk/JASSS/2/3/8.html  

Technology of Active Objects (TAO), http://www.rriai.org.ru/TAO/

I. Shvetsov, T. Nesterenko, S. Starovit. Technology of Active Objects. AAAI Workshop on Constraints and Agents, Providence, 1997. (zipped PostScript version - ftp://ftp.rriai.org.ru/pub/articles/aaai97.zip)

I. Shvetsov, T. Nesterenko, S. Starovit. TAO: A Multi-Agent Technology Based on Constraint Programming. Sixth Scandinavian Conference on Artificial Intelligence - SCAI`97, IOS Press, Helsinki, Finland, August 1997, pp.151-161.

I. Shvetsov, T. Nesterenko, S. Starovit, S. Preis. Constraint-Based Multi-Agent Technology and It's Application to the Social-Economic Modeling. In proceedings of the 1st International Workshop of Central and Eastern Europe on Multi-Agent Systems (CEEMAS'99), St.Petersburg, Russia, 1999, pp.224-232.

Shvetsov I.E., Semenov A.L., Telerman V.V. Constraint Programming Based on Subdefinite Models and Its Applications // Proc. of Intern. Logic Programming Symposium. Workshop on Interval Constraints, Portland, Oregon, 1995. -15 p.

Semenov A. Solving Integer/Real Nonlinear Equations by Constraint Propagation. Technical report. Institute of Mathematical Modelling, Lyngby, Denmark, 1994. - 22 p.