Friday’s class was hopefully helpful: we spent some time working on drawing linear functions for best response calculations.

A recording of that class is available here: cardiff.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=8d77c214-cc1e-4e66-928b-afa000c67cb1.

We took at look at calculating the best response \(\sigma_c*\) against the strategy \(\sigma_r=(x, 1-x)\).

We saw that depending on the value of \(x\) we had 3 possible best responses:

- If \(x=.8\) then \(\sigma_c*=(1, 0)\): we should always play the first: column.
- If \(x=.1\) then \(\sigma_c*=(0, 1)\): we should always play the second column.
- If \(x=1/3\) then \(\sigma_c^*\) can be any valid strategy: it does not matter what we do.

This leads to the concepts described in this section of the notes: nashpy.readthedocs.io/en/stable/text-book/best-responses.html#generic-best-responses-in-2-by-2-games

Which is that we could write down a generic form of \(\sigma_c^*\):

\[
\sigma_c^*=
\begin{cases}
(0, 1),&\text{ if } x > 1/3\\

(1, 0),&\text{ if } x < 1/3\\

\text{indifferent},&\text{ if } x = 1/3
\end{cases}
\]

I left as an exercise to repeat the procedure for \(\sigma_r^*\) which gives:

\[
\sigma_r^* =
\begin{cases}
(1, 0),&\text{ if } y > 1/2\\

(0, 1),&\text{ if } y < 1/2\\

\text{indifferent},&\text{ if } y = 1/2
\end{cases}
\]

(where \(y\) is the probability of being in the first column).

I then passed briefly over the remaining sections of the notes:

- A general condition for a best response (in games that are bigger than 2 by 2) which is the only way the above process works
- Using Nashpy to check the best response condition for pairs of strategies

I did not use this in class but here is a Jupyter notebook with some of the above in Python.

Source code: @drvinceknight Powered by: Jekyll Github pages Bootsrap css