added Discrete Optimization