mathematical programming pdf notes