[Doc] User guide to the duals: every kind, constraint ↔ dual, direct ↔ indirect
Maintainer thường phản hồi trong vòng 1 ngày
@ocots đang làm issue này rồi.
Từ ngày 31/10/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Part of control-toolbox/CTFlows.jl#512 (tracking of the constraint duals), workstream C.
Goal
A user-side guide to the duals of a solution. It should show users everything they can get, how each dual relates to its constraint, and how the direct and the indirect methods meet. #1015 (the page on the convention) and #1016 (the sign examples) are parts of it. This issue is the guide that puts them together and shows off the feature.
What the guide should show
- Every kind of dual, read by its label with
dual(sol, ocp, :label): path (pure state, mixed), state box, control box, boundary, and variable box. For each kind: what it is (a function of time or a number), its sign, and how it appears inplot(sol). - The link between a constraint and its dual.
- An inequality has a nonnegative dual however it is written; an equality or a two-sided constraint has a signed dual (
SGN2,SGN3). - The dual is
0where the constraint is inactive and nonzero on a boundary arc. - The same constraint as a box or as a path constraint gives the same dual (
SGN5). - The labels: why naming a constraint matters, and what happens without a name.
- An inequality has a nonnegative dual however it is written; an equality or a two-sided constraint has a signed dual (
- The link between the direct and the indirect method.
- The same problem solved by
solveand rebuilt withFlow(ocp, law; constraint=:label, multiplier=μ): the same costate and the same duals, compared on one plot. - The dictionary between the
μof the maximum principle anddual. - What the indirect side computes by itself (control box, boundary duals by transversality) and what the user gives (
μof a state or mixed constraint). - Multi-phase solutions: the jumps of the duals at the switching times (#992).
- The same problem solved by
- What a dual tells about the solution: sensitivity, a check of the extremal, and an unknown dual (
PreconditionError) rather than a wrong0.
Depends on
The features of control-toolbox/CTFlows.jl#512, workstreams A and B. Each section can be written as soon as its feature is released. Each example should also be a test (#1034).
Related: #1014, #1015, #1016, #1034, #992, #968.
🤖 Generated with Claude Code
- Ngôn ngữ chính
- Julia
- Star
- 135
- Fork
- 11
- Merge trung bình
- 7 giờ 49 phút
- Pull request đã merge (30 ngày)
- 23
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của control-toolbox/OptimalControl.jl
-
[Doc] A pull request without the preview label announces a deployment that never happensCó thể đã có người làm @ocots đã nhận 1 ngày trước. Đang mởdocumentation
control-toolbox/OptimalControl.jl#1042 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Tests of the duals: every kind of constraint, direct vs indirect, pinned algorithmsCó thể đã có người làm @ocots đã nhận 7 ngày trước. Đang mở
control-toolbox/OptimalControl.jl#1034 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Doc] Examples for the sign convention of duals and costate (min/max, writing of constraints, direct vs indirect)Có thể đã có người làm @ocots đã nhận 16 ngày trước. Đang mở
control-toolbox/OptimalControl.jl#1016 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Documentation: sign conventions (min/max, p⁰, constraints, duals) and how they appear in a solutionCó thể đã có người làm @ocots đã nhận 18 ngày trước. Đang mởdocumentation
control-toolbox/OptimalControl.jl#1015 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Tests fail on Julia 1.13: keyword-only anonymous function in test/problems/goddard.jlCó thể đã có người làm @ocots đã nhận 20 ngày trước. Đang mở
control-toolbox/OptimalControl.jl#996 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của control-toolbox/OptimalControl.jl
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
lux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
erfinv(::Float16) and erfcinv(::Float16) are wrong for abs(x) <= 0.75 (erfinv(Float16(0)) == 0.2201)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
JuliaMath/SpecialFunctions.jl#571 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100