Hydroelectric generation scheduling with an effective differential dynamic programming algorithm | Synapse