A Hybrid Artificial Neural Network-Dynamic Programming Approach to Unit Commitment