From 7cccc60e3a3047b1a8d5a3a1f0a4fe1033655282 Mon Sep 17 00:00:00 2001 From: Amiel Date: Wed, 3 Dec 2025 23:32:42 +0100 Subject: [PATCH 1/6] change max to min --- ext/JuMPModels/bioreactor.jl | 2 +- ext/JuMPModels/glider.jl | 2 +- ext/JuMPModels/insurance.jl | 2 +- ext/JuMPModels/jackson.jl | 2 +- ext/JuMPModels/rocket.jl | 2 +- ext/JuMPModels/space_shuttle.jl | 2 +- ext/OptimalControlModels/bioreactor.jl | 2 +- ext/OptimalControlModels/glider.jl | 2 +- ext/OptimalControlModels/insurance.jl | 2 +- ext/OptimalControlModels/jackson.jl | 2 +- ext/OptimalControlModels/rocket.jl | 2 +- ext/OptimalControlModels/space_shuttle.jl | 2 +- ext/OptimalControlModels_s/glider_s.jl | 2 +- ext/OptimalControlModels_s/insurance_s.jl | 2 +- ext/OptimalControlModels_s/jackson_s.jl | 2 +- ext/OptimalControlModels_s/rocket_s.jl | 2 +- ext/OptimalControlModels_s/space_shuttle_s.jl | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ext/JuMPModels/bioreactor.jl b/ext/JuMPModels/bioreactor.jl index 6af6d128..aa2d27e7 100644 --- a/ext/JuMPModels/bioreactor.jl +++ b/ext/JuMPModels/bioreactor.jl @@ -132,7 +132,7 @@ function OptimalControlProblems.bioreactor( ) # objective - @objective(model, Max, 0.5 * Δt * sum(dc[k] + dc[k - 1] for k in 1:N)) + @objective(model, Min, -0.5 * Δt * sum(dc[k] + dc[k - 1] for k in 1:N)) return model end diff --git a/ext/JuMPModels/glider.jl b/ext/JuMPModels/glider.jl index 871f0545..164600a7 100644 --- a/ext/JuMPModels/glider.jl +++ b/ext/JuMPModels/glider.jl @@ -131,7 +131,7 @@ function OptimalControlProblems.glider( ) # objective - @objective(model, Max, x[N]) + @objective(model, Min, -x[N]) return model end diff --git a/ext/JuMPModels/insurance.jl b/ext/JuMPModels/insurance.jl index eaf82573..c73c7a28 100644 --- a/ext/JuMPModels/insurance.jl +++ b/ext/JuMPModels/insurance.jl @@ -148,7 +148,7 @@ function OptimalControlProblems.insurance( ) # objective - @objective(model, Max, 0.5 * Δt * sum(dc[i] + dc[i - 1] for i in 1:N)) + @objective(model, Min, -0.5 * Δt * sum(dc[i] + dc[i - 1] for i in 1:N)) return model end diff --git a/ext/JuMPModels/jackson.jl b/ext/JuMPModels/jackson.jl index f0e02b92..84966d6c 100644 --- a/ext/JuMPModels/jackson.jl +++ b/ext/JuMPModels/jackson.jl @@ -109,7 +109,7 @@ function OptimalControlProblems.jackson( ) # objective - @objective(model, Max, x₃[N]) + @objective(model, Min, -x₃[N]) return model end diff --git a/ext/JuMPModels/rocket.jl b/ext/JuMPModels/rocket.jl index 369ec84d..96a043d4 100644 --- a/ext/JuMPModels/rocket.jl +++ b/ext/JuMPModels/rocket.jl @@ -119,7 +119,7 @@ function OptimalControlProblems.rocket( ) # objective - @objective(model, Max, h[N]) + @objective(model, Min, -h[N]) return model end diff --git a/ext/JuMPModels/space_shuttle.jl b/ext/JuMPModels/space_shuttle.jl index a0d239b9..0479eebf 100644 --- a/ext/JuMPModels/space_shuttle.jl +++ b/ext/JuMPModels/space_shuttle.jl @@ -230,7 +230,7 @@ function OptimalControlProblems.space_shuttle( end ) - @objective(model, Max, θ[N]) + @objective(model, Min, -θ[N]) return model end diff --git a/ext/OptimalControlModels/bioreactor.jl b/ext/OptimalControlModels/bioreactor.jl index f2fdfe50..779b46e9 100644 --- a/ext/OptimalControlModels/bioreactor.jl +++ b/ext/OptimalControlModels/bioreactor.jl @@ -78,7 +78,7 @@ function OptimalControlProblems.bioreactor( (μ2 - u(t) * β) * b(t), ] - ∫(μ2 * b(t) / (β + c)) → max + ∫(μ2 * b(t) / (β + c)) → min end # METHANE PROBLEM diff --git a/ext/OptimalControlModels/glider.jl b/ext/OptimalControlModels/glider.jl index e74e18c2..dd9464f4 100644 --- a/ext/OptimalControlModels/glider.jl +++ b/ext/OptimalControlModels/glider.jl @@ -90,7 +90,7 @@ function OptimalControlProblems.glider( ż(t) == dynamics(x(t), vx(t), vy(t), cL(t)) # objective - x(tf) → max + x(tf) → min end function dynamics(x, vx, vy, cL) diff --git a/ext/OptimalControlModels/insurance.jl b/ext/OptimalControlModels/insurance.jl index 29f70d3e..f58aab7d 100644 --- a/ext/OptimalControlModels/insurance.jl +++ b/ext/OptimalControlModels/insurance.jl @@ -108,7 +108,7 @@ function OptimalControlProblems.insurance( ẋ(t) == [(1 - γ * (t - t0) * vprime / dUdR(t)) * h(t), h(t), (1 + σ) * I(t) * fx] # objective - ∫(U(t) * fx) → max + ∫(U(t) * fx) → min end # initial guess diff --git a/ext/OptimalControlModels/jackson.jl b/ext/OptimalControlModels/jackson.jl index 1f599dff..97d56a41 100644 --- a/ext/OptimalControlModels/jackson.jl +++ b/ext/OptimalControlModels/jackson.jl @@ -71,7 +71,7 @@ function OptimalControlProblems.jackson( (1 - u(t)) * k3 * b(t), ] - x[3](tf) → max + x[3](tf) → min end # initial guess diff --git a/ext/OptimalControlModels/rocket.jl b/ext/OptimalControlModels/rocket.jl index c3dda7fa..8f734cde 100644 --- a/ext/OptimalControlModels/rocket.jl +++ b/ext/OptimalControlModels/rocket.jl @@ -81,7 +81,7 @@ function OptimalControlProblems.rocket( ẋ(t) == dynamics(h(t), v(t), m(t), T(t)) # objective - h(tf) → max + h(tf) → min end # dynamics diff --git a/ext/OptimalControlModels/space_shuttle.jl b/ext/OptimalControlModels/space_shuttle.jl index 3f02759a..d2f53616 100644 --- a/ext/OptimalControlModels/space_shuttle.jl +++ b/ext/OptimalControlModels/space_shuttle.jl @@ -139,7 +139,7 @@ function OptimalControlProblems.space_shuttle( ẋ(t) == dynamics(x(t), u(t)) # objective - θ(tf) → max + θ(tf) → min end # dynamics diff --git a/ext/OptimalControlModels_s/glider_s.jl b/ext/OptimalControlModels_s/glider_s.jl index 07bc9329..33a5ccaf 100644 --- a/ext/OptimalControlModels_s/glider_s.jl +++ b/ext/OptimalControlModels_s/glider_s.jl @@ -100,7 +100,7 @@ function OptimalControlProblems.glider_s( ∂(vy)(t) == (L * vx(t) - D * w) / (m * v) - g # objective - x(tf) → max + x(tf) → min end # initial guess diff --git a/ext/OptimalControlModels_s/insurance_s.jl b/ext/OptimalControlModels_s/insurance_s.jl index 48d61edb..f1cb508b 100644 --- a/ext/OptimalControlModels_s/insurance_s.jl +++ b/ext/OptimalControlModels_s/insurance_s.jl @@ -110,7 +110,7 @@ function OptimalControlProblems.insurance_s( ∂(x₃)(t) == (1 + σ) * I(t) * fx # objective - ∫(U(t) * fx) → max + ∫(U(t) * fx) → min end # initial guess diff --git a/ext/OptimalControlModels_s/jackson_s.jl b/ext/OptimalControlModels_s/jackson_s.jl index 31b0454c..4f00763a 100644 --- a/ext/OptimalControlModels_s/jackson_s.jl +++ b/ext/OptimalControlModels_s/jackson_s.jl @@ -69,7 +69,7 @@ function OptimalControlProblems.jackson_s( ∂(x₂)(t) == u(t) * (k1 * a(t) - k2 * b(t)) - (1 - u(t)) * k3 * b(t) ∂(x₃)(t) == (1 - u(t)) * k3 * b(t) - x₃(tf) → max + x₃(tf) → min end # initial guess diff --git a/ext/OptimalControlModels_s/rocket_s.jl b/ext/OptimalControlModels_s/rocket_s.jl index bf092dba..fdc51754 100644 --- a/ext/OptimalControlModels_s/rocket_s.jl +++ b/ext/OptimalControlModels_s/rocket_s.jl @@ -85,7 +85,7 @@ function OptimalControlProblems.rocket_s( ∂(m)(t) == -T(t) / c # objective - h(tf) → max + h(tf) → min end # initial guess diff --git a/ext/OptimalControlModels_s/space_shuttle_s.jl b/ext/OptimalControlModels_s/space_shuttle_s.jl index 2edf1ac6..df194213 100644 --- a/ext/OptimalControlModels_s/space_shuttle_s.jl +++ b/ext/OptimalControlModels_s/space_shuttle_s.jl @@ -158,7 +158,7 @@ function OptimalControlProblems.space_shuttle_s( (v / (r * cos(θ(t)))) * cos(γ(t)) * sin(ψ(t)) * sin(θ(t)) # objective - θ(tf) → max + θ(tf) → min end # initial guess: linear interpolation for h, v, gamma (NB. t0 = 0), constant for the rest From 5167d25b331f8aac3bffc0f57c2c9adcf3066232 Mon Sep 17 00:00:00 2001 From: Amiel Date: Thu, 4 Dec 2025 17:53:29 +0100 Subject: [PATCH 2/6] correction max to min --- ext/JuMPModels/bioreactor.jl | 2 ++ ext/OptimalControlModels/bioreactor.jl | 2 +- ext/OptimalControlModels/glider.jl | 2 +- ext/OptimalControlModels/insurance.jl | 2 +- ext/OptimalControlModels/jackson.jl | 2 +- ext/OptimalControlModels/rocket.jl | 2 +- ext/OptimalControlModels/space_shuttle.jl | 2 +- ext/OptimalControlModels_s/glider_s.jl | 2 +- ext/OptimalControlModels_s/insurance_s.jl | 2 +- ext/OptimalControlModels_s/jackson_s.jl | 2 +- ext/OptimalControlModels_s/rocket_s.jl | 2 +- ext/OptimalControlModels_s/space_shuttle_s.jl | 2 +- 12 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ext/JuMPModels/bioreactor.jl b/ext/JuMPModels/bioreactor.jl index aa2d27e7..8054552e 100644 --- a/ext/JuMPModels/bioreactor.jl +++ b/ext/JuMPModels/bioreactor.jl @@ -136,3 +136,5 @@ function OptimalControlProblems.bioreactor( return model end + + diff --git a/ext/OptimalControlModels/bioreactor.jl b/ext/OptimalControlModels/bioreactor.jl index 779b46e9..3f32d976 100644 --- a/ext/OptimalControlModels/bioreactor.jl +++ b/ext/OptimalControlModels/bioreactor.jl @@ -78,7 +78,7 @@ function OptimalControlProblems.bioreactor( (μ2 - u(t) * β) * b(t), ] - ∫(μ2 * b(t) / (β + c)) → min + -∫(μ2 * b(t) / (β + c)) → min end # METHANE PROBLEM diff --git a/ext/OptimalControlModels/glider.jl b/ext/OptimalControlModels/glider.jl index dd9464f4..d91059be 100644 --- a/ext/OptimalControlModels/glider.jl +++ b/ext/OptimalControlModels/glider.jl @@ -90,7 +90,7 @@ function OptimalControlProblems.glider( ż(t) == dynamics(x(t), vx(t), vy(t), cL(t)) # objective - x(tf) → min + -x(tf) → min end function dynamics(x, vx, vy, cL) diff --git a/ext/OptimalControlModels/insurance.jl b/ext/OptimalControlModels/insurance.jl index f58aab7d..cde80d28 100644 --- a/ext/OptimalControlModels/insurance.jl +++ b/ext/OptimalControlModels/insurance.jl @@ -108,7 +108,7 @@ function OptimalControlProblems.insurance( ẋ(t) == [(1 - γ * (t - t0) * vprime / dUdR(t)) * h(t), h(t), (1 + σ) * I(t) * fx] # objective - ∫(U(t) * fx) → min + -∫(U(t) * fx) → min end # initial guess diff --git a/ext/OptimalControlModels/jackson.jl b/ext/OptimalControlModels/jackson.jl index 97d56a41..6b8225f3 100644 --- a/ext/OptimalControlModels/jackson.jl +++ b/ext/OptimalControlModels/jackson.jl @@ -71,7 +71,7 @@ function OptimalControlProblems.jackson( (1 - u(t)) * k3 * b(t), ] - x[3](tf) → min + -x[3](tf) → min end # initial guess diff --git a/ext/OptimalControlModels/rocket.jl b/ext/OptimalControlModels/rocket.jl index 8f734cde..f98ac7c4 100644 --- a/ext/OptimalControlModels/rocket.jl +++ b/ext/OptimalControlModels/rocket.jl @@ -81,7 +81,7 @@ function OptimalControlProblems.rocket( ẋ(t) == dynamics(h(t), v(t), m(t), T(t)) # objective - h(tf) → min + -h(tf) → min end # dynamics diff --git a/ext/OptimalControlModels/space_shuttle.jl b/ext/OptimalControlModels/space_shuttle.jl index d2f53616..2d6e6d25 100644 --- a/ext/OptimalControlModels/space_shuttle.jl +++ b/ext/OptimalControlModels/space_shuttle.jl @@ -139,7 +139,7 @@ function OptimalControlProblems.space_shuttle( ẋ(t) == dynamics(x(t), u(t)) # objective - θ(tf) → min + -θ(tf) → min end # dynamics diff --git a/ext/OptimalControlModels_s/glider_s.jl b/ext/OptimalControlModels_s/glider_s.jl index 33a5ccaf..59cd87e7 100644 --- a/ext/OptimalControlModels_s/glider_s.jl +++ b/ext/OptimalControlModels_s/glider_s.jl @@ -100,7 +100,7 @@ function OptimalControlProblems.glider_s( ∂(vy)(t) == (L * vx(t) - D * w) / (m * v) - g # objective - x(tf) → min + -x(tf) → min end # initial guess diff --git a/ext/OptimalControlModels_s/insurance_s.jl b/ext/OptimalControlModels_s/insurance_s.jl index f1cb508b..eba437c0 100644 --- a/ext/OptimalControlModels_s/insurance_s.jl +++ b/ext/OptimalControlModels_s/insurance_s.jl @@ -110,7 +110,7 @@ function OptimalControlProblems.insurance_s( ∂(x₃)(t) == (1 + σ) * I(t) * fx # objective - ∫(U(t) * fx) → min + -∫(U(t) * fx) → min end # initial guess diff --git a/ext/OptimalControlModels_s/jackson_s.jl b/ext/OptimalControlModels_s/jackson_s.jl index 4f00763a..b92adcaf 100644 --- a/ext/OptimalControlModels_s/jackson_s.jl +++ b/ext/OptimalControlModels_s/jackson_s.jl @@ -69,7 +69,7 @@ function OptimalControlProblems.jackson_s( ∂(x₂)(t) == u(t) * (k1 * a(t) - k2 * b(t)) - (1 - u(t)) * k3 * b(t) ∂(x₃)(t) == (1 - u(t)) * k3 * b(t) - x₃(tf) → min + -x₃(tf) → min end # initial guess diff --git a/ext/OptimalControlModels_s/rocket_s.jl b/ext/OptimalControlModels_s/rocket_s.jl index fdc51754..d2a339d3 100644 --- a/ext/OptimalControlModels_s/rocket_s.jl +++ b/ext/OptimalControlModels_s/rocket_s.jl @@ -85,7 +85,7 @@ function OptimalControlProblems.rocket_s( ∂(m)(t) == -T(t) / c # objective - h(tf) → min + -h(tf) → min end # initial guess diff --git a/ext/OptimalControlModels_s/space_shuttle_s.jl b/ext/OptimalControlModels_s/space_shuttle_s.jl index df194213..f1469e0a 100644 --- a/ext/OptimalControlModels_s/space_shuttle_s.jl +++ b/ext/OptimalControlModels_s/space_shuttle_s.jl @@ -158,7 +158,7 @@ function OptimalControlProblems.space_shuttle_s( (v / (r * cos(θ(t)))) * cos(γ(t)) * sin(ψ(t)) * sin(θ(t)) # objective - θ(tf) → min + -θ(tf) → min end # initial guess: linear interpolation for h, v, gamma (NB. t0 = 0), constant for the rest From e7798ed1489400b6ce20e16d63db808ea42a8019 Mon Sep 17 00:00:00 2001 From: Amiel Date: Thu, 4 Dec 2025 18:23:50 +0100 Subject: [PATCH 3/6] cancel steering --- ext/JuMPModels/steering.jl | 3 ++- ext/MetaData/steering.jl | 2 +- ext/OptimalControlModels/steering.jl | 3 ++- ext/OptimalControlModels_s/steering_s.jl | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ext/JuMPModels/steering.jl b/ext/JuMPModels/steering.jl index cd40af69..786fc3a3 100644 --- a/ext/JuMPModels/steering.jl +++ b/ext/JuMPModels/steering.jl @@ -26,7 +26,7 @@ julia> model = OptimalControlProblems.steering(JuMPBackend(); N=200) # References - Problem formulation available at: https://github.com/MadNLP/COPSBenchmark.jl/blob/main/src/steering.jl -""" + function OptimalControlProblems.steering( ::JuMPBackend, args...; @@ -121,3 +121,4 @@ function OptimalControlProblems.steering( return model end +""" \ No newline at end of file diff --git a/ext/MetaData/steering.jl b/ext/MetaData/steering.jl index a86796a8..f5b11cab 100644 --- a/ext/MetaData/steering.jl +++ b/ext/MetaData/steering.jl @@ -14,4 +14,4 @@ steering_meta = OrderedDict( x₃_tf=45, x₄_tf=0, ), -) +) \ No newline at end of file diff --git a/ext/OptimalControlModels/steering.jl b/ext/OptimalControlModels/steering.jl index 36aeabff..4e0f2932 100644 --- a/ext/OptimalControlModels/steering.jl +++ b/ext/OptimalControlModels/steering.jl @@ -22,7 +22,7 @@ julia> using OptimalControlProblems julia> docp = OptimalControlProblems.steering(OptimalControlBackend(); N=500); ``` -""" + function OptimalControlProblems.steering( ::OptimalControlBackend, description::Symbol...; @@ -100,3 +100,4 @@ function OptimalControlProblems.steering( return docp end +""" \ No newline at end of file diff --git a/ext/OptimalControlModels_s/steering_s.jl b/ext/OptimalControlModels_s/steering_s.jl index c78da787..2bd3ac70 100644 --- a/ext/OptimalControlModels_s/steering_s.jl +++ b/ext/OptimalControlModels_s/steering_s.jl @@ -22,7 +22,7 @@ julia> using OptimalControlProblems julia> docp = OptimalControlProblems.steering(OptimalControlBackend(); N=500); ``` -""" + function OptimalControlProblems.steering_s( ::OptimalControlBackend, description::Symbol...; @@ -100,3 +100,4 @@ function OptimalControlProblems.steering_s( return docp end +""" \ No newline at end of file From 566a7c504eb1eae0ede7c4a58badf034cdb31924 Mon Sep 17 00:00:00 2001 From: Amiel Date: Thu, 4 Dec 2025 18:41:15 +0100 Subject: [PATCH 4/6] try to remove steering --- test/runtests.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/runtests.jl b/test/runtests.jl index 2e41616b..84180e87 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,6 +35,7 @@ problems_to_exclude = [ :insurance, :robot, :space_shuttle, + :steering, ] list_of_problems = setdiff(list_of_problems, problems_to_exclude) From b8201923d7b10af769150cfa362471464d83e127 Mon Sep 17 00:00:00 2001 From: Amiel Date: Fri, 5 Dec 2025 12:21:16 +0100 Subject: [PATCH 5/6] fix doc --- docs/problems.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/problems.jl b/docs/problems.jl index 7c89890d..c569aaee 100644 --- a/docs/problems.jl +++ b/docs/problems.jl @@ -425,7 +425,7 @@ end function generate_documentation_problems(; draft::Union{Bool,Nothing}=nothing, exclude_from_draft::Vector{Symbol}=Symbol[] ) - problems_list = problems() + problems_list = filter(p -> p != :steering, problems()) problems_pages = map(p -> joinpath("problems", string(p) * ".md"), problems_list) # reset problems directory From 78722be23389cdb53b7b4e167073b5dde0771aef Mon Sep 17 00:00:00 2001 From: Amiel Date: Fri, 5 Dec 2025 12:52:22 +0100 Subject: [PATCH 6/6] try to fix doc --- docs/problems.jl | 2 +- ext/JuMPModels/steering.jl | 3 +-- ext/OptimalControlModels/steering.jl | 5 ++--- ext/OptimalControlModels_s/steering_s.jl | 5 ++--- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/docs/problems.jl b/docs/problems.jl index c569aaee..7c89890d 100644 --- a/docs/problems.jl +++ b/docs/problems.jl @@ -425,7 +425,7 @@ end function generate_documentation_problems(; draft::Union{Bool,Nothing}=nothing, exclude_from_draft::Vector{Symbol}=Symbol[] ) - problems_list = filter(p -> p != :steering, problems()) + problems_list = problems() problems_pages = map(p -> joinpath("problems", string(p) * ".md"), problems_list) # reset problems directory diff --git a/ext/JuMPModels/steering.jl b/ext/JuMPModels/steering.jl index 786fc3a3..cd40af69 100644 --- a/ext/JuMPModels/steering.jl +++ b/ext/JuMPModels/steering.jl @@ -26,7 +26,7 @@ julia> model = OptimalControlProblems.steering(JuMPBackend(); N=200) # References - Problem formulation available at: https://github.com/MadNLP/COPSBenchmark.jl/blob/main/src/steering.jl - +""" function OptimalControlProblems.steering( ::JuMPBackend, args...; @@ -121,4 +121,3 @@ function OptimalControlProblems.steering( return model end -""" \ No newline at end of file diff --git a/ext/OptimalControlModels/steering.jl b/ext/OptimalControlModels/steering.jl index 4e0f2932..fc52cbe0 100644 --- a/ext/OptimalControlModels/steering.jl +++ b/ext/OptimalControlModels/steering.jl @@ -22,7 +22,7 @@ julia> using OptimalControlProblems julia> docp = OptimalControlProblems.steering(OptimalControlBackend(); N=500); ``` - +""" function OptimalControlProblems.steering( ::OptimalControlBackend, description::Symbol...; @@ -99,5 +99,4 @@ function OptimalControlProblems.steering( ) return docp -end -""" \ No newline at end of file +end \ No newline at end of file diff --git a/ext/OptimalControlModels_s/steering_s.jl b/ext/OptimalControlModels_s/steering_s.jl index 2bd3ac70..f5e3018d 100644 --- a/ext/OptimalControlModels_s/steering_s.jl +++ b/ext/OptimalControlModels_s/steering_s.jl @@ -22,7 +22,7 @@ julia> using OptimalControlProblems julia> docp = OptimalControlProblems.steering(OptimalControlBackend(); N=500); ``` - +""" function OptimalControlProblems.steering_s( ::OptimalControlBackend, description::Symbol...; @@ -99,5 +99,4 @@ function OptimalControlProblems.steering_s( ) return docp -end -""" \ No newline at end of file +end \ No newline at end of file