Oddments#
A very efficient method for solving \(2\times 2\) matrix games with mixed strategy solutions (MSS) is using the technique of oddments. We calculate oddments by taking the absolute value differences across the rows and down the colums. From the oddments, we can calculate the proportions needed for \(\vec r\) and \(\vec c\) and then determine the overall game value.
Teaching Example
Given the example game below, first verify that no domination exists for either player. Then, solve for Rose’s and Colin’s optimal strategy mixture (OSM).
To begin, we calculate the row oddments which are the absolute value difference of the entries in the row.
Next, we calculate the column oddments in a similar way.
Creating the optimal strategy proportions (OSP) works as follows:
OSP for Rose A is equal to $\(\frac{\text{Row B Oddment}}{\text{Sum of Oddments}}\)$
OSP for Rose B is equal to $\(\frac{\text{Row A Oddment}}{\text{Sum of Oddments}}\)$
Notice that the numerators swap position compared to the oddments as demonstrated with arrows below.
Colin’s OSP are calculated in an analagous way as shown below.
Thus, we have from the OSP the following optimal strategy sets for Rose and Colin.
We find the game value by determining Rose’s (or Colin’s) expected value given the opponent plays her or his optimal strategy proprotions:
If we insert the game solver code, we can evaluate our solution to verify it. Remember that we enter the matrix game values as
example_game = np.array([[7,2],[-1,6]])
We first must initialize python:
Next, the game solver code:
example_game = np.array([[7,2],[-1,6]])
solver(example_game)
Game Value: 3.667
Rose Strategy: [0.583, 0.417]
Colin Strategy: [0.333, 0.667]
Hence, we have verified that our oddments solution above was indeed correct.
Additional Practice
Let’s now provide some game examples so that we can practice how to compute matrix game solutions using oddments.
Practice Problem 1#
# Do your work in this cell:
p1 = np.array([[1,3],[11,-1]])
solver(p1)
Game Value: 2.429
Rose Strategy: [0.857, 0.143]
Colin Strategy: [0.286, 0.714]
Practice Problem 2#
# Do your work in this cell:
p2 = np.array([[0,6],[2,0]])
solver(p2)
Game Value: 1.5
Rose Strategy: [0.25, 0.75]
Colin Strategy: [0.75, 0.25]
Practice Problem 3#
# Do your work in this cell:
p3 = np.array([[-3,9],[0,-4]])
solver(p3)
Game Value: -0.75
Rose Strategy: [0.25, 0.75]
Colin Strategy: [0.812, 0.188]