Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[docs] update should_i_use.md to remove optimal control #3623

Merged
merged 3 commits into from Dec 13, 2023
Merged

Conversation

odow
Copy link
Member

@odow odow commented Dec 12, 2023

Thoughts? Especially @pulsipher.

With tracing, we have a nice interface now. I don't see any reason to recommend people go elsewhere.

Here's an example of a model that is now much nicer to write #3622

Copy link

codecov bot commented Dec 12, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (9e2e263) 98.21% compared to head (597c21c) 98.14%.
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3623      +/-   ##
==========================================
- Coverage   98.21%   98.14%   -0.08%     
==========================================
  Files          43       43              
  Lines        5653     5651       -2     
==========================================
- Hits         5552     5546       -6     
- Misses        101      105       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@joaquimg
Copy link
Member

Maybe instead of removing the section completely, keep it, remove the references to other tools and add a link to a tutorial.

@odow
Copy link
Member Author

odow commented Dec 12, 2023

I don't know about keeping the links here. We don't provide links to alternatives for other problem types that JuMP supports. This section is in the "Why shouldn't I use JuMP" bit. And solving an optimal control problem is not a reason not to use JuMP.

I have a TODO to add a MPC tutorial: #2348 (comment)

People seem to be using (and enjoying) JuMP for optimal control problems:
https://discourse.julialang.org/t/setting-up-free-final-time-in-jump-optimization/107302/3

@pulsipher
Copy link
Contributor

Naturally, I like having the reference, but I understand the argument to remove it from the why not to use JuMP section.

Perhaps an alternative suggestion would be to add some references in the tutorials to relevant JuMP extensions (e.g., InfiniteOpt, SDDP, BilevelJuMP). For instance, it is straightforward to implement an optimal control problem that is discretized with a fixed time step that uses explicit/implicit Euler as demonstrated by existing/future JuMP tutorials; however, using a more complex discretization scheme (e.g., orthogonal collocation over finite elements) is nontrivial to implement. Thus, referring the user to InfiniteOpt to handle these more difficult cases would make sense and highlight that JuMP ecosystem has several useful extensions.

@odow
Copy link
Member Author

odow commented Dec 12, 2023

Added some suggestions #3625.

I think they are a much better way of suggesting relevant extensions. I doubt many people actually read the "when should I not use JuMP" and then followed the link to an extension.

Co-authored-by: Morten Piibeleht <morten.piibeleht@gmail.com>
@odow
Copy link
Member Author

odow commented Dec 13, 2023

Updated to refer to InfiniteOpt and BilevelJuMP in the tutorials.

@pulsipher
Copy link
Contributor

I approve of the changes and support this PR. I will also note that InfiniteOpt supports 2-stage stochastic programs like https://jump.dev/JuMP.jl/stable/tutorials/applications/two_stage_stochastic/.

@odow odow merged commit 6b0ef01 into master Dec 13, 2023
12 of 14 checks passed
@odow odow deleted the odow-patch-2 branch December 13, 2023 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants