-
Notifications
You must be signed in to change notification settings - Fork 62
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
Interpolating between nodes in the graph #820
Comments
This is exactly what the objective state stuff does: The improvement over existing is that it interpolates during training as well as during evaluation. The downside is that it is more computationally challenging, and there are some limitations about what price process you can use, etc. We don't have a way to implement interpolation for normal graphs. One suggestion would be to dump the cuts to file and manually build a set of new subproblems with the correct interpolation weights. One reason I haven't added this is that, although it seems simple in theory if you have a Markovian policy graph that represents a univariate price process, SDDP.jl supports much more general graphs, and all we see is a collection of nodes. We know what happens within a node, what |
I've looked at the objective state but have not implemented it because my price process is nonparametric so I have generated scenarios outside the model. Also setting the required parameters for the objective state (especially the lipschitz constant) is something I haven't been able to define yet. I think using more nodes in the policy graph will perform well for the out-of-sample simulation; just at the expense of more computation. Thank you! |
👍 Re computation time: we now support multi-threading, which is particularly effective with graphs with many nodes: |
Ha nice! regarding parallelization; I've tried SDDP.Asynchronous() in the past but didn't get good solutions. I'll try SDDP.Threaded(). |
Yeah I should remove mention of |
I'm tempted to close this as "won't-fix". I don't think I plan to add interpolation between nodes. I've removed mention of Asynchronous from the docs and replaced it with Threaded in #821: https://sddp.dev/dev/guides/improve_computational_performance/#Parallelism |
I just want to note that I tested SDDP.Threaded(), and it was much faster with good solution. Thanks |
No problem 😄 |
Hi Oscar, how come? Did the asynchronous scheme fail to show a tangible benefit? Does this mean SDDP.threaded() strictly uses the synchronous scheme? |
In my experience, the
The new
The downside of the |
Thank you for the thorough clarification! |
Originally posted by @Remmy195 in #707
The text was updated successfully, but these errors were encountered: