Memory-Efficient Dynamic Programming for Learning Optimal Bayesian Networks

Brandon Malone, Changhe Yuan, and Eric A. Hansen


We describe a memory-efficient implementation of a dynamic programming algorithm for learning the optimal structure of a Bayesian network from training data. The algorithm leverages the layered structure of the dynamic programming graphs representing the recursive decomposition of the problem to reduce the memory requirements of the algorithm from $O(n2^n)$ to $O(C(n, n/2))$, where $C(n, n/2)$ is the binomial coefficient. Experimental results show that the approach runs up to an order of magnitude faster and scales to datasets with more variables than previous approaches.



author = {Brandon Malone and Changhe Yuan and Eric A. Hansen},
title = {Memory-Efficient Dynamic Programming for Learning Optimal {B}ayesian Networks},
booktitle = {Proceedings of the 25th AAAI Conference on Artificial Intelligence (AAAI-11)},
year = {2011},
pages = {1057--1062},
address = {San Francisco, CA}