\n",
"\n",
"# The Unfinished Game ... of Risk\n",
"\n",
"\n",
"\n",
"[Keith Devlin](https://web.stanford.edu/~kdevlin/)'s [book](https://www.amazon.com/Unfinished-Game-Pascal-Fermat-Seventeenth-Century/dp/0465018963) [*The Unfinished Game*](https://wordplay.blogs.nytimes.com/2015/12/14/devlin-unfinished-game/) describes how Fermat and Pascal discovered the rules of probability that guide gambling in games. The question they confront is: what if a gambling game is interrupted, but one player is in the lead by a certain score. How much of the pot should the leader get?\n",
"\n",
"My friends and I faced a similar question when a game of [Risk](https://www.ultraboardgames.com/risk/game-rules.php) ran on too long (as they often do) and we were unable to finish. Player **A** had just cashed in cards and added troops to a single large force in Brazil that was poised to make a sweeping attack on player **B**, whose territories were situated in Africa and Asia in such a way that **A** could attack North Africa first and then go from one territory to the next without ever having to branch off. We wrote down the number of **A**'s armies in Brazil, **72**, and the number of armies in **B**'s successive territories: **22, 8, 2, 2, 2, 7, 1, 1, 3, 1, 2, 3, 5, 1.** What is the probability that **A** can capture all these territories?\n",
"\n",
"______\n",
"\n",
"# Monte Carlo Simulation\n",
"\n",
"We can answer the question with a [**Monte Carlo simulation**](https://en.wikipedia.org/wiki/Monte_Carlo_method) that follows the rules of Risk and uses random numbers to roll the dice. First some preliminaries:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from typing import List, Tuple\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import random\n",
"\n",
"attackers = 72\n",
"territories = (22, 8, 2, 2, 2, 7, 1, 1, 3, 1, 2, 3, 5, 1)\n",
"\n",
"die = (1, 2, 3, 4, 5, 6)\n",
"Die = int # a type alias\n",
"\n",
"random.seed(42) # For reproducability"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How many territories and how many total defenders?"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(14, 60)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(territories), sum(territories)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It looks fairly even: the attackers have 12 more armies, 72 to 60, but they will have to leave an army in each of the 14 territories along the way. \n",
"\n",
"# Battless, Invasions, and Campaigns\n",
"\n",
"In Risk a **battle** consists of a one-time roll of some dice and the resulting loss of armies. The attacker will roll three dice if possible (but can roll a maximum of the number of armies in the attacking territory minus one) and the defender will roll two dice if possible (or only one if they have only one army remaining). We compare the highest die on each side, with the defender losing an army if the attacker's die is higher, and the attacker losing an army if tied or lower. Then if both sides rolled at least two dice, we do the same comparison with the second highest die on each side. The function `deaths` returns a tuple of (number of attacking armies that die, number of defending armies that die). "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def deaths(attack_dice: List[Die], defend_dice: List[Die]) -> Tuple[int, int]:\n",
" \"\"\"The number of (attackers, defenders) who die due to this roll.\"\"\"\n",
" dead = [0, 0]\n",
" for a, d in zip(sorted(attack_dice, reverse=True), \n",
" sorted(defend_dice, reverse=True)):\n",
" dead[a > d] += 1\n",
" return tuple(dead)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test1() -> bool:\n",
" # Four examples from www.ultraboardgames.com/risk/game-rules.php\n",
" assert deaths([6, 1, 1], [3]) == (0, 1) # 6 beats 3, so defender loses 1\n",
" assert deaths([6, 2, 1], [3, 2]) == (1, 1) # 6 beats 3, but 2 ties 2, so 1 loss each\n",
" assert deaths([3, 3], [4, 3]) == (2, 0) # 3 loses to 4, and attacker 3 loses to 3\n",
" assert deaths([6], [5, 4]) == (0, 1) # 6 beats 5, so defender loses 1\n",
" return True\n",
" \n",
"test1()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"An **invasion** consists of a series of battles until either the defenders are all defeated (in which case the attacker can move armies into the captured territory, but must leave one army behind), or the attackers have fewer than two armies left, and can no longer attack. \n",
"\n",
"A **campaign** consists of a sequence of invasions, designed to capture all the defender's territories.\n",
"In the function `campaign`, the variable `attackers` tracks the number of attackers invading the current territory. (The total number of armies for the attacking side will in general be more than `attackers`, because there will be one army left behind in each captured territory.) If `verbose` is true, we'll `say` what is happening along the way. In the end, return the number of `attackers` in the final territory minus the total number of defenders still alive. This will be positive if all the defenders have been defeated, and nonpositive if not."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def campaign(attackers: int, territories: List[int], verbose=True) -> int:\n",
" \"\"\"Given a number of armies for attacker and a list of territory army sizes for defender,\n",
" randomly play to the end, and return remaining attackers minus remaining defenders.\"\"\"\n",
" for t, defenders in enumerate(territories, 1):\n",
" if verbose: say(attackers, 'attack', defenders, t)\n",
" while attackers > 1 and defenders > 0:\n",
" A, D = deaths(roll(min(3, attackers - 1)), \n",
" roll(min(2, defenders)))\n",
" attackers -= A\n",
" defenders -= D\n",
" if attackers == 1:\n",
" if verbose: say(attackers, \"can't beat\", defenders, t)\n",
" break\n",
" attackers -= 1 # Capture a new territory, leave one behind\n",
" return attackers - (defenders + sum(territories[t:]))\n",
"\n",
"def say(attackers, action, defenders, t):\n",
" \"\"\"Say what is happening.\"\"\"\n",
" print(f'{attackers:3} armies {action} {defenders:2} defenders in territory {t}')\n",
" \n",
"def roll(n) -> List[Die]: \n",
" \"\"\"A random roll of `n` dice, sorted largest first.\"\"\"\n",
" return sorted((random.choice(die) for _ in range(n)), reverse=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The Answer\n",
"\n",
"Let's answer the question of who wins the unfinished game:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 72 armies attack 22 defenders in territory 1\n",
" 48 armies attack 8 defenders in territory 2\n",
" 44 armies attack 2 defenders in territory 3\n",
" 40 armies attack 2 defenders in territory 4\n",
" 35 armies attack 2 defenders in territory 5\n",
" 33 armies attack 7 defenders in territory 6\n",
" 23 armies attack 1 defenders in territory 7\n",
" 22 armies attack 1 defenders in territory 8\n",
" 20 armies attack 3 defenders in territory 9\n",
" 19 armies attack 1 defenders in territory 10\n",
" 17 armies attack 2 defenders in territory 11\n",
" 16 armies attack 3 defenders in territory 12\n",
" 15 armies attack 5 defenders in territory 13\n",
" 13 armies attack 1 defenders in territory 14\n"
]
},
{
"data": {
"text/plain": [
"12"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"campaign(attackers, territories)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The attackers won, capturing all the territories and moving 12 remaining armies into the final territory.\n",
"\n",
"But that was just one simulation; other simulations could have different results. Let's summarize, say, 100,000 simulations, see how long it takes, and plot a histogram of the resulting scores:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 33.1 s, sys: 70.9 ms, total: 33.1 s\n",
"Wall time: 33.2 s\n"
]
}
],
"source": [
"%time scores = [campaign(attackers, territories, False) for _ in range(100000)]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def summary(scores):\n",
" \"\"\"Summarize the scores from simulations.\"\"\"\n",
" P = np.average([s > 0 for s in scores]) \n",
" N, avg = len(scores), np.average(scores)\n",
" title = f'Attacker wins {P:.0%}. Average armies left: {avg:.1f}'\n",
" plt.ylabel(f'Frequency (out of {N:,d} runs)'); \n",
" plt.xlabel('Armies left (positive for attacker)')\n",
" plt.hist(scores, bins=max(scores) - min(scores) + 1)\n",
" plt.plot([0, 0], [0, N/25], 'r:'); plt.title(title)\n",
" \n",
"summary(scores)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that the attackers win 81% of the time, and the scores look roughly like a bell-shaped curve, but with a non-normal pattern on the left side. What's causing the non-normal pattern? Note that the number of defenders in the final four territories are `(2, 3, 5, 1)`, and the width of the four spikes on the left are `(1, 2, 4, 1)`, one less than the number of defenders (except for the last spike). I think there are spikes rather than a smooth curve because it is doubly-difficult to capture a territory: you need to have two armies left, not just one, so that you can leave one behind. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exact Probabilities\n",
"\n",
"By repeatedly running a simulation, we can get approximate probabilities. But what if we wanted **exact probabilities** (at least exact under the assumption that the dice are exactly fair and that floating point roundoff is not an issue)? I'll start by defining the function `outcomes`, so that, for example, `outcomes(3, 2)` returns a Counter of all possible outcomes of rolling 3 attacker dice versus 2 defender dice; each outcome is a pair of `(attacker_deaths, defender_deaths)` and has a count of how often it occurred."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"from functools import lru_cache\n",
"from collections import Counter\n",
"import itertools\n",
"\n",
"@lru_cache()\n",
"def outcomes(num_A: int, num_D: int) -> List[Tuple[int, int]]:\n",
" \"\"\"All (equiprobable) outcomes of (attacker_deaths, defender_deaths)\n",
" from rolling num_A dice versus num_D dice.\"\"\"\n",
" return Counter(deaths(dice[:num_A], dice[num_A:])\n",
" for dice in itertools.product(die, repeat=num_A + num_D))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({(2, 0): 2275, (1, 1): 2611, (0, 2): 2890})"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"outcomes(3, 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result for `outcomes(3, 2)` says that the attackers lose two armies in 2,275 out of the $6^5 = 7,776$ different outcomes; the defenders lose two in 2,890 outcomes; and they each lose one in the remaining 2,611 outcomes. I found a [web page](http://datagenetics.com/blog/november22011/) that lists the results for all six possible battles (attackers roll 1, 2, or 3 dice; defenders roll 1 or 2); let's verify that our `outcomes` agree with theirs:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def test2() -> bool:\n",
" # See http://datagenetics.com/blog/november22011/\n",
" assert outcomes(1, 1) == {(1, 0): 21, (0, 1): 15}\n",
" assert outcomes(2, 1) == {(1, 0): 91, (0, 1): 125}\n",
" assert outcomes(3, 1) == {(1, 0): 441, (0, 1): 855}\n",
" assert outcomes(1, 2) == {(1, 0): 161, (0, 1): 55}\n",
" assert outcomes(2, 2) == {(2, 0): 581, (1, 1): 420, (0, 2): 295}\n",
" assert outcomes(3, 2) == {(2, 0): 2275, (1, 1): 2611, (0, 2): 2890}\n",
" return True\n",
" \n",
"test2()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we know exact outcomes for a single roll of the dice; what about an invasion where $A$ attackers keep attacking until they defeat $D$ defenders (or all but one attacker dies trying)? The function `winP(A, D)` gives the probability of the attackers winning. It works recursively. The two base cases are that the probability is zero if the attackers don't have at least two armies and the probability is one if the defenders have no armies. \n",
"\n",
"In the recursive case we observe the possible outcomes for the first battle, and then compute the win probability for the invasion as the average, over every possible outcome of the dice rolls, of the win probability for the number of remaining attackers and defenders after the battle, weighted by the number of times that the outcome occurs. (We use `np.average` because it accepts an optional `weights` argument.)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"@lru_cache(None)\n",
"def winP(attackers: int, defenders: int) -> float:\n",
" \"\"\"The probability that `attackers` can invade and defeat all the `defenders`.\"\"\"\n",
" if attackers <= 1:\n",
" return 0\n",
" elif defenders == 0:\n",
" return 1\n",
" else:\n",
" battle = outcomes(min(3, attackers - 1), min(2, defenders))\n",
" return np.average([winP(attackers - A, defenders - D) for (A, D) in battle],\n",
" weights=list(battle.values()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's try a simple example: `winP(2, 1)` should be `15/36`, the same as the probability of the attacker prevailing in `outcomes(2, 1)`:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"winP(2, 1) == 15/36"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What's the probability that 12 attackers successfully invade 10 defenders?"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6538260547697077"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"winP(12, 10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's make a chart, with the number of defenders varying from 1 to 60, and the number of attackers separated into eight cases (depicted as eight lines), where in each case there are Δ more attackers than defenders, for Δ = -5, -2, 0, 1, 2, 5, and 10:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"def chart(Ds=range(1, 61), deltas=(-5, -2, -1, 0, 1, 2, 5, 10)):\n",
" plt.figure(figsize=(9, 6)); plt.grid()\n",
" plt.title('Each line: attackers with Δ more armies than defenders')\n",
" plt.xlabel('Number of Defenders'); plt.ylabel('Win Probability for Attackers')\n",
" for delta in reversed(deltas):\n",
" Ps = [winP(max(0, D + delta), D) for D in Ds]\n",
" plt.plot(Ds, Ps, '.-', label=f'Δ={delta}')\n",
" plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"chart()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the purple line (fourth from bottom), where the number of attackers exactly equals the number of defenders, gives a low win probability for a small attacking force, but reaches 50% for 12-on-12, and 73% for 60-on-60. The red line, where the attackers have one more army than the defenders, dips from one to two defenders but is over 50% for a 6-on-5 attack. Similarly, the green line, where the attackers have a surplus of two armies, dips sharply from 75% to 66% as the number of defenders goes from 1 to 2, dips slightly more for 3 and 4 defenders, and then starts to rise. So overall, an attacker does not need a big advantage in armies as long as there are many armies on both sides. Even when the attacker is at a disadvantage in numbers (as in the bottom grey line where the attacker has five fewer armies), the attacker can still have an advantage in win probability; `winP(55, 60)` is about 57%."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Simulation versus Exact Computation\n",
"\n",
"Let's see how the exact computation compares with a simulation:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.7194339370737594, 0.7178)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A, D = 32, 30\n",
"\n",
"exact = winP(A, D)\n",
"simul = np.average([campaign(A, [D], False) > 0 for _ in range(10000)])\n",
"\n",
"exact, simul"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that they give similar results, differing by one or two parts per thousand. So when would you prefer a simulation, and when an exact computation?\n",
"\n",
"**Advantages of a simulation:**\n",
"- Usually simpler to code; can use an `if` statement to distinguish two branches; don't have to follow every branch.\n",
"- Can be more efficient to compute; don't have to spend a lot of computation time on extremely rare events.\n",
"- Can handle event sequences of potentially unbounded length.\n",
"\n",
"**Advantages of an exact calculation:**\n",
"- Don't need to rerun multiple times; don't need statistical inference to analyze the range of outcomes.\n",
"- If a very rare event can be extremely bad (or good), it is important to know exactly how likely the rare event is. \n",
"\n",
"I chose to use a **simulation** for `campaign` because:\n",
"- I thought it would be easier to code.\n",
"- I would be happy with only four bits of accuracy: enough to determine the win percentage within 6%. (I ended up running enough simulations to get within 1%.) \n",
"- I didn't care about the 1-in-a-billion chance of, say, the attackers losing 17 battles in a row; I just want to know the overall odds of the attackers losing the campaign. (Note that if I was doing a simulation of a nuclear reactor, I would certainly be very concerned with a 1-in-a-billion chance of a meltdown, and would need to code ways of exploring that possibility more carefully.)\n",
"- A simulation is more flexible. Consider a small change to the rules of Risk: if the dice show five 1s in a battle, both sides add one army. We can easily implement that in a simulation in two or three lines of code, and the effect on run time will be negligible, because it only happens one in 7,776 times. But in an exact calculation this new rule would change everything: it would become an infinite game, and we would have to make a wholesale rearrangement of the code to deal with that. \n",
"\n",
"I chose to use **exact calculation** for `winP` because:\n",
"- I knew the computational demands would be very small either way.\n",
"- I saw there was something going on with odd/even number of armies, and I wanted to distinguish slight variations that are real from slight variations that are random, so getting exact numbers was useful.\n",
"\n",
"\n",
"(*Note:* I call it an \"exact\" calculation, but it is actually limited to the precision of 64-bit floating point numbers. If you truly need an exact answer for a discrete combinatorics problem, do division with the `fraction.Fraction` class, not with `float`. And of course it is an exact computation in the model; if the model does not reflect the world, the results will be wrong.)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}