Introduction to Mathematical Programming Methods