Research Diary, Summer 2003

Emily Thomforde '04
Swarthmore College
ethomfo1@swarthmore.edu

Swarm Doc

Allspice

Mark

Edinburgh

VHFC Results


Last Week

Swarm Primer for Harmony Simulation

Parameter (default)

* particularly interesting to vary

worldXSize, worldYSize (10) - dimensions of environment.
seedProb (0) - proportion of spaces in the world grid, randomly distributed, that are initialised to contain food. The default is zero because movement is currently disabled.
bugDensity(0.5) - proportion of spaces in the world grid that are occupied by agents at the start of the program.
probHarmonicGivenDisharmonic (0.3) - obsolete
probDisharmonicGivenHarmonic (0) - obsolete
maxBugAge (50) - maximum lifespan of agents. A lifespan is assigned to each agent at birth from a uniform distribution of integers in the range {0, max}.
reproductionAge (15) - age at which all bugs produce offspring. Every agent will reproduce if it lives long enough to reach the reproduction age.
*maximumProbabilityHarmony (0.9) - multiplied by an agent's lexical harmony level to calculate probHarmonicGivenDisharmoicBasedOnBugLexicon, the chance that an agent will harmonise an incoming word. If a bug's lexical harmony is 1, the chance that he will harmonise a word is equal to maximumProbabilityHarmony. To produce successful results, this parameter should be kept above 0.8, when all other parameters are at default. When thresholdToZeroHarmony is lowered, maximumProbabilityHarmony can also be lowered, at least to 0.7.
*thresholdToZeroHarmony (0.7) - the value at which, if greater than probHarmonicGivenDisharmonicBasedOnBugLexicon, the latter will be reduced to zero. In other words, if the chance of harmonising incoming words is less than this threshold, the incoming word will not be harmonised. Making this any higher than 0.8 prohibits harmony from evolving, and any lower than 0.4 causes harmony to evolve too quickly, all other parameters at default. When maximumProbabilityHarmony is lowered, thresholdToZeroHarmony must be lowered also, at least to 0.5.
frequencyThreshold (0) - the minimum number of times an agent must have previously heard a mutated word in order to add it to his lexicon. If this condition is not fulfilled, the original word will be added. Currently, changing this parameter does not have any effect on the results because the FREQ field keeps track of the number of times a word already in the lexicon exists.
persianMaximumProbabilityHarmony (0.9) - for Persian agents, see above
persianThresholdToZeroHarmony (0.8) - for Persian agents, see above
persianDensity (0) - for Persian agents, see above
probGenitive (0) - probability of adding a genitive ending to a word when speaking.
*probMisspeak (0.05) - probability of an agent, after deciding to turn off harmony, deharmonising a word when speaking. This, rightfully, should be as close to 0 as possible, however, for harmony to decrease when this is 0, homophTolerance must be higher than 0.18. The greatest impact this parameter has is changing the slope of the downward homophony graph and prohibiting the harmony graph from ultimately reaching a reasonable asymptote.
*homophTolerance (0.2) - point at which, when lexical homophony exceeds this value, an agent decides to stop harmonising. This parameter must change with the lexicon. For the default lexicon (thirty.dat) the acceptable range is 0.18-0.28, when all other parameters are at default. If probMisspeak is lower, homophTolerance can be higher, up to 0.25.

Updated Summary of Language Interaction

Lifestyles of the Distributed and Autonomous

Bugs are born into the simulation with a lexicon of six words, selected at random from either the lexicon data file, or from the lexicon of their parent. Bugs are stationary at all times. At each time step, Bug X will have a conversation with each of his neighbours. The conversation consists of two parts: speaking and listening. Bug X will have a turn both speaking and listening to each neighbour.

When speaking, Bug X randomly selects a word from his lexicon. He checks to see if this word is homophonic with any of the other entries in his lexicon. If so, and if the word's original form was disharmonic, he has a probability of deharmonising it for clarity proportional to the product of his lexical harmony and homophony levels. The entry for the word will be mutated in his lexicon and he will communicate the deharmonised word to the listener. If no homophony is present, however, Bug X will simply communicate the word without modifying it, except for a small chance of misspeaking defined by the parameter "probMisspeak," but only in the event that Bug X has reached his tolerance for homophony.

As a listener, Bug X receives a word from a neighbour and has a probability of harmonising it proportional to the product of his lexical homophony levels and the parameter "maxProbHarm." However, Bug X may have already decided to stop harmonising incoming words because he exceeded his tolerance for homophony. In this case, he has only a 1% chance of harmonising. He will add the new word to his lexicon only if it does not already contain the same form-meaning pair.