{ "cells": [ { "cell_type": "markdown", "id": "835554a7-d524-4807-bb9f-b4e43e7c0f39", "metadata": {}, "source": [ "# The Hawk-Dove Game" ] }, { "cell_type": "markdown", "id": "716e8f76-393d-448b-bd67-35110a089620", "metadata": {}, "source": [ "We have learned how phenotypic diversity within a population can serve as a bet-hedging strategy for adaptation in a randomly changing environment. In other cases, phenotypic diversity can arise due to competition between individuals in the same population. Common examples include male dimorphism in many species, where individuals develop different morphologies that allow them to use alternative reproductive tactics, such as beetles that either develop a big horn to guard their nests or resemble hornless females to sneak into others' nests. The phenotypic differences can also be in the behavior, e.g., some individuals are more aggressive and tend to fight off intruders while others are more submissive and tend to yield." ] }, { "cell_type": "markdown", "id": "2b66226c-5917-439d-a85b-13b3317f408c", "metadata": {}, "source": [ "Although animals commonly fight for resources, terratories, or mates, it is observed that most fights are \"ritualized\" -- the opponents use calls or displays to intimidate each other until one concedes, without escalating to direct fights that can cause serious injuries. Intuitively, one can argue that because these individuals are part of the same species, having too many injuries would be bad for the species as a whole, so fighting should be limited. However, this argument does not explain the incentive from each individual's perspective. In order to analyze the motivation behind each individual's behavior, we will adopt some formalism from game theory." ] }, { "cell_type": "markdown", "id": "b1a46a30-d114-4cb4-9f16-803f2cb5c2f5", "metadata": {}, "source": [ "## Two-player symmetric games" ] }, { "cell_type": "markdown", "id": "18803d2c-92d6-40ff-a7ee-7dbc3ebb7e1a", "metadata": {}, "source": [ "Imagine that individuals of the population randomly encounter one another to carry out repeated pairwise competitions. In a competition (\"game\"), each participant can choose from a set of actions. For simplicity, we assume that there is only one round of competition between the two participants. The outcome of the competition will be determined by the actions they choose, and will be represented by the \"payoff\" that each receives. We will focus on the symmetric case where the set of actions is the same for both participants, labeled by $i = 0, 1, \\cdots$ Such a two-player symmetric game can be represented by a \"payoff matrix\" $v_{ij}$, where each entry quantifies the payoff of one participant when it chooses action $i$ while the opponent chooses action $j$. (We only need to know the payoff of one participant because, by symmetry, the payoff of the other participant will be $v_{ji}$.) This payoff matrix is similar to the fitness matrix that we used in studying bet-hedging before. One can think of the situation there as the organisms playing a game against the changing environment (so the game is not symmetric but we only care about the payoff of the organisms)." ] }, { "cell_type": "markdown", "id": "893f4c24-2299-407a-843b-9ec3bedb2678", "metadata": {}, "source": [ "We can distinguish between two scenarios. In one scenario, the population is formed by individuals that each consistently uses one and the same action. In this case each individual is said to be using a \"pure strategy\", and the population can be a mixture (\"polymorphism\") of different types of individuals. In the second scenario, each individual chooses actions randomly according to some probability distribution, and all individuals use the same probability distribution. In this case the individuals are said to be using a \"mixed\" strategy, but the population is considered to be homogeneous because all individuals use the same strategy. These two scenarios are very similar when we focus on one individual (the \"player\") that will repeatedly encounter randomly chosen opponents from the population. Let $p_j$ be the probability that its opponent will choose action $j$. This probability would be equal to the composition of the population in the first scenario, or the mixed strategy that everyone else uses in the second scenario. We will let the player use a mixed strategy $q_i$, which is not necessarily the same as $p_i$. This is because we want to study whether a strategy is stable, i.e., whether the player has an incentive to deviate from the \"resident\" strategy $p$ so as to increase its own payoff." ] }, { "cell_type": "markdown", "id": "324e97b6-e9c1-4812-a3c7-a899645fb73b", "metadata": {}, "source": [ "Let us first examine how the player's payoff accumulates over time. We will write a Python class to simulate a generic two-player symmetric game that is repeated many times." ] }, { "cell_type": "code", "execution_count": 1, "id": "6c9350d2-7e93-4a9a-b9da-6b1d9d805406", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "id": "ebbb0c72-04d4-4ea3-81a2-eee570812077", "metadata": { "tags": [] }, "outputs": [], "source": [ "class SymmetricGame:\n", " \"\"\"\n", " simulate a repeated two-player symmetric game.\n", " \"\"\"\n", " \n", " def __init__(self, opp_dist, pay_mat, record=True):\n", " \"\"\"\n", " initialize game.\n", " inputs:\n", " opp_dist: 1-d array-like, probability distribution p_j for mixed strategy used by opponent.\n", " pay_mat: 2-d array-like, payoff matrix v[i,j] = payoff when self plays i and opponent plays j.\n", " record: bool, whether to record history of the plays.\n", " \"\"\"\n", " self.opp_dist = np.asarray(opp_dist) # opponent distribution p_i\n", " self.pay_mat = np.asarray(pay_mat) # payoff matrix v_{ij}\n", " self.reward = 0 # current amount of rewards accumulated\n", " self.time = 0 # current number of rounds played\n", " self.record = record\n", " if record:\n", " self.play_hist = [] # history of both players' choices\n", " self.reward_hist = [] # history of accumulated rewards\n", " \n", " def play(self, own_dist, T):\n", " \"\"\"\n", " simulate repeated games.\n", " inputs:\n", " own_dist: 1-d array-like, probability distribution q_i for mixed strategy used by self.\n", " T: int, number of rounds to play.\n", " \"\"\"\n", " opp_seq = np.random.choice(self.pay_mat.shape[1], size=T, p=self.opp_dist) # draw random plays by opponent\n", " own_seq = np.random.choice(self.pay_mat.shape[0], size=T, p=own_dist) # draw random plays by self\n", " for t in range(T):\n", " opp = opp_seq[t]\n", " own = own_seq[t]\n", " self.reward = self.reward + self.pay_mat[own,opp]\n", " if self.record: # record history\n", " self.play_hist.append([own, opp])\n", " self.reward_hist.append(self.reward)" ] }, { "cell_type": "markdown", "id": "773c870e-2a2d-412d-a77d-109830655699", "metadata": {}, "source": [ "## Hawk-Dove game" ] }, { "cell_type": "markdown", "id": "40efa7bf-545f-45ed-9be5-30ef98e0ca04", "metadata": {}, "source": [ "We will consider a specific game introduced by (Smith & Price 1973) to study animal conflicts, which is known as the \"Hawk-Dove\" game in biology. Here \"Hawk\" and \"Dove\" are not referring to two different species, but rather two behaviors that can be adopted by individuals of a population. In a competition, if one individual plays Hawk and the other plays Dove, then the Hawk wins and takes a reward $V$ while the Dove leaves without a reward. If both play Dove, then they split the reward and takes $V/2$ each. However, if both play Hawk, there will be a fight, and even though each has a 50% chance of winning the reward $V$, there will be a cost $C$ associated with potential injuries. Thus, the payoff matrix is parametrized by: \n", "\n", "| | Hawk | Dove |\n", "| :--- | :---: | :---: |\n", "| **Hawk** | $\\frac{V-C}{2}$ | $V$ |\n", "| **Dove** | $0$ | $\\frac{V}{2}$ |\n", "\n", "Here the entries are the player's payoffs; the rows represent the player's actions, whereas the columns represent the opponent's actions. We are interested in the case where $C > V > 0$. In this case, if the opponent plays Hawk, then it is more beneficial for the player to play Dove; on the other hand, if the opponent plays Dove, then the player benefits more by playing Hawk. Therefore, neither of the actions is a dominant play, i.e., being better in all situations. In such cases, we expect that the \"equilibrium\" will be a mixed strategy, as studied below." ] }, { "cell_type": "markdown", "id": "8b19ab96-eb56-4ef5-9aa6-f306c94e5fce", "metadata": {}, "source": [ "Let us first make a simulation of the Hawk-Dove game. This is done by defining a derived class with the specific payoff matrix." ] }, { "cell_type": "code", "execution_count": 3, "id": "7bd34328-5647-4531-b9e8-91273c2c0c29", "metadata": { "tags": [] }, "outputs": [], "source": [ "class HawkDove(SymmetricGame):\n", " \"\"\"\n", " simulate the hawk-dove game.\n", " \"\"\"\n", " \n", " def __init__(self, V, C, opp_dist, record=True):\n", " \"\"\"\n", " initialize game.\n", " inputs:\n", " V: float, reward from winning the game.\n", " C: float, cost of losing the game.\n", " opp_dist: 1-d array-like, probability distribution p_j for mixed strategy used by opponent.\n", " record: bool, whether to record history of the plays.\n", " \"\"\"\n", " pay_mat = [[(V-C)/2, V], [0, V/2]]\n", " SymmetricGame.__init__(self, opp_dist, pay_mat, record)" ] }, { "cell_type": "markdown", "id": "a113066f-3550-4af8-9179-b4c7ee2de09d", "metadata": {}, "source": [ "We will use the following parameter values." ] }, { "cell_type": "code", "execution_count": 4, "id": "7624dbd1-162a-4068-becb-c1c73fccbd94", "metadata": { "tags": [] }, "outputs": [], "source": [ "V = 1 # reward if one wins the competition\n", "C = 2 # cost due to potential injuries, C > V" ] }, { "cell_type": "markdown", "id": "80500e68-b74f-48e7-9384-fd4911f8a67c", "metadata": {}, "source": [ "To test-run the game, we will arbitrarily choose some probability distributions as mixed strategies for both participants." ] }, { "cell_type": "code", "execution_count": 5, "id": "8f4b7c33-6830-4fa9-94a6-3b160e569e6f", "metadata": { "tags": [] }, "outputs": [], "source": [ "opp_dist = [0.7, 0.3] # opponent's strategy\n", "own_dist = [0.2, 0.8] # player's own strategy\n", "\n", "T = 1000 # number of rounds to play\n", "\n", "hd1 = HawkDove(V, C, opp_dist) # create a game with given opponent's strategy\n", "hd1.play(own_dist, T) # play the game for `T` rounds with own strategy" ] }, { "cell_type": "markdown", "id": "68d2396c-7735-4d82-8131-7600f123f99f", "metadata": {}, "source": [ "Let us plot the reward history to see how it accumulates over time. The average reward rate can be calculated as:\n", "\\begin{equation}\n", "W_T = \\frac{1}{T} \\big( N_T - N_0 \\big)\n", "\\end{equation}\n", "where $N_0$ is the initial amount of reward (set to 0) and $N_T$ is the accumulated reward after $T$ rounds. The expected reward rate can be found as:\n", "\\begin{equation}\n", "W = \\lim_{T\\to\\infty} W_T = \\sum_i p_i \\Big( \\sum_j q_j v_{ji} \\Big)\n", "\\end{equation}\n", "Notice how similar the expression looks to the formula for the long-term growth rate in bet-hedging, the only difference being that the latter has a `log` outside the brackets (in other words, it is a geometric mean there, but an arithmetic mean here)." ] }, { "cell_type": "code", "execution_count": 6, "id": "ba5aaac1-c784-4019-84ce-bbdf0ec6c428", "metadata": { "tags": [] }, "outputs": [], "source": [ "W_avg = hd1.reward / T # average reward rate\n", "W_thr = np.dot(own_dist, np.dot(hd1.pay_mat, hd1.opp_dist)) # theoretical reward rate" ] }, { "cell_type": "code", "execution_count": 7, "id": "780edbe9-4ae8-47d7-8aae-2a706d4cf470", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(hd1.reward_hist) # plot reward history\n", "plt.plot(W_avg*np.arange(T), label='average reward rate') # plot average growth\n", "plt.plot(W_thr*np.arange(T), 'k', label='theoretical reward rate') # plot theoretical growth\n", "plt.xlabel('rounds of game')\n", "plt.ylabel('accumulated reward')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "4b1703de-08cd-4fa5-b43b-0a59af0d74cd", "metadata": {}, "source": [ "It can be seen that we are indeed accumulating rewards. But is this the best we can do? To find out, let us vary our strategy $q$ and repeat the calculation above to see which strategy is optimal." ] }, { "cell_type": "code", "execution_count": 8, "id": "e964c24e-4715-4c08-8a5b-db34b63ace34", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [], "source": [ "qH_list = np.arange(0.005, 1, 0.01) # list of own strategies (probability of Hawk)\n", "W_avg_list = [] # list to save average reward rates\n", "W_thr_list = [] # list to save theoretical reward rates\n", "\n", "T = 10000 # rounds to play\n", "\n", "for qH in qH_list:\n", " own_dist = [qH, 1-qH]\n", " hd1 = HawkDove(V, C, opp_dist)\n", " hd1.play(own_dist, T)\n", " W_avg = hd1.reward / T # average reward rate\n", " W_thr = np.dot(own_dist, np.dot(hd1.pay_mat, hd1.opp_dist)) # theoretical reward rate\n", " W_avg_list.append(W_avg)\n", " W_thr_list.append(W_thr)" ] }, { "cell_type": "markdown", "id": "d984d9c6-3a53-4062-9f15-72f00fc894d7", "metadata": {}, "source": [ "Let us plot the reward rate as a function of our strategy." ] }, { "cell_type": "code", "execution_count": 9, "id": "4a61d751-8b35-4cfd-a745-a5333c5b0f84", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(qH_list, W_avg_list, label='simulation') # average reward rate\n", "plt.plot(qH_list, W_thr_list, label='theoretical') # theoretical reward rate\n", "plt.axhline(0, color='k', lw=1)\n", "plt.xlabel(r'own strategy $q_H$')\n", "plt.ylabel('expected reward')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "31494263-6f5a-4bff-8469-fa95ca17d093", "metadata": {}, "source": [ "It can be seen that, for the particular strategy that the opponent is using (70% Hawk and 30% Dove), the best strategy for the player would be to play Hawk with zero probability, i.e., to always play Dove." ] }, { "cell_type": "markdown", "id": "74af3ec0-cccf-4b30-acd4-615cf9bd2b6c", "metadata": {}, "source": [ "To understand what this implies for the population, consider the first scenario where the population is composed of Hawks and Doves according to the distribution $p$. Our results above shows that, given how everyone else is playing currently, each individual has an incentive to play Dove in order to maximum its expected reward. Thus, as some individuals switch from playing Hawk to Dove, the percentage of Doves in the population will increase. On the other hand, when Doves become the majority in the population (e.g., $p = [0.3, 0.7]$), you may repeat the above calculations to find that the best strategy becomes always playing Hawk, which will then lead to a decrease of Doves. These trends suggest that there should be an equilibrium point in the middle, which we explore below." ] }, { "cell_type": "markdown", "id": "2d1d41b6-835b-407b-a18f-9c62f9dd8f0b", "metadata": { "tags": [] }, "source": [ "## Equilibrium and stability" ] }, { "cell_type": "markdown", "id": "1fa4126e-0daa-4482-a375-31fd77f6b456", "metadata": {}, "source": [ "To find the equilibrium composition of the population, let us calculate the expected rewards from playing Hawk and Dove, respectively. When the current composition of the population is $(p, 1-p)$, the expected rewards are:\n", "\\begin{align}\n", "W_H(p) &= p \\, \\frac{V-C}{2} + (1-p) \\, V \\\\\n", "W_D(p) &= p \\cdot 0 + (1-p) \\, \\frac{V}{2}\n", "\\end{align}" ] }, { "cell_type": "markdown", "id": "5969b46f-8ecf-4dfa-8ae0-144977acb164", "metadata": {}, "source": [ "Let us plot these as functions of $p$." ] }, { "cell_type": "code", "execution_count": 10, "id": "74786cfb-c884-4183-b3c3-ab7c566c5ce2", "metadata": { "tags": [] }, "outputs": [], "source": [ "pH_array = np.linspace(0, 1, 101)\n", "WH_array = pH_array * (V-C)/2 + (1 - pH_array) * V\n", "WD_array = (1 - pH_array) * V/2" ] }, { "cell_type": "code", "execution_count": 11, "id": "28e87dae-43f4-4ae2-ad4a-bc025f4502a7", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(pH_array, WH_array, label='$W_H$')\n", "plt.plot(pH_array, WD_array, label='$W_D$')\n", "plt.xlabel('proportion of Hawk')\n", "plt.ylabel('expected reward')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "fd5a573e-2035-4632-a486-439dc506f76c", "metadata": {}, "source": [ "It can be seen that the two lines cross in the middle. Setting $W_H = W_D$ yields the solution $p^* = V/C$. When $p > p^*$, we have $W_D > W_H$, so more individuals should play Dove, making $p$ decrease; but when $p < p^*$, we have $W_H > W_D$, so individuals should switch to playing Hawk and cause $p$ to increase. Therefore, $p^*$ will be the equilibrium composition of the population." ] }, { "cell_type": "markdown", "id": "8a504cb0-5b23-43f6-9b02-f41454de6266", "metadata": {}, "source": [ "### Nash Equilibrium" ] }, { "cell_type": "markdown", "id": "579228f2-af66-4c06-9003-41badc3ffb77", "metadata": {}, "source": [ "Let us now consider the second scenario where all individuals use the same mixed strategy $p$. In this case, an equilibrium can be defined by the condition that no one has incentive to deviate from the strategy. Suppose one individual attempts to use a different strategy $q$, which would give it an expected reward $W(q;p)$. Then the condition for a strategy $p^*$ to be a **Nash equilibrium** (NE) can be expressed as:\n", "\\begin{equation}\n", "W(q;p^*) \\leq W(p^*;p^*)\n", "\\end{equation}" ] }, { "cell_type": "markdown", "id": "25443361-c4ab-4b11-8bd3-f1651beb3909", "metadata": {}, "source": [ "Let us check that $p^* = V/C$ is a Nash equilibrium for the Hawk-Dove game. For this we will assume that everyone else in the (large) population is using the strategy $p^*$, and calculate the expected reward of a \"mutant\" individual that uses $q \\neq p^*$." ] }, { "cell_type": "code", "execution_count": 12, "id": "6d6d6225-8887-4da3-a333-6d7ff50b4033", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "equilibrium fraction of hawks = 0.5\n" ] } ], "source": [ "pH_eq = V/C # equilibrium fraction of hawks\n", "print(f'equilibrium fraction of hawks = {pH_eq}')" ] }, { "cell_type": "code", "execution_count": 13, "id": "ea46a6e3-c0ac-4d5a-aa6f-f91d5d1073b5", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [], "source": [ "opp_dist = [pH_eq, 1-pH_eq]\n", "\n", "qH_list = np.arange(0.005, 1, 0.01) # list of own strategies\n", "W_avg_list = [] # list to save average reward rate\n", "W_thr_list = [] # list to save theoretical reward rate\n", "\n", "T = 10000\n", "for qH in qH_list:\n", " own_dist = [qH, 1-qH]\n", " hd1 = HawkDove(V, C, opp_dist)\n", " hd1.play(own_dist, T)\n", " W_avg = hd1.reward / T\n", " W_thr = np.dot(own_dist, np.dot(hd1.pay_mat, hd1.opp_dist))\n", " W_avg_list.append(W_avg)\n", " W_thr_list.append(W_thr)" ] }, { "cell_type": "code", "execution_count": 14, "id": "7c4a1e34-b505-47f2-a200-c37055d8cd9a", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(qH_list, W_avg_list, label='simulation') # plot average reward rate\n", "plt.plot(qH_list, W_thr_list, label='theoretical') # plot theoretical reward rate\n", "plt.axhline(0, color='k', lw=1)\n", "plt.xlabel(r'mutant strategy $q$')\n", "plt.ylabel('expected reward')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "397a5a2e-2658-4297-b2c4-89d372a6a630", "metadata": {}, "source": [ "We see that, no matter what strategy the mutant uses, the expected reward is always the same. Therefore, it has no incentive to deviate from playing the same strategy $p^*$ as others. This proves that $p^*$ is a NE." ] }, { "cell_type": "markdown", "id": "a6f508fe-7d6d-44c6-a7f8-f815deaea9ba", "metadata": {}, "source": [ "### Evolutionarily Stable Strategy" ] }, { "cell_type": "markdown", "id": "3355ad1a-e556-461f-a630-b32f4c432629", "metadata": {}, "source": [ "However, you might wonder that, since using a different strategy also does not hurt the mutant, this equilibrium is only \"marginally stable\" as nothing stops an individual from \"drifting away\" from the strategy $p^*$. In biological terms, if a mutant using a different strategy $q$ arises in the population, can it spread in the population by chance and take over the population? It turns out that this would not happen in our case, because $p^*$ satisfies a stronger equilibrium condition, known as an **evolutionarily stable strategy** (ESS) in biology. This condition requires that, if the mutants somehow become the majority of the population, then the original strategy $p^*$ will be more favorable than $q$ and thus stop the mutants from taking over. Mathematically, it means either $W(q;p^*) < W(p^*;p^*)$ (which makes $p^*$ a \"strict\" Nash equilibrium) or, in case $W(q;p^*) = W(p^*;p^*)$, then $p^*$ must further satisfy:\n", "\\begin{equation}\n", "W(q;q) < W(p^*;q)\n", "\\end{equation}\n", "Note that the conditions for ESS is stronger than NE, so an ESS is always a NE, but not the other way round." ] }, { "cell_type": "markdown", "id": "7606cb1f-0047-4a25-9fbd-658c66ef5deb", "metadata": {}, "source": [ "Let us prove that $p^* = V/C$ is indeed an ESS for the Hawk-Dove game. To show this, let us calculate the function $W(q;p)$ for all $p$ and $q$." ] }, { "cell_type": "code", "execution_count": 15, "id": "b91bd4f6-43c3-405b-91e3-a9052eb6f11a", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [], "source": [ "pH_list = np.arange(0.005, 1, 0.01) # list of opponent's strategies\n", "qH_list = np.arange(0.005, 1, 0.01) # list of player's own strategies\n", "W_avg_array = np.zeros((len(pH_list), len(qH_list))) # list to collect average growth rates\n", "W_thr_array = np.zeros((len(pH_list), len(qH_list))) # list to collect theoretical growth rates\n", "\n", "for i in range(len(pH_list)):\n", " for j in range(len(qH_list)):\n", " opp_dist = [pH_list[i], 1-pH_list[i]]\n", " own_dist = [qH_list[j], 1-qH_list[j]]\n", " hd1 = HawkDove(V, C, opp_dist)\n", " T = 1000\n", " hd1.play(own_dist, T)\n", " W_avg = hd1.reward / T\n", " W_thr = np.dot(own_dist, np.dot(hd1.pay_mat, opp_dist))\n", " W_avg_array[i,j] = W_avg\n", " W_thr_array[i,j] = W_thr" ] }, { "cell_type": "markdown", "id": "cbfdf9ae-b847-412d-9bf6-d7c45ba8b470", "metadata": {}, "source": [ "We can plot $W(q;p)$ as a heatmap. Here we will only use the theoretical values." ] }, { "cell_type": "code", "execution_count": 16, "id": "40a4898a-ca83-4dcc-b7a8-fcc9663c5f4d", "metadata": { "slideshow": { "slide_type": "fragment" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8,6))\n", "plt.imshow(W_thr_array, origin='lower', extent=(0,1,0,1)) # plot W(q;p)\n", "plt.axhline(pH_eq, color='r', lw=1) # plot W(q;p^*)\n", "plt.axvline(pH_eq, color='g', lw=1) # plot W(p^*;q)\n", "plt.plot([0,1], [0,1], color='b', lw=1) # plot W(q;q)\n", "plt.ylabel(r'opponent strategy $p_H$')\n", "plt.xlabel(r'own strategy $q_H$')\n", "plt.colorbar(label='expected reward')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "98eaf5d3-d92b-4380-be4b-c23f933190cd", "metadata": {}, "source": [ "The value of expected reward along the red line is $W(q;p^*)$ for different $q$, which is constant as we found above, proving that $p^*$ is a Nash equilibrium. The additional condition for ESS can be shown by comparing values along the green and blue lines. For every $q$ value (vertical position), $W(q;q)$ (point on the blue line) is always less than $W(p^*;q)$ (point on the green line), thus proving that $p^*$ is an evolutionarily stable strategy." ] }, { "cell_type": "markdown", "id": "d0096057-4f64-4f2d-87ca-cb19b35221e9", "metadata": {}, "source": [ "The fact that the equilibrium $p^*$ is a mixed strategy helps us understand the \"limited war\" type of animal conflicts in nature. Indeed, the model predicts that a direct fight between two individuals would only occur with probability $(p^*)^2 = V^2/C^2$, which is much less than $1$ if the cost of injuries is high. This \"evolutionary game\" model can be generalized to more sophisticated strategies, such as accounting for dependence on body size and assessment of fighting abilities, which turn out to further reduce fighting probabilities." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }