- All Implemented Interfaces:
- AllocationModel, Initialisable, Displayable
public class GeneticAlgorithmAllocationModel
extends OptimizationAllocationModel<org.volante.abm.optimization.GeneticAlgorithmAllocationModel.LandUseChromosome>
Uses a GA to optimise land use allocation
It's probably pretty slow - haven't done much to optimize it, more a proof of concept - but it
should work. It starts optimising from the current land use, so with some tweaking of the number
of generations and the mutation rate you can choose either to gradually improve the current
solution, or start from an entirely random sample.
The fitness function is: * calculate potential supply for a set of agents * calculate the
Regional residual demand at this level of supply * convert this to a per-cell value (i.e. divide
by ncells) * calculate Utility for this according to the competitiveness function. This gives a
negative utility, we try to increase as much as possible.