In this project, we propose three efficient and effective algorithms to find optimal weighted sparse decision trees, with application to decision-making problems and causal inference.