Approximate dynamic programming methods for advance patient scheduling