Theory and application of mathematical programming