Trains machine learning strategies for the IPD with evolutionary and particle swarm algorithms, including neural networks and finite state machines