-
Notifications
You must be signed in to change notification settings - Fork 0
Agents
All agents are added to the population with an age of 0, an empty repertoire, an empty vocabulary, and a perceptual margin which is uniform and constant for all agents.
Agents are classified by three developmental stages: babies, children and adults. Babies hear vowels from children and adults, but they don’t learn words or speak at all. The baby stage lasts 1 step (age 0), during which they build their Vowel repertoires based on their interactions with the older members of the population. Babies may have multiple variants of any prototype, and all of their vowels have a weight of 0. Babies still ‘deassimilate’ vowels before matching them.
Agents of age 0 match the vowel in the word to the vowels in their repertoires (if there are any) to form their phones. Agents of age 1+ first match the vowel to their repertoire and then the word to their vocabulary according to the word’s ‘meaning’ (a unique String identifier).
On hearing a new word, agents regard the associated vowel-pairing loosely until they eventually stop listening when they become “adults.” Child agents store a history of how many times their phones have been matched to each word. They do not store copies of the vowel as transmitted or perceived--they count the number of times a phone that they “know” (i.e. it exists in their repertoire) has been matched to the word. Their pronunciation of a word is the most frequently matched phone.
The age of maturation is controlled by age_adult in Game_fns.py and will adjust itself if the lifespan limit is changed.
Children hear vowels and words from adults and children, and they speak to babies and to other children. The child stage lasts until 10% of the agent’s lifespan, after which agents become and remain adults until they die. Children may have multiple variants of prototypes, and some of the Vowels in their repertoires may be weightless. During the transition from childhood to adulthood, agents “purge” the 0-weight vowels from their repertoires.
Adults don’t listen at all but only speak to both babies and children. Because the selection of family members and contacts is random, it is possible that some adults will have no audience (that is, no agents will hear them). Likewise, some agents may be family to multiple children/babies and thus have a greater sphere of influence in the population.
Ancestor group
With the initialization of a new game, a group of ‘boot-strapped’ agents makes up the population. They start at the midpoint of their lifespan. These agents have matching vocabularies (copies of the words in the Convention lexicon). Their words are mapped to vowels which are slightly noisy imitations of the base convention vowels instantiated using a “master set” corresponding roughly to the IPA chart. The level of noise is hard-coded in the strap_ancestors() method of Game_fns.py (currently it is equal to the normal agent’s phone_radius). The vowels go through their assimilation functions (depending on word context) as though being spoken to the ancestor agents, and the ancestors deassimilate them before adding them as phones.
The ancestor group’s sole purpose is to pass on their words to the child agents. They are never active listeners and their word-vowel pairs never change. Their repertoires are not included in the mean centers of a final report, but they are counted in the interval steps between the beginning of the game and the end of the first cycle.
The ancestor group is always 10x larger than successive groups.
The population is a FIFO list of lists of agents i.e. population[0] is the oldest group of agents and population[-1] is the youngest.
Blevins, Juliette (2004). _Evolutionary Phonology. _
Ohala, J. J. (1981). "The listener as a source of sound change."
Rosner, B. S. and J. B. Pickering (1994). Vowel Perception and Production.