dynamic programming checkpoint