Technical Appendix

Main Menu           Previous Topic                                                           Next Topic

Agent Representation of Communication System

Shannon's model of a communications system is amenable to representation in this simulator because each system component is a finite state automaton. In implementing this system, we use a Multiple Types TimeModel and represent the "state" of each component in the corresponding agent's state vector. Of course, this representation actually allows for an infinite number of states, but we do not need to use more than a finite number. (Later, for efficiency, we actually record computation in global array variables. These function as infinite data tapes, again providing our agents with more computational power than is actually needed.)

Passing of information between agents was implemented in two ways. For simple societies, bits were actually passed between agents using Sharing Functions. That is, for a single state dimension, the sharing function was set to share either 1 or 0, depending on the current bit. Due to the complexity of the later societies, bit movement between agents was performed by reading and writing to global array variables. This allows for faster, transparent computation.

As an example, consider the transmitter agent in the Morse Code demonstration (Topic 2 Slide 1). This agent has four state components. The first component holds the bit currently being transmitted, 0 or 1. The second component holds the position of the current bit being read from the source. The third component holds a number equal to the number of 1's that still need to be transmitted for the current symbol. The final component exists solely for display purposes, and evaluates to the current length of the transmitted array.

Hence, the third component automatically decrements itself in every time period, as 1's are transmitted, unless it is zero. In this case, a zero is transmitted and it is time to move on to the next bit of the source. Thus, another bit is read from the source, and the third component increased to 1 if the bit is a 0, or 3 if the bit is a 1. At the same time, the second state component, signifying position, increments so the machine moves to the next location. The first component simply needs to be 1 when the last component is positive and zero otherwise.

With this algorithm translated into the agents' Learning Functions, the transmitter reads the source one bit at a time and outputs the corresponding Morse Code signal.

                   Previous Slide                                                           Next Slide