Hawk_Dove

Morgan Grant edited this page Sep 19, 2017 · 1 revision

Table of Contents

Hawk-Dove

Here we consider a 2x2 Matrix game - Pure & Mixed Strategies - Heat-Map - Group Size & Population Matching.

The following experiment example builds off "Separating the Hawks from the Doves: Evidence from Continuous Time Laboratory Games" by Dan Friedman, Keith Henwood & Ryan Oprea (JET 2011) - note that the following is not intended as an explicit implementation methodology of the Oprea et al. paper (for example the paper didn't user heatmaps), but instead, the paper serves as a jumping off point from which to explore some of the features of ConG.

An excerpt from Oprea et. al (2010) “Hawk-Dove has two different asymmetric Nash equilibria in pure strategies as well as one symmetric Nash equilibrium in mixed strategies. Evolutionary game theory predicts that (a) the mixed NE will be selected within a single population (each player interacts with all other players), but (b) one of the pure NE will be selected when row players and column players belong to two disjoint populations.... Recently developed laboratory techniques enable us to conduct a direct and stringent test of (a) and (b) and related hypotheses.”

Grouping - Players are independently and randomly assigned an initial strategy setting, and are free to change their strategy whenever and as often as they like.

Thus with our demo experiment we'll need to explore mixed strategy settings (the "heatmap" selector) and Grouping settings. For mixed strategies, subjects simply need some way to choose some combination of their two strategy options. For Grouping, the experimenter needs some way to arrange groups of people in order to test the hypothesis above.

Starting the Demo Experiment

First, you need to download the following ZIP file here. It contains an executable JAVA file called "Test.JAR" that will load & execute the experiment below.

You'll also need to download the comma separated variables (.csv) configuration file. This file provides ConG with a "game definition" that defines fully how the experiment will run: the number of periods, whether or not periods are run in continuous or discrete time, the payoff functions used, how subjects interact with the server & each other, and how information is displayed. This config file can be found at the following link, HawkDove.csv.

Download, open and fully unzip the ConG Package.

  1. Double-click on Test.JAR.
  2. Select 4 as the Number of Subjects.
  3. Leave "Open GL" checked (if your computer, for some reason, can't use Open GL and crashes, please kindly upgrade your computer).
  4. Click the "Start" button.
  5. You should see the one Control window & 4 Client windows pop up on your computer.
  6. After these windows have opened, click on the Control window.
  7. Note that the 4 Clients have connected as client_1 test, client_2 test, etc in the upper left-hand-corner of the Control window.
  8. Click on "Load Period Config" in the bottom of the Control window.
  9. Select the HawkDove.csv file.
  10. Each Treatment below is a "Period" in the experiment you've just loaded.
  11. As you work through the following treatments, it is useful to open the HawkDove CSV file defining this game -- and following along with it through each treatment.
System Requirements - Although the test experiment should be able to run on most computers and laptops, you may want to check the System Requirements

Treatments & Config File

Period One - Continuous Time

The table below outlines the header and first "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is a html abstraction of CSV config file running this experiment.

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
1 TRUE 60 0 pair 1 1 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d !HeatmapBoth TRUE
  • In continuous time, any change in player’s strategy results in an instantaneous change in player’s payoffs (with an approximately fifty-millisecond response time). Players observe the history of actions and payoffs unfold before them graphically. At the end of the 60-second period, players earn the integral of the flow payoffs shown in their history (refer to screenshot)
  • period The numbers of the first column displays the period of the game.
  • paid We have set paid=TRUE, meaning each player's actions in this round will be added to their final payoff calculations. If we wanted to have a practice round or two -- a period in which subject got a chance to risklessly play before the experiment starts -- one would set paid=False.
  • length refers to the number of seconds in the period which in this period is 60.
  • subperiods sets the option for continuous or discrete time. For the continuous time experiment, set subperiods to 0. Note that ConG continuous time experiments are not strictly/technically in continuous time, they break each second into greater-than ten subperiods.
  • percentChangePerSecond - This is an action change "speed limit". The field may contain "Not a Number" [NaN], or any floating point from 0 to Inf. If the experimenter wants instantaneous strategy changes, then set this field to NaN.

Period Two - Discrete Time - Six-Shot Game

The table below outlines the header and second "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is a html abstraction of CSV config file running this experiment

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
2 TRUE 60 6 pair NaN 1 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d !HeatmapBoth TRUE
  • During the 60-second strategy selection period players may freely switch between strategy options, however payoffs will only be calculated based on the strategy selected at the end of the 60-second period. Subjects do not observe the strategy choice of their counterpart until the period’s end. They earn the lump sum payoffs for the action profile chosen at that point.
  • period We are in period two now.
  • length The length remains at 60 seconds.
  • subperiods We have set the number of subperiods to 6. This means that CONG will not be running in continuous time. Instead the period will be divided into 6 subperiods. There will be six subperiods, each lasting 10 seconds (a one-shot game).
  • percentChangePerSecond This is set to NaN in discrete time, since the strategy of each player is unknown to the other in discrete time.



Groups - matchType

  • Population matching and grouping options are defined by three settings; 1) the number of subjects (which we've set to four for this demo), 2) the "numGroup" field in the config file, and 3) the "matchType" config file field. For a detailed discussion of ConG's Matching & Grouping settings, see the dedicated page.
numGroup - is an integer field defining the number of groups subjects will be divided into (as an example, if there are 10 subjects and numGroup=3, then two groups will have 3-subjects and the remaining group receives the remainder, with 4-subjects in it). Thus in our Hawk-Dove experiment, with four-subjects and numGroup=2; there will be two groups of two people each.

matchType is a field that can be either "self" or "pair". When the field is set to "self", subjects play strategies against the average of their own group (which includes their own strategy). When set to "pair", players play their strategies against the average of the group they are paired to (see figure below).

In the Figure below, note the four players labeled 1 through 4. With numGroup=2, ConG creates two groups and randomly assigns subjects to one of them. In this case group-one has players 1 & 2 and group-two has players 3 & 4 (note that this random assignment could easily have been different -- and that ConG allows for fine-tuned grouping; discussed in the groupings page). Under matchType=self, players play against an average strategy of their own group (that is, the action profile of the players in their group, including their own action choice). This implies the possibility confusing fact that with matchType=self, as one changes one's own strategy, the strategy of "one's opponent" (again; the average of the group they are placed into) will change as well. With matchType=pair individual players actions are played against the average of the group they are matched with. For example with subject 2, his or her action choice is set against the average of the group defined by player 3 and 4.

Period Three - Paired Groups

The table below outlines the header and third "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is a html abstraction of CSV config file running this experiment

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
3 TRUE 60 0 pair NaN 2 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d !HeatmapSingle TRUE
  • numGroup This field denotes the number of groups. With "2" selected we've set up a two-population game.
  • matchType The options in this field are "self" or "pair". The default is "pair". We have set this field to pair. This makes it so that subjects will compete against a group that is not their own.
  • There is no screenshot included because grouping settings don't change subjects' visual experience.

Period Four - Self-Matched Groups

The table below outlines the header and forth "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is a html abstraction of CSV config file running this experiment

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
4 TRUE 60 0 self NaN 1 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d !HeatmapSingle TRUE
  • numGroup This field denotes the number of groups. With this period we've selected 1', a one-population game.
  • matchType For this treatment we have set the field to self This makes it so that a subject will compete against the group that they are already in.
  • There is no screenshot included because grouping settings don't change subjects' visual experience.

Heat Maps

  • The Hawk Dove game can utilize heatmap mixed-strategy selectors. The following sections discuss some of the options with heatmaps that can be applied for different treatments.

Heatmap legend

  • Note that showHeatmapLegend is not the whole heatmap: when this field is set to TRUE, a color region near the player's payoff chart is revealed, informing the player of how different colors on the heatmap are valued in terms of their flow-payoffs.
  • If there is no field designating showHeatmapLegend in the .csv file then it will default to "FALSE", no legend.
  • Since we have left this option on for all treatments we are not considering this a separate treatment.

Period Five - Heatmap Single

The table below outlines the header and fifth "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is a html abstraction of CSV config file running this experiment

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
5 TRUE 60 0 pair 0.1 1 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d !HeatmapSingle TRUE
  • selector - For this treatment we have set the selector to heatmap2d
  • matrixDisplay - !HeatmapSingle
  • showHeatmapLegend - TRUE

Period Six - Heatmap Both

The table below outlines the header and sixth "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is a html abstraction of CSV config file running this experiment

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
6 TRUE 60 0 pair 0.1 1 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d !HeatmapBoth TRUE
  • selector - heatmap2d
  • matrixDisplay - !HeatmapBoth
  • showHeatmapLegend - TRUE

Period Seven - Heatmap Corners

The table below outlines the header and seventh "period definition" row of the HawkDove.csv config file we've loaded. Note that the table below is an html abstraction of CSV config file running this experiment

period paid length subperiods matchType percentChangePerSecond numGroups payoffFunction name min max Aa Ab Ba Bb mixed selector matrixDisplay showHeatmapLegend
7 TRUE 60 0 pair 0.1 1 matrix2x2 hd 0 15 0 15 3 9 TRUE heatmap2d corners TRUE
  • selector - heatmap2d
  • matrixDisplay - corners
  • showHeatmapLegend - TRUE

= Output Files

  • ConG test.jar experiments and sessions run on networked computers produce five output files,
    • payouts.csv - a period by period account of points earned by each subject.
    • ticks - a .csv log of subject actions.
    • client and server errors - a log of errors.
    • ip_address.csv
Output files are discussed fully here, ConG Output Files

Config File Fields & Description

  • period - [1-n] Integer field which designates the period number.
  • paid - [TRUE] Boolean field which determines whether the points from the round are counted towards the player's payoff.
  • length - [1-n] Integer field which determines the length (in seconds) of the entire period.
  • subperiods - [0-n] Integer field. When set to zero the game will be in continuous time. When set to greater than 0 the total period length (in seconds) will be divided by the number of subperiods. So for length=300 and subperiods=5 there will be five subperiods of 300/5 (one minute) length.
  • matchType - This field can be either "self" or "pair". When the field is set to "self" the players play strategies against the average of their own group. When set to "pair" players play their strategies against the average of another paired group. See Matching above for more details.
  • percentChangePerSecond - [NaN] or [0,Inf] When the period is in discrete time the percentChangePerSecond field is not applicable. When the period is in continuous time this determines the rate at which players can change their strategy. For example, when this field is set to 0.1 the players can change their strategy via the selector by a maximum of 10% per second.
  • numGroups - Sets number of groups in the game. Must be at least 1 group.
  • payoffFunction - This field requires specific entries that designate the payoff function of the game. For the Hawk Dove game we use the payoff function "matrix2x2". The following fields set parameters for the "matrix2x2" function.
  • name - set to "hd"
  • min - Integer field. Along with 'max', this scales the flow payoffs display chart. This value notes the smallest value plotted on the Y-axis of the payoffs chart.
  • max - Integer field. Along with 'min', this scales the flow payoffs display chart. This value notes the largest value plotted on the Y-axis of the payoffs chart.
  • Aa - Integer field that sets the payoff for each player when both select strategy A.
  • Ab - Integer field that sets the payoff for when player 1 selects strategy A and player 2 selects strategy B.
  • Ba - Integer field that sets the payoff for when player 1 selects strategy B and player 2 selects strategy A.
  • Bb - Integer field that sets the payoff for when both players select strategy B.
  • mixed - [TRUE] Boolean field that determines whether the players can choose mixed strategies i.e. heatmaps.
  • selector - This field requires the specific entry that determines the selectors that players can use. Many of the options for this field are visible in the above treatments. Some examples are "heatmap2d", "pure", "bubble".
  • matrixDisplay - Some of the options are !HeatMapSingle, !HeatMapBoth (you can or can't see the other player's heatmap), and corners.
  • showHeatmapLegend - This adds a legend next to the payoff recorder, connecting the color in the heatmap to the precise payoff value. (always leave this on)
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.