Substitution Best-Shot Public Goods Game
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model is an implementation of "best-shot" public goods game when players are arranged in a network. Each agent can choose one of two possible actions: action 0 or action 1.
In a game of substitutes a player has a decreasing incentive to choose an action as more neighbors choose the action. In the “best-shot” public goods game, a player will receive a benefit of 1 if she or any of her neighbors take action 1. The purpose of the model is to understand the conditions under which an equilibrium exists.
HOW IT WORKS
Agents play a best-shot substitution game with their neighbors. Before taking an action, agents check to see if any of their neighbors are taking action 1.
Initially all agents are set to take action 0. The user can select which agents will (at least initially) take action 1. If any of the agent's neighbors are taking action 1, the agent is better off taking action 0, since taking action 1 is costly. However, taking action 1 and paying the cost is better than having nobody in the neighborhood take the action. In general, in games of strategic substitutes, an increase in other players' actions results in relatively lower payoffs to higher actions of a given player.
There are many possible equilibria in the best-shot public goods game. The equilibria in this game directly correspond to having the set of players who choose action 1 form a maximal independent set of nodes in the network. A maximal independent set is a maximal set of nodes that have no links to each other in the network.
The color of an agent indicates which action is currently beging taken. Black indicates action 0 and white indicates action 1.
HOW TO USE IT
SETUP sets all agents to take action 0 in the generated network.
When GO ONCE is pressed, agents play the coordination game one time. Pressing GO causes the agents to play the game repeatedly (at each tick).
The SELECT NODES button allows the user to select agents with the mouse. The selected agents will take action 1 (at least initially). The 'selected node' box will show the number of the turtle the mouse is hovering over while selecting nodes.
RESET STATES will reset all agents to take action 0 in the current network. The difference between this and SETUP is the setup button will generate a new network with new links.
The ADD NODE button allows the user to click and add a node to the network. The DELETE NODE button allows the user to click and delete a node, along with its links, from the network.
THINGS TO NOTICE
If an equilibrium occurs, the nodes that take action 1 form a maximal independent set.
THINGS TO TRY
Try creating different types of networks, e.g. a star network, a complete network, a circle, a line, a bipartite network, ...
EXTENDING THE MODEL
Try implementing the substitution model on other types of networks.
NETLOGO FEATURES
Networks are represented using turtles and links. The user is able to use the mouse to select the agents that initially take action 1.
The user is able to use the mouse to add nodes to the network by clicking where they want the new node. The user is also able to delete nodes from the network by using the mouse to select the node they want to delete.
CREDITS AND REFERENCES
This model is an implemetation of the example described in Jackson (2014), "Games on Networks", Handbook of Game Theory: Vol 4, pp 4-15.
HOW TO CITE
If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.
For the model itself:
- Page, A. and England, D. (2020). NetLogo Contagion in 1 Dimension. https://github.com/bx549/ABM
Please cite the NetLogo software as:
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 2020 Darin England
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.
Comments and Questions
; a model for the 'best-shot' public goods game globals [ selected turtle1 turtle2] turtles-own [ action ; action (either 0 or 1) orig-action ; each person's initially assigned action action-1-sum ] to setup clear-all set-default-shape turtles "circle" ask patches [ set pcolor cyan + 1 ] set selected nobody make-turtles distribute-actions create-network select-nodes delete-nodes add-nodes reset-ticks end ; create the turtles in 1-dimensional lattice to make-turtles create-turtles num-nodes [ set color black set action 0 ] repeat 50 [layout] ask turtles [ setxy 0.95 * xcor 0.95 * ycor ] end to layout layout-spring turtles links 0.5 2 1 end ; initialize some individuals to start with action 1 to distribute-actions ask turtles [ set action 0 ] ask turtles [ set orig-action action update-color ] end to update-color set color ifelse-value action = 0 [black] [white] end ;; create the links in the network to create-network ask turtles [ let nbrs other turtles in-radius 10 ; other omits the turtle itself create-links-with nbrs [ set color white ] ; only one undirected link between any two turtles is created ] end to reset-nodes clear-all-plots ask turtles [ set action orig-action update-color ] reset-ticks end to redistribute-actions clear-all-plots distribute-actions reset-ticks end to go ask turtles [check-neighbors] ask turtles [ take-action ] ask turtles [ update-color ] tick ;debg-actions end to debg-actions ; debugging, show actions of all nodes foreach sort-by[ [a b] -> [xcor] of a < [xcor] of b ] turtles [ i -> ask i [ show action ] ] end to check-neighbors set action-1-sum sum [action] of link-neighbors end to take-action let num-neighbors count link-neighbors set action ifelse-value (action-1-sum >= 1) [0] [1] end to select-nodes ; use the mouse to select which nodes take action 1 set selected min-one-of turtles [distancexy mouse-xcor mouse-ycor] if mouse-down? [ ask turtles with [distancexy mouse-xcor mouse-ycor < 2] [ set action 1 update-color display ; update the display ] ] set selected nobody end to add-nodes if mouse-down? [ create-turtles 1 [ set color black set action 0 setxy mouse-xcor mouse-ycor let nbrs other turtles in-radius 10 create-links-with nbrs [set color white] ] stop ] display ; update the display end to delete-nodes if mouse-down? [ ask turtles with [distancexy mouse-xcor mouse-ycor < 2] [ die display ; update the display ] stop ] end
There are 3 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Substitution Best-Shot Public Goods Game.png | preview | Preview for 'Substitution Best-Shot Public Goods Game' | about 5 years ago, by Amanda Page | Download |
This model does not have any ancestors.
This model does not have any descendants.