https://github.com/nikoleta-v3/game-theory-and-python
Game Theory and Python, a workshop investigating repeated games using the prisoner's dilemma
https://github.com/nikoleta-v3/game-theory-and-python
axelrod-python-library game-theory ipd python
Last synced: 6 months ago
JSON representation
Game Theory and Python, a workshop investigating repeated games using the prisoner's dilemma
- Host: GitHub
- URL: https://github.com/nikoleta-v3/game-theory-and-python
- Owner: Nikoleta-v3
- License: mit
- Created: 2017-02-16T10:08:47.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-01-21T20:40:51.000Z (over 3 years ago)
- Last Synced: 2024-04-14T20:15:19.714Z (about 1 year ago)
- Topics: axelrod-python-library, game-theory, ipd, python
- Language: Jupyter Notebook
- Homepage:
- Size: 137 KB
- Stars: 167
- Watchers: 10
- Forks: 63
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.txt
Awesome Lists containing this project
README
Game-Theory-and-Python
----------------------.. image:: https://jose.theoj.org/papers/10.21105/jose.00078/status.svg
:target: https://doi.org/10.21105/jose.00078.. image:: https://img.shields.io/github/license/Naereen/StrapDown.js.svg
:target: https://github.com/Nikoleta-v3/Game-Theory-and-Python/master/LICENSE.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
:target: http://makeapullrequest.com.. image:: https://img.shields.io/github/workflow/status/Nikoleta-v3/Game-Theory-and-Python/ci
This is a repository created to run a workshop on Game Theory using
the programming language `Python `_ and more specifically
an open-source software called the `Axelrod Python library `_.The topics being covered in this workshop are the following:
1. `An introduction to game theory and the Iterated Prisoner's Dilemma `_
2. `Creating matches and tournaments using Axelrod-Python `_
3. `Writing strategies and contributing to Axelrod-Python `_
4. `Playing against strategies of the Iterated Prisoner's Dilemma `_Installing Python
-----------------There are various distributions of Python. I recommend using `Anaconda `_
which comes packaged with a variety of tools, such as Jupyter Notebooks.This tutorial is written in `Jupyter Notebooks `_.
Virtual Environment
-------------------This repository comes with an `environment.yml` file. The `environment.yml` file
will allow you to create an Anaconda environment. To do that use the terminal or
an anaconda prompt and after you have navigated to the repository just type::$ conda env create -f environment.yml
The environment can be activated by typing::
$ conda activate game-python
and notebooks can also run in it. To do that you will have to select (from within
a running notebook) `Kernel` and under `Change Kernel` select the environment
`game-python`.Usage
-----The tutorial :code:`Game Theory and Python` can be used in a workshop environment or
through independent learning.**Workshop:** The material have been designed for a 2 hours workshop.
Suggested timetable:
- 0:00 - 0:15 Installation (guidelines are given above)
- 0:15 - 0:30 `An introduction to game theory and the Iterated Prisoner's
Dilemma `_
- 0:30 - 0:55 `Creating matches and
tournaments using Axelrod-Python `_
- 0:55 - 1:20 `Writing strategies and contributing to Axelrod-Python `_
- 1:20 - 1:50 `Playing against strategies of the Iterated Prisoner's Dilemma `_
- 1:50 - 2:00 Closing remarks and wrapping upIn a workshop
environment we suggest that the instructor has familiarized themselves with the
written parts of the tutorial beforehand. For each notebook it is advised that
the instructor gives a mini presentation to the topic followed by them typing
out/running the material while the participants follow in their own machines.
The instructor should encourage the participants to try the exercises of each
notebook alone or with other participants. Before moving to the next notebook
the instructor should encourage a discussion amongst everyone regarding the
results of the exercises each had and their interpretation.**Independent Learning:** An independent learner should aim to spend 2 hour on the material.
Suggested timetable:
- 0:00 - 0:15 Installation (guidelines are given above)
- 0:15 - 0:30 `An introduction to game theory and the Iterated Prisoner's
Dilemma `_
- 0:30 - 1:00 `Creating matches and
tournaments using Axelrod-Python `_
- 1:00 - 1:30 `Writing strategies and contributing to Axelrod-Python `_
- 1:30 - 2:00 `Playing against strategies of the Iterated Prisoner's Dilemma `_If the tutorial is being followed by an
individual learner, we suggest that the learner reads the written parts of
each notebook followed by running the tutorial and completing the exercises.
The individual should take some time to reflect on the results of each
notebook and their interpretation.Contributions
-------------All contributions are welcome! This may include communicating ideas for new sections,
letting us know about bugs, and code contributions.Events
------This tutorial has been used in the following events:
- `PyCon Namibia 2017 `_
Have you used this tutorial in an event you hosted or participated? Please do let
me know by either contacting `me `_ or feel free to
open a `pr` adding your event to this list.License
-------The code in this repository, including all code samples in the notebooks listed above,
is released under the `MIT license `_.