当前位置: 首页 > news >正文

html网站优化企业网站开发设计

html网站优化,企业网站开发设计,企业网站系统有哪些,湖州市网站建设公司在智能驾驶领域#xff0c;D* Lite 算法是一种高效的动态路径规划算法#xff0c;适用于处理环境变化时的路径重规划问题。以下将为你展示 D* Lite 算法的高级用法#xff0c;包含动态障碍物处理、多步预测和启发式函数优化等方面的代码实现。 代码实现 import heapq impo…在智能驾驶领域D* Lite 算法是一种高效的动态路径规划算法适用于处理环境变化时的路径重规划问题。以下将为你展示 D* Lite 算法的高级用法包含动态障碍物处理、多步预测和启发式函数优化等方面的代码实现。 代码实现 import heapq import math# 地图类用于管理地图信息和更新 class Map:def __init__(self, grid):self.grid gridself.rows len(grid)self.cols len(grid[0])def get_neighbors(self, node):x, y nodeneighbors []for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0), (1, 1), (1, -1), (-1, 1), (-1, -1)]:new_x, new_y x dx, y dyif 0 new_x self.rows and 0 new_y self.cols and self.grid[new_x][new_y] 0:neighbors.append((new_x, new_y))return neighborsdef update_cell(self, x, y, new_value):self.grid[x][y] new_valuedef is_obstacle(self, node):x, y nodereturn self.grid[x][y] 1# 节点类用于存储节点信息 class Node:def __init__(self, x, y):self.x xself.y yself.g float(inf)self.rhs float(inf)self.key [float(inf), float(inf)]def __lt__(self, other):return self.key other.key# 优化的启发式函数考虑对角线移动的欧几里得距离 def heuristic(a, b):dx abs(a[0] - b[0])dy abs(a[1] - b[1])return math.sqrt(dx**2 dy**2)# 计算节点的键值 def calculate_key(node, s_start, k_m):node.key [min(node.g, node.rhs) heuristic((node.x, node.y), s_start) k_m,min(node.g, node.rhs)]return node# 初始化 D* Lite 算法 def initialize(s_start, s_goal):U []nodes {}for i in range(map_obj.rows):for j in range(map_obj.cols):node Node(i, j)nodes[(i, j)] nodes_goal_node nodes[s_goal]s_goal_node.rhs 0s_goal_node calculate_key(s_goal_node, s_start, 0)heapq.heappush(U, s_goal_node)return U, nodes# 更新节点的 rhs 值 def update_vertex(U, node, s_start, k_m):if node.g ! node.rhs:node calculate_key(node, s_start, k_m)for i, n in enumerate(U):if n.x node.x and n.y node.y:U[i] nodeheapq.heapify(U)breakelse:heapq.heappush(U, node)else:for i, n in enumerate(U):if n.x node.x and n.y node.y:U.pop(i)heapq.heapify(U)break# 计算最短路径 def compute_shortest_path(U, s_start, nodes, k_m):while U and (U[0].key calculate_key(nodes[s_start], s_start, k_m) ornodes[s_start].rhs nodes[s_start].g):u heapq.heappop(U)if u.g u.rhs:u.g u.rhselse:u.g float(inf)update_vertex(U, u, s_start, k_m)for neighbor in map_obj.get_neighbors((u.x, u.y)):neighbor_node nodes[neighbor]if neighbor ! s_start:cost 1if abs(u.x - neighbor[0]) abs(u.y - neighbor[1]) 2:cost math.sqrt(2) # 对角线移动代价neighbor_node.rhs min(neighbor_node.rhs,u.g cost)update_vertex(U, neighbor_node, s_start, k_m)# 动态障碍物处理和多步预测 def handle_dynamic_obstacles(U, nodes, s_start, s_goal, k_m, dynamic_obstacles):for obstacle in dynamic_obstacles:obstacle_node nodes[obstacle]map_obj.update_cell(obstacle[0], obstacle[1], 1)for neighbor in map_obj.get_neighbors(obstacle):neighbor_node nodes[neighbor]neighbor_node.rhs float(inf)update_vertex(U, neighbor_node, s_start, k_m)compute_shortest_path(U, s_start, nodes, k_m)# 路径规划函数 def d_star_lite(s_start, s_goal, dynamic_obstacles[]):U, nodes initialize(s_start, s_goal)k_m 0compute_shortest_path(U, s_start, nodes, k_m)path []current s_startwhile current ! s_goal:path.append(current)neighbors map_obj.get_neighbors(current)min_rhs float(inf)next_node Nonefor neighbor in neighbors:neighbor_node nodes[neighbor]if neighbor_node.rhs min_rhs:min_rhs neighbor_node.rhsnext_node neighborif next_node is None:print(未找到可行路径)return []current next_nodepath.append(s_goal)# 处理动态障碍物if dynamic_obstacles:handle_dynamic_obstacles(U, nodes, s_start, s_goal, k_m, dynamic_obstacles)path []current s_startwhile current ! s_goal:path.append(current)neighbors map_obj.get_neighbors(current)min_rhs float(inf)next_node Nonefor neighbor in neighbors:neighbor_node nodes[neighbor]if neighbor_node.rhs min_rhs:min_rhs neighbor_node.rhsnext_node neighborif next_node is None:print(未找到可行路径)return []current next_nodepath.append(s_goal)return path# 示例地图 map_grid [[0, 0, 0, 0, 0],[0, 1, 1, 0, 0],[0, 0, 0, 0, 0],[0, 0, 1, 1, 0],[0, 0, 0, 0, 0] ] map_obj Map(map_grid)# 起点和终点 s_start (0, 0) s_goal (4, 4)# 初始路径规划 path d_star_lite(s_start, s_goal) if path:print(初始规划的路径:, path)# 模拟动态障碍物出现 dynamic_obstacles [(2, 2)] path d_star_lite(s_start, s_goal, dynamic_obstacles) if path:print(出现动态障碍物后重新规划的路径:, path) 代码解释 1. 地图类Map get_neighbors不仅考虑上下左右移动还考虑了对角线移动扩大了节点的搜索范围。is_obstacle判断节点是否为障碍物。 2. 节点类Node 存储节点的坐标、g 值从起点到该节点的实际代价、rhs 值到该节点的最短路径的估计代价和键值 key。 3. 启发式函数heuristic 采用考虑对角线移动的欧几里得距离作为启发式函数更准确地估计节点到目标节点的代价。 4. D* Lite 算法核心函数 initialize初始化算法创建节点字典和优先队列 U将目标节点加入队列。calculate_key计算节点的键值用于优先队列的排序。update_vertex更新节点的 rhs 值并根据情况更新优先队列。compute_shortest_path计算最短路径不断更新节点的 g 和 rhs 值直到找到最短路径或队列为空。 5. 动态障碍物处理和多步预测 handle_dynamic_obstacles处理动态障碍物的出现更新受影响节点的 rhs 值并重新计算最短路径。 6. 路径规划函数d_star_lite 主路径规划函数先进行初始路径规划若存在动态障碍物则调用 handle_dynamic_obstacles 重新规划路径。 注意事项 代码中的动态障碍物处理是简单模拟实际应用中需要结合传感器数据实时更新障碍物信息。启发式函数和移动代价的计算可以根据具体场景进行调整以提高路径规划的效率和准确性。代码中未考虑车辆的运动学约束实际智能驾驶中需要进一步考虑车辆的转弯半径、速度限制等因素。
http://www.hkea.cn/news/14439443/

相关文章:

  • wordpress幻灯片满屏低价网站建设优化公司
  • 怎么看一个网站什么语言做的什么广告推广最有效果
  • 网站开发人员介绍免费的个人简历模板表格
  • 专业企业建站公司教育机构招聘网站建设
  • 中小企业网站建设 网络营销顺通建设集团有限公司 网站
  • 做电影网站需要什么软件北京科技网站制作
  • 太仓住房与城乡建设局网站网站中链接怎么做的
  • 好的网站布局wordpress连接已重置
  • 360竞价推广怎么做百度搜索seo
  • 网站定制哪儿济南兴田德润怎么联系wordpress 自动分页插件
  • 宁夏建设厅网站首页系统管理中心
  • 网站建设呼和浩特遵义网站建设90kj
  • 大唐网站建设服务器如何发布网站
  • wordpress cms系统seo外包多少钱
  • 电子商务网站建设 大纲jsp网站 值班功能
  • 响应式网站建站工具湖北智能网站建设制作
  • 美妆网站模板ui网站开发报价
  • 在线咨询网站模板做京挑客的网站有哪些
  • 怎么知道哪家公司网站做的好网络编程有哪些
  • 自己网站如何做关键词排名html简单登录界面代码
  • 静态网站 动态网站建设运营费用包括哪些
  • 做企业网站建设公司哪家好电子商务网站建设平台
  • 家居企业网站建设公司河南网站优化外包服务
  • 深圳有哪些网站开发公司推广赚钱的平台
  • 大理市城乡建设局网站网站建设教程pdf
  • 网站ipv6改造怎么做 网页代码世界杯竞猜网站开发
  • 单产品网站模板seo优化快排
  • 新视网站建设联系qq如何制作一个手机app
  • 正规小说录入打字兼职平台河南企业网站排名优化
  • 旅游网站设计方案怎么做网站seo外包