Multi-stage decision problems under uncertainty can be represented as influence diagrams that are converted into decision trees. These trees can then be solved using dynamic programming, if the optimal strategy within a given branch do not depend on the decisions in other non-overlapping branches. To address these shortfalls, we propose the Decision Programming approach, which can efficiently address this ‘no forgetting’ assumption and retain outcome distribution information. In this, we convert problems into equivalent mixed-integer linear programs that can be efficiently solved, including in the presence of multiple objectives, endogenous uncertainty, and other dependency conditions.