The Axelrod library in Python is a research tool for the Iterated Prisoner's Dilemma. I've contributed in a few ways including:
- Strategy refactoring Refactored old Fortran strategies to build up the repository of strategies.
- Hidden markov model Implemented a hidden Markov model framework for strategies, including an optimizer using a evolutionary algorithms and a partical swarm optimizer.
- Memory-length algorithm Created an algorithm to efficiently calculate memory-length of strategies represented as finite state machines.
Link