推荐的控制域局部搜索优化算法

Recommended local search optimization algorithm for control domain

背景:我正在尝试为低级控制器找到一个浮点参数列表,它将导致a的平衡正在行走的机器人。

问题:任何人都可以向我推荐任何适合我刚才描述的域的本地搜索算法吗?对我来说,主要的标准 是收敛到正确解决方案的速度。

任何帮助将不胜感激!

P.S. 此外,我进行了一些研究,发现“Evolutianry Strategy”算法非常适合连续状态 space。但是,我不完全确定它们是否适合我的特定问题。

更多信息:我正在尝试优化 8 个参数(尽管我可以将参数数量减少到 4 个)。我有一个模拟器,我的标准是试验次数的速度,因为模拟重置成本很高(平均需要 10-15 秒)。

除了进化算法,推荐大家也看看强化学习

正确的方法在很大程度上取决于您的问题的细节。多少个参数?你有模拟器吗?您是只在模拟环境中工作,还是也在真实硬件环境中工作?速度是试验次数,还是 CPU 时间?

针对低维数(最多约 10 左右)的最佳局部搜索算法之一是 Nelder-Mead simplex method. By the way, it is used as the default optimizer in MATLAB's fminsearch 函数。我个人使用这种方法来查找一些教科书二阶或三阶动态系统的参数(虽然非常简单)。

其他选项是已经提到的进化策略。目前最好的是Covariance Matrix Adaption ES,或者CMA-ES。该算法有多种变体,例如BI-POP CMA-ES等可能比原版更好

您只需要尝试最适合您的方法即可。