Documentation: sign conventions (min/max, p⁰, constraints, duals) and how they appear in a solution
Los mantenedores suelen responder en 1 día
@ocots ya está trabajando en esto.
Desde el 21/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Summary
Add a page to the documentation that explains the sign conventions of the ecosystem and how they show up in a solution, once they are settled in the discussion control-toolbox/OptimalControl.jl#1014. This issue is the place for that page; it should not be written before the choices are made.
Related: control-toolbox/OptimalControl.jl#968 (documentation items waiting on other packages), control-toolbox/CTDirect.jl#639, control-toolbox/CTFlows.jl#472.
What the page should explain
minvsmax: the value ofp⁰, the Hamiltonian (with and without constraints), and whetherpand the duals change sign whenmin Jbecomesmax −J.- Inequality constraints:
g ≥ 0orc ≤ 0, the sign of the multiplier on each side, two-sided constraints, equalities. - What
dual(sol, ocp, :label)returns for each kind of constraint (path, box, boundary, variable box): sign, scaling (continuous-time density or raw NLP value), and its meaning at the first and last nodes. - The same constraint solved directly (
solve) and by an indirect method (Flow(ocp, law; constraint=:label, multiplier=μ)): how to read the duals on both sides, and the dictionary betweenμanddual. - Transversality and boundary constraints: the sign of
βand of the dual of a boundary constraint. - Which of these do not depend on the NLP solver (Ipopt, MadNLP).
Elements already available
- Probes of 2026-10-21 (closed-form problems; table in the discussion).
- The KKT derivation per scheme and the measurements in control-toolbox/CTDirect.jl#639.
- The existing section Formulation → Notation and conventions, to complete or to point to.
- A runnable probe such as
solution_duals.jl(see #968), extended with an indirect solve, so the page is checked by the documentation build.
Depends on
- Decision on the conventions: control-toolbox/OptimalControl.jl#1014
- CTDirect alignment: control-toolbox/CTDirect.jl#639
- Duals of
Flow(ocp, law): control-toolbox/CTFlows.jl#472
- Lenguaje dominante
- Julia
- Estrellas
- 135
- Forks
- 11
- Merge medio
- 7 h 49 min
- PR fusionados (30 d)
- 23
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de control-toolbox/OptimalControl.jl
-
[Doc] A pull request without the preview label announces a deployment that never happensPosiblemente ocupada @ocots la tomó hoy. Abiertodocumentation
control-toolbox/OptimalControl.jl#1042 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Doc] User guide to the duals: every kind, constraint ↔ dual, direct ↔ indirectPosiblemente ocupada @ocots la tomó hace 7 días. Abierto
control-toolbox/OptimalControl.jl#1035 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Tests of the duals: every kind of constraint, direct vs indirect, pinned algorithmsPosiblemente ocupada @ocots la tomó hace 7 días. Abierto
control-toolbox/OptimalControl.jl#1034 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Doc] Examples for the sign convention of duals and costate (min/max, writing of constraints, direct vs indirect)Posiblemente ocupada @ocots la tomó hace 15 días. Abierto
control-toolbox/OptimalControl.jl#1016 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Tests fail on Julia 1.13: keyword-only anonymous function in test/problems/goddard.jlPosiblemente ocupada @ocots la tomó hace 20 días. Abierto
control-toolbox/OptimalControl.jl#996 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de control-toolbox/OptimalControl.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
lux
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
erfinv(::Float16) and erfcinv(::Float16) are wrong for abs(x) <= 0.75 (erfinv(Float16(0)) == 0.2201)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
JuliaMath/SpecialFunctions.jl#571 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100