背景:我正在尝试为低级控制器找到浮点参数列表,这将导致机器人在行走时保持平衡。
问题:任何人都可以向我推荐任何本地搜索算法,这些算法对我刚刚描述的域名表现良好吗?对我来说,主要的标准是收敛到正确解决方案的速度。
任何帮助将不胜感激!
P.S。此外,我进行了一些研究,发现“Evolutianry 策略“算法非常适合连续的状态空间。但是,如果它们能很好地适应我的特定问题,我并不完全确定。
更多信息:我正在尝试优化8个参数(尽管我可以将参数数量减少到4个)。我有一个模拟器,我的标准是试验次数的速度,因为模拟重置是昂贵的(平均需要10-15秒)。
答案 0 :(得分:1)
Nelder-Mead simplex method是低维数(最多约10个)的最佳本地搜索算法之一。顺便说一下,它被用作MATLAB的fminsearch
函数中的默认优化器。我个人使用这种方法来查找某些教科书二级或三级动态系统的参数(虽然非常简单)。
其他选择是已经提到的进化策略。目前最好的是Covariance Matrix Adaption ES或CMA-ES。该算法有变化,例如BI-POP CMA-ES等可能比香草版更好。
你必须尝试最适合你的方法。
答案 1 :(得分:0)
除了进化算法,我建议你也检查强化学习。
正确的方法很大程度上取决于问题的细节。有多少参数?你有模拟器吗?您是仅在模拟中工作,还是在真实硬件上工作?速度是试验次数还是CPU时间?