Initial guess generation for solving Nonlinear programming problems

190 Views Asked by At

I'm working with optimal-control problems in the classical Bolza form:

the cost function is

$$\min J = \Phi(t_f,x_f,u_f) + \int_{t_0}^{t_f}\Psi(t,x,u)dt$$

and the system is subject to an autonomous, non linear set of differential equations:

$$\dot{x}(t) = f[x(t),u(t)]$$

with initial conditions $$ x(t_0) = x_0$$

some final states constraints in the form

$$x_f \in \chi$$

and in some cases some path constraints in the form

$$g(t,x,u) \leq 0$$

I transcribe this problem and I get a nonlinear programming problem.

It is known that NLP approaches suffer the dependency from the initial guess as they found local minima/maxima. So far I was using linear interpolation between $x_0$ and $x_f$ and $u_0$ and $u_f$ when available, or user-supplied init guess.

My question is: how can I generate a good initial guess? is there any other method I could use? for instance, generating a polynomial by considering $x_0$ and the slope given by $f(x_0,u_0)$? but in this case I still have the issue of providing a good $u_0$.

Can anyone suggest me a method/reference that I can implement to generate a "smart" initial guess?

Thanks in advance!