Extensions of Dynamic Programming, Machine Learning, Discrete Optimization