Files
lora_route_py/docs/plan/phase3.md

4.7 KiB
Raw Blame History

下面是下一阶段Phase-3明确执行清单。 目标不是继续“修代码”,而是把当前仿真从 能运行的系统 升级为 可发表 / 可证明算法价值的实验平台

你可以直接把下面内容作为 next_phase.md 交给执行 AI。


next_phase.md

# 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

run_experiment(
    routing="gradient",
    node_count=12,
    area_size=500,
    sim_time=500
)

返回:

{
    "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

加入:

RANDOM_SEED = 42

在 main 初始化:

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 仿真平台 算法对照实验系统 自动论文图生成 可直接写实验章节