-
Notifications
You must be signed in to change notification settings - Fork 280
Implement Anderson acceleration for fixed step SQP-type algorithms #1521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
How does AA-GN perform? |
It does not converge, just like GN. |
examples/acados_python/anderson_acceleration/anderson_scqp_experiment.py
Outdated
Show resolved
Hide resolved
examples/acados_python/anderson_acceleration/anderson_scqp_experiment.py
Outdated
Show resolved
Hide resolved
examples/acados_python/anderson_acceleration/anderson_scqp_experiment.py
Outdated
Show resolved
Hide resolved
examples/acados_python/furuta_pendulum/convergence_experiment.py
Outdated
Show resolved
Hide resolved
examples/acados_python/furuta_pendulum/convergence_experiment.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_options.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_options.py
Outdated
Show resolved
Hide resolved
interfaces/acados_template/acados_template/acados_ocp_options.py
Outdated
Show resolved
Hide resolved
There are a few more for loops that could be parallelized, not sure if it is always worth it though .. |
Looks good! Great that we could reproduce the strong performance of Anderson acceleration in acados! |
Only take 1 pervious step into account, as in this case there is an explicit formula to compute the step.
This formula is e.g. given in eq. (4.4) in Pollock2021 -- Anderson acceleration for contractive and noncontractive operators
This feature can be used by setting
with_anderson_acceleration = True
.A plot of the SCQP benchmark example is below:

Plots corresponding to the convergence experiment with the Furuta pendulum are below:

<
8000
/p>