Discrete Optimization (Computer Science and Scientific Computing)