Convex methods for approximate dynamic programming