Adaptive and Natural Computing Algorithms by Ville Kolehmainen