Direct multiple shooting (numerical optimal control)












2












$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










share|cite|improve this question











$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


















2












$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










share|cite|improve this question











$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
















2












2








2





$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










share|cite|improve this question











$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






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








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




















  • $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












1 Answer
1






active

oldest

votes


















0












$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.






share|cite|improve this answer









$endgroup$













    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    0












    $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.






    share|cite|improve this answer









    $endgroup$


















      0












      $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.






      share|cite|improve this answer









      $endgroup$
















        0












        0








        0





        $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.






        share|cite|improve this answer









        $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.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Jan 25 at 16:57









        Michael SparapanyMichael Sparapany

        1666




        1666






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            Npm cannot find a required file even through it is in the searched directory