{"id":13621318,"url":"https://github.com/auralius/yadpf","last_synced_at":"2025-08-01T06:30:51.457Z","repository":{"id":148342748,"uuid":"409444353","full_name":"auralius/yadpf","owner":"auralius","description":"A generic implementation of dynamic programming algorithm and value iteration algorithm.","archived":false,"fork":false,"pushed_at":"2024-11-25T14:53:02.000Z","size":21572,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-25T15:46:03.757Z","etag":null,"topics":["dynamic-optimization","dynamic-programming","octave","optimal-control","optimizations","value-iteration"],"latest_commit_sha":null,"homepage":"https://auralius.github.io/yadpf/","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/auralius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-09-23T04:12:57.000Z","updated_at":"2024-11-25T14:54:29.000Z","dependencies_parsed_at":"2023-05-19T20:15:24.767Z","dependency_job_id":null,"html_url":"https://github.com/auralius/yadpf","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auralius%2Fyadpf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auralius%2Fyadpf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auralius%2Fyadpf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/auralius%2Fyadpf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/auralius","download_url":"https://codeload.github.com/auralius/yadpf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228339326,"owners_count":17904513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dynamic-optimization","dynamic-programming","octave","optimal-control","optimizations","value-iteration"],"created_at":"2024-08-01T21:01:04.664Z","updated_at":"2024-12-05T17:10:01.998Z","avatar_url":"https://github.com/auralius.png","language":"MATLAB","readme":"[![View YADPF - Yet Another Dynamic Programming Function on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://www.mathworks.com/matlabcentral/fileexchange/100149-yadpf-yet-another-dynamic-programming-function)\n\n# YADPF\n\nYet Another Dynamic Programming Function\n\nThis is a generic implementation of dynamic programming algorithm and value iteration algorithm.\n\nThis is sitll an ongoing work. Please check [here](https://www.mathcha.io/editor/X9JLdiqLS21T1NJNX4h6BGODQSxG7zwUpZG7LM) for a more detailed document.\n\nAlso, please check our published paper [here](https://doi.org/10.1016/j.softx.2022.101001).\n\n__The GNU Octave__ compatible version can be found [here](https://github.com/auralius/yadpf/tree/octave).\n\n\n## Ex.1 : Sutton's mountain car problem\n\n![](https://github.com/auralius/yadpf/blob/main/docs/mountain_car.gif)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/mountain_car_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/mountain_car_2.png)\n\n\n## Ex.2 : Mass-damper system (double integrator)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/mass_damper_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/mass_damper_2.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/mass_damper_3.png)\n\n\n## Ex.3 : Mass-damper system with minimum integral of squared error \n\n![](https://github.com/auralius/yadpf/blob/main/docs/time_optimal_mass_damper.png)\n\n\n## Ex.4 : Lotka-Volterra fishery\n\n![](https://github.com/auralius/yadpf/blob/main/docs/fishery_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/fishery_2.png)\n\n\n## Ex.5 : Dubin's car, making a full circle\n\n![](https://github.com/auralius/yadpf/blob/main/docs/dubins_car.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/dubins_car.gif)\n\n\n## Ex.6 : Find shortest path on a terrain\n\n![](https://github.com/auralius/yadpf/blob/main/docs/terrain_shortest_path_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/terrain_shortest_path_2.png)\n\n\n## Ex.7 : Two-oven problem\n\n![](https://github.com/auralius/yadpf/blob/main/docs/two_oven_problem_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/two_oven_problem_2.png)\n\n\n## Ex.8 : Two-tank problem\n\n![](https://github.com/auralius/yadpf/blob/main/docs/two_tank_problem_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/two_tank_problem_2.png)\n\n\n## Ex.9 : Piecewise hanging mass-spring system\n\n![](https://github.com/auralius/yadpf/blob/main/docs/piecewise_mass_spring_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/piecewise_mass_spring_2.png)\n\n\n## Ex.10 : Van der Pol equation with a control input\n\n![](https://github.com/auralius/yadpf/blob/main/docs/time_optimal_van_der_pol_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/time_optimal_van_der_pol_2.png)\n\n\n## Ex.11 : Stablizaton of an F8 aircraft\n\n![](https://github.com/auralius/yadpf/blob/main/docs/f8_aircraft.png)\n\n\n## Ex.12 : Single tank with two inputs\n\n![](https://github.com/auralius/yadpf/blob/main/docs/single_tank_with_two_inputs.png)\n\n\n## Ex.13 : Single mass with two inputs\n\n![](https://github.com/auralius/yadpf/blob/main/docs/two_input_mass.png)\n\n\n## Ex.14 : Two-wheeled differential drive robot\n\n![](https://github.com/auralius/yadpf/blob/main/docs/wheeled_robot.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/wheeled_robot.gif)\n\n\n## Ex.15 : Optimal storage strategy (single integrator)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/optimal_storage_strategy_1.png)\n\n![](https://github.com/auralius/yadpf/blob/main/docs/optimal_storage_strategy_2.png)\n\n\n## Ex.20 : Stirred tank mixer\n\n![](https://github.com/auralius/yadpf/blob/main/docs/stirred_tank_mixer.png)\n\n\n## Ex.22 : Vertical ascend rocket\n\n![](https://github.com/auralius/yadpf/blob/main/docs/vertical_ascend_rocket.png)\n\n\n","funding_links":[],"categories":["Y"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauralius%2Fyadpf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fauralius%2Fyadpf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauralius%2Fyadpf/lists"}