永川集团网站建设织梦手机网站怎么做
永川集团网站建设,织梦手机网站怎么做,哪里有做推文的网站,青岛企业网站制作多目标点路径规划——蚁群A*算法 室内旅行商问题——送餐移动机器人#xff08;从厨房出发到达多个目标点#xff0c;最后返回厨房#xff09; 1#xff0c;A*算法规划两两之间的路径#xff0c;并计算路径长度#xff1b; 2#xff0c;蚁群算法依据两点之间路径长度&am…多目标点路径规划——蚁群A*算法 室内旅行商问题——送餐移动机器人从厨房出发到达多个目标点最后返回厨房 1A*算法规划两两之间的路径并计算路径长度 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*算法 室内旅行商问题——送餐移动机器人从厨房出发到达多个目标点最后返回厨房 1A*算法规划两两之间的路径并计算路径长度 2蚁群算法依据两点之间路径长度规划多个目标点的先后到达顺序 3组合最优顺序的路径输出最后路线接下来轮到蚁群算法决定拜访顺序。20只蚂蚁在虚拟地图上爬行信息素浓度高的路径更容易被选择。初始化参数时要注意挥发系数别设太高否则机器人容易陷入局部最优class AntColony: def __init__(self, distance_matrix, n_ants20, decay0.1, alpha1, beta2): 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, pprobs) 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触角天线上的摄像头就该派上用场了。下次咱们聊聊怎么在行进过程中动态调整信息素让机器人学会绕开突然出现的熊孩子。