我在2D坐标系中有一些有序点(小于10)。 我有一个代理人在系统中移动,我想在他们的订单之后找到这些点之间的最短路径。 对于背景,代理可以被给予一个推力的位置,并且我的目标是绘制最快的路线,因为代理具有最大推力和最大角速度。 经过一些研究,我意识到我可能正在寻找一种曲线拟合算法,但我不知道底层函数,因为这些点是随机分布在坐标系中的。 请帮我找到解决这个问题的方法。 我对任何建议持开放态度,我首选的编程语言是C ++。
答案 0 :(得分:0)
我确信有一个纯粹的数学解决方案,例如spacecraft trajectory optimization for example,但这是我如何考虑从编程/退火的角度来看它。
即使你需要一个连续的路径,你也可以用谨慎的步骤开始路径搜索,并且可以通过容差来获得足够接近每个点的开始。
一旦你有一个粗略的路径,你可以通过减少步数的时间/大小和目标点的容差来开始改进它(可能使用前一次运行中的粗略点作为新的目标点)。
在评估每个步骤的参数适应度时,您可能需要考虑一旦达到目标点,您也可能希望在下一个点的方向上有动量。如果考虑多个路径并且适应度函数考虑最短的总时间,则这应该是紧急属性。
如果您使用std :: priority_queue和std :: map来跟踪潜在路径,那么c ++可以提供帮助。