1.9 KiB
1.9 KiB
ipd.py
Dependencies
The program doesn't use any dependencies other than Python itself, so as long as you have Python installed, you're good to go.
Usage
Run the program using python ipd.py -h
for the following usage information:
usage: ipd.py [-h] [-s SIZE] [-g NUM_GENERATIONS] [-a GIVE_UP_AFTER]
[-i NUM_ITERATIONS] [-p SELECTION_PROPORTION]
[-c CROSSOVER_RATE] [-m MUTATION_RATE] [-o OUTPUT_FILE]
[-n NOISE_LEVEL]
Program to evolve strategies for the Iterated Prisoner's Dilemma
options:
-h, --help show this help message and exit
-s, --size SIZE Initial population size
-g, --num-generations NUM_GENERATIONS
Number of generations
-a, --give-up-after GIVE_UP_AFTER
Number of generations to give up after if best
solution has remained unchanged
-i, --num-iterations NUM_ITERATIONS
Number of iterations of the dilemma between two agents
-p, --selection-proportion SELECTION_PROPORTION
The proportion of the population to be selected
(survive) on each generation
-c, --crossover-rate CROSSOVER_RATE
Probability of a selected pair of solutions to
sexually reproduce
-m, --mutation-rate MUTATION_RATE
Probability of a selected offspring to undergo
mutation
-o, --output-file OUTPUT_FILE
File to write TSV results to
-n, --noise-level NOISE_LEVEL
The probability that the opponent's last move will be
misrepresented to the agent
An example run of the program with default values would simply be python ipd.py
.
To change the fitness function used, comment / uncomment lines in the list of possible strategies in the fitness()
function.