The Unit Commitment Problem