The Selfish Gene Algorithm: a New Evolutionary Optimization Strategy