![View YADPF - Yet Another Dynamic Programming Function on File Exchange](https://camo.githubusercontent.com/bc0a55e41ffd89fcd2884fb1a8b8f7d3eeaf1671627b6c764f3232a28a96addf/68747470733a2f2f7777772e6d617468776f726b732e636f6d2f6d61746c616263656e7472616c2f696d616765732f6d61746c61622d66696c652d65786368616e67652e737667)
Yet Another Dynamic Programming Function
This is a generic implementation of dynamic programming algorithm and value iteration algorithm.
This is sitll an ongoing work. Please check here for a more detailed document.
Also, please check our published paper here.
The GNU Octave compatible version can be found here.
Ex.1 : Sutton's mountain car problem
![](https://github.com/auralius/yadpf/raw/main/docs/mountain_car.gif)
![](https://github.com/auralius/yadpf/raw/main/docs/mountain_car_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/mountain_car_2.png)
Ex.2 : Mass-damper system (double integrator)
![](https://github.com/auralius/yadpf/raw/main/docs/mass_damper_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/mass_damper_2.png)
![](https://github.com/auralius/yadpf/raw/main/docs/mass_damper_3.png)
Ex.3 : Mass-damper system with minimum integral of squared error
![](https://github.com/auralius/yadpf/raw/main/docs/time_optimal_mass_damper.png)
Ex.4 : Lotka-Volterra fishery
![](https://github.com/auralius/yadpf/raw/main/docs/fishery_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/fishery_2.png)
Ex.5 : Dubin's car, making a full circle
![](https://github.com/auralius/yadpf/raw/main/docs/dubins_car.png)
![](https://github.com/auralius/yadpf/raw/main/docs/dubins_car.gif)
Ex.6 : Find shortest path on a terrain
![](https://github.com/auralius/yadpf/raw/main/docs/terrain_shortest_path_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/terrain_shortest_path_2.png)
![](https://github.com/auralius/yadpf/raw/main/docs/two_oven_problem_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/two_oven_problem_2.png)
![](https://github.com/auralius/yadpf/raw/main/docs/two_tank_problem_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/two_tank_problem_2.png)
Ex.9 : Piecewise hanging mass-spring system
![](https://github.com/auralius/yadpf/raw/main/docs/piecewise_mass_spring_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/piecewise_mass_spring_2.png)
Ex.10 : Van der Pol equation with a control input
![](https://github.com/auralius/yadpf/raw/main/docs/time_optimal_van_der_pol_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/time_optimal_van_der_pol_2.png)
Ex.11 : Stablizaton of an F8 aircraft
![](https://github.com/auralius/yadpf/raw/main/docs/f8_aircraft.png)
Ex.12 : Single tank with two inputs
![](https://github.com/auralius/yadpf/raw/main/docs/single_tank_with_two_inputs.png)
Ex.13 : Single mass with two inputs
![](https://github.com/auralius/yadpf/raw/main/docs/two_input_mass.png)
Ex.14 : Two-wheeled differential drive robot
![](https://github.com/auralius/yadpf/raw/main/docs/wheeled_robot.png)
![](https://github.com/auralius/yadpf/raw/main/docs/wheeled_robot.gif)
Ex.15 : Optimal storage strategy (single integrator)
![](https://github.com/auralius/yadpf/raw/main/docs/optimal_storage_strategy_1.png)
![](https://github.com/auralius/yadpf/raw/main/docs/optimal_storage_strategy_2.png)
Ex.20 : Stirred tank mixer
![](https://github.com/auralius/yadpf/raw/main/docs/stirred_tank_mixer.png)
Ex.22 : Vertical ascend rocket
![](https://github.com/auralius/yadpf/raw/main/docs/vertical_ascend_rocket.png)