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

Feature request: Koopman expectation combined with collocation techniques #30

Open
ArnoStrouwen opened this issue Aug 30, 2020 · 4 comments

Comments

@ArnoStrouwen
Copy link
Member

Is it possible to combine the Koopman expectation method with collocation techniques defined in DiffEqFlux for very efficient stochastic optimal control?

@ChrisRackauckas
Copy link
Member

If by collocation techniques you mean SciML/ModelingToolkit.jl#562, that was just merged a few days ago and hasn't connected to the Koopman stuff yet, but the intention is to start bringing the Koopman into the same realm as these other tools.

@ArnoStrouwen
Copy link
Member Author

Yes, I was confused I meant the novel MTK collocation tools, not DiffEqFlux, those are only for curve fitting when you have data.

@ChrisRackauckas
Copy link
Member

No, you can use DiffEqFlux to solve optimal control problems (https://diffeqflux.sciml.ai/dev/examples/optimal_control/) or stochastic optimal control problems (https://neuralpde.sciml.ai/dev/examples/100_HJB/). But that's very "manual": you can mix those with Koopman by hand, but I don't think most users will. The higher level interface is MTK, and yes optimization of controls with uncertainty or process noise is definitely something we want to support in the high level interface, but this whole thing is quite new so it'll take some time to really build out of all the planned methods.

@ArnoStrouwen
Copy link
Member Author

I was specifically thinking about https://diffeqflux.sciml.ai/dev/examples/collocation/ when I was talking about DiffEqFlux only being about curve fitting, not in general.

In the examples you posted, it is in my opinion not only about them being very manual but it is also about single shooting vs methods that discretize the state, and then going for some sparse optimization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants