109 lines
5.3 KiB
TOML
109 lines
5.3 KiB
TOML
# =============================================================================
|
||
|
||
# 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 |