你搬进新家,客厅门口放着一只两米宽的大沙发,走廊却只有一米二。你试了十几个角度都卡住,最后发现:先把沙发横过来推过走廊中部,再在窗前旋转四十五度,最后斜着塞进去,终于成功。整个过程你不断停下来“找角度”——这就是约束运动规划的缩影:机器人必须在墙壁、地面、时间等重重限制之间,找到一条不撞墙、不卡壳、还能高效到达目标的路径。 我们将沿着“搬沙发”这条主线,认识机器人运动的“配置空间”,分清墙壁类约束和重力类约束,学习像黑暗中投飞镖一样搜索路径的采样规划法(PRM/RRT),掌握被门卡住时的“投影”和“回退”技巧,最后聊聊轨迹优化与真实世界的落地场景。

岗位关联

约束运动规划是仓储机器人、机械臂装配、手术机器人等AI应用的底层支撑,理解它,是入门机器人智能决策的必修课。

目录
  1. 可视化演示
  2. 基础概念:先画出客厅户型图
  3. 约束分类:有的像墙,有的像重力
  4. 采样规划:黑暗中投飞镖
  5. 约束处理:被门卡住怎么办
  6. 轨迹优化:搬得稳还要搬得快
  7. 应用场景:客厅里的实战
  8. 挑战展望:更大的房子与更多的家具
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示机器人约束路径规划、构型空间映射与轨迹优化过程,含障碍避让与约束边界。

本节配有交互动效(进入视口后自动加载,约 3KB)。

约束路径规划 可行路径 障碍约束 min J=∫(q̇²+λC(q))dt 最优轨迹

基础概念:先画出客厅户型图

搬沙发前,你要先看清客厅的门、走廊和转角在哪儿。机器人也一样,规划前必须知道它自身有哪些“可动部位”、每个部位能转到什么角度。全部关节角度或者位置参数放在一起,就是机器人的配置。所有可能的配置堆叠起来,形成一个抽象空间,我们叫它配置空间(C-space)。

在配置空间里,每个点都代表沙发的一种姿态。那些会撞到墙、卡在门框的姿态,就被排除在外,剩下的点构成“可行配置集合”。约束运动规划的任务,就是在这个高维集合中找一条连续的曲线连接起点和终点。

有了这张“户型图”,机器人才能知道哪些姿态是被允许的。很多初学者习惯在真实工作空间里直接画线避障,但真正的规划发生在配置空间中——因为机器人的每个姿态,都要在配置空间中用坐标去描述和验证。

C={q∈Rn∣h(q)=0,  g(q)≤0}C = \{ q \in \mathbb{R}^n \mid h(q) = 0,\; g(q) \leq 0 \}
这个公式说明:配置空间是满足两类约束的所有机器人姿态的集合。
  1. 配置向量 q机器人全部自由度的数值组合,每一个自由度对应一个实数分量
    q∈Rnq \in \mathbb{R}^n
  2. 等式约束 h(q)=0必须严格满足的关系,比如机械臂末端必须保持水平
    h(q)=0h(q) = 0
  3. 不等式约束 g(q)≤0取值范围的上限下限,比如关节不能转到超过极限角度
    g(q)≤0g(q) \le 0
  4. 配置空间 C所有同时满足两类约束的配置集合,路径搜索就发生在这个集合里
    C={q∈Rn∣h(q)=0,g(q)≤0}C = \{ q \in \mathbb{R}^n \mid h(q) = 0, g(q) \leq 0 \}

约束分类:有的像墙,有的像重力

搬沙发时,走廊宽度是“尺寸限制”,拉不动沙发是因为“摩擦力不足”,沙发不能穿墙是“几何限制”。约束运动规划里的约束,同样可以分门别类。

完整约束(holonomic)只限制位置,可以写成只含位置变量的等式,像“墙”一样划定区域范围。非完整约束(nonholonomic)则与速度有关,无法通过积分消去速度变量。最经典的例子是小汽车:它不能横向平移,只能前进或后退并转向——车的位置坐标并不是被墙拦住,而是被“转向规则”限制了移动方向。

除了完整与非完整这对核心分类,约束还可以按是否涉及不等式分为等式约束与不等式约束。等式约束要求严格等于某个值,好比插座必须对准才能插进去;不等式约束则给出安全范围,好比关节不能转过某个极限角度。

完整约束:h(q,t)=0,非完整约束:h(q,q˙,t)=0\text{完整约束:} h(q, t) = 0,\qquad \text{非完整约束:} h(q, \dot{q}, t) = 0
完整约束是“哪里不能去”,非完整约束是“怎么走才允许”。
  1. 位置变量 q 与时间 t约束条件可能随时间或位置变化
    q,tq, t
  2. 速度变量 \dot{q}机器人当前移动的方向和快慢
    q˙=dqdt\dot{q} = \frac{dq}{dt}
  3. 完整约束 h(q,t)=0约束只涉及位置,可以在地图上画出一个边界区域
    h(q,t)=0h(q, t) = 0
  4. 非完整约束 h(q,\dot{q},t)=0约束中还包含速度项,无法化简成纯位置限制
    h(q,q˙,t)=0h(q, \dot{q}, t) = 0

采样规划:黑暗中投飞镖

配置空间往往高维且形状复杂,直接像网格搜索那样遍历,维度一高就会爆炸。想象你在没有灯的房间里搬沙发:你不会把地板每一寸都摸一遍,而是用手电筒随意照几个位置,试试能不能通过——这就是采样规划的直觉。

PRM(概率路线图)像先在屋里到处掷飞镖,每枚飞镖落在可行区域就记为一个节点,再把彼此够得着且不撞墙的节点连起来,形成一张“可行路线网络”。RRT(快速随机树)则从起点长出一棵树,每次随机朝一个方向长一小段,碰壁就换个方向,直到枝丫够到终点。

实际使用时,采样点不是完全随机——会有一定概率直接瞄准目标点(目标偏置采样),这就像你虽然黑暗中看不清路,但会大致朝门的方向投飞镖。而在有约束的环境里,采样点如果落在约束外,则会被拒绝或投影回可行区域,这是约束采样策略的核心。

qnew=qnear+ρ⋅qsample−qnear∥qsample−qnear∥q_{new} = q_{near} + \rho \cdot \frac{q_{sample} - q_{near}}{\| q_{sample} - q_{near} \|}
RRT 每步只朝随机采样点方向前进一个固定步长,而不是一步跳过去。
  1. 随机采样点 q_sample在配置空间中随机生成的目标姿态
    qsample∼U(C)q_{sample} \sim \mathcal{U}(C)
  2. 最近邻节点 q_near当前树中距离采样点最近的已有节点
    qnear=arg⁡min⁡q∈T∥q−qsample∥q_{near} = \arg\min_{q \in T} \| q - q_{sample} \|
  3. 步长 \rho每次扩展的最大距离,值太大容易越过窄通道,太小则增长缓慢
    ρ>0\rho > 0
  4. 单位方向向量将采样方向归一化,再乘步长,得到实打实的新的节点
    qsample−qnear∥qsample−qnear∥\frac{q_{sample} - q_{near}}{\| q_{sample} - q_{near} \|}

约束处理:被门卡住怎么办

好不容易找到一条可行路径,但路径上的节点可能并不严格满足所有约束。这就像沙发推过了走廊一半,但角度不对,卡在门框上。此时我们需要“处理”约束,把节点调整到可行区域内。

投影策略是最直观的方法:采样点如果不在约束流形上,就在流形上找一个离它最近的点,把它“拽回来”。这个流形就是由约束定义的子空间——沙发能通过的所有姿态构成的那个“弯弯曲曲的通道面”。后退规避则是在扩展失败时,把树枝缩回去一点或换一个方向重新尝试,好比沙发卡住后先退半步再换角度。

在 RRT 中,投影策略既可以用于采样阶段(采样点投影后再连接),也可以用于扩展阶段(新节点投影回流形再连边)。投影与后退配合,能显著提高窄通道环境的规划成功率。

Π(q)=arg⁡min⁡q′∈M∥q−q′∥\Pi(q) = \arg\min_{q' \in \mathcal{M}} \| q - q' \|
投影算子在约束流形上寻找离当前采样点最近的合法姿态。
  1. 候选点 q随机采样到但不满足约束的姿态
    q∉Mq \notin \mathcal{M}
  2. 约束流形 \mathcal{M}所有满足等式与不等式约束的姿态构成的子空间
    M={q∣h(q)=0,g(q)≤0}\mathcal{M} = \{ q \mid h(q)=0, g(q) \leq 0 \}
  3. argmin 最近点在流形上扫描所有合法姿态,找到欧氏距离最近的那个
    arg⁡min⁡q′∈M∥q−q′∥\arg\min_{q' \in \mathcal{M}} \|q - q'\|
  4. 投影结果 \Pi(q)把不合法的采样点替换为合法点,再进行下一步扩展
    Π(q)∈M\Pi(q) \in \mathcal{M}

轨迹优化:搬得稳还要搬得快

找到一条无碰撞路径只是第一步,搬沙发时你还会希望动作尽量平稳、少反复调整。这就从“路径规划”进入“轨迹优化”阶段——给路径加上时间轴,同时优化速度、加速度和能量消耗。

最常见的做法是把约束写进目标函数里。惩罚函数法把约束违反量乘以一个很大的权重,加到原始目标函数上:谁违反约束,谁就受到“罚款”。权重越大,越不敢违反约束。但权重过大会导致数值不稳定,因此后来发展出增广拉格朗日方法,引入拉格朗日乘子迭代调整,用乘子逐渐逼近对偶变量,避免惩罚系数无限增大。

增广拉格朗日更进一步,在惩罚项基础上加入乘子项,使迭代过程中约束渐近满足,同时避免惩罚系数失控。轨迹优化输出的不仅是一条几何路径,而是一条带时间信息的平滑轨迹,机器人沿着它执行时动作更优雅。

min⁡q  f(q)+μ∑imax⁡(0,gi(q))2\min_{q} \; f(q) + \mu \sum_{i} \max(0, g_i(q))^2
有约束的最优化问题,被转化为“目标 + 惩罚”的无约束问题。
  1. 原始目标 f(q)比如时间最短、能耗最小、轨迹最平滑
    f(q)=∫0TL(q,q˙)dtf(q) = \int_0^T L(q, \dot{q}) dt
  2. 约束违反量 max(0, g_i(q))只有超出约束上限才会产生惩罚
    max⁡(0,gi(q))\max(0, g_i(q))
  3. 惩罚权重 \mu罚款力度,越大越强调满足约束
    μ>0\mu > 0
  4. 惩罚项求和把所有违反约束的“罚款”累加进总目标
    μ∑imax⁡(0,gi(q))2\mu \sum_i \max(0, g_i(q))^2

应用场景:客厅里的实战

搬沙发的道理,用在真实机器人系统里,就成了工程实践。机械臂装配中,机械臂要将齿轮、插头等零件精确送入指定位置,必须同时满足姿态对准、插入深度、摩擦力等多重约束。约束运动规划让机械臂在狭小装配空间中绕开障碍、精确到达目标姿态。

移动机器人(如仓库AGV)在货架间穿梭,受非完整约束(只能前进后退转向)和通道宽度的双重限制;手术机器人则在狭小的人体解剖空间中操作,约束更严厉,精度要求更高。这些场景都依赖约束运动规划来保证安全性和成功率。

Robot(q)∩Oobs=∅Robot(q) \cap \mathcal{O}_{obs} = \emptyset
任何时刻机器人与障碍物都不能有交集,这是所有应用中最基本的约束。
  1. 机器人在姿态 q 下的空间占用 Robot(q)沙发在某个摆放角度下占据的物理空间
    Robot(q)⊂R3Robot(q) \subset \mathbb{R}^3
  2. 环境障碍物集合 O_obs墙、桌面、其他设备的空间集合
    Oobs\mathcal{O}_{obs}
  3. 交集为空机器人与障碍物重合的部分为零
    Robot(q)∩Oobs=∅Robot(q) \cap \mathcal{O}_{obs} = \emptyset
  4. 无碰撞约束该式成立是路径可执行的前提
    ∀q∈Path\forall q \in Path

挑战展望:更大的房子与更多的家具

住房越来越大,家具越来越多,搬沙发也越发困难。运动规划面对的核心挑战是维度灾难:机器人自由度越高,配置空间维度越大,网格法搜索量呈指数增长。即使采样法能绕开维度爆炸,窄通道、动态障碍物仍然考验算法能力。

动态避碰要求在机器人运动时实时感知并躲避移动的障碍物,这对规划器的实时性提出极高要求。近年来学习规划(如强化学习、模仿学习)开始与经典采样规划融合,用数据驱动的方式预测高价值采样区域,让算法在复杂环境中更聪明地分配算力。未来的约束运动规划,正从“被动躲避约束”走向“主动利用约束”。

N∼O((1ε)d)N \sim O\left(\left(\frac{1}{\varepsilon}\right)^d\right)
这是固定分辨率网格搜索的复杂度,维度 d 上升时计算量急剧膨胀。
  1. 采样数量 N要在配置空间中以分辨率 \epsilon 覆盖所需的样本数量
    NN
  2. 分辨率倒数 1/\varepsilon网格越细,数量越多
    1ε\frac{1}{\varepsilon}
  3. 维度 d机器人自由度数,每多一个自由度,空间就多一维
    d=dim⁡(C)d = \dim(C)
  4. 指数关系维度每增加 1,所需样本量乘以 1/\epsilon 倍
    O((1ε)d)O\left(\left(\frac{1}{\varepsilon}\right)^d\right)

AI 应用场景

机械臂精密装配

阶段:约束建模 + 路径搜索 + 轨迹优化

解决的问题:传统示教需要人工逐点记录装配轨迹,对工件偏差容忍度低;AI 建立包含零件位姿、孔位对准、接触力等约束的配置空间,利用约束 RRT 与轨迹优化自动生成无碰撞且满足装配公差的轨迹,换型只需更新模型参数。

具体案例:汽车电子装配生产线上的插头插入任务,机器人末端需要垂直对准插座并以特定力矩插入。约束规划保证末端在插入前始终与插座轴线对齐,同时绕过线缆和其他零部件,节拍时间缩短约25%。

仓库移动机器人导航

阶段:环境感知 + 规划与控制

解决的问题:AGV 在密集货架间穿梭,受“无法横移”的非完整约束,且通道宽度有限。采样规划在配置空间中找到满足转向半径的路径,配合局部优化生成流畅平滑轨迹。

具体案例:某电商仓库 50 台 AGV 同时运行,每台 AGV 通过约束 RRT 规划出一条从充电区到拣货区的无碰撞路径,动态避让交叉路口的其他车辆,调度效率提升约 30%。

手术机器人辅助操作

阶段:术前规划 + 术中执行

解决的问题:微创手术中机器人需通过皮肤小切口进入体内,器械的活动范围受切口锚点和解剖结构双重约束。约束运动规划在保持切口不动的前提下,规划器械在体内的安全运动路径,避免损伤血管和神经。

具体案例:某腹腔镜手术机器人系统中,术前基于 CT 重建患者腹腔模型,规划器械从切口到病灶的避障路径;术中加入呼吸运动补偿,实时调整轨迹,手术时间缩短约 20%。

Python 演示

python67 行
import mathimport random  def dist(a, b):    return math.hypot(a[0] - b[0], a[1] - b[1])  def collide(a, b, obstacles):    for ox, oy, r in obstacles:        dx, dy = b[0] - a[0], b[1] - a[1]        L2 = dx * dx + dy * dy        if L2 < 1e-9:            return True        t = max(0.0, min(1.0, ((ox - a[0]) * dx + (oy - a[1]) * dy) / L2))        cx, cy = a[0] + t * dx, a[1] + t * dy        if math.hypot(cx - ox, cy - oy) < r:            return True    return False  def rrt_plan(start, goal, obstacles, n_iter=3000, step=25):    nodes = [start]    parent = [-1]    solved = False    for _ in range(n_iter):        if random.random() < 0.25:            target = goal        else:            target = (random.uniform(0, 400), random.uniform(0, 300))        best_idx = 0        best_dist = 1e18        for i, node in enumerate(nodes):            d = dist(node, target)            if d < best_dist:                best_dist = d                best_idx = i        near = nodes[best_idx]        d = dist(near, target)        if d > step:            target = (near[0] + (target[0] - near[0]) * step / d,                      near[1] + (target[1] - near[1]) * step / d)        if collide(near, target, obstacles):            continue        nodes.append(target)        parent.append(best_idx)        if dist(target, goal) < 30:            solved = True            break    if not solved:        return None    path = []    cur = len(nodes) - 1    while cur != -1:        path.append(nodes[cur])        cur = parent[cur]    path.reverse()    return path  if __name__ == '__main__':    obstacles = [(200, 160, 40), (200, 250, 40), (120, 200, 45)]    path = rrt_plan((25, 25), (375, 275), obstacles)    if path:        print('约束RRT规划成功,共 %d 个路径点' % len(path))    else:        print('未找到可行路径')
目的:实现一个带障碍物约束的 RRT 路径规划器,在 400×300 的平面空间中搜索从起点到目标点的无碰撞路径。
  1. def collide(a, b, obstacles):判断线段 ab 是否与任何圆形障碍物相交,这是“无碰撞约束”的检查函数。
  2. t = max(0.0, min(1.0, ...))计算线段上离圆心的最近参数 t,若最近距离小于半径则碰撞。
  3. if random.random() < 0.25: target = goal目标偏置采样,25% 概率直接瞄准终点。
  4. best_dist = 1e18初始化最近邻搜索的最小距离为非常大的值。
  5. if d > step:若采样点太远,则沿方向截断为固定步长。
  6. nodes.append(target); parent.append(best_idx)新节点入树,并记录父节点索引用于回溯。
  7. cur = len(nodes) - 1从目标节点开始回溯,沿着 parent 链找路径。
  8. path.reverse()将回溯得到的倒序路径反转成从起点到终点的顺序。

常见误区

误区机器人绕障碍物走,直接看三维空间里画线避障就行,为什么还要搞一个“配置空间”这么抽象的概念?

正解工作空间描述的是末端位置,配置空间描述的是所有关节角度的组合。同一末端位置可能对应多种手臂姿态,某些姿态会撞到障碍物。只有在配置空间中才能完整表达“哪个姿态合法”,规划也才真正安全。就像沙发搬到走廊里,你不能只看沙发中心是否碰墙,还要看扶手角度。

为何常见:人习惯用三维空间思考,而机器人自由度高时,工作空间无法映射所有状态,所以新手容易把两者混淆。

误区非完整约束听起来就“不完整”,那一定更难处理,算法复杂度更高。

正解非完整约束的本质是约束含速度项且不可积分,但从规划角度,它反而可能简化问题:汽车不能横移,意味着搜索空间被限制在更小的流形上,某些采样策略反而更快。完整约束(如机械臂关节限位)虽然形式简单,但在高维空间中划分可行区域仍然不易。

为何常见:人们直觉上把“不完整”等同于“难处理”,忽略了约束本质上是在缩小搜索范围。

误区RRT 没找到路径,说明采样次数不够,多跑几十万次总能成功。

正解采样规划具有概率完备性,但收敛速度取决于采样策略、步长和窄通道的宽度。盲目增加采样次数在窄通道场景中效率极低,需要配合目标偏置、投影或局部优化,才能让算法把采样“花在刀刃上”。

为何常见:许多库的默认迭代数很大,容易让人误以为迭代数就是唯一关键参数。

误区约束越多规划越难,最好去掉约束。

正解约束虽然限制了可行区域,但也帮助缩小搜索空间,引导规划器避开不可行区域。就像走廊虽然窄,但正是墙壁引导你沿正确方向前进。合理的约束建模能显著提升规划效率,关键是让约束表达准确。

为何常见:初学时只体会到约束带来的不便,没有从搜索空间压缩的角度理解约束的价值。

误区增广拉格朗日方法很强大,所以求解轨迹优化一定能找到全局最优解。

正解增广拉格朗日解决的是“约束处理”的数值稳定性问题,它仍然是一个局部优化方法。对于非凸的轨迹优化问题,最终结果依赖初始解。如果初始轨迹质量差,可能收敛到局部最优甚至不可行。实际中常先用 RRT 生成初始路径,再做局部优化。

为何常见:拉格朗日乘子听起来高深,容易让人高估其全局搜索能力。

面试题

Q1. 约束运动规划中,“配置空间”的维度由什么决定?

单选题 · easy

  • A.工作空间的几何维度
  • B.机器人的自由度数量← 正确答案
  • C.环境中的障碍物数量
  • D.规划算法的迭代次数

答案:B。配置空间是机器人所有可能姿态构成的空间,其维度等于机器人自由度数(关节数等独立运动参数)。工作空间维度、障碍物数量和算法迭代次数都与配置空间维度无直接关系。就像沙发的“姿态空间”取决于它有几个可旋转的部位,而不是房间多大。

Q2. 完整约束与非完整约束的本质区别是什么?

单选题 · easy

  • A.完整约束可用等式表示,非完整约束只能用不等式表示
  • B.完整约束可积分化为位置约束,非完整约束不可积分← 正确答案
  • C.非完整约束更强,限制更多
  • D.完整约束只适用于移动机器人

答案:B。完整约束只含位置变量,理论上可以积分消去速度项;非完整约束含速度项且不可积,例如汽车不能横移。区分标准是可积性,而不是等号或不等号形式。墙壁限位是完整约束,车辆转向规则是非完整约束。

Q3. PRM(概率路线图)算法的核心思想是什么?

单选题 · easy

  • A.随机采样节点并连接邻居,构建可行路线图← 正确答案
  • B.从起点开始逐步向终点生长一棵树
  • C.遍历配置空间中的所有网格点
  • D.用梯度下降优化一条初始轨迹

答案:A。PRM 在配置空间中随机采样可行节点,然后连接相邻且无碰撞的节点对,形成一张路线图用于查询。RRT 才是一棵从起点生长的树;网格遍历复杂度高;梯度下降属于轨迹优化方法。

Q4. 以下哪个是典型非完整约束的例子?

单选题 · mid

  • A.机械臂的关节角度不能超过180度
  • B.小汽车不能直接横向平移← 正确答案
  • C.机器人工作空间的地面边界
  • D.机械臂末端必须保持水平

答案:B。汽车不能横向移动是典型的非完整约束——它限制的是速度方向而非位置范围。关节角度限位是位置约束(完整约束);地面边界和末端水平约束都属于位置层的完整约束。

Q5. 约束处理中“投影策略”的核心目的是什么?

单选题 · mid

  • A.把障碍物投影到二维平面上
  • B.将不满足约束的采样点拉回可行流形← 正确答案
  • C.把高维空间降到低维空间
  • D.加快路径平滑的速度

答案:B。投影策略的本质是给定一个非可行采样点,在约束流形上找最近点,将其替换为合法姿态。它不是降维,而是“纠偏”;也不关注障碍物投影或路径平滑。

Q6. RRT 相比网格搜索在高维配置空间中的优势是什么?

单选题 · mid

  • A.保证找到全局最优解
  • B.随机采样显著减少无效搜索区域← 正确答案
  • C.不需要任何约束信息
  • D.每次迭代必然扩展一个新节点

答案:B。RRT 通过随机采样在配置空间中逐步生长,把采样资源集中在可行区域,避免了网格搜索的指数级遍历。RRT 不保证全局最优,也不能完全忽略约束,每次扩展是否成功还取决于碰撞检测。

Q7. 在 RRT 扩展失败时,“后退再试试”策略指的是什么?

单选题 · mid

  • A.减少步长或更换生长方向重新尝试← 正确答案
  • B.从起点重新开始整棵树的生长
  • C.增大步长强行越过障碍物
  • D.放弃当前目标点并随机跳跃

答案:A。后退规避策略在节点扩展失败时,会退回上一节点或缩小步长,换个方向再尝试,类似沙发卡住后先退半步再调整角度。重新生长整棵树代价高,增步长会降低安全性,随机跳跃则失去规划意义。

Q8. 增广拉格朗日方法相比基本惩罚函数法最大的改进是什么?

单选题 · hard

  • A.用乘子迭代避免惩罚权重趋向无穷大← 正确答案
  • B.完全消除局部最优问题
  • C.不再需要目标函数
  • D.可以处理非完整约束以外的所有约束

答案:A。基本惩罚法要靠不断增大惩罚参数来逼近约束满足,参数过大会引发数值问题。增广拉格朗日引入乘子项,乘子迭代更新代替惩罚参数无限增大,数值稳定性更好。但本质仍是局部优化方法,不能保证全局最优。

Q9. 目标函数中惩罚参数 μ 设置过大会导致哪些问题?

多选题 · hard

  • A.梯度数值不稳定甚至震荡← 正确答案
  • B.约束违反量必然为零
  • C.可能产生病态的局部极小值← 正确答案
  • D.目标函数自动变为线性

答案:AC。μ 过大时惩罚项梯度剧烈变化,造成数值不稳定;同时可能把可行解“逼”到边界形成病态极小值。μ 过大并不能“必然”让约束为零,只是让惩罚项权重极大;目标函数也不会因此变成线性。

Q10. 关于采样规划的概率完备性,以下说法正确的有哪些?

多选题 · extreme

  • A.采样次数趋于无穷时找到解的概率趋于 1← 正确答案
  • B.在有限迭代内一定找到解
  • C.不保证找到最优解← 正确答案
  • D.概率完备性是 PRM 和 RRT 共有的性质← 正确答案

答案:ACD。概率完备性指随着采样数量增加,找到可行解的概率趋近于 1,但有限迭代内不保证成功,也不保证最优。PRM 和 RRT 都具备概率完备性,这是它们的核心理论保证。