news 2026/4/16 11:54:26

多目标点路径规划——蚁群+A*算法 室内旅行商问题——送餐移动机器人(从厨房出发到达多个目标点...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多目标点路径规划——蚁群+A*算法 室内旅行商问题——送餐移动机器人(从厨房出发到达多个目标点...

多目标点路径规划——蚁群+A*算法 室内旅行商问题——送餐移动机器人(从厨房出发到达多个目标点,最后返回厨房) 1,A*算法规划两两之间的路径,并计算路径长度; 2,蚁群算法依据两点之间路径长度,规划多个目标点的先后到达顺序; 3,组合最优顺序的路径,输出最后路线

厨房飘着咖喱香,送餐机器人小R盯着屏幕上闪烁的八个取餐点坐标,触角天线微微颤动——今天的路径规划挑战开始了。多目标点路径规划就像在迷宫里找最优观光路线,既要避开障碍,又要让总路程最短。咱们今天用A*算法铺路,靠蚁群算法导航,看看小R怎么优雅地完成这场室内马拉松。

先掏出看家本领A*算法。这货在网格地图里找两点最优路径稳得一批,核心是动态权衡实际代价和启发式预估。来看段暴力美学风格的路径搜索实现:

def a_star(start, end, grid): open_set = PriorityQueue() open_set.put((0, start)) came_from = {} g_score = {pos: float('inf') for row in grid for pos in row} g_score[start] = 0 while not open_set.empty(): current = open_set.get()[1] if current == end: break for neighbor in get_neighbors(current, grid): tentative_g = g_score[current] + 1 # 假设每格移动代价为1 if tentative_g < g_score[neighbor]: came_from[neighbor] = current g_score[neighbor] = tentative_g f_score = tentative_g + heuristic(neighbor, end) open_set.put((f_score, neighbor)) return reconstruct_path(came_from, end)

这里有个骚操作:启发函数heuristic用对角距离比欧氏距离更配网格运动。当机器人要穿越餐厅桌椅迷宫时,这种路径计算方式能快速生成绕过障碍物的最优路线。把所有点位两两之间的路径都算出来后,咱们就得到了一张路径代价矩阵——这相当于给后续的蚁群算法准备了城市距离表。

多目标点路径规划——蚁群+A*算法 室内旅行商问题——送餐移动机器人(从厨房出发到达多个目标点,最后返回厨房) 1,A*算法规划两两之间的路径,并计算路径长度; 2,蚁群算法依据两点之间路径长度,规划多个目标点的先后到达顺序; 3,组合最优顺序的路径,输出最后路线

接下来轮到蚁群算法决定拜访顺序。20只蚂蚁在虚拟地图上爬行,信息素浓度高的路径更容易被选择。初始化参数时要注意挥发系数别设太高,否则机器人容易陷入局部最优:

class AntColony: def __init__(self, distance_matrix, n_ants=20, decay=0.1, alpha=1, beta=2): self.distances = distance_matrix self.pheromone = np.ones_like(distance_matrix) # 信息素矩阵初始化 self.all_inds = list(range(len(distance_matrix))) def run(self): for _ in range(100): # 迭代次数 paths = self.gen_paths() self.spread_pheromone(paths) # 更新信息素 return self.best_path def gen_single_path(self): path = [0] # 从厨房出发 available = self.all_inds[1:] # 排除厨房 while available: current = path[-1] probs = self.calc_probs(current, available) next_node = np.random.choice(available, p=probs) path.append(next_node) available.remove(next_node) path.append(0) # 返回厨房 return path

这里有个魔鬼细节:概率计算时用 (信息素^α)*(能见度^β) 作为转移概率,其中能见度用距离倒数表示。beta参数调大能让机器人更倾向短距离跳跃,防止出现绕远路的沙雕路线。当某只蚂蚁偶然找到更短路径时,它留下的信息素轨迹会引导后续蚂蚁向更优解聚集。

最后把最优顺序的路径拼接起来,就像把散落的珍珠串成项链。假设目标点顺序是0->3->1->2->0(厨房编号为0),就把A生成的0-3、3-1、1-2、2-0的路径片段连接起来。总路径长度校验时要注意转角处的距离计算——有些时候直接相加会比实际走出来的路线短,这时候需要重新跑一遍完整路径的A验证。

实测在10个目标点的场景下,这套组合拳比纯贪心算法节省约18%的行程。不过当遇到动态障碍物时,还得引入实时重规划机制——这时候小R触角天线上的摄像头就该派上用场了。下次咱们聊聊怎么在行进过程中动态调整信息素,让机器人学会绕开突然出现的熊孩子。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 5:57:15

使用Prometheus监控FaceRecon-3D服务指标

使用Prometheus监控FaceRecon-3D服务指标 1. 为什么需要为FaceRecon-3D配置专业监控 FaceRecon-3D这类3D人脸重建服务在实际部署中&#xff0c;远不止是“上传一张照片→生成一个模型”这么简单。它背后运行着复杂的深度神经网络&#xff0c;对GPU显存、内存带宽、计算资源都…

作者头像 李华
网站建设 2026/4/16 6:00:25

弦音墨影一文详解:Qwen2.5-VL如何支撑‘千里江山图中点卯式’定位

弦音墨影一文详解&#xff1a;Qwen2.5-VL如何支撑"千里江山图中点卯式"定位 1. 系统概述与核心价值 「弦音墨影」是一款融合人工智能技术与传统美学的视频理解系统&#xff0c;其核心在于将Qwen2.5-VL多模态模型的强大能力&#xff0c;通过水墨丹青的视觉语言呈现给…

作者头像 李华
网站建设 2026/4/16 6:00:17

Qwen2.5-7B-Instruct环境配置:torch_dtype=‘auto‘硬件精度自动识别

Qwen2.5-7B-Instruct环境配置&#xff1a;torch_dtypeauto硬件精度自动识别 想让Qwen2.5-7B-Instruct这个“大家伙”在你的电脑上跑得又快又稳吗&#xff1f;很多朋友在部署时&#xff0c;最头疼的就是怎么设置那些复杂的参数&#xff0c;尤其是torch_dtype这个决定模型计算精…

作者头像 李华
网站建设 2026/4/16 6:02:29

Nunchaku FLUX.1 CustomV3企业级部署方案:高可用架构设计与实现

Nunchaku FLUX.1 CustomV3企业级部署方案&#xff1a;高可用架构设计与实现 1. 为什么企业需要高可用的FLUX.1部署 最近不少团队在用Nunchaku加速FLUX.1模型时发现&#xff0c;单机部署虽然能跑通流程&#xff0c;但一到实际业务场景就容易出问题——生成任务排队卡住、GPU显…

作者头像 李华
网站建设 2026/4/15 14:42:08

GLM-ASR-Nano-2512部署教程:NVIDIA GPU算力高效利用——显存占用仅8.2GB

GLM-ASR-Nano-2512部署教程&#xff1a;NVIDIA GPU算力高效利用——显存占用仅8.2GB 1. 为什么这款语音识别模型值得关注 你有没有遇到过这样的问题&#xff1a;想快速把一段会议录音转成文字&#xff0c;却发现主流开源模型要么识别不准&#xff0c;要么一跑就爆显存&#x…

作者头像 李华
网站建设 2026/4/15 11:14:58

DeepSeek-R1-Distill-Qwen-7B逻辑推理能力展示

DeepSeek-R1-Distill-Qwen-7B逻辑推理能力展示 1. 为什么这个7B模型值得特别关注 很多人看到“7B”参数量的第一反应是&#xff1a;这不就是个中等规模的模型吗&#xff1f;性能能有多强&#xff1f;但DeepSeek-R1-Distill-Qwen-7B恰恰打破了这种刻板印象。它不是简单地把大模…

作者头像 李华