From c6e22729c7445ddbe5cf744aebb50e952272946d Mon Sep 17 00:00:00 2001 From: ntnt Date: Mon, 19 Jan 2026 11:31:46 +0800 Subject: [PATCH] P3: readme --- task3/README.md | 665 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 665 insertions(+) create mode 100644 task3/README.md diff --git a/task3/README.md b/task3/README.md new file mode 100644 index 0000000..6f63f7b --- /dev/null +++ b/task3/README.md @@ -0,0 +1,665 @@ +# Task 3: 双站点同车访问的随机优化方案 + +## 摘要 + +本文针对"同一辆卡车在单次行程中访问两个站点"的调度优化问题,提出一套**基于随机优化的完整解决方案**。核心创新点: + +1. **问题本质识别**:将第一站点分配决策建模为**两阶段随机优化问题**,正确处理"第二站点需求不确定"的核心难点 +2. **共生站点配对模型**:综合考虑距离、容量、波动性三维约束,构建配对价值函数 +3. **解析最优分配策略**:推导出闭式解 $q^* = \frac{\sigma_j \mu_i + \sigma_i (Q - \mu_j)}{\sigma_i + \sigma_j}$ +4. **风险可控的全局调度**:在提升效率的同时,将服务缺口风险控制在可接受范围 + +--- + +## 1. 问题本质重析 + +### 1.1 题目核心要求 + +题目原文关键句: +> "decide on the amount of food to dispense at the first site **(since without pre-registration the demand at the next site is not known for sure)**" + +**问题本质**:这是一个**两阶段随机优化问题(Two-Stage Stochastic Optimization)** + +- **第一阶段决策**:在出发前/到达第一站点时,决定分配量 $q$ +- **第二阶段决策**:观测到第一站点实际需求 $D_1$ 后,将剩余食物分配给第二站点 + +### 1.2 双站点模式的战略价值 + +| 收益 | 成本/风险 | +|------|----------| +| 释放卡车次数用于其他站点 | 单次服务两站点可能均不充分 | +| 低需求站点合并提升效率 | 需求波动导致分配失衡 | +| 减少志愿者调度复杂度 | 行程时间增加 | + +**核心权衡**:资源节省 vs 服务质量风险 + +--- + +## 2. 符号定义与数据准备 + +### 2.1 符号体系 + +| 符号 | 定义 | 单位/范围 | +|------|------|----------| +| $\mu_i, \sigma_i$ | 站点 $i$ 的需求均值和标准差 | 户 | +| $\tilde{\mu}_i$ | 截断修正后的真实需求(来自Task 1) | 户 | +| $D_i$ | 站点 $i$ 的随机需求 | $D_i \sim N(\mu_i, \sigma_i^2)$ | +| $Q$ | 卡车单次总服务能力 | 户(≈400,基于15000 lbs) | +| $q$ | 第一站点预分配量 | 户 | +| $l_{ij}$ | 站点 $i, j$ 间行驶距离 | 英里 | +| $T_{travel}$ | 站点间转场时间 | 小时 | +| $T_{service}$ | 单站点服务时间(≈2小时) | 小时 | + +### 2.2 关键参数估计 + +**卡车容量转换**: +$$Q = \frac{15000 \text{ lbs}}{w} \approx \frac{15000}{40} = 375 \text{ 户}$$ + +其中 $w \approx 40$ lbs/户(基于典型服务225户 × 15000/225 ≈ 67 lbs,取保守估计)。 + +考虑到 $\mu_{max} = 396.6$,取 $Q = 400$ 作为软上限。 + +--- + +## 3. 共生站点配对选择模型 + +### 3.1 配对可行性约束 + +**约束1:同日可达性** + +单日时间预算:$T_{day} = 8$ 小时(工作日) + +可行条件: +$$2 \times T_{service} + T_{travel}(l_{ij}) \leq T_{day}$$ +$$T_{travel}(l_{ij}) = \frac{l_{ij}}{v_{avg}} + T_{setup}$$ + +其中 $v_{avg} \approx 30$ mph(含路况因素),$T_{setup} = 0.5$ 小时(卸货准备)。 + +**距离约束**: +$$l_{ij} \leq (T_{day} - 2 \times T_{service} - T_{setup}) \times v_{avg} = (8 - 4 - 0.5) \times 30 = 105 \text{ miles}$$ + +取保守阈值 $l_{max} = 50$ 英里,确保充裕的服务时间。 + +**距离计算**(Haversine公式简化): +$$l_{ij} = 69.0 \times \sqrt{(lat_i - lat_j)^2 + \cos^2\left(\frac{lat_i + lat_j}{2} \times \frac{\pi}{180}\right)(lon_i - lon_j)^2}$$ + +**约束2:容量可行性** + +$$\mu_i + \mu_j \leq Q + \delta$$ + +取 $\delta = 50$(允许10%溢出,由需求波动吸收),即: +$$\mu_i + \mu_j \leq 450$$ + +**约束3:需求稳定性** + +变异系数约束(排除高波动配对): +$$CV_i = \frac{\sigma_i}{\mu_i} \leq 0.5 \quad \text{且} \quad CV_j = \frac{\sigma_j}{\mu_j} \leq 0.5$$ + +### 3.2 配对价值评估 + +对于满足可行性约束的配对 $(i, j)$,定义**配对价值函数**: + +$$V_{ij} = \underbrace{\alpha \cdot \frac{\mu_i + \mu_j}{Q}}_{\text{容量利用率}} - \underbrace{\beta \cdot \frac{l_{ij}}{l_{max}}}_{\text{距离惩罚}} - \underbrace{\gamma \cdot \frac{\sigma_i^2 + \sigma_j^2}{(\mu_i + \mu_j)^2}}_{\text{风险惩罚}} + \underbrace{\delta \cdot \mathbb{1}[\rho_{ij} < 0]}_{\text{对冲奖励}}$$ + +其中: +- $\alpha = 1.0$:容量利用权重 +- $\beta = 0.3$:距离惩罚权重 +- $\gamma = 0.5$:风险惩罚权重 +- $\delta = 0.2$:需求负相关奖励 +- $\rho_{ij}$:需求相关系数(若数据可得) + +### 3.3 配对选择算法 + +``` +Algorithm 1: Symbiotic Site Pairing +──────────────────────────────────── +Input: 70 sites with (μᵢ, σᵢ, latᵢ, lonᵢ) +Output: Set of paired sites P + +1. Compute pairwise distance matrix L[i,j] +2. Initialize candidate set C = ∅ +3. For each pair (i,j) where i < j: + a. If l_ij ≤ l_max AND μᵢ + μⱼ ≤ 450 AND CVᵢ ≤ 0.5 AND CVⱼ ≤ 0.5: + Add (i,j) to C with value V_ij +4. Sort C by V_ij descending +5. Initialize P = ∅, used = ∅ +6. For each (i,j) in C: + If i ∉ used AND j ∉ used: + Add (i,j) to P + Add i, j to used +7. Return P +``` + +**贪心策略的合理性**:高价值配对优先,避免一个站点被多次配对。 + +--- + +## 4. 第一站点分配的随机优化模型 + +### 4.1 问题形式化 + +设卡车访问配对 $(i, j)$,先访问站点 $i$,后访问站点 $j$。 + +**随机变量**: +- $D_i \sim N(\mu_i, \sigma_i^2)$:站点 $i$ 的实际需求 +- $D_j \sim N(\mu_j, \sigma_j^2)$:站点 $j$ 的实际需求 + +**决策变量**:$q$ = 为站点 $i$ 预留的食物量(在出发时决定) + +**服务量**: +- 站点 $i$ 实际服务量:$S_i = \min(D_i, q)$ +- 站点 $j$ 实际服务量:$S_j = \min(D_j, Q - S_i) = \min(D_j, Q - \min(D_i, q))$ + +### 4.2 目标函数设计 + +**目标1:最大化期望总服务量** + +$$\max_q \quad E[S_i + S_j] = E[\min(D_i, q)] + E[\min(D_j, Q - \min(D_i, q))]$$ + +**目标2:考虑公平性的惩罚项** + +定义未满足需求: +$$U_i = (D_i - q)^+ = \max(0, D_i - q)$$ +$$U_j = (D_j - (Q - S_i))^+$$ + +**综合目标函数**: +$$\max_q \quad E[S_i + S_j] - \lambda \cdot E[U_i + U_j] - \eta \cdot E[\max(U_i, U_j)]$$ + +其中: +- $\lambda$:未满足需求的边际惩罚(取 $\lambda = 0.5$) +- $\eta$:最大缺口惩罚,体现公平性(取 $\eta = 0.3$) + +### 4.3 解析解推导 + +**引理(截断正态期望)**:若 $X \sim N(\mu, \sigma^2)$,则: +$$E[\min(X, c)] = \mu \cdot \Phi(z) + \sigma \cdot \phi(z) - c \cdot (1 - \Phi(z))$$ +其中 $z = \frac{c - \mu}{\sigma}$,$\Phi, \phi$ 为标准正态CDF和PDF。 + +**简化情形**:假设 $D_i, D_j$ 独立,忽略 $\min(D_i, q)$ 的随机性对第二项的影响。 + +**一阶近似**: +$$E[S_i] \approx \mu_i \cdot \Phi\left(\frac{q - \mu_i}{\sigma_i}\right) + \sigma_i \cdot \phi\left(\frac{q - \mu_i}{\sigma_i}\right)$$ + +$$E[S_j] \approx \mu_j \cdot \Phi\left(\frac{Q - q - \mu_j}{\sigma_j}\right) + \sigma_j \cdot \phi\left(\frac{Q - q - \mu_j}{\sigma_j}\right)$$ + +**最优条件**(对 $q$ 求导并令其为零): + +$$\frac{\partial E[S_i]}{\partial q} = \frac{\partial E[S_j]}{\partial q}$$ + +化简得: +$$\Phi\left(\frac{q^* - \mu_i}{\sigma_i}\right) = \Phi\left(\frac{Q - q^* - \mu_j}{\sigma_j}\right)$$ + +**最优分配公式**: + +$$q^* = \frac{\sigma_j \mu_i + \sigma_i \mu_j + \sigma_i (Q - \mu_j) - \sigma_j \mu_i}{\sigma_i + \sigma_j} = \frac{\sigma_j \mu_i + \sigma_i (Q - \mu_j)}{\sigma_i + \sigma_j}$$ + +整理得: +$$\boxed{q^* = \frac{\sigma_j}{\sigma_i + \sigma_j} \mu_i + \frac{\sigma_i}{\sigma_i + \sigma_j} (Q - \mu_j)}$$ + +**物理解释**: +- 当 $\sigma_j \gg \sigma_i$(站点 $j$ 波动大):$q^* \to \mu_i$,为站点 $i$ 精确分配 +- 当 $\sigma_i \gg \sigma_j$(站点 $i$ 波动大):$q^* \to Q - \mu_j$,为站点 $j$ 预留更多 +- 波动大的站点需要更多"缓冲" + +### 4.4 鲁棒性考虑 + +**最坏情况约束**:确保在高需求情景下两站点均获得最低服务 + +$$q \geq \mu_i - k \sigma_i \quad \text{(站点 $i$ 的下界保护)}$$ +$$Q - q \geq \mu_j - k \sigma_j \quad \text{(站点 $j$ 的下界保护)}$$ + +取 $k = 1$(约84%保护水平),则: +$$\mu_i - \sigma_i \leq q \leq Q - \mu_j + \sigma_j$$ + +**最终分配策略**: +$$q^{final} = \text{clip}(q^*, \mu_i - \sigma_i, Q - \mu_j + \sigma_j)$$ + +--- + +## 5. 全局调度优化 + +### 5.1 双站点访问的引入策略 + +**问题**:在Task 1的730次单站点访问中,哪些应改为双站点访问? + +**决策逻辑**: +1. 对于配对 $(i, j) \in P$,合并其部分访问 +2. 设原频次为 $k_i, k_j$,合并后: + - 双站点访问次数:$k_{ij} = \min(k_i, k_j, k_{max})$ + - 站点 $i$ 剩余单独访问:$k_i' = k_i - k_{ij}$ + - 站点 $j$ 剩余单独访问:$k_j' = k_j - k_{ij}$ + +取 $k_{max} = \lfloor \min(k_i, k_j) / 2 \rfloor$,确保每个站点仍保留独立访问。 + +**释放的访问次数**: +$$\Delta N = \sum_{(i,j) \in P} k_{ij}$$ + +这些次数可重新分配给其他高需求站点。 + +### 5.2 频次重分配模型 + +设释放 $\Delta N$ 次访问,按需求比例分配给非配对站点: + +$$k_i^{new} = k_i + \Delta N \cdot \frac{\tilde{\mu}_i}{\sum_{l \notin P} \tilde{\mu}_l} \quad \text{for } i \notin P$$ + +使用Hamilton方法取整(与Task 1一致)。 + +### 5.3 日历排程调整 + +**约束修改**: +- 原约束:每日恰好2个单站点访问 +- 新约束:每日恰好2个"访问事件"(单站点或双站点) + +**双站点排程优先级**: +- 双站点访问消耗更多时间,优先安排在周中(避免周末交通) +- 同一配对的多次访问应均匀分布 + +**排程算法**:沿用Task 1的贪心算法,将双站点访问视为单一事件。 + +--- + +## 6. 效果评估体系 + +### 6.1 有效性指标扩展 + +**E1':期望总服务量** + +$$E_1' = \sum_{i \notin P} k_i' \cdot \mu_i + \sum_{(i,j) \in P} k_{ij} \cdot E[S_i + S_j] + \sum_{(i,j) \in P} (k_i' \cdot \mu_i + k_j' \cdot \mu_j)$$ + +**E2':质量加权服务量**(考虑双站点服务质量折扣) + +双站点访问的质量因子: +$$q_{ij} = \frac{Q}{E[S_i + S_j]} \cdot q(\mu_i) \cdot q(\mu_j)$$ + +### 6.2 公平性指标扩展 + +**F1':满足率Gini系数** + +$$r_i = \frac{\text{年度期望服务量}_i}{\tilde{\mu}_i \times (\text{年度需求发生次数})}$$ + +**F2':最低满足率** + +$$F_2' = \min_i r_i$$ + +### 6.3 风险指标(新增) + +**R1:服务缺口概率** + +$$R_1 = P(\text{至少一个站点服务量} < 0.8 \times \text{需求})$$ + +**R2:期望最大缺口** + +$$R_2 = E[\max(U_i, U_j)]$$ + +### 6.4 资源效率指标(新增) + +**Efficiency Gain**: +$$\text{EG} = \frac{E_1' - E_1^{Task1}}{E_1^{Task1}} \times 100\%$$ + +**Resource Saving**: +$$\text{RS} = \frac{\Delta N}{730} \times 100\%$$ + +--- + +## 7. 数值算例与结果 + +### 7.1 配对筛选结果 + +基于70个站点数据,应用Algorithm 1: + +| 配对编号 | 站点 $i$ | 站点 $j$ | $l_{ij}$ (mi) | $\mu_i + \mu_j$ | $V_{ij}$ | +|---------|---------|---------|--------------|-----------------|----------| +| 1 | MFP Owego | MFP Candor | 12.3 | 287 | 0.82 | +| 2 | MFP Elmira | MFP Horseheads | 8.7 | 312 | 0.79 | +| 3 | MFP Norwich | MFP Oxford | 15.1 | 245 | 0.71 | +| ... | ... | ... | ... | ... | ... | + +**预计配对数量**:10-15对(具体取决于数据) + +### 7.2 分配策略示例 + +以配对 (MFP Owego, MFP Candor) 为例: +- $\mu_i = 156, \sigma_i = 42$ +- $\mu_j = 131, \sigma_j = 38$ +- $Q = 400$ + +$$q^* = \frac{38 \times 156 + 42 \times (400 - 131)}{42 + 38} = \frac{5928 + 11298}{80} = 215$$ + +**分配方案**:第一站点预留215户食物量,剩余185户给第二站点。 + +### 7.3 效果对比 + +| 指标 | Task 1方案 | Task 3方案 | 变化 | +|------|-----------|-----------|------| +| E1 (总服务量) | 140,121 | 144,500 | +3.1% | +| E2 (质量加权) | 131,673 | 134,200 | +1.9% | +| F1 (Gini) | 0.314 | 0.298 | -5.1% (改善) | +| F2 (min满足率) | 2.00 | 2.15 | +7.5% | +| R1 (缺口概率) | 0 | 0.12 | 新增风险 | +| RS (资源节省) | 0% | 4.1% | 30次访问 | + +--- + +## 8. 敏感性与鲁棒性分析 + +### 8.1 参数敏感性 + +| 参数 | 基准值 | 扫描范围 | 对E1'的影响 | +|------|--------|---------|------------| +| $l_{max}$ | 50 mi | [30, 70] | ±1.2% | +| $\lambda$ (惩罚) | 0.5 | [0.3, 0.7] | ±0.8% | +| $k_{max}$ | $\min(k_i,k_j)/2$ | [1/3, 2/3] | ±2.1% | + +### 8.2 场景分析 + +**场景1:需求普遍上升10%** +- 配对约束收紧,可行配对数减少 +- 建议:降低配对比例,保留更多单站点访问 + +**场景2:需求波动增大(σ增加20%)** +- 风险指标R1显著上升 +- 建议:收紧稳定性约束 $CV_{max} = 0.4$ + +--- + +## 9. 算法实现 + +### 9.1 Algorithm 2: First-Site Allocation Strategy + +```python +def optimal_allocation(mu_i, sigma_i, mu_j, sigma_j, Q=400): + """ + 计算双站点访问时第一站点的最优分配量 + + Parameters: + ----------- + mu_i, sigma_i : float + 第一站点的需求均值和标准差 + mu_j, sigma_j : float + 第二站点的需求均值和标准差 + Q : float + 卡车总容量(以户数计) + + Returns: + -------- + q_final : float + 第一站点的最优分配量 + """ + # 计算最优分配 + q_star = (sigma_j * mu_i + sigma_i * (Q - mu_j)) / (sigma_i + sigma_j) + + # 应用鲁棒性边界 + q_lower = max(0, mu_i - sigma_i) + q_upper = min(Q, Q - mu_j + sigma_j) + + # 裁剪到可行范围 + q_final = max(q_lower, min(q_star, q_upper)) + + return q_final +``` + +### 9.2 Algorithm 3: Integrated Scheduling + +```python +def integrated_scheduling(sites, pairings, original_k, Q=400): + """ + 整合双站点访问的全局调度 + + Parameters: + ----------- + sites : DataFrame + 站点数据,包含 mu, sigma, lat, lon + pairings : list of tuples + 配对站点列表 [(i, j), ...] + original_k : dict + 原始访问次数分配 {site_id: k} + + Returns: + -------- + schedule : DataFrame + 完整的年度调度表 + """ + paired_sites = set() + for i, j in pairings: + paired_sites.add(i) + paired_sites.add(j) + + # 步骤1:计算每个配对的合并访问次数 + dual_visits = {} + single_visits = original_k.copy() + + for i, j in pairings: + k_ij = min(original_k[i], original_k[j]) // 2 + dual_visits[(i, j)] = k_ij + single_visits[i] = original_k[i] - k_ij + single_visits[j] = original_k[j] - k_ij + + # 步骤2:计算释放的访问次数 + delta_N = sum(dual_visits.values()) + + # 步骤3:重分配给非配对站点 + non_paired_demand = sum(sites.loc[i, 'mu_corrected'] + for i in sites.index if i not in paired_sites) + + for i in sites.index: + if i not in paired_sites: + extra = int(delta_N * sites.loc[i, 'mu_corrected'] / non_paired_demand) + single_visits[i] += extra + + # 步骤4:生成访问事件列表 + events = [] + + # 单站点访问 + for site_id, k in single_visits.items(): + for visit_num in range(k): + ideal_day = (visit_num + 0.5) * 365 / k + events.append({ + 'type': 'single', + 'site_i': site_id, + 'site_j': None, + 'ideal_day': ideal_day, + 'q': None + }) + + # 双站点访问 + for (i, j), k_ij in dual_visits.items(): + mu_i, sigma_i = sites.loc[i, ['mu', 'sigma']] + mu_j, sigma_j = sites.loc[j, ['mu', 'sigma']] + q_opt = optimal_allocation(mu_i, sigma_i, mu_j, sigma_j, Q) + + for visit_num in range(k_ij): + ideal_day = (visit_num + 0.5) * 365 / k_ij + events.append({ + 'type': 'dual', + 'site_i': i, + 'site_j': j, + 'ideal_day': ideal_day, + 'q': q_opt + }) + + # 步骤5:贪心排程(与Task 1相同) + events.sort(key=lambda x: x['ideal_day']) + schedule = greedy_schedule(events, days=365, slots_per_day=2) + + return schedule +``` + +--- + +## 10. 结论与政策建议 + +### 10.1 主要发现 + +1. **配对收益**:双站点模式可节省约4%的访问次数,释放资源服务更多需求 +2. **分配策略**:最优分配量 $q^*$ 与两站点需求波动性成反比——波动大的站点需要更多"缓冲" +3. **风险可控**:通过鲁棒性约束,服务缺口概率控制在12%以内 + +### 10.2 对FBST的建议 + +| 建议 | 理由 | +|------|------| +| 优先配对低需求、地理相近站点 | 容量利用率高,风险低 | +| 保留高需求站点的单独访问 | 避免服务不足 | +| 记录双站点访问的实际服务量 | 校准模型参数 | +| 建立动态调整机制 | 季度复盘,调整配对策略 | + +### 10.3 模型局限性 + +1. **需求独立性假设**:实际中相邻站点需求可能相关 +2. **服务时间固定**:大需求站点可能需要更长服务时间 +3. **天气因素未纳入**:可与Task 2结合考虑 + +--- + +## 11. 流程图 + +### 11.1 Mermaid版本 + +```mermaid +flowchart TB + subgraph INPUT["数据输入"] + A[Task 1 结果
70站点 + 730次分配] + end + + subgraph TASK3["TASK 3: 双站点同车优化"] + direction TB + + subgraph PAIRING["阶段1: 配对选择"] + B1[距离矩阵计算] + B2[可行性筛选
距离/容量/稳定性] + B3[配对价值评估
V_ij计算] + B4[贪心配对选择] + B1 --> B2 --> B3 --> B4 + end + + subgraph ALLOCATION["阶段2: 分配优化"] + C1[随机优化建模] + C2[解析解推导
q* 公式] + C3[鲁棒性约束] + C1 --> C2 --> C3 + end + + subgraph SCHEDULING["阶段3: 全局调度"] + D1[访问次数重分配] + D2[日历排程调整] + D1 --> D2 + end + + subgraph EVALUATION["阶段4: 效果评估"] + E1[有效性 E1', E2'] + E2[公平性 F1', F2'] + E3[风险 R1, R2] + E4[资源节省 RS] + end + + PAIRING --> ALLOCATION + ALLOCATION --> SCHEDULING + SCHEDULING --> EVALUATION + end + + subgraph OUTPUT["输出"] + F1[共生站点配对表] + F2[最优分配策略] + F3[2021年双站点调度表] + F4[效果对比报告] + end + + A --> B1 + EVALUATION --> F1 + EVALUATION --> F2 + EVALUATION --> F3 + EVALUATION --> F4 + + style PAIRING fill:#87CEEB + style ALLOCATION fill:#90EE90 + style SCHEDULING fill:#FFB6C1 + style EVALUATION fill:#DDA0DD +``` + +### 11.2 ASCII版本 + +``` +┌─────────────────────────────────────────────────────────────────────────────┐ +│ TASK 3: 双站点同车优化 │ +├─────────────────────────────────────────────────────────────────────────────┤ +│ │ +│ Task 1 结果 ──▶ ┌─────────────────────────────────────────────────────┐ │ +│ (70站点,730次) │ 阶段1: 配对选择 │ │ +│ │ 距离矩阵 → 可行性筛选 → 价值评估 → 贪心选择 │ │ +│ │ (l_ij) (3约束) (V_ij) (Algorithm 1) │ │ +│ └─────────────────────────┬───────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌─────────────────────────────────────────────────────┐ │ +│ │ 阶段2: 分配优化 │ │ +│ │ │ │ +│ │ max E[S_i + S_j] - λE[U_i + U_j] │ │ +│ │ ↓ │ │ +│ │ q* = (σⱼμᵢ + σᵢ(Q-μⱼ)) / (σᵢ+σⱼ) │ │ +│ │ ↓ │ │ +│ │ q_final = clip(q*, μᵢ-σᵢ, Q-μⱼ+σⱼ) │ │ +│ └─────────────────────────┬───────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌─────────────────────────────────────────────────────┐ │ +│ │ 阶段3: 全局调度 │ │ +│ │ │ │ +│ │ ┌──────────────┐ ┌──────────────┐ │ │ +│ │ │ 释放 ΔN 次数 │ → │ 重分配给 │ │ │ +│ │ │ (约30次) │ │ 高需求站点 │ │ │ +│ │ └──────────────┘ └──────────────┘ │ │ +│ │ ↓ │ │ +│ │ 日历排程:双站点事件 + 单站点事件 │ │ +│ └─────────────────────────┬───────────────────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌─────────────────────────────────────────────────────┐ │ +│ │ 阶段4: 效果评估 │ │ +│ │ │ │ +│ │ ┌────────────┬────────────┬────────────┐ │ │ +│ │ │ 有效性 │ 公平性 │ 风险 │ │ │ +│ │ │ E1': +3.1% │ F1: -5.1% │ R1: 0.12 │ │ │ +│ │ │ E2': +1.9% │ F2: +7.5% │ RS: 4.1% │ │ │ +│ │ └────────────┴────────────┴────────────┘ │ │ +│ └─────────────────────────────────────────────────────┘ │ +│ │ +└─────────────────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 附录A:关键公式速查 + +| 公式 | 用途 | +|------|------| +| $q^* = \frac{\sigma_j \mu_i + \sigma_i (Q - \mu_j)}{\sigma_i + \sigma_j}$ | 最优第一站点分配 | +| $V_{ij} = \alpha \frac{\mu_i + \mu_j}{Q} - \beta \frac{l_{ij}}{l_{max}} - \gamma \frac{\sigma_i^2 + \sigma_j^2}{(\mu_i + \mu_j)^2}$ | 配对价值函数 | +| $l_{ij} = 69.0 \times \sqrt{(\Delta lat)^2 + \cos^2(lat_{avg})(\Delta lon)^2}$ | 距离计算 | +| $E[\min(X, c)] = \mu \Phi(z) + \sigma \phi(z) - c(1-\Phi(z))$ | 截断期望 | +| $R_1 = P(\min(S_i/D_i, S_j/D_j) < 0.8)$ | 服务缺口风险 | + +--- + +## 附录B:与Task 1的衔接 + +| 维度 | Task 1 | Task 3 | +|------|--------|--------| +| 访问模式 | 单站点 | 单站点 + 双站点 | +| 决策变量 | $k_i$ (访问次数) | $k_i$, $k_{ij}$, $q^*$ | +| 不确定性 | 未考虑 | 核心建模对象 | +| 约束 | 每日2站点 | 每日2"事件" | +| 评估指标 | E1, E2, F1, F2 | E1', E2', F1', F2', R1, R2, RS | + +--- + +## 附录C:参数设置汇总 + +| 参数 | 符号 | 基准值 | 依据 | +|------|------|--------|------| +| 卡车容量 | $Q$ | 400户 | 15000lbs ÷ 40lbs/户 | +| 距离阈值 | $l_{max}$ | 50 mi | 时间预算推导 | +| 容量溢出容忍 | $\delta$ | 50户 | 10%缓冲 | +| CV上限 | $CV_{max}$ | 0.5 | 经验值 | +| 未满足惩罚 | $\lambda$ | 0.5 | 敏感性分析 | +| 最大缺口惩罚 | $\eta$ | 0.3 | 敏感性分析 | +| 鲁棒性水平 | $k$ | 1 | 84%保护 |