Solving unit commitment problem using a novel version of harmony search algorithm