Properties

The main property of dialogue is that the next message is not predefined, but depends on the answers from the receivers. In a CPS process, dialogue can occur one-on-one, when the initiator communicates individually to another agent. This is just a high-level communication that can be built on top of e.g. the TCP protocol. When communicating one-to-one, a '-' is added in the 'group' field of the package (see the multi-agent TCP protocol). Furthermore, we have one-on-group dialogue, when the initiator communicates the outcome of a one-on-one communication to all the agents in the group. When communicating one-to-group, a 'G' is added in the 'group' field of the package. The first stage of CPS consists of only one-on-one dialogues. The second stage begins with one-on-one dialogues, then a transition is made to one-on-group dialogue to convey the group composition to all members of the group. The third stage can consist of different transitions of one-on-one to one-on-group dialogues.

Now we will turn to the two main properties of these CPS dialogues. Firstly, the number of messages communicated between the initiator of dialogue and the other agents can differ per agent during one-on-one communication, this is called the asynchronous communication property. Secondly, at the transition from one-on-group to one-on-one communication, any agent from the group from the group can bid to become initiator, this is called the changing initiator property (Van Baars & Verbrugge, 2007). The algorithm from Van Baars & Verbrugge (2006) cannot accomodate for the two aforementioned properties. Thus adjustments have to the be made to the multi-agent TC protocol to turn it into a real communication protocol, which can accomodate CPS processes.

Asynchronous communication

Because the CPS process works in a dialogue environment, the number of messages between the initiator and individual receivers Ri can differ. For example, an agent may need more information to decide on a plan in the third stage. The simulation provide several examples of these needs. The 2006 algorithm uses a single index for each receiver; the position on the tape. When a sender receives an acknowledgement from a receiver, the index is incremented and the receiver is now expecting a next message accompanied by an incremented index. Because there are now multiple receivers into play, a single index for all receivers is not enough.

We will provide an example. A receiver Q receives a package accompanied by index 1, and expects that the next package will be accompanied by index 2. But now initiator S has conspicuously sent a package to receiver Y and received an acknowledgement at the same time, incrementing the index to 2. The next package to Q will now be of index 3 or higher. When Q receives the next package from S, it will not accept the package, because it expects a different index. As will now be clear, the index numbering will get mixed up in a serious way.

Thus separate indices need to be created for each receiver. In their examples, Van Baars & Verbrugge initiate indices at 100, 200, and further for each receiver. In our simulation, we let the initiator assign random initial indices to each receiver. Each time the initiator receives a message from a receiver R_i, the initiator increments R_i's individual index. This solves the problem for asynchronous communication. But does this solution also work when the initiator changes?

Changing initiators

In a CPS process it is sometimes needed that the initiator of dialogue changes within a group. This can be because agents are heterogeneous, which entails that some agents are better equipped to perform a certain task or possesses more suitable knowledge to organize a cooperative action. A change of initiator can only occur at the transition from one-on-group to one-on-one communication. We now face two problems. The first is that two parallel communication processes between two agents can occur.

Van Baars & Verbrugge add a second index to solve this problem. Every message has to contain a sequence number as well as an acknowledgement of the last consecutive sequence number that is received. One index is configured by the sender, the other index is configured by the receiver. Now the sender and receiver know one another's sequence number after two messages (see simulation). We now obtain the following package form:

K_source(destination,group,sequence,acknowledgement,data)

In our simulation the package is represented in the following form:

source|destination|group|sequence|acknowledgement|
                       data		

But now we must deal with another problem. An initiator change does not become general knowledge, thus another agent from the group can start acting as an initiator while the current initiator continues acting as an initiator as well. The solution Van Baars & Verbrugge provide is that if any new agent wants to act as initiator, then this initiator of this fact. This is applicable to two conditions.

If the initiator decides to stay on the following steps are undertaken:

If the current initiator allows an initiator change the following steps are undertaken:

In our simulation, the initiator is represented by an orange box, the receivers are represented by a green box. Furthermore, the box shows the agent's belief with respect to the identity of the initiator in parentheses. This way, it should be easy to track the proceedings during an initiator change.