A cloud model based fruit fly optimization algorithm