control-toolbox / control-toolbox/OptimalControlProblems.jl

[Roadmap] Update OptimalControlProblems for v2 and add new problems

Open
#257 0 comments 0 reactions 1 assignee Claimed by @ocots View on GitHub
roadmap
Dominant language
Julia
Stars
13
Forks
1
PR merge metrics
No merged PRs in 30d

Description

## Objective

Update OptimalControlProblems.jl for OptimalControl v2 compatibility and add new benchmark problems from the curated list of sources below.

## Context

OptimalControlProblems.jl provides a curated collection of benchmark optimal control problems. It needs to be updated for the v2 API, and new problems need to be added. This issue consolidates and supersedes [issue #92](https://github.com/control-toolbox/OptimalControlProblems.jl/issues/92).

## Problem sources

A non-exhaustive list of places to find benchmark optimal control problems:

- **[ICLOCS](http://www.ee.ic.ac.uk/ICLOCS/Examples.html)** — Imperial College London Optimal Control Software, example library
- **[COPS](https://www.mcs.anl.gov/~more/cops/bcops/bcops.html#CHILD_LINKS)** — Constrained Optimization Problem Set (Argonne)
- **[PSOPT](https://www.psopt.net/list-of-examples)** — PSOPT example list; see also the [PSOPT Application Examples Document](https://github.com/PSOPT/psopt/blob/master/doc/PSOPT_Application_Examples_Document_RR.pdf) and the [source examples](https://github.com/PSOPT/psopt/tree/master/examples)
- **[MINTOC](https://mintoc.de/index.php?title=Main_Page)** — Mintoc optimal control toolkit examples
- **[DYMOS](https://openmdao.github.io/dymos/index.html)** — Dymos (OpenMDAO) example library
- **[BOCOP](https://project.inria.fr/bocop/files/2017/05/Examples-BOCOP.pdf#page=16.11)** — BOCOP examples document
- **[Betts](http://www.digitalsats.com/reprints/Betts-2011-PracticalMethodsFor%20OptimalControlAnd%20EstimationUsingNonlinearProgramming_epdf.pub.pdf)** — *Practical Methods for Optimal Control and Estimation Using Nonlinear Programming*, second edition (Betts)

## Specific problems to add

- **MRI** — from issue #92
- **Kepler** — from issue #92
- **Swimmer** — see [swimmer.jl](https://github.com/control-toolbox/CTDirect.jl/blob/main/test/problems/swimmer.jl) and [swimmer2.jl](https://github.com/control-toolbox/CTDirect.jl/blob/main/test/problems/swimmer2.jl) (scalarised version) in CTDirect test problems
- Problems from the PSOPT examples that overlap with existing OptimalControlProblems could be updated/cross-referenced

## Why

A rich problem library is essential for benchmarking, testing, and tutorials. Keeping it up to date with the latest API ensures it remains useful for the community. The benchmarking paper (see [roadmap](https://github.com/orgs/control-toolbox/discussions/68#discussioncomment-17584843)) will rely on this collection.

## References

- [OptimalControlProblems.jl](https://github.com/control-toolbox/OptimalControlProblems.jl)
- [Issue #92](https://github.com/control-toolbox/OptimalControlProblems.jl/issues/92) (superseded, to be closed)
- [Roadmap comment](https://github.com/orgs/control-toolbox/discussions/68#discussioncomment-17584843)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.