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

Optimization-based shooting solutions #25

Open
ChrisRackauckas opened this issue Nov 1, 2017 · 5 comments
Open

Optimization-based shooting solutions #25

ChrisRackauckas opened this issue Nov 1, 2017 · 5 comments

Comments

@ChrisRackauckas
Copy link
Member

Using the parameter estimation functionality:

http://docs.juliadiffeq.org/latest/analysis/parameter_estimation.html#Parameter-Estimation-1

we can solve BVPs with more equations than solutions by changing problem_new_parameters

http://docs.juliadiffeq.org/latest/analysis/parameter_estimation.html#The-Problem-Generator-Function-1

to change the initial condition (and maybe some parameters) as part of the optimization, and then

http://docs.juliadiffeq.org/latest/analysis/parameter_estimation.html#Note-About-Loss-Functions-1

defining a loss function which is a sum of squares of the BVP condition residuals.

This would allow one to solve BVPs with more conditions than equations in a way that simply minimizes sum squared error.

@avik-pal
Copy link
Member

avik-pal commented Nov 3, 2023

Had a chat with @Vaibhavdixit02 about this recently. Once Optimization.jl has solvers for NLLS (SciML/Optimization.jl#622), the user can pass in any solver (say IPOPT) and we will be able to do an efficient multiple-shooting.

@ChrisRackauckas
Copy link
Member Author

One of the things we need to think about with NLLS is the ability to define equality and inequality constraints too, and then having the possibility to have the shooting loss be handled through equality constraints.

@Vaibhavdixit02
Copy link
Member

That can be handled when creating the OptimizationFunction from NLLS, I had it on my mind already 👍

@avik-pal
Copy link
Member

avik-pal commented Nov 4, 2023

Yes that is on my list of things to do as well. I know Frank and Flemming have a quantum mechanics problem where having that is vital.

I thing to consider is how do we propagate the information. Currently we have a BVProblem and based on that we construct everything. So there are 2 possibilities:

  1. Specialize the Multiple Shooting on a NLLS problem and the BVP effectively calls that routine
  2. Allow users to specify constraints into the BVP Formulation and propagate that information inth the NLLS Problem

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

4 participants