Unit commitment using dynamic programming–an exhaustive working of both classical and stochastic approach