On Non-serial Dynamic Programming