下面是**下一阶段(Phase-3)明确执行清单**。 目标不是继续“修代码”,而是把当前仿真从 **能运行的系统** 升级为 **可发表 / 可证明算法价值的实验平台**。 你可以直接把下面内容作为 `next_phase.md` 交给执行 AI。 --- # `next_phase.md` ```markdown # LoRa Route Py — Phase-3 任务清单 ## 目标 当前系统已经: - ✅ 完整仿真框架 - ✅ 多跳路由工作 - ✅ 业务数据成功传输 - ✅ 指标统计完善 下一阶段目标: > 将仿真升级为 **算法评估平台(Algorithm Evaluation Platform)** 核心思想: 不再证明“能跑” → 而是证明“比别人好” --- # Phase-3 总览 新增三大能力: 1. Baseline 对照算法 2. 可重复实验框架(Experiment Runner) 3. 自动论文级结果输出 --- # TASK 1 — Baseline Routing(最高优先级) ## 目的 当前只有 Gradient Routing。 必须加入对照组,否则结果没有科研意义。 --- ## 1.1 新建目录 ``` sim/routing/ ├── gradient_routing.py ├── flooding.py ← NEW ├── random_forward.py ← NEW └── shortest_path.py ← NEW(可选) ``` --- ## 1.2 Flooding Routing(必须实现) ### 行为 收到 DATA: ``` if packet_id 未见过: 转发给所有邻居 ```` 需要: - seen_packet_cache (TTL) - 防止无限广播 --- ### 接口保持一致 ```python class FloodingRouting(BaseRouting): def next_hop(self, packet): return BROADCAST ```` Node 不需要修改。 --- ## 1.3 Random Forward(必须) 用于验证: > gradient 是否优于随机策略 逻辑: ``` 随机选择一个邻居转发 ``` --- ## 验收标准 新增测试: ``` test_baseline_runs.py ``` 要求: * flooding 能运行 * random 能运行 * 无死循环 --- # TASK 2 — Experiment Runner(核心) ## 目标 自动跑: ``` 节点数 × 区域大小 × 算法 ``` 而不是手动运行。 --- ## 2.1 新建 ``` sim/experiments/ runner.py ``` --- ## API ```python run_experiment( routing="gradient", node_count=12, area_size=500, sim_time=500 ) ``` 返回: ```python { "pdr": float, "avg_latency": float, "avg_hop": float, "collision_rate": float, } ``` --- ## 2.2 参数扫描 自动执行: ``` nodes = [6, 9, 12, 15] area = [300, 500, 800] routing = ["gradient", "flooding", "random"] ``` 总实验: ``` 4 × 3 × 3 = 36 runs ``` --- # TASK 3 — 固定随机种子(重要) 否则实验不可复现。 --- 修改: ``` config.py ``` 加入: ```python RANDOM_SEED = 42 ``` 在 main 初始化: ```python random.seed(Config.RANDOM_SEED) np.random.seed(Config.RANDOM_SEED) ``` --- 验收: 同参数运行两次结果一致。 --- # TASK 4 — 新指标(Metrics v2) 扩展 metrics.py: --- ## 必须新增 ### 4.1 End-to-End Latency ``` receive_time - create_time ``` 输出: ``` avg_latency p95_latency ``` --- ### 4.2 Forwarding Overhead ``` total_tx / successful_packets ``` 衡量能量效率。 --- ### 4.3 Network Load ``` total_airtime / sim_time ``` --- # TASK 5 — 自动结果导出 新增: ``` analysis_tools/export.py ``` --- ## 输出 CSV ``` results.csv ``` 格式: | routing | nodes | area | pdr | latency | hop | | ------- | ----- | ---- | --- | ------- | --- | --- # TASK 6 — 自动绘图(必须) 使用 matplotlib: 生成: ``` results/ ├── pdr_vs_nodes.png ├── latency_vs_nodes.png ├── overhead_compare.png ``` --- 图要求: * 每条 routing 一条曲线 * 自动 legend --- # TASK 7 — Regression Tests(防退化) 新增: ``` test_algorithm_compare.py ``` 要求: ``` gradient.pdr >= random.pdr ``` (允许 small tolerance) --- # TASK 8 — 自动实验入口 新增: ``` python run_experiments.py ``` 执行后: ``` ✔ 运行全部实验 ✔ 输出CSV ✔ 生成图表 ``` --- # Phase-3 验收标准 必须全部满足: * [ ] 至少 2 个 baseline 算法 * [ ] 自动实验 runner * [ ] 固定随机种子 * [ ] CSV 自动生成 * [ ] 自动绘图 * [ ] gradient 与 baseline 可比较 * [ ] 一键运行实验 --- # 完成后系统能力 完成 Phase-3 后,你将拥有: ✅ LoRa mesh 仿真平台 ✅ 算法对照实验系统 ✅ 自动论文图生成 ✅ 可直接写实验章节