Skip to content

7 Direct Approaches to Continuous Optimal Control

Come from Chapter 13 in Numerical Optimal Control by Moritz Diehl and Sebastien Gros

Direct methods to continuous optimal control finitely parameterize the infinite dimensional decision variables, notably the controls α(t), s.t. the original problem is approximated by a finite dimensional nonlinear program (NLP). This NLP can then be addressed by structure exploiting numerical NLP solution methods. For this reason, the approach is often characterized as “First discretize, then optimize.”

The direct approach connects easily to all optimization methods developed in the continuous optimization community. Most successful direct methods even parameterize the problem such that the resulting NLP has the structure of a discrete time optimal control problem, such that all the techniques and structures about dynamic programming are applicable. For this reason, the current chapter is kept relatively short; its major aim is to outline the major concepts and vocabulary in the field.

We start by describing direct single shooting, direct multiple shooting, and direct collocation and a variant pseudospectral methods. We also discuss how sensitivities are computed in the context of shooting methods. The optimization problem formulation we address in this chapter typically read as (but are not limited to):

minx0,α0,x1,,αN1,xN0Tr(x(t),α(t))dt+g(x(T)) subject to x(0)x0=0,(initial value)x˙(t)f(x(t),α(t))=0,(system dynamics)s(x(t),α(t))0,(path constraints)b(x(T))0.(terminal constraints)

For many optimal control problems (OCPs), the system state derivatives x˙(t) are provided via an implicit function, or even via a Differential-Algebraic Equation (DAE). The methods presented hereafter are applicable to all these cases with some minor modifications. The direct methods differ in how they transcribe this problem into a finite NLP. The optimal control problem above has a fixed initial value, which simplifies in particular the single shooting method, but all concepts can in a straightforward way be generalized to other OCP formulations with free initial values.

7.1 Direct Single Shooting

All shooting methods use an embedded ODE or differential algebraic equations (DAE) solver in order to eliminate the continuous time dynamic system. They do so by first parameterizing the control function α(t), e.g. by polynomials, by piecewise constant functions, or, more generally, by piecewise polynomials. We denote the finite control parameters by the vector q, and the resulting control function by α(t,q).

The most widespread parameterization are piecewise constant controls, for which we choose a fixed time grid 0=t0<t1<<tN=T, and N parameters qiRnα,i=0,,N1, and then we set

α(t,q)=qk for t[tk,tk+1].

Thus, the dimension of the vector q=(q0,,qN1) is of dimension Nnu.

Single shooting is a sequential approach that calculate OCP recursively. In single shooting, we regard the states x(t) on [0,T] as dependent variables that are obtained by a forward integration of the dynamic system, starting at x0 and using the controls input α(t,q). We denote the resulting trajectory as x(t,q).

In order to discretize inequality path constraints, we choose a grid, typically the same as for the control discretization, at which we check the inequalities. Thus, in single shooting, we transcribe the optimal control problem into the following NLP, that is visualized in Figure 13.1.

minqRNnu0Tr(x(t,q),α(t,q))dt+g(x(T,q)) subject to s(x(ti,q),u(ti,q))0,i=0,,N1(path constraints)b(x(T,q))0.(terminal constraints)

NLP structure in single shooting

As the only variable of this NLP is the vector qRNnα that influences nearly all problem functions, the above problem can usually be solved by a dense NLP solver in a black-box fashion. As the problem functions and their derivatives are expensive to compute, while a small quadratic programming (QP) is cheap to solve, often Sequential Quadratic Programming (SQP) is used, e.g. the codes NPSOL or SNOPT. Let us first assume the Hessian needs not be computed but can be obtained e.g. by Broyden-Fletcher-Goldfarb-Shanno (BFGS) updates.

The computation of the derivatives can be done in different ways with a different complexity:

first, we can use forward derivatives, using finite differences or algorithmic differentiation. Taking the computational cost of integrating one time interval as one computational unit, this means that one complete forward integration costs N units. Given that the vector q has Nnα components, this means that the computation of all derivatives costs (Nnα+1)N units when implemented in the most straightforward way. This number can still be reduced by one half if we take into account that controls at the end of the horizon do not influence the first part of the trajectory. We might call this way the reduced derivative computation as it computes directly only the reduced quantities needed in each reduced QP.

Second, if the number of output quantities such as objective and inequality constraints is not big, we can use the principle of reverse automatic differentiation in order to generate the derivatives. In the extreme case that no inequality constraints are present and we only need the gradient of the objective, this gradient can cheaply be computed by reverse Algorithmic Differentiation (AD), as done in the so called gradient methods. Note that in this case the same adjoint differential equations of the indirect approach can be used for reverse computation of the gradient, but that in contrast to the indirect method we do not eliminate the controls, and we integrate the adjoint equations backwards in time. The complexity for one gradient computation is only 4N computational units. However, each additional state constraint necessitates a further backward sweep.

Third, in the case that we have chosen piecewise controls, as here, we might use the fact that after the piecewise control discretization we have basically transformed the continuous time OCP into a discrete time OCP (see next section). Then we can compute the derivatives with respect to both xi and qi on each interval separately, which costs (nx+nα+1) units. This means a total derivative computation cost of N(nx+nα+1) units. In contrast to the second (adjoint) approach, this approach can handle an arbitrary number of path inequality constraints, like the first one. Note that it has the same complexity that we obtain in the standard implementation of the multiple shooting approach, as explained next. We remark here already that both shooting methods can each implement all the above ways of derivative generation, but differ in one respect only, namely that single shooting is a sequential and multiple shooting a simultaneous(calculates all states and controls at the same time) approach.

Example 7.1

OCP formulation

Let us illustrate the single shooting method using the following simple OCP:

(13.1)minx(.),α(.)05x1(t)2+10x2(t)2+α(t)2dt subject to x˙1(t)=x1(t)x2(t)+α(t),x1(0)=0x˙2(t)=x1(t),x2(0)=1,α(t)1,x1(t)0.6,t[0,T],

The resulting solution is illustrated in Figure 13.1, together with the sparsity patterns of the Jacobian of the inequality constraint function, i.e.

qs(x(ti,q),u(ti,q)),

and the one of the Hessian of the Lagrange function.

single shooting

Figure 13.1: Solution to OCP (13.1) using a discretization based on single shooting, with N=20 and using a 4-steps Runge-Kutta integrator of order 4. The upper graph reports the states and input trajectories. The lower graphs report the sparsity pattern of the Jacobian of the inequality constraints in the resulting NLP and the sparsity pattern of the Hessian of the Lagrange function.

Nonlinearity propagation in direct single shooting

Unfortunately, direct single shooting often suffers from ill-conditioned problem. More specifically, when deploying single shooting in the context of direct optimal control a difficulty can arise from the nonlinearity of the "simulation" function x(t,q) with respect to the control inputs q for a large simulation time t. We illustrate this problem using the following example:

(13.2a)x˙1=10(x2x1)(13.2b)x˙2=x1(qx3)x2(13.2c)x˙3=x1x23x3

where x=(x1,x2,x3)R3 and qR is a constant control input. Note that the nonlinearities in this ODE result from apparently innocuous bilinear expressions. We are then interested in the relationship qx(t,q) for different values of t. The initial conditions of the simulation were selected as x(t)|t=0=(0,0,0) and q[18,38]. The resulting relationship is displayed in Fig. 13.2. One can observe that while the relationship is not very nonlinear for small integration times t, it becomes extremely nonlinear for large times t, even though the ODE under consideration here appears simple and mildly nonlinear.

nonlinear

Figure 13.2: Illustration of the propagation of nonlinearities in the simple dynamic system (13.2). One can observe that for a short integration time t=0.25 (first row), the relationship qx(t,q) is close to linear. However, as the integration time increases to t=1.33,2.41,3.5, the relationship qx(t,q) becomes extremely nonlinear. While the effect of integration time is not necessarily as dramatic as for this specific example, large integration times yield strong nonlinear relationship qx(t,q) for many nonlinear dynamics.

This example ought to warn the reader that the function x(t,q) resulting from the simulation of nonlinear dynamics can be extremely nonlinear. As a result, functions such as the constraints and cost function in the NLP resulting form the discretization of an optimal control problem via single-shooting can be themselves extremely nonlinear functions of the input sequence q. Because most NLP solvers proceed to find a candidate solution via taking successive linearization of the KKT conditions of the problem at hand, the presence of very nonlinear functions in the NLP problem typically invalidates these approximations outside of a very small neighborhood of the linearization point.

These observations entails that in practice, when using single-shooting, a very good initial guess for q is often required. For many problems, such an initial guess is very difficult to construct. As in the context of indirect methods, these observations motivate the use of alternative transcription techniques.

7.2 Direct Multiple Shooting

The direct multiple shooting method was originally developed by Bock and Plitt. It follows similar ideas as the indirect multiple-shooting approach, but recast in the direct optimization framework, where the input profile is also discretized and part of the decision variables.

The idea behind the direct multiple-shooting approach stems from the observation that performing long integration of dynamics can be counterproductive for discretizing continuous optimal control problems into NLPs, and tackles the problem by limiting the integration over arbitrarily short time intervals. Direct multiple-shooting performs first a finite-dimensional discretization of the continuous control input α(t), most commonly using a piecewise control discretization on a chosen time grid, exacly as we did in single shooting, i.e. we set

α(t)=qi for t[ti,ti+1]

In contrast to single shooting, it then solves the ODE separately on each interval [ti,ti+1], starting with artificial initial values βi :

x˙i(t,βi,qi)=f(xi(t,βi,qi),qi),t[ti,ti+1],xi(ti,βi,qi)=βi.Multishooting

Figure 13.3: Illustration of the direct multiple shooting method. A piecewiseconstant input profile parametrized by q0,,N1 is deployed on the time grid t0,,N. The discrete states β0,,N act as "checkpoints" on the continuous state trajectories x(t) at all discrete time points t0,,N. Numerical integrators build the simulations xi(t,βi,qi) over each time interval [ti,ti+1]. The state trajectory held in the NLP solver becomes continuous only when the solution of the NLP is reached, where the continuity conditions xi(ti+1,βi,qi)βi+1 are enforced.

See Figure 13.3 for an illustration. Thus, we obtain trajectory pieces xi(t,βi,qi). Likewise, we numerically compute the integrals

li(βi,qi):=titi+1r(xi(t,βi,qi),qi)dt.

The problem of piecing the trajectories together, i.e. ensuring the continuity condition βi+1=xi(ti+1,βi,qi) is left to the NLP solver.

Finally, we choose a time grid on which the inequality path constraints are checked. It is common to choose the same time grid as for the discretization of the controls as piecewise constant, such that the constraints are checked based on the artificial initial values βi. However, a much finer sampling is possible as well, provided that the numerical integrator building the simulations over the various time intervals [tk,tk+1] report not only their final state xi(ti+1,βi,qi), but also intermediate values. An integrator reporting the state (or some function of the state) over a refined or arbitrary time grid is sometimes labelled as continuous-output integrator.

The NLP arising from a discretization of an OCP based on multiple shooting typically reads as:

minS,qi=0N1li(βi,qi)+g(βN) subject to x0β0=0, (initial value)xi(ti+1,βi,qi)βi+1=0,i=0,,N1(continuity)h(βi,qi)0,i=0,,N (path constraints)r(βN)0. (terminal constraints)

It is visualized in Figure 13.3. Let us illustrate the multiple shooting method using the OCP (13.1). Here the ordering of the equality constraints and variables is important in order to get structured sparsity patterns. In this example, the variables are ordered in time as:

β1,0,β2,0,q0,β1,1,β2,1,q1,,qN1,β1,N,β2,N

and the constraints are also ordered in time. The resulting solution is illustrated in Figure 13.4, together with the sparsity patterns of the Jacobian of the equality constraint function, and the one of the Hessian of the Lagrange function.

Most important, the sparsity structure arising from a discretization based on multipleshooting (see Figure 13.4 for an illustration) ought to be exploited in the NLP solver.

Example 13.2

Let us tackle the OCP (13.1) of Example 13.1 via direct multipleshooting. A 4-step RK4 integrator has been used here, deployed on N=20 shooting intervals. The variables have been ordered as:

β0,q0,β1,q1,,βN1,αN1,βN

and the shooting constraints are also imposed time-wise.

example using multishooting

Figure 13.4: Solution to OCP (13.1) using a discretization based on multiple shooting, with N=20 and using a 4-steps Runge-Kutta integrator of order 4. The upper graph reports the states and input trajectories at the solution, where the continuity condition holds. The lower graphs report the sparsity pattern of the Jacobian of the equality constraints in the resulting NLP and the sparsity pattern of the Hessian of the Lagrange function. The Hessian of the Lagrange function arising from multiple-shooting is block-diagonal, due to the separability of the Lagrange function. The Jacobian of the inequality constraints is diagonal in this example, and block-diagonal in general.

The resulting solution is displayed in Figure 13.4, where one can observe the discrete state trajectories (black dots) at the discrete time instants t0,,N together with the simulations delivered by the integrators at the solution. One can also observe the very specific sparsity patterns of the Jacobian of the equality constraints and of the Hessian of the Lagrange function that arise from the direct multiple-shooting approach.

Remark on Schlöder's Reduction Trick

We point out here that the derivatives of the condensed QP could also directly be computed, using the reduced way, as explained as first variant in the context of single shooting. It exploits the fact that the initial value x0 is fixed in the nonlinear model predictive control (NMPC) problem, changing the complexity of the derivative computations. It is only advantageous for large state but small control dimensions as it has a complexity of N2nα. It was originally developed by Schlöder in the context of Gauss-Newton methods and generalized to general SQP shooting methods. A further generalization of this approach to solve a "lifted" (larger, but equivalent) system with the same computational cost per iteration is the so called lifted Newton method where also an analysis of the benefits of lifting is made.

The main advantages of lifted Newton approaches such as multiple shooting compared with single shooting are the facts that

  • we can also initialize the state trajectory,
  • they show superior local convergence properties in particular for unstable systems. An interesting remark is that if the original system is linear, continuity is perfectly satisfied in all SQP iterations, and single and multiple shooting would be identical. Also, it is interesting to recall that the Lagrange multipliers λi for the continuity conditions are an approximation of the adjoint variables, and that they indicate the costs of continuity.

Finally, it is interesting to note that a direct multiple shooting algorithm can be made a single shooting algorithm easily: we only have to overwrite, before the derivative computation, the states β by the result of a forward simulation using the controls q obtained in the last Newton-type iteration. From this perspective, we can regard single shooting as a variant of multiple shooting where we perturb the result of each iteration by a "feasibility improvement" that makes all continuity conditions feasible by the forward simulation, implicitly giving priority to the control guess over the state guess.

7.3 Direct Collocation method

A third important class of direct methods are the so-called direct transcription methods, most notably direct collocation. The discretization method applied here is directly inspired from the collocation-based simulation, and very similar to the indirect collocation method.

Here we discretize the infinite OCP in both controls and states on a fixed and relatively fine grid tk, with k=0,,N. We denote the discrete states on the grid points tk as βk. We choose a parameterization of the controls on the same grid typically as piecewise constant, with control parameters qk, which yields on each interval [tk,tk+1] a constant control α(t)=qk.

On each collocation interval [tk,tk+1] a set of d collocation times tk,i[tk,tk+1] is chosen, with i=0,,d. The trajectory of each state on the time interval [tk,tk+1] is approximated by a polynomial pk(t,vk)Rnx having the coefficients vkRnx(d+1).

The collocation-based integration of the state dynamics on a time interval [tk,tk+1] starting from the initial value βk hinges on solving the collocation equation:

(13.4)ck(vk,βk,qk)=[vk,0βkp˙k(tk,1,vk)f(vk,1,tk,1,qk)p˙k(tk,d,vk)f(vk,d,tk,d,qk)]=0.

for the variables vk,iRnx, with i=0,,d.

We now turn to building the NLP based on direct collocation. In addition to solving the collocation equations (13.4) for k=0,,N1, we also require continuity accross the interval boundaries, i.e. we require that

pk(tk+1,vk)βk+1=0

holds for k=0,,N.

One finally ought to approximate the integrals tktk+1r(x,u)dt on the collocation intervals by a quadrature formula using the same collocation points, which we denote by the a term lk(vk,βk,qk). Path constraints can be enforced on the fine time grid tk,i, though it is common to enforce them only on the interval boundaries tk in order to reduce the amount of inequality constraints in the resulting NLP.

It is interesting to observe, that an arbitrary sampling of the state dynamics is possible by enforcing the path constraints at arbitrary time points t via the interpolation pk(t,vk). However, it is important to point out that the high integration order of collocation schemes holds only at the the main time grid tk, such that interpolations at finer time grids, including the grid tk,i, hold a lower numerical accuracy. In the following formulations, we will enforce the path constraints on the main time grid tk.

Direct Collocation yields a large scale but sparse NLP, which can typically be written in the form

minv,β,qg(βN)+k=0N1lk(vk,βk,qk) subject to β0x0=0(fixed initial value)ck(vk,βk,qk)=0,k=0,,N1 (collocation conditions)pk(tk+1,vk)βk+1=0,k=0,,N1(continuity conditions)s(βk,qk)0,k=0,,N1, (path constraints), b(βN)0 (terminal constraints). 

One ought to observe that the discrete state variables βk or alternatively the collocation variables vk,0 can be eliminated via the first linear equality in each collocation equations ck(vk,qk,βk)=0. It is in fact common to formulate the NLP arising from direct collocation without the βk and enforcing continuity directly within the collocation equations. It then reads as follows:

(13.5)minv,qg(vN,0)+k=0N1lk(vk,qk) subject to v0,0x0=0,p˙k(tk,i,vk)f(vk,i,qk)=0,k=0,,N1,i=1,,d,pk(tk+1,vk)vk+1,0=0,k=0,,N1,s(vk,0,qk)0,k=0,,N1,b(vN,0)0.

We illustrate the variables and constraints of NLP (13.5) in Figure 13.5.

collocation

Figure 13.5: Illustration of the variables and constraints of NLP (13.5) for d=3, and for one specific time interval [tk,tk+1] before the constraints are fulfilled (early iteration). One can observe that the continuity conditions pk(tk+1,vk)vk+1,0=0 are not (yet) satisfied.

The direct collocation method offers two ways of increasing the numerical accuracy of the integration. We need to remember here that the integration error of a Gauss-Legendre collocation scheme is of O((tk+1tk)2d) (respectively O((tk+1tk)2d1) for the Gauss-Radau collocation scheme). In order to gain accuracy, one can therefore increase d and thereby gain two orders in the integration error. Alternatively, one can reduce the size of the time intervals [tk,tk+1] by e.g. a factor ξ and thereby reduce the order of the integration error by a factor ξ2d (respectively ξ2d1 for the Gauss-Radau collocation scheme). However, numerical experiments often show that the conditioning of the linear algebra underlying the NLP resulting from direct collocation tends to worsen as d increases beyond relatively small orders. In practice, it often appears counterproductive to use d>4 for complex optimal control problems.

One ought to observe here that discretizing an OCP using direct collocation allows for a fairly straightforward construction of the exact Hessian of the NLP. Indeed, one can observe that the nonlinear contributions to the constraints involved in the NLP arising from a discretization based on direct collocation are all explicitly given by the model continuous dynamics function f, the path constraints function s, and the terminal constraints function b. These functions are, in most OCPs, readily provided in their symbolic forms. It follows that assembling the Lagrange function and computing its first and second-order derivatives is fairly straightforward using any efficient symbolic computation tool such as e.g. AMPL or casADi.

Example 13.3

Let us tackle the OCP (13.1) of Example 13.1 via direct collocation. The direct collocation is implemented using a Gauss-Legendre direct collocation scheme with d=3. Here again, the ordering of the equality constraints and variables is important in order to get structured sparsity patterns.

In this example, the variables are ordered in time as:

v0,0,,v0,3,q0,,vN1,0,,vN1,3,qN1

where vk,iR2, and the constraints are also ordered in time. The resulting solution is illustrated in Figure 13.6, together with the sparsity patterns of the Jacobian of the equality constraint function, and the one of the Hessian of the Lagrange function.

example using collocation

Figure 13.6: Solution to OCP (13.1) using a Gauss-Legendre direct collocation discretization scheme with d=3, and N=20. The upper graph reports the states and input trajectories. The collocated states vk,i are reported as the dots. The lower graphs report the sparsity pattern of the Jacobian of the equality constraints in the resulting NLP and the sparsity pattern of the Hessian of the Lagrange function. Observe that the Hessian is block diagonal, while the Jacobian has a block-diagonal pattern with some elements off the blocks corresponding to the continuity conditions. The Jacobian of the inequality constraints is diagonal in this example, and block-diagonal in general.

The large NLP resulting from direct collocation need to be solved by structure exploiting solvers, and due to the fact that the problem functions are typically relatively cheap to evaluate compared to the cost of the linear algebra, nonlinear interior point methods are often the most efficient approach here. A widespread combination is to use collocation with IPOPT using the AMPL interface, or the casADi tool. It is interesting to note that, like in direct multiple shooting, the multipliers associated to the continuity conditions are again an approximation of the adjoint variables.

An interesting variant of orthogonal collocation methods that is often called the pseudo-spectral optimal control method uses only one collocation interval but on this interval it uses an extremely high order polynomial. State constraints are then typically enforced at all collocation points. Unfortunately, the constraints Jacobian and Lagrange Hessian matrices arising from the pseudospectral method are typically fairly dense and therefore more expensive to factorize than the ones arising in direct collocation.

Alternative input parametrization

We have discussed to far the use of a piecewise-constant input parametrization in the context of direct methods. We ought to stress here that, while this choice is simple and very popular, it is also arbitrary. In fact, what qualifies direct methods is their use of a restriction of the continuous (and therefore -dimensional) input profile α(t) to a space of finite dimension, which can then be described via a finite set of numbers and therefore treated in the computer. In principle, any description of the continuous input α(t) as a finite-dimensional object is possible, though some descriptions are less favorable than others. Indeed, it can e.g. be counterproductive to adopt an input discritization that destroys or degrades the sparsity patterns arising in the linear algebra of the various direct methods presented above. For this reason, it is typically preferable to adopt input discretizations that are "local" in time. Indeed, the sparsity patterns specific to the structure arising both in multiple-shooting and direct collocation hinge on the division of the overall time interval [t0,tN] into the subintervals [tk,tk+1], and the fact that the variables specific to one interval k, e.g. vk,qk in the direct collocation method have an impact only on the neighboring intervals ( k1 and k+1 ) via the continuity conditions. It would then be unwise to destroy this feature by using a discretization of the continuous input α(t) where the input parameters q influence the input profile globally (i.e. at e.g. all time instants) such that an input parameter qk would influence all intervals. This observation rules out the use of "global" input parametrizations such as e.g. parametrizing the inputs via a finite Fourier series or a polynomial basis over the whole interval [t0,tN].

In the context of direct collocation, a fairly natural refinement of the continuous input parametrization consists in providing as many DoF as the discretization of the optimal control problem allows. More specifically, one can readily observe that the standard piecewise input parametrization is enforced by construction of the collocation equations (13.4), where a single input value qk is used on each collocation interval [tk,tk+1]. More DoF in the discretized input can, however, be readily added by allowing a different input qk,i at every collocation time point tk,i, for i=1,,d. The collocation equations for each interval k=0,,N1 then read as:

ck(vk,βk,qk)=[vk,0βkp˙k(tk,i,vk)f(vk,i,tk,i,qk,i)p˙k(tk,d,vk)f(vk,d,tk,d,qk,d)]=0.

and the NLP receives the decision variables

w={v0,0,v0,1,q0,1,v0,d,q0,d,v1,0,v1,1,q1,1,,v1,d,q1,d,}.

It is important to observe here that the input is parametrized as qk,i with k=0,,N1 and i=1,,d, i.e. no degree of freedom qk,0 ought to be attributed to the discrete input on the first collocation times tk,0, as only the continuity of the state trajectory is enforced on that collocation time.

7.4 A Classification of Direct Optimal Control Methods

It is an interesting exercise to try to classify Newton type optimal control algorithms. Let us have a look at how nonlinear optimal control algorithms perform their major algorithmic components, each of which comes in several variants:

  • Treatment of Inequalities: Nonlinear integer program (IP) vs. SQP.
  • Nonlinear Iterations: Simultaneous vs. Sequential.
  • Derivative Computations: Full vs. Reduced.
  • Linear Algebra: Banded vs. Condensing.

In the last two of these categories, we observe that the first variants each exploit the specific structures of the simultaneous approach, while the second variant reduces the variable space to the one of the sequential approach. Note that reduced derivatives imply condensed linear algebra, so the combination [Reduced,Banded] is excluded. In the first category, we might sometimes distinguish two variants of SQP methods, depending on how they solve their underlying QP problems, via active set QP solvers (SQP-AS) or via interior point methods (SQP-IP).

Based on these four categories, each with two alternatives, and one combination excluded, we obtain 12 possible combinations. In these categories, the classical single shooting method could be classified as [SQP, Sequential, Reduced] or as [SQP, Sequential, Full, Condensing] because some variants compute directly the reduced derivatives Ru, while others compute first the stagewise derivative matrices Mi and Ni and condense then. Tenny’s feasibility perturbed SQP method could be classified as [SQP, Sequential, Full, Banded], and Bock’s multiple shooting as well as the classical reduced SQP collocation methods as [SQP, Simultaneous, Full, Condensing]. The band structure exploiting SQP variants from Steinbach and Franke are classified as [SQP-IP, Simultaneous, Full, Banded], while the widely used interior point direct collocation method in conjunction with IPOPT by Biegler and W¨achter as [IP, Simultaneous, Full, Banded]. The reduced Gauss-Newton method of Schl¨oder would here be classified as [SQP, Simultaneous, Reduced]

Released under the MIT License.