NetLogo User Community Models
(back to the NetLogo User Community Models)
If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".
Try It in NetLogo Web
## WHAT IS IT?
Implementation of **The Naming Game** model mentioned in the paper:
> Baronchelli, A., Felici, M., Loreto, V., Caglioti, E., & Steels, L. (2006). Sharp transition towards shared vocabularies in multi-agent systems. Journal of Statistical Mechanics: Theory and Experiment, 2006(6), P06014–P06014. https://doi.org/10.1088/1742-5468/2006/06/p06014
This model is a way to study the evolution of words referring to an object in a closed world where a pair of people try to name an object by acting as a sender and reciever.
The sender selects a word from its inventory or generates a new word. The reciever compares the word to its own inventory. If the reciever adds the word to its inventory if the word is not present, otherwise it resets its inventory to only keep the sendor's word. The interaction is a success if the word selected by the sender is present in the reciever's inventory, otherwise it is a failure. The goal of the model is track how many unique words exist in the world, and on average how words are used by the people.
## HOW IT WORKS
1. The model starts with `num-agents` number of people. Each person in initialized with an empty list of words.
2. At each time step a random person is selected to be a sender.
3. Another person is selected as a reciever who is different from the sender. The selection of the reciever is based on two possible selection strategies.
- Random: Select a random person from the world as a reciever.
- Sample-neighbor: Select a random person from the neighborhood radius of size `neighbor-radius` of the sender.
4. The sender selects a sender-word to send as a message to the reciever. This message is the word used by the sender to describe the object in the world. The word selection is based on the following strategies:
- If the word inventory for the sender is empty create a new sender-word by sampling a random `word-length` between 1 and `max-word-length`. Then a word of length `word-length`is created by sampling a character between "a" and "z" for each position of the word.
- If the word inventory for the sender is non-empty, then the sender-word is selected by:
* shortest word for the sender's word inventory, if `shortest-word` is ON
* random word from the sender's word inventory, otherwise
5. Once the reciever recieves the message. It updates its inventory in the following ways:
- If the word exists in the reciever's word inventory then the inventory is emptied and the sender-word is added to the inventory. This interaction is also considered a success, and `num-success` is incremented.
- If the word does not exists in the reciever's word inventory then the inventory the sender-word is added to the inventory. This interaction is also considered a failure, and `num-failure` is incremented.
6. The global `all-words` list is set to all the unique words across all people. `total-words` is updated with the length of `all-words`. `mean-words` and `std-words` is also updated with the mean and standard deviation of number of words in each person's inventory.
## HOW TO USE IT
SETUP button — sets up the model by creating the people.
GO button — runs the model
GO ONCE button — runs the model for one tick
The following inputs control how the model is setup:
SAMPLE-NEIGHBOR switch — weather to sample reciever from neighborhood of radius `neighbor-radius` of a sender
SHORTEST-WORD switch — weather to select the shortest word for the message by the sender or use a random word from the available word inventory of the sender
NUM-AGENTS slider - number of agents in the model
MAX-WORD-LENGTH slider - maximum allowed length for word used in a message
## THINGS TO NOTICE
Notice how the total unique words first rise to a max value and then converges to a very low value. If the `neighbor-radius` is very low then total unique words may converge to something small but not equal to 1. Also, notice that the mean number of words also rises
## THINGS TO TRY
* Try different settings of `sample-neighbor`, `neighbor-radius`, `shortest-word`, `max-word-length`, and `num-agents`.
## EXTENDING THE MODEL
* You may want to implement different ways of: sampling neighbors and sampling words for the sender
* The current world only has a single object. It would be interesting to change the code to allow multiple objects in the world. This will require keeping a seperate word list for each object within each person.
## NETLOGO FEATURES
`in-radius` to sample from radius.
`word` to create a new word.
## CREDITS AND REFERENCES
If you are using this netlogo model file then please cite:
Shubhanshu Mishra (2019). The Number Game. https://github.com/napsternxg/netlogo-models
The model was first presented in the paper: Baronchelli, A., Felici, M., Loreto, V., Caglioti, E., & Steels, L. (2006). Sharp transition towards shared vocabularies in multi-agent systems. Journal of Statistical Mechanics: Theory and Experiment, 2006(6), P06014–P06014. https://doi.org/10.1088/1742-5468/2006/06/p06014
## COPYRIGHT AND LICENSE
Copyright 2019 Shubhanshu Mishra.
![CC BY-NC-SA 3.0](http://ccl.northwestern.edu/images/creativecommons/byncsa.png)
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Shubhanshu Mishra at https://twitter.com/TheShubhanshu.