General-purpose optimisation with the Self-Organising Migrating