Optimisation in ‘Self-modelling’ Complex Adaptive Systems