Boundary value problem in optimization formulation

11 views (last 30 days)
I have to solve an optimization problem and it has a boundary value problem(BVP) in it. As we know the BVP takes quite a bit of time to solve. This been a part of an optimization problem, I am kind of asking the system to solve BVP for every function and this is taking a lot of time.
One idea I have is to make the boundary conditions as equality constraints and solve Ordinary differential equation instead of BVP, as ode45 is much quicker. Will this help in speeding up the solution? I have tried implementing this but didn't get a valid solution.
Any other ideas to speed the solutions also are welcome.
Thank you

Accepted Answer

John D'Errico
John D'Errico on 30 Aug 2016
Edited: John D'Errico on 30 Aug 2016
Of course, I recall that ODE45 has no capability to apply equality constraints at the end point, as that would make it a BVP solver, which it is not. So that you failed to gain a solution is not in the least surprising.
So, perhaps you mean that you tried to specify the boundary prediction from the ODE solver as a constraint in the optimization. Could this worK? Possibly, IF you coded it all correctly. Would it be any gain? Probably not, even if you managed to do it all right.
It probably won't work as well as just using the BVP solver as it is designed to work. It may make your optimization less stable. And because you are adding one or more NONLINEAR equality constraints to the optimization, it will certainly slow down the search process. This is because the optimizer needs to ride along a curved manifold in the solution space that represents the equality constraint. Yes, the locus of of parameters that satisfies the boundary constraint will almost certainly be some curved surface in the parameter space. And that takes extra work in the optimization. Probably more function evaluations. And since it will need to differentiate the constraint too, EXTRA ODE45 calls will be needed. On top of all that, making ODE45 into a BVP solver will introduce extra variables into the optimization problem, so the optimizer will be doing more work.
Sorry, but there is no such thing as a free lunch here.
  1 Comment
UNK
UNK on 31 Aug 2016
Edited: UNK on 31 Aug 2016
Hi John, Thanks for the elaborate response. So in essence you are claiming that I may not be able to get any improvement. One more thing is how can we give a good objective function for this kind of problem. Because the optimization variables are intial guesses to ode45 whereas the end boundary conditions(in this particular case) are not directly dependent on variables.
When I run with only nonlinear constraints (which has BV conditions) and an arbitrary objective function (like minimize the variables), I get the solution because there is no change in objective function. The equality constraints are not satisfied to the desired tolerance. Any suggestions will be really appreciated.

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with Optimization Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!