Multi-scale surface roughness optimization through genetic algorithms