Direct multiple shooting (numerical optimal control)
$begingroup$
please, Iam currently implementing direct multiple shooting method* and I need one simple but fundamental concept answered:
When I want to provide not only objective funtion value (result of ODE integrator), but as well derivatives (for the NLP solver), for the control parameters it is just sensitivity analysis of said ODE.
But what about the parameters, that arise in direct multiple shooting from the discretization of the beginning points of the path (state and ccost trajectory)? What should I tell the solver about derivation of the cost by these parameters?
Of course, I managed to run the multiple shooting algorithm in matlab, but now I want to add the derivatives of the ODE in respect to control parameters.
(Note to say, that this question does not depend on the implementation or on the problem itself.)
Is it sufficient to set them to zero? These parameters are not free, they are just numerical-clever-thingies and their values are just bound using equality constraints.
*Brief description of direct multiple shooting, if you know the method by another name:
It is numeric method of discretization for optimal control problems.
We have an ODE and control function. By translating this to NonLinear Programming problem, we can solve the original problem.
-Direct Single shooting does just this, just discretizes (at certain timepoints) the control function and calls a routine for NLP using the parameters of the discretized function as parameters to optimize against. (And the Cost function is just solved using ODE solver that gets these parameters.)
-Direct multiple shooting is somewhat clever. When computing the ODE (for calculating the cost function), it gets not only the parameters of the discretized control function, but also the beginning points, where to begin the integration of the ODE. AND at the same time, the method says to the NLP optimizer - use equivality constraints to keep theese parameters (beginnings of the trajectiories) equal to endings of just the trajectory, that was computed at the previous time slot.
Exactly as described, for example, in https://workspace.imperial.ac.uk/people/Public/chemicalengineering/b.chachuat/ic-32_secured.pdf
nonlinear-optimization numerical-optimization optimal-control
$endgroup$
add a comment |
$begingroup$
please, Iam currently implementing direct multiple shooting method* and I need one simple but fundamental concept answered:
When I want to provide not only objective funtion value (result of ODE integrator), but as well derivatives (for the NLP solver), for the control parameters it is just sensitivity analysis of said ODE.
But what about the parameters, that arise in direct multiple shooting from the discretization of the beginning points of the path (state and ccost trajectory)? What should I tell the solver about derivation of the cost by these parameters?
Of course, I managed to run the multiple shooting algorithm in matlab, but now I want to add the derivatives of the ODE in respect to control parameters.
(Note to say, that this question does not depend on the implementation or on the problem itself.)
Is it sufficient to set them to zero? These parameters are not free, they are just numerical-clever-thingies and their values are just bound using equality constraints.
*Brief description of direct multiple shooting, if you know the method by another name:
It is numeric method of discretization for optimal control problems.
We have an ODE and control function. By translating this to NonLinear Programming problem, we can solve the original problem.
-Direct Single shooting does just this, just discretizes (at certain timepoints) the control function and calls a routine for NLP using the parameters of the discretized function as parameters to optimize against. (And the Cost function is just solved using ODE solver that gets these parameters.)
-Direct multiple shooting is somewhat clever. When computing the ODE (for calculating the cost function), it gets not only the parameters of the discretized control function, but also the beginning points, where to begin the integration of the ODE. AND at the same time, the method says to the NLP optimizer - use equivality constraints to keep theese parameters (beginnings of the trajectiories) equal to endings of just the trajectory, that was computed at the previous time slot.
Exactly as described, for example, in https://workspace.imperial.ac.uk/people/Public/chemicalengineering/b.chachuat/ic-32_secured.pdf
nonlinear-optimization numerical-optimization optimal-control
$endgroup$
$begingroup$
I still need to know the answer so I did post it on scicomp.stackexchange.com/questions/20223/…
$endgroup$
– Khaj
Jul 19 '15 at 5:46
add a comment |
$begingroup$
please, Iam currently implementing direct multiple shooting method* and I need one simple but fundamental concept answered:
When I want to provide not only objective funtion value (result of ODE integrator), but as well derivatives (for the NLP solver), for the control parameters it is just sensitivity analysis of said ODE.
But what about the parameters, that arise in direct multiple shooting from the discretization of the beginning points of the path (state and ccost trajectory)? What should I tell the solver about derivation of the cost by these parameters?
Of course, I managed to run the multiple shooting algorithm in matlab, but now I want to add the derivatives of the ODE in respect to control parameters.
(Note to say, that this question does not depend on the implementation or on the problem itself.)
Is it sufficient to set them to zero? These parameters are not free, they are just numerical-clever-thingies and their values are just bound using equality constraints.
*Brief description of direct multiple shooting, if you know the method by another name:
It is numeric method of discretization for optimal control problems.
We have an ODE and control function. By translating this to NonLinear Programming problem, we can solve the original problem.
-Direct Single shooting does just this, just discretizes (at certain timepoints) the control function and calls a routine for NLP using the parameters of the discretized function as parameters to optimize against. (And the Cost function is just solved using ODE solver that gets these parameters.)
-Direct multiple shooting is somewhat clever. When computing the ODE (for calculating the cost function), it gets not only the parameters of the discretized control function, but also the beginning points, where to begin the integration of the ODE. AND at the same time, the method says to the NLP optimizer - use equivality constraints to keep theese parameters (beginnings of the trajectiories) equal to endings of just the trajectory, that was computed at the previous time slot.
Exactly as described, for example, in https://workspace.imperial.ac.uk/people/Public/chemicalengineering/b.chachuat/ic-32_secured.pdf
nonlinear-optimization numerical-optimization optimal-control
$endgroup$
please, Iam currently implementing direct multiple shooting method* and I need one simple but fundamental concept answered:
When I want to provide not only objective funtion value (result of ODE integrator), but as well derivatives (for the NLP solver), for the control parameters it is just sensitivity analysis of said ODE.
But what about the parameters, that arise in direct multiple shooting from the discretization of the beginning points of the path (state and ccost trajectory)? What should I tell the solver about derivation of the cost by these parameters?
Of course, I managed to run the multiple shooting algorithm in matlab, but now I want to add the derivatives of the ODE in respect to control parameters.
(Note to say, that this question does not depend on the implementation or on the problem itself.)
Is it sufficient to set them to zero? These parameters are not free, they are just numerical-clever-thingies and their values are just bound using equality constraints.
*Brief description of direct multiple shooting, if you know the method by another name:
It is numeric method of discretization for optimal control problems.
We have an ODE and control function. By translating this to NonLinear Programming problem, we can solve the original problem.
-Direct Single shooting does just this, just discretizes (at certain timepoints) the control function and calls a routine for NLP using the parameters of the discretized function as parameters to optimize against. (And the Cost function is just solved using ODE solver that gets these parameters.)
-Direct multiple shooting is somewhat clever. When computing the ODE (for calculating the cost function), it gets not only the parameters of the discretized control function, but also the beginning points, where to begin the integration of the ODE. AND at the same time, the method says to the NLP optimizer - use equivality constraints to keep theese parameters (beginnings of the trajectiories) equal to endings of just the trajectory, that was computed at the previous time slot.
Exactly as described, for example, in https://workspace.imperial.ac.uk/people/Public/chemicalengineering/b.chachuat/ic-32_secured.pdf
nonlinear-optimization numerical-optimization optimal-control
nonlinear-optimization numerical-optimization optimal-control
edited Nov 26 '14 at 16:06
Khaj
asked Nov 26 '14 at 15:59
KhajKhaj
1115
1115
$begingroup$
I still need to know the answer so I did post it on scicomp.stackexchange.com/questions/20223/…
$endgroup$
– Khaj
Jul 19 '15 at 5:46
add a comment |
$begingroup$
I still need to know the answer so I did post it on scicomp.stackexchange.com/questions/20223/…
$endgroup$
– Khaj
Jul 19 '15 at 5:46
$begingroup$
I still need to know the answer so I did post it on scicomp.stackexchange.com/questions/20223/…
$endgroup$
– Khaj
Jul 19 '15 at 5:46
$begingroup$
I still need to know the answer so I did post it on scicomp.stackexchange.com/questions/20223/…
$endgroup$
– Khaj
Jul 19 '15 at 5:46
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
The link you gave appears to be dead so I'm not 100% familiar with some of these terms, however I believe I know what's going on.
These extra multiple shooting parameters your dealing with are a result of the method used, not the problem formulation. Since you haven't transcribed the problem definition to anything new, the additional parameters used in multiple shooting should not appear in the cost function. If this is the case, then the sensitivities are just 0. You can probably stop here.
HOWEVER, why are these new multiple shooting parameters used as explicit NLP parameters in the first place? If something is not a free parameter, then the NLP solver shouldn't have direct access to it. NLP solvers can usually handle equality constraints without any problem. For a trajectory $gamma$ that has been sliced up into ${gamma_1, gamma_2, cdots, gamma_n}$ each with time segments ${[tau_0, tau_1], [tau_1, tau_2], cdots, [tau_{n-1}, tau_n]}$ in multiple shooting, extra boundary conditions become
$$
gamma_i(tau_{i}) - gamma_{i+1}(tau_i) = 0 ; forall ; i in [1,n-1]
$$
If you append these extra boundary conditions directly as nonlinear equality constraints, you shouldn't have a problem, but again the link you gave was dead.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f1039782%2fdirect-multiple-shooting-numerical-optimal-control%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
The link you gave appears to be dead so I'm not 100% familiar with some of these terms, however I believe I know what's going on.
These extra multiple shooting parameters your dealing with are a result of the method used, not the problem formulation. Since you haven't transcribed the problem definition to anything new, the additional parameters used in multiple shooting should not appear in the cost function. If this is the case, then the sensitivities are just 0. You can probably stop here.
HOWEVER, why are these new multiple shooting parameters used as explicit NLP parameters in the first place? If something is not a free parameter, then the NLP solver shouldn't have direct access to it. NLP solvers can usually handle equality constraints without any problem. For a trajectory $gamma$ that has been sliced up into ${gamma_1, gamma_2, cdots, gamma_n}$ each with time segments ${[tau_0, tau_1], [tau_1, tau_2], cdots, [tau_{n-1}, tau_n]}$ in multiple shooting, extra boundary conditions become
$$
gamma_i(tau_{i}) - gamma_{i+1}(tau_i) = 0 ; forall ; i in [1,n-1]
$$
If you append these extra boundary conditions directly as nonlinear equality constraints, you shouldn't have a problem, but again the link you gave was dead.
$endgroup$
add a comment |
$begingroup$
The link you gave appears to be dead so I'm not 100% familiar with some of these terms, however I believe I know what's going on.
These extra multiple shooting parameters your dealing with are a result of the method used, not the problem formulation. Since you haven't transcribed the problem definition to anything new, the additional parameters used in multiple shooting should not appear in the cost function. If this is the case, then the sensitivities are just 0. You can probably stop here.
HOWEVER, why are these new multiple shooting parameters used as explicit NLP parameters in the first place? If something is not a free parameter, then the NLP solver shouldn't have direct access to it. NLP solvers can usually handle equality constraints without any problem. For a trajectory $gamma$ that has been sliced up into ${gamma_1, gamma_2, cdots, gamma_n}$ each with time segments ${[tau_0, tau_1], [tau_1, tau_2], cdots, [tau_{n-1}, tau_n]}$ in multiple shooting, extra boundary conditions become
$$
gamma_i(tau_{i}) - gamma_{i+1}(tau_i) = 0 ; forall ; i in [1,n-1]
$$
If you append these extra boundary conditions directly as nonlinear equality constraints, you shouldn't have a problem, but again the link you gave was dead.
$endgroup$
add a comment |
$begingroup$
The link you gave appears to be dead so I'm not 100% familiar with some of these terms, however I believe I know what's going on.
These extra multiple shooting parameters your dealing with are a result of the method used, not the problem formulation. Since you haven't transcribed the problem definition to anything new, the additional parameters used in multiple shooting should not appear in the cost function. If this is the case, then the sensitivities are just 0. You can probably stop here.
HOWEVER, why are these new multiple shooting parameters used as explicit NLP parameters in the first place? If something is not a free parameter, then the NLP solver shouldn't have direct access to it. NLP solvers can usually handle equality constraints without any problem. For a trajectory $gamma$ that has been sliced up into ${gamma_1, gamma_2, cdots, gamma_n}$ each with time segments ${[tau_0, tau_1], [tau_1, tau_2], cdots, [tau_{n-1}, tau_n]}$ in multiple shooting, extra boundary conditions become
$$
gamma_i(tau_{i}) - gamma_{i+1}(tau_i) = 0 ; forall ; i in [1,n-1]
$$
If you append these extra boundary conditions directly as nonlinear equality constraints, you shouldn't have a problem, but again the link you gave was dead.
$endgroup$
The link you gave appears to be dead so I'm not 100% familiar with some of these terms, however I believe I know what's going on.
These extra multiple shooting parameters your dealing with are a result of the method used, not the problem formulation. Since you haven't transcribed the problem definition to anything new, the additional parameters used in multiple shooting should not appear in the cost function. If this is the case, then the sensitivities are just 0. You can probably stop here.
HOWEVER, why are these new multiple shooting parameters used as explicit NLP parameters in the first place? If something is not a free parameter, then the NLP solver shouldn't have direct access to it. NLP solvers can usually handle equality constraints without any problem. For a trajectory $gamma$ that has been sliced up into ${gamma_1, gamma_2, cdots, gamma_n}$ each with time segments ${[tau_0, tau_1], [tau_1, tau_2], cdots, [tau_{n-1}, tau_n]}$ in multiple shooting, extra boundary conditions become
$$
gamma_i(tau_{i}) - gamma_{i+1}(tau_i) = 0 ; forall ; i in [1,n-1]
$$
If you append these extra boundary conditions directly as nonlinear equality constraints, you shouldn't have a problem, but again the link you gave was dead.
answered Jan 25 at 16:57
Michael SparapanyMichael Sparapany
1666
1666
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f1039782%2fdirect-multiple-shooting-numerical-optimal-control%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
I still need to know the answer so I did post it on scicomp.stackexchange.com/questions/20223/…
$endgroup$
– Khaj
Jul 19 '15 at 5:46