# ============================================================================= # UAVSearch 完整配置 — 修改此文件即可运行,无需 CLI 参数 # ============================================================================= # ----------------------------------------------------------------------------- # [problem] 问题定义 # ----------------------------------------------------------------------------- [problem] width = 1000.0 # 空域宽度 (m) height = 800.0 # 空域高度 (m) uavs = 7 # UAV 数量 radius = 50.0 # 传感器半径 (m) speed = 15.0 # 飞行速度 (m/s) depot_service = 60.0 # 站内换电/服务时间 (s) seed = 64 # 随机种子(基线部署与优化器) # 分区模式 # workload — 栅格最近站点划分(推荐,优化平滑) # lloyd — Lloyd 松弛栅格划分 # voronoi — 站点 Voronoi 图 # uniform — 等面积条带(legacy,配 boustrophedon 常用) partition = "voronoi" # 路径规划器 # mtsp — 栅格航点 + TSP 闭环(推荐) # boustrophedon — 牛耕/条带扫描 planner = "mtsp" # 仿真指标栅格密度(见下方说明,不直接控制路径航点密度) # 仿真栅格边长 cell_size = radius / grid_density # 越大 → 栅格越细 → T_max/覆盖率/重叠率估计越准,但仿真更慢 # 推荐:mtsp 用 4~6;boustrophedon 用 3~5(路径已是条带,无需过细) grid_density = 6.0 # uniform 分区条带方向;也影响 boustrophedon 扫描轴(auto 时 vertical→水平扫描) # auto | vertical | horizontal strip_direction = "auto" # Lloyd 分区迭代次数(仅 partition = "lloyd" 时生效) lloyd_iterations = 6 # 仿真时间步长 (s) sim_dt = 0.5 # 站点搜索边界内缩比例(相对空域宽/高) bounds_margin = 0.05 # ----------------------------------------------------------------------------- # [planner.boustrophedon] 牛耕规划器(planner = "boustrophedon" 时生效) # ----------------------------------------------------------------------------- # 条带间距 = sweep_width_ratio × radius # 默认 2.0 → 条带间距 = 2r,与传感器直径一致,保证无漏覆盖 # 调小(如 1.6)→ 条带更密、路径更长、覆盖冗余更大 # 调大(如 2.2)→ 条带更疏,可能出现漏覆盖 [planner.boustrophedon] sweep_width_ratio = 2.0 # 扫描轴:x = 水平扫描线(条带沿 Y 堆叠);y = 垂直扫描线 # auto — 由 strip_direction 推断(vertical→x,horizontal→y) sweep_axis = "auto" # ----------------------------------------------------------------------------- # [planner.mtsp] mTSP 规划器(planner = "mtsp" 时生效) # ----------------------------------------------------------------------------- # 航点间距 = waypoint_spacing_factor × radius # 默认 √2 ≈ 1.414 → 栅格对角线间距,相邻航点传感器圆相交无漏 # 调小 → 航点更密、路径更长;调大 → 航点更疏,可能漏覆盖 [planner.mtsp] waypoint_spacing_factor = 1.0 # ----------------------------------------------------------------------------- # [simulation] 仿真 # ----------------------------------------------------------------------------- [simulation] duration = 200.0 # 基线/最终报告仿真时长 (s) opt_duration = 100.0 # 优化搜索阶段每次评估的仿真时长 (s) fast_eval_max_duration = 100.0 # fast_eval 仿真时长上限 (s) fast_eval_grid_density_cap = 3.0 # fast_eval 时 grid_density 上限 show_progress = true # 是否显示 tqdm 进度条 # ----------------------------------------------------------------------------- # [objective] 优化目标 # ----------------------------------------------------------------------------- # 复合目标 J = weight_t_max × T* + weight_coverage × (1-覆盖率) + weight_overlap × 重叠率 # T* = T_max(primary = max_revisit)或 P_max(primary = max_patrol_period) [objective] primary = "max_revisit" # max_revisit | max_patrol_period weight_t_max = 1.0 weight_coverage = 220.0 weight_overlap = 100.0 # ----------------------------------------------------------------------------- # [optimizer] 优化器(当前使用 method 指定的那一组) # ----------------------------------------------------------------------------- [optimizer] method = "mapso" # differential_evolution | local | hybrid | mapso maxiter = 5 # DE/MAPSO 最大代数;hybrid 时 DE 用 maxiter//2 popsize = 8 # 种群规模 verbose = true # 打印每次评估日志 min_separation_ratio = 0.5 # 站点最小间距 = ratio × radius # MAPSO(method = "mapso" 时生效) [optimizer.mapso] w = 0.729 c1 = 1.494 c2 = 1.494 vmax_ratio = 0.2 # 差分进化(method = differential_evolution 或 hybrid 的第一阶段) [optimizer.differential_evolution] tol = 0.05 atol = 0.05 polish = false # 局部精修 L-BFGS-B(method = local 或 hybrid 的第二阶段) [optimizer.local] maxiter = 40 # ----------------------------------------------------------------------------- # [run] 运行 # ----------------------------------------------------------------------------- [run] optimize = true save = "output/dashboard.png" show = true