#agentbased#
##Basics##
This package provides a framework for agent-based evolutionary dynamics with Java. It provides a set of interfaces and a few implementations. So far the only process implemented is Wright-Fisher with assortment (as laid out in this paper), but the framework is extensible (pull requests welcome), and you could as well implement any other process you need.
Agent-based essentially means that fitness is a random variable, and that your individuals can be complex objects, with a state and methods of their own. In a typicall application you have to provide the following implementations.
-
Agent.
-
AgentBasedPayoffCalculator.
-
AgentBasedPopulationFactory
-
AgentMutator
Implementing the interfaces above should be enough to have a working simulation.
Then, a process and a simulation should be built, typically as follows:
this.process = new AgentBasedWrightFisherProcessWithAssortment(population, payoffCalculator,
mapping, intensityOfSelection,mutator, r);
simulation = new AgentBasedSimulation(this.process);
Simulation the provides methods to estimate fixation probabilities, stationary distribution, and average population payoffs throughout a run. Please check the Javadocs for specifics.
##Building##
You can use maven with the provided pom.xml.
##Extending it##
Extend to other processes by implementing:
AgentBasedEvolutionaryProcess