“…Decision tree algorithms have a long history [17,18,19], but the vast majority of work on trees has used greedy induction [20,21] to avoid solving the NP-complete problem of finding an optimal tree [22]. However, greedy tree induction provides suboptimal trees, which has propelled research since the 1990s on mathematical optimization for finding optimal decision trees [4,23,24,25,26,27,28,29,30], as well as dynamic programming with branch-and-bound [31,32,33,34]. We refer readers to two recent reviews of this area [35,36].…”