Algebraic Dynamic Programming over general data structures Article in BMC Bioinformatics (December 2015)