本人8年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我

2026 电工杯 B 题:思路分析与建模方案

全局技术路线

数据预处理 → 问题1(马尔可夫链人口预测 + 消费约束)→
问题2(0/1 整数规划选址 + 容量分配)→
问题3(线性规划/枚举定价)→
问题4(灵敏度分析)

全局符号体系

符号 含义
i∈{A,...,J}i \in \{A,...,J\}i{A,...,J} 小区索引(10 个)
j∈{1,...,J}j \in \{1,...,J\}j{1,...,J} 候选站点索引(与小区位置一致)
r∈{S,M,L}r \in \{S, M, L\}r{S,M,L} 站点规模:小/中/大
k∈{1,...,6}k \in \{1,...,6\}k{1,...,6} 服务项目:助餐/日间/上门/康复/助浴/紧急
g∈{g \in \{g{自理, 半失能, 失能}\}} 老人类型
NigN^g_iNig 小区 iii 类型 ggg 老人数
dgkd^k_gdgk 类型 ggg 老人对服务 kkk 的月需求次数
DijD_{ij}Dij 小区 iiijjj 的距离
xjr∈{0,1}x_{jr}\in\{0,1\}xjr{0,1} 是否在 jjj 建设 rrr 规模站点
yij∈{0,1}y_{ij}\in\{0,1\}yij{0,1} 小区 iii 是否由 jjj 服务
pkp_kpk 服务 kkk 单次定价

问题1:未来五年老人数量与服务需求量预测

1.1 马尔可夫链 + 自然死亡 + 新增模型

状态转移(年度):

  • 自然死亡:所有老人按 5% 死亡率减少
  • 自理 → 半失能:4.5%
  • 半失能 → 失能:10%
  • 失能 → 失能(不恢复)
  • 新增:每年新增 60+ 老人 = 当年总老人数 × 7%(默认计为自理)

递推公式(设 At,Bt,CtA_t, B_t, C_tAt,Bt,Ct 分别为 ttt 年末自理、半失能、失能数):

total_t-1 = A_{t-1} + B_{t-1} + C_{t-1}
new_t = total_t-1 × 0.07              # 新增自理
A_t = (A_{t-1} × (1-0.045) + new_t) × (1-0.05)
B_t = (B_{t-1} + A_{t-1} × 0.045) × (1-0.10) × (1-0.05)
C_t = (C_{t-1} + B_{t-1} × 0.10) × (1-0.05)

注意:执行顺序是先转移再死亡(按"未恢复"约束推导)。

1.2 理论月需求

DikD^k_iDik = ∑gNig⋅dgk\sum_g N^g_i \cdot d^k_ggNigdgk(向量化矩阵乘法)

1.3 含消费约束的实际需求

对每类老人 ggg,月人均费用 Cg=∑kdgk⋅pkbaseC^g = \sum_k d^k_g \cdot p^{base}_kCg=kdgkpkbase(紧急救助免费)

人均月收入上限 =wi⋅αg= w_i \cdot \alpha_g=wiαg(自理 0.20,半失能 0.25,失能 0.30)

Cg>wi⋅αgC^g > w_i \cdot \alpha_gCg>wiαg,按比例削减次数:缩放系数 λig=min⁡(1,wiαg/Cg)\lambda^g_i = \min(1, w_i\alpha_g / C^g)λig=min(1,wiαg/Cg)

实际需求 =dgk⋅λig⋅Nig= d^k_g \cdot \lambda^g_i \cdot N^g_i=dgkλigNig(取整)

问题2:服务站选址与规模优化(MILP)

2.1 决策变量

  • xjr∈{0,1}x_{jr} \in \{0,1\}xjr{0,1}: 在小区 jjj 是否建 rrr 规模站
  • yij∈{0,1}y_{ij} \in \{0,1\}yij{0,1}: 小区 iii 由站点 jjj 服务(最多 1 站,最满意原则)
  • 每个 jjj 只能建 1 个站:∑rxjr≤1\sum_r x_{jr} \leq 1rxjr1

2.2 约束

  1. 预算∑j∑rxjr⋅Buildr≤120\sum_j \sum_r x_{jr} \cdot \text{Build}_r \leq 120jrxjrBuildr120 万元
  2. 服务半径yij=1⇒Dij≤1000y_{ij}=1 \Rightarrow D_{ij} \leq 1000yij=1Dij1000;用 yij≤1[Dij≤1000]y_{ij} \leq \mathbb{1}[D_{ij} \leq 1000]yij1[Dij1000]
  3. 必须有站才能服务yij≤∑rxjry_{ij} \leq \sum_r x_{jr}yijrxjr
  4. 每个小区最多由 1 站服务∑jyij≤1\sum_j y_{ij} \leq 1jyij1
  5. 容量约束∑iyij⋅di≤∑rxjr⋅Capr\sum_i y_{ij} \cdot d_i \leq \sum_r x_{jr} \cdot \text{Cap}_riyijdirxjrCapr
    • 其中 did_idi = 小区 iii 老人日总人次需求

2.3 目标(多目标合并)

max⁡α⋅覆盖率+β⋅平均满意度\max\quad \alpha \cdot \text{覆盖率} + \beta \cdot \text{平均满意度}maxα覆盖率+β平均满意度

或转为:max⁡∑i∑jyij⋅老人数i⋅Sij\max \sum_i \sum_j y_{ij} \cdot \text{老人数}_i \cdot S_{ij}maxijyij老人数iSij,其中 SijS_{ij}Sij 为预估满意度(用 S1S_1S1 距离满意度作主导,S2,S3S_2, S_3S2,S3 在求解后估算)

2.4 求解算法

  • MILP(PuLP+CBC):变量数 = 30 (x) + 100 (y) = 130,秒级求解
  • 时间复杂度:O(2∣J∣⋅∣R∣)O(2^{|J|\cdot|R|})O(2JR) 最坏(分支限界),实际 ≪ 1s

问题3:服务定价与政府补贴优化

3.1 决策变量

  • pkp_kpk ∈ [基准价, 基准价×1.2](连续)
  • 离散化为 4 档:平价 / 微溢价 / 中溢价 / 高溢价

3.2 约束

  • 利润率 ≤ 8%
  • 紧急救助 = 0(不参与定价)

3.3 目标

  • max⁡\maxmax 平均价格满意度 S3S_3S3,紧约束利润率 ≤ 8%

3.4 求解

  • 直接枚举 4 档定价(5 种服务 × 4 档 = 45=10244^5=102445=1024 种组合,每种秒级核验)
  • 最优解通常是"平价" → S3=1.0S_3=1.0S3=1.0,但若不满足利润率 ≤ 8%(实际可能利润率太低),则适度涨价
  • 实际本题营收>支出,平价利润已存在,故大概率 S3=1.0S_3=1.0S3=1.0 即最优

问题4:灵敏度分析

  • 基准方案、(a) 改增长率与转移率、(b) 日成本+20%、© 预算 140万元 共 4 套
  • 每套重跑问题 1+2+3,对比覆盖率、满意度、定价、补贴、利润
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐