P3: readme fix

This commit is contained in:
2026-01-18 14:43:22 +08:00
parent 9d194977fb
commit ae3d4cffde

View File

@@ -44,9 +44,24 @@ Optimize a 365-day schedule with at most 2 visits per day and minimum gap constr
使用 `kmin_effectiveness.py` 得到各站点年度访问频次 `f_i` 与需求分布(均值、标准差)。 使用 `kmin_effectiveness.py` 得到各站点年度访问频次 `f_i` 与需求分布(均值、标准差)。
记单车载量 `C=15000lb`(或折算为服务人数上限 `C_OPT`),每次出车总量不超过 `C` 记单车载量 `C=15000lb`(或折算为服务人数上限 `C_OPT`),每次出车总量不超过 `C`
2. **候选配对生成** 2. **候选配对生成Manhattan 距离,基于经纬度)**
基于地理距离/车程/同县等规则,生成可在同日完成的站点对 `(i, j)`;仅保留“距离阈值内 + 预期需求量不极端失衡”的组合 设站点 `i` 的坐标为 `(lat_i, lon_i)`,在不使用道路网的情况下,用曼哈顿距离近似“同日可达性”
可直接使用数据中的经纬度(若有)或县域分组构造“近邻候选集”。 推荐用“纬度/经度分别折算为里程”的加权曼哈顿:
```
d_ij = 69.0 * |lat_i - lat_j| + 69.0 * cos(lat0) * |lon_i - lon_j|
```
其中 `lat0` 可取所有站点纬度均值(单位:英里)。若仅需相对距离,也可用
`|lat_i - lat_j| + |lon_i - lon_j|` 作为无量纲近似。
具体配对流程(可直接脚本化):
- **距离筛选**:对每个站点 `i`,计算与所有 `j != i` 的 `d_ij`,保留 `d_ij <= d_max`
或取 `k` 个最近邻(如 `k=5~8`),得到近邻集合 `N(i)`。
- **需求均衡筛选**:对候选 `(i, j)`,要求
`mu_i / mu_j` 处于区间 `[r_min, r_max]`(如 `[0.5, 2.0]`
或 `|mu_i - mu_j| <= delta_mu`,避免极端失衡导致第二站缺货。
- **波动风险筛选**:若 `sigma_i` 或 `sigma_j` 过大(如 `sigma / mu > 0.5`
则优先作为第二站(或直接剔除)以降低不确定性风险。
- **最终候选集**`P = {(i, j) | j in N(i) 且满足需求/波动筛选}`
再去重(`(i, j)` 与 `(j, i)` 合并)并记录候选对的 `d_ij` 与需求统计。
3. **第一站分配量优化(核心不确定性)** 3. **第一站分配量优化(核心不确定性)**
假设 `D_i ~ Normal(mu_i, sigma_i)` 与 `D_j ~ Normal(mu_j, sigma_j)`,选择第一站上限 `q_i` 假设 `D_i ~ Normal(mu_i, sigma_i)` 与 `D_j ~ Normal(mu_j, sigma_j)`,选择第一站上限 `q_i`