- Paper: Optimizing urban last mile delivery efficiency (Liu & Wang, 2025) - 5 algorithms: Static-VRPTW, TA-Greedy, ALNS-Base, T-ALNS, T-ALNS-RRD - v1 baseline + v2 calibrated experiments with full results - Tabu memory ablation study with convergence analysis - Comprehensive final report (FINAL_REPORT.md)
21 KiB
T-ALNS-RRD 论文复现完整计划
0. 文档概要
论文标题: Optimizing urban last mile delivery efficiency through dynamic vehicle routing heuristics and traffic flow analysis
作者: Lu Liu, Tianxia Wang (Yibin Vocational and Technical College)
发表: 2025, Scientific Reports
复现类型: 基于合成数据的算法机制复现 (Methodological Reproduction)
1. 复现目标体系
1.1 核心目标
复现论文提出的 T-ALNS-RRD 框架的核心算法链:
Static-VRPTW → TA-VRPTW-Greedy → ALNS-Base → T-ALNS → T-ALNS-RRD
1.2 验证目标 (5 个量化趋势)
| # | 趋势 | 预期方向 |
|---|---|---|
| 1 | 交通感知成本降低拥堵暴露 | TA-Greedy CES < Static CES |
| 2 | ALNS 相比贪婪算法进一步降低总成本 | ALNS TotalCost < TA-Greedy |
| 3 | Tabu memory 减少重复搜索,提高解稳定性 | T-ALNS σ < ALNS σ |
| 4 | RRD 实时调度减少突发事件下的延误 | T-ALNS-RRD Delay < T-ALNS Delay |
| 5 | 各模块叠加后整体表现优于静态规划 | T-ALNS-RRD 全指标最优 |
1.3 成功标准
- 生成可重复的合成数据集
- 运行至少 4 个算法版本 (Static, TA-Greedy, ALNS, T-ALNS)
- 输出统一评价指标
- 展示逐模块改进趋势
- 优先级: 先完成 Static → TA-Greedy → ALNS → T-ALNS 四个版本
- RRD 作为增强实验,可用简化交通事故案例展示
2. 数据集设计 (与论文 Table 2 对齐)
2.1 基本规模参数
| 参数 | 值 | 来源 |
|---|---|---|
| 客户数 n | 47 | 论文 §4.2 |
| 仓库 | 1 (node 0) | 论文 §4.2 |
| 车辆数 m | 4 | 论文 §4.2 |
| 车辆容量 Q | 120 kg | 论文 §4.2 |
| 服务时间 s_i | 4 min/customer | 论文 §4.2 |
| 时间窗口 | 3 类 (morning/afternoon/evening) | 论文 §4.2 |
| 运营时间 | 6:00-18:00 (12 hours) | 论文 §4.3 |
| 时间段 H | 12 (1h each) | 论文 §4.3 |
| 区域范围 | 8 km × 10 km | 论文 §4.1 |
| 路网规模 | 48 nodes, 2256 arcs | 论文 Table 2 |
2.2 客户数据生成
每个客户属性:
customer_id, x (km), y (km), demand (kg), service_time (min),
earliest_time, latest_time, priority
生成规则:
x ∈ [0, 8] km,y ∈ [0, 10] kmdemand ∈ [3, 12] kg(均匀或带簇偏差)service_time = 4 min- 时间窗口分 3 类:
- Morning: 9:00-12:00
- Afternoon: 13:00-16:00
- Evening: 17:00-20:00
空间分布: 生成 3 个客户簇 (住宅区/商业区/办公区),增加路径优化意义
2.3 路网与弧数据
初版方案: 完全图 (complete graph),每对节点一条弧
每条弧属性:
from_node, to_node, distance (欧氏), base_travel_time,
road_type (arterial/collector/residential)
道路速度:
| Road Type | Speed |
|---|---|
| Arterial | 45 km/h |
| Collector | 30 km/h |
| Residential | 20 km/h |
升级方案 (Phase 2+): 使用 networkx 生成网格路网模拟真实道路
2.4 时间依赖交通矩阵 (3 个张量)
为每个 (i, j, h) 组合计算,其中 h ∈ {0, 1, ..., 11}:
travel_time[i, j, h] # 行驶时间
congestion[i, j, h] # 拥堵权重 γ ∈ [0, 1]
uncertainty[i, j, h] # 可靠性不确定性 η
交通拥堵乘子 (论文 §3.2):
| 时间段 | 时段 | 拥堵乘子 |
|---|---|---|
| 6:00-7:00 | 早间 | 1.0 |
| 7:00-9:00 | 早高峰 | 1.6 |
| 9:00-11:00 | 上午 | 1.2 |
| 11:00-13:00 | 午间 | 1.0 |
| 13:00-16:00 | 午后 | 1.2 |
| 16:00-18:00 | 晚高峰 | 1.7 |
行驶时间计算:
t_ij^(h) = base_time_ij × traffic_multiplier_h × road_noise
拥堵权重 (论文 Eq.9):
ρ_ij(T_i) = θ × γ_ij^(h), if T_i ∈ τ_h
风险调整时间 (论文 Eq.10):
t'_ij^(h) = t_ij^(h) + β × η_ij^(h)
需要满足 FIFO 一致性 (论文 Eq.11):
T_i^1 ≤ T_i^2 ⇒ T_i^1 + t_ij(T_i^1) ≤ T_i^2 + t_ij(T_i^2)
3. 问题建模与目标函数
3.1 DVRPTW-TA 形式化 (论文 §3.1)
在完全图 G=(N, A) 上建模,N = {0, 1, ..., 47},A ⊆ N × N。
3.2 复合成本函数 (论文 Eq.1)
Cost = Σ_k Σ_(i,j) x_ijk [t_ij(T_i) + λ₂ρ_ij(T_i)] + λ₁ Σ_j δ_j
其中:
δ_j = max{0, S_j - l_j} - 迟到惩罚 (论文 Eq.2)
t_ij(T_i) - 时间依赖行驶时间
ρ_ij(T_i) - 拥堵惩罚
λ₁ - 迟到惩罚权重
λ₂ - 拥堵暴露权重
3.3 约束条件
- 每个客户服务一次 (Eq.3):
Σ_k Σ_j x_ijk = 1, ∀i ∈ N\{0} - 车辆容量 (Eq.4):
Σ_i d_i Σ_j x_ijk ≤ Q, ∀k - 时间可行性 (Eq.5):
A_j ≥ T_i + t_ij(T_i), S_j ≥ max{A_j, e_j} - 软时间窗 (Eq.6):
S_j ≤ l_j + ε_j, ε_j ≥ 0 - 子回路消除 (Eq.7): MTZ 约束
4. 算法实现详细设计
4.1 Baseline 1: Static-VRPTW
特点: 不考虑时间变化、不考虑拥堵惩罚 方法: Greedy insertion heuristic 输入: 固定 base_travel_time 输出: 车辆路径方案
Algorithm:
1. 所有车辆从 depot 出发
2. 对每个未分配客户,计算插入各车辆当前路径各位置的最小边际成本
3. 选择边际成本增量最小的 (customer, vehicle, position)
4. 满足容量和时间窗约束则插入
5. 重复直到所有客户分配完毕
4.2 Baseline 2: TA-VRPTW-Greedy
特点: 考虑 time-dependent travel time + congestion penalty,但不使用 ALNS 方法: 与 Static 相同框架,但使用 t_ij(T_i) 和 ρ_ij(T_i)
与 Static 的关键差异: 边际成本计算使用 time-dependent travel time
4.3 Baseline 3: ALNS-Base (论文 §3.3.1 + Algorithm 1)
核心组件:
Destroy Operators (论文 §3.3.1):
- Random Removal: 均匀随机移除 α×n 个客户
- Worst Removal: 移除造成最大延迟/拥堵成本的客户
- Relatedness Removal: 移除地理或时间特征相似的客户
移除数量: |C| = ⌊α × n⌋, α ∈ [0.1, 0.4] (论文 Eq.15)
Repair Operators:
- Greedy Insertion: 最小化边际成本 (论文 Eq.16-17)
- Regret-2 Insertion: 最小化最优和次优插入位置差距
- Time-Window-Aware Insertion: 最小化时间窗违规
Acceptance: Simulated Annealing (论文 Eq.20-21)
P_accept = 1 if f(S') < f(S)
= exp(-(f(S') - f(S)) / τ_t) otherwise
τ_{t+1} = γ × τ_t, γ ∈ (0, 1)
Adaptive Operator Weights (论文 Eq.18-19):
p_h(t) = ω_h(t) / Σ ω_j(t)
ω_h(t+1) = (1-ξ) ω_h(t) + ξ × θ_r
奖励等级:
σ₁: 找到全局最优解
σ₂: 改善当前解
σ₃: 被接受但未改善
σ₄: 被拒绝
终止条件:
max_iter = 1000 (论文 §4.8)
time_limit = 600s
stall: 连续 T_stall 代无改进
插入成本计算 (论文 Eq.16-17):
Δf_ijk(T_j) = t_ji(T_j) + s_i + t_ik(T_j + t_ji + s_i) - t_jk(T_j)
+ λ₁ × δ_i(T_i) + λ₂ × ρ_ji(T_j)
ΔF_jik = Δf_jik^local + Σ_(u,v)∈Asuffix [t_uv(T') + λ₁δ_v + λ₂ρ_uv]
- Σ_(u,v)∈Asuffix_old [t_uv + λ₁δ_v + λ₂ρ_uv]
4.4 Baseline 4: T-ALNS (论文 §3.3.2 + Algorithm 2)
在 ALNS 基础上增加三层 Tabu Memory:
Move-Based Tabu (论文 Eq.22-23)
存储: (C_removed, h_d, h_r, t_iter) 元组
判定: 如果存在记录 (Ĉ, ĥ_d, ĥ_r, ť) 满足:
|C_removed ∩ Ĉ| ≥ μ × min(|C_removed|, |Ĉ|)
AND t_current - ť ≤ τ_move
则为 Tabu
自适应 tenure (论文 Eq.32):
τ_move(t+1) = min(τ_move+1, τ_max) if no improvement in τ_stall
= max(τ_move-1, τ_min) if improvement found
Solution-Based Tabu (论文 Eq.23-24)
哈希函数: H(S) = Σ_k Σ_i φ(v_ki, v_k(i+1)) mod P
存储: H(S') 作为环形缓冲区 (最大 1000 或 2^⌈log₂(n)⌉)
Tabu: 如果 H(S') ∈ T_sol 且在最近 τ_sol 代内记录
Frequency Memory (论文 Eq.24-26)
客户-车辆分配频率: F^cv_ik(t+1) = F^cv_ik(t) + 1_[i∈R_k(S)]
时间位置频率: F^tp_ij(t+1) = F^tp_ij(t) + Σ_k 1_[v_kj = i]
拥堵加权 (Eq.33):
F^cv_ik(t+1) = F^cv_ik(t) + 1_[i∈R_k] × (1 + Σ_j ρ_ji(T_j))
定期归一化 (Eq.32): F ← ⌊F/κ⌋ 每 ν 代
多样化强度控制 (论文 Eq.26-28)
δ(t) = ω₁ × (t - t_last_best)/T_max
+ ω₂ × |T_move|/|T_move|_max
+ ω₃ × σ(F^cv)
if δ(t) > δ_max: 切换到多样化模式
p'_h(t) = η × p_h(t) + (1-η) × div_h(t)/Σ div_j(t)
赦免准则 (论文 Eq.29-31)
- 全局最优赦免: f(S') < f(S*)
- 低频赦免: min F^cv_ik < β × F̄^cv (鼓励未用分配)
- 交通适应赦免: 拥堵成本显著降低
4.5 Proposed: T-ALNS-RRD (论文 §3.3.3 + Algorithm 3)
事件检测与分类
事件类型 (论文 §3.3.3):
E1: 关键交通事故 (道路封闭/事故/严重拥堵)
E2: 紧急订单插入 (高优先级、紧时间窗)
E3: 容量违规 (需求波动超过车辆容量)
E4: 服务时间违规 (累计延迟威胁时间窗)
紧急度评分 (论文 Eq.35):
Ψ(e,t) = α_e × (t_deadline - t_current)/t_horizon
+ β_e × impact(e) + γ_e × cost_increase(e)
候选动作空间
E1 - 局部改道: K_s=5 条 FIFO 一致的 k-shortest-time 绕行
预算 Δ_max=8 min
E1 - 客户重分配: 3km 范围内、≤10min ETA 差的车辆
每车 top-2 regret 位置
E2 - 紧急插入: top-r 插入位置 (Eq.16)
延迟变体: ≤30min 偏移,惩罚 λ₁δ_j
全部不可行则 subcontract
E3 - 负载重分配: 最小可行子集转移,最多 3 次
E4 - 加速/放宽: 局部 2-opt 重排
不可行则临时容差 ϵ_tolerance
最大动作数 |A_e| ≤ 20
Rollout 仿真 (论文 Eq.36-39)
价值函数 (Eq.36):
V^rollout(s,a,H) = E[ Σ_h Σ_k Σ_(i,j)∈A^h_k
[t_ij + λ₂ρ_ij] + λ₁ Σ_j δ_j(S^h_j) ]
交通演化 (Eq.38):
t^rollout_ij(T_i + s) = t^(r)_ij + s/Δt × (t^(r+1)_ij - t^(r)_ij)
Tabu 调整价值 (Eq.39):
V^adjusted = V^rollout - τ_penalty × 1_[Tabu(a)]
+ τ_bonus × Diversification(a)
复合决策分数 (Eq.40):
Σ(a,e,s) = ω₁ × V^adjusted + ω₂ × Stability(a,s) + ω₃ × Recovery(a,s)
稳定性 (Eq.41):
Stability(a,s) = Σ_k |R^a_k ∩ R^s_k| / |R^a_k ∪ R^s_k|
恢复性 (Eq.42):
Recovery(a,s) = -Σ_k Σ_i |OptimalPosition(i) - CurrentPosition(i,a)|
自适应资源分配 (论文 Eq.43-44)
H_rollout = max(H_min, H_max - α_urgency × Ψ(e,t))
N_sim = max(N_min, ⌊(T_available - T_overhead) / T_sim⌋)
5. 评价指标体系 (论文 §4.4)
5.1 主要指标
| 指标 | 定义 | 公式 |
|---|---|---|
| Total Cost | 综合运营成本 | Eq.1 |
| Travel Time Cost | 总行驶时间成本 | Σ t_ij(T_i) |
| Delay Penalty | 迟到惩罚 | λ₁ Σ δ_j |
| Congestion Cost | 拥堵成本 | Σ ρ_ij(T_i) |
| OTDR | 准时送达率 | N_ontime / (n-1) (Eq.45) |
| Average Delay | 平均迟到时间 | Σ δ_j / n_late |
| Max Delay | 最大迟到时间 | max δ_j |
| Late Customers | 迟到客户数 | count(S_j > l_j) |
| CES | 拥堵暴露分数 | Σ ρ_ij(T_i) (Eq.47) |
| Average Route Duration | 平均路线时长 | (1/m) Σ (T_k^end - T_k^start) (Eq.46) |
5.2 算法性能指标
| 指标 | 定义 |
|---|---|
| Computation Time | 算法运行时间 |
| Iterations to Best | 找到最优解的迭代次数 |
| Convergence Rate | 收敛速度 (improvements/iteration) |
| Solution Stability (σ) | 解的稳定性 (标准差) |
5.3 RRD 专属指标
| 指标 | 定义 |
|---|---|
| Event Response Rate | 事件响应成功率 |
| Avg Response Time | 平均响应时间 (ms) |
| Cost Reduction via RRD | RRD 带来的成本降低 |
| Adaptation Success Rate | 自适应成功率 |
6. 实验设计 (论文 §5)
6.1 实验一: 主对比实验 (对应论文 Table 5-7, Fig 8-10)
算法: Static / TA-Greedy / ALNS-Base / T-ALNS / T-ALNS-RRD
配置:
- 30 个随机种子 (论文 §5.1: seeds 1-30)
- max_iter = 1000
- time_limit = 600s (可缩短)
- 实验结果求均值 ± 标准差
输出表格:
Algorithm | TotalCost | TravelTime | DelayPenalty | Congestion | OTDR | CES | CompTime
6.2 实验二: 消融实验 (对应论文 Table 11, Fig 13)
配置:
Base ALNS
+ Move Tabu Only
+ Solution Tabu Only
+ Frequency Memory Only
Full T-ALNS
+ Traffic Events Only
+ Urgent Delivery Only
+ All RRD Events (Full T-ALNS-RRD)
6.3 实验三: 交通不确定性鲁棒性实验 (对应论文 Table 14, Fig 15)
配置:
σ ∈ {0.1, 0.2, 0.3, 0.5}
每组重复 30 次
输出指标: 各 σ 下的 TotalCost、OTDR、CES、Robustness Index
6.4 实验四: 参数敏感性实验 (对应论文 Table 3)
维度:
| 参数 | 取值 |
|---|---|
| 客户数 | 30, 40, 47, 60 |
| 车辆数 | 2, 3, 4, 5, 6 |
| 车辆容量 (kg) | 80, 100, 120, 140, 160 |
6.5 实验五: 实时事件响应实验 (对应论文 Table 8, Fig 11)
事件类型 (最低实现 3 类):
1. Traffic incident: 某边 travel_time 临时 × 2-3
2. Urgent order: 中途新增一个客户
3. Time-window risk: 预测某客户即将迟到
输出: Event Type | Frequency | Success Rate | Cost Reduction | Response Time
6.6 收敛性分析 (对应论文 Table 9-10, Fig 12)
记录 epoch-level 的 cost 下降:
Epoch 5, 10, 15, ..., 50
绘制 ALNS-Base vs T-ALNS vs T-ALNS-RRD 收敛曲线
7. 可视化要求 (论文 Fig 7-16)
| 图编号 | 内容 | 类型 |
|---|---|---|
| Fig 1 | 路线图: 仓库、47 客户、4 条路径 | 空间散点 + 连线 |
| Fig 2 | 算法框架图: ALNS → Tabu → RRD | 流程图 |
| Fig 3 | 主实验: Total Cost / OTDR / CES 柱状图 | 分组柱状图 |
| Fig 4 | 收敛曲线: ALNS vs T-ALNS vs T-ALNS-RRD | 折线图 |
| Fig 5 | 消融实验: 各模块贡献瀑布图 | 柱状图 |
| Fig 6 | RRD 示例: 扰动前后路线变化对比 | 双面板空间图 |
8. 项目代码结构
t_alns_rrd_reproduction/
├── README.md
├── requirements.txt # numpy, pandas, matplotlib, networkx, pyyaml, tqdm
├── configs/
│ ├── default.yaml # 全局默认参数
│ ├── experiment_main.yaml # 主对比实验配置
│ ├── experiment_ablation.yaml # 消融实验配置
│ └── experiment_robustness.yaml
├── src/
│ ├── __init__.py
│ ├── data_generator.py # 合成数据集生成
│ ├── problem.py # DVRPTW-TA 问题定义、Solution 数据结构
│ ├── cost.py # 成本函数计算 (Eq.1, Eq.16-17)
│ ├── schedule.py # 调度评估 (时间传播)
│ ├── baselines/
│ │ ├── __init__.py
│ │ ├── static_vrptw.py # Baseline 1: Static-VRPTW greedy
│ │ └── ta_greedy.py # Baseline 2: TA-VRPTW-Greedy
│ ├── alns/
│ │ ├── __init__.py
│ │ ├── operators_destroy.py # Random/Worst/Relatedness Removal
│ │ ├── operators_repair.py # Greedy/Regret-2/Time-Window-Aware Insertion
│ │ ├── acceptance.py # Simulated Annealing
│ │ └── alns_base.py # ALNS-Base (Algorithm 1)
│ ├── tabu/
│ │ ├── __init__.py
│ │ ├── move_tabu.py # Move-based Tabu list (Eq.22-23)
│ │ ├── solution_tabu.py # Solution hash memory (Eq.24)
│ │ ├── frequency_memory.py # Frequency matrices (Eq.25-26)
│ │ └── t_alns.py # T-ALNS (Algorithm 2)
│ ├── rrd/
│ │ ├── __init__.py
│ │ ├── event_generator.py # 事件检测与分类 (Eq.35)
│ │ ├── candidate_actions.py # 候选动作生成
│ │ ├── rollout.py # Rollout 仿真 (Eq.36-39)
│ │ ├── dispatch.py # 调度决策 (Eq.40-42)
│ │ └── t_alns_rrd.py # T-ALNS-RRD (Algorithm 3)
│ ├── experiments/
│ │ ├── run_main_comparison.py
│ │ ├── run_ablation.py
│ │ ├── run_robustness.py
│ │ ├── run_sensitivity.py
│ │ └── run_convergence.py
│ └── visualization/
│ ├── plot_routes.py # 路线地图
│ ├── plot_convergence.py # 收敛曲线
│ ├── plot_results.py # 实验结果柱状图
│ └── plot_rrd.py # RRD 前后对比图
├── data/
│ └── synthetic/ # 生成的合成数据
├── results/
│ ├── tables/
│ ├── figures/
│ └── logs/
└── tests/ # 可选: 关键逻辑单元测试
9. 分阶段实施计划
阶段 1: 基础可运行 (预计 2-3 天)
目标: 数据生成 + 两个 baseline 可运行
实现内容:
1. data_generator.py # 生成客户、路网、交通矩阵
2. problem.py # Solution 数据结构、约束检查
3. cost.py # Eq.1 成本计算
4. schedule.py # 时间传播
5. static_vrptw.py # Static-VRPTW greedy
6. ta_greedy.py # TA-VRPTW-Greedy
验收标准:
- 能生成 47 客户、4 车、12 时段的完整数据集
- Static-VRPTW 和 TA-Greedy 能输出可行路径
- 能计算 Total Cost, OTDR, CES
- 两个算法的 CES 差异体现交通感知效果
阶段 2: 核心算法复现 (预计 3-4 天)
目标: ALNS + T-ALNS 可运行,产消融表、收敛图
实现内容:
1. operators_destroy.py # 3 种 destroy 算子
2. operators_repair.py # 3 种 repair 算子 (含 Eq.16-17)
3. acceptance.py # SA 接受准则 (Eq.20-21)
4. alns_base.py # ALNS 主循环 (Algorithm 1)
5. move_tabu.py # 移动 Tabu (Eq.22-23, 32)
6. solution_tabu.py # 解 Tabu (Eq.24)
7. frequency_memory.py # 频率记忆 (Eq.25-26, 33)
8. t_alns.py # T-ALNS (Algorithm 2)
验收标准:
- ALNS-Base 能运行 1000 代并输出最优解
- T-ALNS 相比 ALNS-Base 有改善 (Total Cost ↓, OTDR ↑)
- 不同 Tabu 模块可独立开关进行消融
- 收敛曲线显示 T-ALNS 更快收敛
阶段 3: 实时调度增强 (预计 2-3 天)
目标: T-ALNS-RRD 可运行,产事件响应表
实现内容:
1. event_generator.py # 4 种事件检测 (Eq.35)
2. candidate_actions.py # 候选动作枚举 (含验证)
3. rollout.py # Rollout 仿真 (Eq.36-39)
4. dispatch.py # 复合决策 (Eq.40-42)
5. t_alns_rrd.py # T-ALNS-RRD (Algorithm 3)
验收标准:
- 能模拟至少 Traffic Incident 和 Urgent Order
- Rollout 能在 120s 内返回调度决策
- 调度后 OTDR 相比不调度有所提升
- 路线变化可视化 (before/after 对比)
阶段 4: 实验与可视化 (预计 2 天)
目标: 跑完全部实验,产出论文风格图表
实现内容:
1. run_main_comparison.py
2. run_ablation.py
3. run_robustness.py
4. run_sensitivity.py
5. 6 张可视化图
验收标准:
- 5 个实验全部可执行
- 产出至少 5 张可放入 PPT 的图表
- 表格数据保存在 results/tables/
- 图保存在 results/figures/
10. 技术栈与依赖
Python 3.11
numpy - 矩阵运算、随机数
pandas - 数据管理、表格输出
matplotlib - 可视化
networkx - 路网建模 (Phase 2+ 可选)
pyyaml - 配置文件
tqdm - 进度条
11. 关键参数默认值 (论文参数)
| 参数 | 默认值 | 来源 |
|---|---|---|
| λ₁ (lateness) | 1.0 | 论文 Eq.1 |
| λ₂ (congestion) | 1.0 | 论文 Eq.1 |
| θ (congestion scale) | 1.0 | 论文 Eq.9 |
| β (risk aversion) | 0.3 | 论文 Eq.10 |
| α (destroy ratio) | [0.1, 0.4] | 论文 Eq.15 |
| τ₀ (initial temp) | 0.05 × Z(S⁰) | Algorithm 1 |
| γ (cooling rate) | 0.99975 | Algorithm 1 |
| ξ (reaction factor) | 0.1 | 论文 Eq.19 |
| τ_move (move tenure) | 7 | 论文 Table 4 |
| τ_sol (solution tenure) | 15 | 论文 Table 4 |
| μ (overlap threshold) | 0.5 | 论文 Eq.23 |
| δ_max (diversification) | 0.7 | 论文 Eq.27 |
| H_rollout | 30-120 min | 论文 Eq.43 |
| N_sim | 2-50 | 论文 Eq.44 |
| ω₁, ω₂, ω₃ (composite) | 0.4, 0.3, 0.3 | 论文 Eq.40 |
12. 风险与应对
| 风险 | 应对 |
|---|---|
| 完全图计算量过大 (47² = 2209 arcs × 12h × 3 params) | 完全图可行,约 81000 条数据,numpy 可处理 |
| ALNS 收敛慢 | 放宽 stall 条件,适当增加 max_iter |
| T-ALNS Tabu 逻辑复杂 | 先实现 Move Tabu Only,验证效果再加其他 |
| RRD rollout 耗时 | 降低 H_rollout 到 30min,减少 N_sim 到 10 |
| 结果与论文差异大 | 这是合成数据复现,重点是趋势验证而非精确复刻 |
13. 复现声明模板
最终汇报时使用如下定位:
由于原文数据集需向作者合理请求,且目前尚未获得完整数据与代码,本项目采用与论文实验规模和数据结构相近的自定义合成数据集,复现其核心算法流程和对比实验框架。复现重点在于验证不同算法模块对总成本、准时率、拥堵暴露和实时扰动响应能力的相对影响,而非逐项复刻原文数值结果。本项目属于基于合成数据的算法机制复现 (methodological reproduction)。
14. 预估时间线
| 阶段 | 内容 | 预估时间 |
|---|---|---|
| 阶段 1 | 数据集 + 2 个 baseline | 2-3 天 |
| 阶段 2 | ALNS + T-ALNS | 3-4 天 |
| 阶段 3 | RRD 实时调度 | 2-3 天 |
| 阶段 4 | 实验跑全 + 可视化 | 2 天 |
| 总计 | 9-12 天 |