Bridging Continuous and Discrete Optimization