规划算法的分类

根据不同的应用场景和解决问题的方式,规划算法有多种分类方式。以下是一些常见的分类:

1. 按搜索空间划分

  • 状态空间搜索算法:通过遍历所有可能的状态来寻找目标状态的路径。常用于路径规划问题。

    • 深度优先搜索(DFS):优先深入探索可能的路径,直到无法继续再回溯。适合需要快速找到任意解决方案的情况,但不保证最优。
    • 广度优先搜索(BFS):按层次逐步扩展搜索节点,适合寻找最短路径。
    • A*算法:结合启发式函数和代价函数的搜索算法,既保证最优解,也提高了搜索效率。
    • Dijkstra算法:寻找从起点到其他所有节点的最短路径,是一种经典的图搜索算法。
  • 采样空间规划算法:基于采样的方法,不完全搜索所有状态,而是采样部分状态,适合处理高维空间问题。

    • PRM(概率路图):通过采样和连接样本点,构建一个图,找到从起点到终点的路径。
    • RRT(快速扩展随机树):通过随机采样不断扩展树,适合动态环境和高维空间的路径规划。
    • RRT*算法:RRT的改进版本,保证了路径的渐进最优性。

2. 按算法性质划分

  • 确定性算法:规划路径的过程中每一步都是确定的,结果也可以复现。常见的确定性算法包括Dijkstra、A*等,它们通常保证找到最优路径。

  • 非确定性算法:结果受随机因素影响,可能每次运行的结果不同。采样空间算法(如RRT、PRM)通常属于非确定性算法,因为它们在搜索空间中引入了随机性。

3. 按是否有全局信息划分

  • 全局规划算法:算法在规划过程中能够获取全局的环境信息,通常用于静态环境中,目标是找到起点到终点的最优路径。

    • Dijkstra算法A*算法属于典型的全局规划算法,它们需要已知整个环境的信息。
  • 局部规划算法:算法只能获取局部环境信息,通常用于动态或未知环境中,通过动态调整路径应对环境变化。

    • Bug算法:局部信息驱动的简单避障算法,机器人在接近障碍时绕过障碍继续前进。
    • 动态窗口法(DWA):常用于机器人运动控制,基于机器人当前状态选择一个速度组合,使机器人避开障碍物并向目标前进。

4. 按路径优化目标划分

  • 最短路径算法:目标是找到从起点到终点的最短路径,常用于导航、物流等场景。

    • A*算法Dijkstra算法Bellman-Ford算法都属于此类算法。
  • 最优控制算法:不仅要求路径最短,还要求路径的代价(如能耗、时间、平滑度等)最优。

    • 动态规划:通过递归分解问题,适用于寻找多阶段决策问题的最优解。
    • 贝尔曼方程:用于解决最优控制问题的动态规划基础。
  • 平滑路径规划算法:为了保证路径的可行性和稳定性,目标是找到平滑的、无剧烈转向的路径,适合用于无人车或机器人运动控制。

    • Bezier曲线B样条曲线等平滑曲线生成算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值