{"id":13699425,"url":"https://github.com/jkoendev/optimal-control-literature-software","last_synced_at":"2025-05-04T16:34:09.535Z","repository":{"id":82842732,"uuid":"182310899","full_name":"jkoendev/optimal-control-literature-software","owner":"jkoendev","description":"List of literature and software for optimal control and numerical optimization.","archived":false,"fork":false,"pushed_at":"2019-08-17T10:05:57.000Z","size":53,"stargazers_count":68,"open_issues_count":0,"forks_count":13,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-08-03T20:04:23.521Z","etag":null,"topics":["automatic-differentiation","literature","machine-learning","model-predictive-control","optimal-control","software","trajectory-optimization"],"latest_commit_sha":null,"homepage":"","language":null,"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/jkoendev.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}},"created_at":"2019-04-19T18:47:28.000Z","updated_at":"2024-07-11T04:37:40.000Z","dependencies_parsed_at":"2023-04-22T15:58:38.775Z","dependency_job_id":null,"html_url":"https://github.com/jkoendev/optimal-control-literature-software","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkoendev%2Foptimal-control-literature-software","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkoendev%2Foptimal-control-literature-software/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkoendev%2Foptimal-control-literature-software/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkoendev%2Foptimal-control-literature-software/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jkoendev","download_url":"https://codeload.github.com/jkoendev/optimal-control-literature-software/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224398825,"owners_count":17304661,"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":["automatic-differentiation","literature","machine-learning","model-predictive-control","optimal-control","software","trajectory-optimization"],"created_at":"2024-08-02T20:00:32.836Z","updated_at":"2024-11-13T05:30:58.896Z","avatar_url":"https://github.com/jkoendev.png","language":null,"funding_links":[],"categories":["\u003cspan id=\"head29\"\u003e3.3. Optimal Control\u003c/span\u003e"],"sub_categories":["3.2.5. First Order Methods"],"readme":"# Literature and list of software packages for optimal control \n\nThe list includes resources to the following topics: Automatic/algorithmic differentiation, optimal control, model-predictive control (MPC), numerical optimization, modeling for control.  The list will be updated regularly, create a pull request if you'd like to contribute.\n\n## Literature\n\n### Lectures\n\n* Lecture notes: Numerical Optimal Control by Prof. Moritz Diehl [[course](https://www.syscop.de/teaching/ss2017/numerical-optimal-control)] [[pdf](https://www.syscop.de/files/2017ss/NOC/script/book-NOCSE.pdf)]\n* Tutorial series by Metthew Kelly, [[web](http://www.matthewpeterkelly.com/tutorials/index.html)]\n* Liberzon, Daniel. Calculus of variations and optimal control theory: a concise introduction. Princeton University Press, 2011. [[pre-print](http://liberzon.csl.illinois.edu/teaching/cvoc.pdf)]\n* Videos of lectures at the University of Florida from the Spring of 2012. Dr. Anil V. Rao. [[web](http://www.anilvrao.com/Optimal-Control-Videos.html)]\n\n### Books\n\n* Bertsekas, Dimitri P., et al. Dynamic programming and optimal control. Vol. 1. No. 2. Belmont, MA: Athena scientific, 1995.\n* Betts, J., Practical Methods for Optimal Control and Estimation Using Nonlinear Programming, SIAM, 2010\n* Biegler, L. T., Nonlinear Programming, SIAM, 2010\n* Model Predictive Control: Theory, Computation, and Design, 2nd Edition by Rawlings, Mayne, Diehl [[web](https://sites.engineering.ucsb.edu/~jbraw/mpc/)] [[pdf](https://sites.engineering.ucsb.edu/~jbraw/mpc/MPC-book-2nd-edition-2nd-printing.pdf)]\n\n### Survey papers\n\n* F. Topputo and C. Zhang, “Survey of Direct Transcription for Low-Thrust Space Trajectory Optimization with Applications,” Abstract and Applied Analysis, vol. 2014, Article ID 851720, 15 pages, 2014. [[edited](https://www.hindawi.com/journals/aaa/2014/851720/)\n\n\n## Software \n\n### High level optimal control modeling languages and optimal control software\n\n- Acado [[github](https://github.com/acado/acado)] [[web](http://acado.github.io/)]\n- acados [[github](https://github.com/acados/acados)] [[web](http://acados.org/)]\n- BOCOP [[web](https://www.bocop.org/)]\n- Control toolbox, domain specific for robotics [[bitbucket](https://bitbucket.org/adrlab/ct/wiki/Home)]\n- Dymos: Open-source Optimal Control for Multidisciplinary Systems [[github](https://github.com/OpenMDAO/dymos)]\n- ICLOCS2 [[github](https://github.com/ImperialCollegeLondon/ICLOCS/)] [[web](http://www.ee.ic.ac.uk/ICLOCS/)] \n- Modelica with JModelica [[web](https://jmodelica.org/)] \n- OpenOCL [[github](https://github.com/OpenOCL/OpenOCL)] [[web](https://openocl.org/)] \n- PSOPT [[github](https://github.com/PSOPT/psopt)] [[web](http://www.psopt.org/)]\n- Pyomo with .DAE extension [[github](https://github.com/Pyomo/pyomo)] [[web](http://www.pyomo.org/)] \n- towr, domain specific for legged robots [[github](https://github.com/ethz-adrl/towr)]\n- AMPL with TACO extension (commercial)\n- DIDO (commercial)\n- Forces (commercial)\n- GPOPS2 (commercial)\n- gPROMS (commercial)\n- Mujoco, domain specific for robotics/contact, simulator (commercial)\n- Optimica, Dymola (commercial)\n- PROPT (commercial)\n\n### High level numerical optimization modeling languages\n\n- CasADi [[github](https://github.com/casadi/casadi)] [[web](https://web.casadi.org/)]\n- CVX, convex [[web](http://cvxr.com/cvx/)]\n- Pyomo [[github](https://github.com/Pyomo/pyomo)] [[web](http://www.pyomo.org/)] \n- Yalmip [[github](https://github.com/yalmip/YALMIP)] [[web](https://yalmip.github.io/)] \n\n### Numerical optimization solver \n\n#### Non-linear programming\n\n- Ipopt [[github](https://github.com/coin-or/Ipopt)]\n- CONOPT (commercial)\n- Forces (commercial)\n- KNITRO (commercial)\n- Matlab fmincon (commercial)\n- Snopt (commercial)\n- WORHP (commercial)\n\n\n#### Linear, quadratic, convex programming\n\n- ECOS [[github](https://github.com/embotech/ecos)]\n- hpipm [[github](https://github.com/giaf/hpipm)]\n- Sedumi [[github](https://github.com/sqlp/sedumi)]\n- qpDUNES [[github](https://github.com/jfrasch/qpDUNES)]\n- qpOASES [[coin-or](https://projects.coin-or.org/qpOASES)]\n- SDPT3 [[web](http://www.math.nus.edu.sg/~mattohkc/sdpt3.html)]\n- CPLEX (commercial)\n- Gruobi (commercial)\n- MINOS (commercial)\n- Mosek (commercial)\n\n#### Integer, mixed-integer programming\n\n- Bonmin\n\n## Automatic differentiation\n\n- CasADi [[github](https://github.com/casadi/casadi)] [[web](https://web.casadi.org/)]\n- CppAD [[github](https://github.com/coin-or/CppAD)]\n- CppADCodeGen [[github](https://github.com/joaoleal/CppADCodeGen)]\n- JuliaDiff [[github](https://github.com/JuliaDiff/)] [[web](http://www.juliadiff.org/)]\n\n## Other material\n\n- Summer School on Numerical Optimization Software (includes a long list of solvers in the slides, see repository), Hans D. Mittelmann, Moritz Diehl [[web](https://www.syscop.de/teaching/2016/summer-school-on-numerical-optimization-software)] [[repository](https://gitlab.syscop.de/teaching/NOS_public)]\n- Decision tree, benchmarks for optimization software, Hans D. Mittelmann [[web](http://plato.asu.edu/)]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkoendev%2Foptimal-control-literature-software","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjkoendev%2Foptimal-control-literature-software","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkoendev%2Foptimal-control-literature-software/lists"}