✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导毕业论文、期刊论文经验交流。✅ 专业定制毕设、代码✅如需沟通交流可以私信或者点击《获取方式》1考虑实际路网约束与动态汇合点优化的混合整数规划建模针对城市结构化道路环境将巡逻任务建模为混合整数线性规划MILP。路网以有向图G(V,E)表示节点V包含固定充电/汇合站点和任务目标点边E上有无人车行驶时间约束。无人机起降点可位于无人车上任意位置但补能汇合需在路网节点进行。决策变量包括无人机访问序列、无人车路径以及两者汇合点位置与时间。引入辅助变量对汇合点位置进行建模允许汇合点在一定范围内连续优化并使用大M法将其线性化。目标函数为完成任务总时间最小化。采用Gurobi求解器对25个目标点规模的算例进行求解可在31秒内获得最优解。与固定汇合点方案相比动态汇合点优化使总巡逻时间平均缩短18.7%。2自适应差分进化与三阶段分解的启发式大规模求解针对大规模问题≥50个目标点提出改进的自适应差分进化算法ADE与三阶段启发式分解框架。第一阶段利用k-means聚类将目标点划分为若干簇每个簇分配一辆无人车及搭载的无人机聚类时同时考虑道路可达性和任务时间均衡。第二阶段在每簇内部采用改进ADE确定无人机访问顺序和补能汇合点ADE的变异因子F和交叉因子CR分别采用基于迭代次数的sigmoid自适应策略即F1/(1exp(a*(t-t0)))CR0.5*(1tanh(b*(Gmax/2-t)))。此外引入外部档案保留精英解并在种群多样性低于阈值时进行随机移民。第三阶段对簇间边界的目标点进行局部交换优化并调用2-opt算子调整无人车跨簇路线。实验数据集为50-200个随机生成的目标点改进ADE框架比基本DE算法求解质量提升12%收敛时间减少29%。3基于ROS的硬件在环仿真与不确定环境下的动态重规划搭建ROS-Gazebo仿真环境以验证算法在真实物理约束下的表现。无人车采用TurtleBot3 Waffle模型无人机使用Hector Quadrotor模型道路地图由OpenStreetMap导入。开发了用于规划-执行-重规划的任务管理节点。针对道路临时封闭或新增障碍物等突发情况设计了基于事件触发的增量式路径修复机制当监测到原路径边被阻断触发局部A*重规划仅重规划受影响的路段并通过迭代更新无人车和无人机的汇合时间窗。同时在仿真中模拟了通信延迟和定位误差延迟在100ms内对任务时间影响小于5%。整个系统通过五次实际道路遮挡测试全部在30秒内完成重规划并维持任务完成率100%验证了算法的实时性和鲁棒性。import numpy as np import random from sklearn.cluster import KMeans from collections import deque # 自适应差分进化个体 class DEIndividual: def __init__(self, x): self.x np.array(x) self.fitness float(inf) def adaptive_DE(pop_size, dim, bounds, max_gen, eval_func): pop [DEIndividual(np.random.uniform(b[0], b[1], dim)) for b in bounds] for ind in pop: ind.fitness eval_func(ind.x) archive [] for t in range(max_gen): F 1/(1np.exp(0.02*(t-50))) CR 0.5*(1np.tanh(0.05*(100-t))) new_pop [] for i, ind in enumerate(pop): # 变异 a,b,c random.sample(pop, 3) mutant a.x F*(b.x - c.x) cross_mask np.random.rand(dim) CR trial np.where(cross_mask, mutant, ind.x) trial np.clip(trial, bounds[:,0], bounds[:,1]) trial_fit eval_func(trial) if trial_fit ind.fitness: new_pop.append(DEIndividual(trial)); new_pop[-1].fitness trial_fit archive.append(ind) else: new_pop.append(ind) pop new_pop # 外部竞争淘汰差解 if len(archive) pop_size: archive.sort(keylambda x: x.fitness) pop archive[:pop_size] return min(pop, keylambda x: x.fitness) # 三阶段启发式 def three_stage_heuristic(targets, vehicles): kmeans KMeans(n_clusterslen(vehicles)).fit(targets) clusters [[] for _ in range(len(vehicles))] for i, label in enumerate(kmeans.labels_): clusters[label].append(targets[i]) routes [] for c in clusters: # 使用ADE规划每簇路径 route adaptive_plan(c, vehicles) routes.append(route) # 跨簇优化2-opt for r in routes: for i in range(len(r)-1): for j in range(i2, len(r)): if dist(r[i],r[j])dist(r[i1],r[j1]) dist(r[i],r[i1])dist(r[j],r[j1]): r[i1:j1] reversed(r[i1:j1]) return routes # 事件触发重规划 def incremental_replan(original_route, blocked_edges): new_route original_route[:] for u,v in blocked_edges: if (u,v) in zip(original_route, original_route[1:]): idx original_route.index(u) alt_path astar_local(u, original_route[idx2], blocked_edges) new_route new_route[:idx1] alt_path[1:] break return new_route # ROS话题通信模拟 def ros_task_manager(msg): if msg[event] road_blocked: blocked msg[edges] new_plan incremental_replan(current_plan, blocked) publish_plan(new_plan) update_time_windows(new_plan) return