https://markus-x-buchholz.medium.com/solving-dynamic-optimization-problems-by-psopt-solver-in-c-3cea25cb5ed4