A novel firefly algorithm with self-adaptive step strategy. (28th June 2019)