【MCM/论文学习/2025B】熵权法,Logistic 和 动态规划 (2504448)

这是MCM 2025 Problem B O奖论文2504448的学习笔记,其他MCM笔记:

论文写作

Our work

在Introduction的Our work部分放上我们的整个建模、求解、分析过程

加入图片说明文字(类似PPT)

建模

熵权法思路

  1. 对于每一个指标,对其评价对象的值进行归一化,然后计算该指标的熵值
  2. 用所有指标的熵值计算熵权

假设:

原始数据矩阵为:

X=[x11x12x1nx21x22x2nxm1xm2xmn]X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{bmatrix}

  1. 指标正向化

如果所有指标都是“越大越好”

  1. 指标内部数据归一化

pij=xiji=1mxijp_{ij} = \frac{x'{ij}}{\sum{i=1}^{m} x'_{ij}}

  1. 计算指标熵值

ej=ki=1mpijlnpije_j = -k \sum_{i=1}^{m} p_{ij} \ln p_{ij}

其中:k=1lnmk = \frac{1}{\ln m}

  1. 计算熵权

dj=1ejd_j = 1 - e_j

wj=djj=1ndjw_j = \frac{d_j}{\sum_{j=1}^{n} d_j}

得到每个指标的权重 wjw_j

逻辑斯谛修正 (Logistic Correction)

适用于描述 “饱和增长/恢复模型”

例如本文中描述自然恢复的公式中的r(1Esub(t))r\cdot(1-E_{sub}(t))就是Logistic Correction

E(t+1)=Esub(t)+r(1Esub(t))h(T(t)Tmax)E(t+1)=E_{sub}(t)+r\cdot(1-E_{sub}(t))-h\cdot(\frac{T(t)}{T_{max}})

它描述的是:环境恢复速度随着环境变好而下滑

本期增量=基础速率×(1XK)剩余空间/缺口\text{本期增量} = \text{基础速率} \times \underbrace{(1 - \frac{X}{K})}_{\text{剩余空间/缺口}}

XX 是研究的变量(比如环境质量、人口、市场占有率),KK 是该量的最大值

r(1Esub(t))=r(1Esub(t)1)r\cdot(1-E_{sub}(t)) = r\cdot (1 - \frac{E_{sub}(t)}{1})

基于理想点的归一化惩罚项

其思想是 “中庸之道”,适用于中间值是最好的情况

Score=1TactualToptimalToptimalScore = 1 - \frac{|T_{actual} - T_{optimal}|}{T_{optimal}}

适用场景:

进阶:使用正态分布函数,消除不可导点

Q(t)=e(T(t)Topt)22σ2Q(t) = e^{-\frac{(T(t) - T_{opt})^2}{2\sigma^2}}

动态规划(Dynamic Programming, DP)

解决多阶段决策过程的工具,将长期的决策问题拆解为每个 t 下的决策问题

首先定义四要素

1. 定义状态变量(State Variables)

随时间变化,且会被决策影响的指标,往往是目标函数中的变量

2. 定义决策变量

决策者可以修改的参数

3. 定义状态转移方程

利用回归分析、微分方程或逻辑斯谛增长模型等方式构建 T(t+1)T(t+1)T(t)T(t) 之间的等式关系

4. 定义阶段指标/回报函数

描述当前 t 下做得好不好

一般是利润、成本、效用等

然后写出贝尔曼方程:

5. 写出贝尔曼方程

V(t)=max决策变量{Reward(t)+γV(t+1)}V(\text{t}) = \max_{\text{决策变量}} \{ Reward(t) + \gamma \cdot V(\text{t+1}) \}

V(t)=maxτ(t),M(t){P(t)+ω4E(t)+ω5Q(t)当前回报+γV(t+1)未来折现价值}V(t) = \max_{\tau(t), M(t)} \{ \underbrace{P(t) + \omega_4 E(t) + \omega_5 Q(t)}_{\text{当前回报}} + \underbrace{\gamma V(t+1)}_{\text{未来折现价值}} \}

V(t)V(t):价值函数,表示从第 tt 年开始一直到最后一年,能获得的最大总收益

γ\gamma : 折现因子,将未来的价值函数折现到当前

求解方法:逆向归纳法

  1. 设定 Final

假设第5年是最后一年,没有下一年了(V(6)=0V(6)=0),则

V(5)=maxτ(t),M(t){Reawrd(t)}V(5) = \max_{\tau(t), M(t)} \{ Reawrd(t)\}

如何求解?

(1) 首先,V(5)受到 t = 4 的状态变量的影响,例如文中的 T(4) 和 E(4)

因此,V(5)V(5) 实际上是一个以 T(4) 和 E(4) 为变量的表 / 函数

其一, 可以采用网格法,输入大量的 T(4) 和 E(4),对每个 (T(4) , E(4)),采取以下方法求得 V(5)V(5)

(离散)

其二, 可以采用 近似动态规划

即在第 5 年随机输入几千个 (T(4) , E(4)),对每个 (T(4) , E(4))同样用上文所述方法求得最优解,然后用回归模型拟合这个函数,得到

V^5(T,E)\hat{V}_5(T, E)

这是一个连续函数,适合T、E连续的情形

  1. 倒推

得到 V(5)V(5) 后,即可优化得到 V(4)V(4)

V(4)=maxτ(t),M(t){Reawrd(t)+γV(5)}V(4) = \max_{\tau(t), M(t)} \{ Reawrd(t) + \gamma V(5)\}

灵敏度分析

对于一个动态规划模型,可以尝试改变状态变量,看参数的变化

可以展示模型的 Smart 程度

一般的灵敏度分析(改变参数)展示的只是 Robust

这篇论文可以改进的点

论文中的决策变量只写了两个 τ(t),M(t)\tau(t), M(t)

但实际求解(根据3.5.7)可知 M(t)M(t) 实际上是有4个分量的,分别表示政府的基础设施投入、广告投入、补贴投入、环保投入

更好的写法是将其在模型建立时清晰地写出来,如下所示:

αi(t)\alpha_i(t) 为第 tt 年各类政府支出的分配比例,满足归一化约束:

α(t)=[αenv(t),αinfra(t),αsub(t),αads(t)]\mathbf{\alpha}(t) = [\alpha_{env}(t), \alpha_{infra}(t), \alpha_{sub}(t), \alpha_{ads}(t)]

s.t.αi(t)=1,αi(t)0\text{s.t.} \quad \sum \alpha_i(t) = 1, \quad \alpha_i(t) \ge 0

各类具体的支出金额为:Mi(t)=αi(t)M(t)M_i(t) = \alpha_i(t) \cdot M(t)

  1. 广告投入 (MadsM_{ads})

    原公式只写了 ηM(t)\eta \cdot M(t),现在更精确为:

    g(t)=gbaseβCcap(t)+η(αads(t)M(t))仅广告费起作用g(t) = g_{base} - \beta C_{cap}(t) + \eta \cdot \underbrace{(\alpha_{ads}(t) \cdot M(t))}_{\text{仅广告费起作用}}

  2. 环保投入 (MenvM_{env})

    原公式写的是 κM(t)\kappa \cdot M(t),现在更精确为:

    Esub(t)=E(t)+κ(αenv(t)M(t))仅环保费起作用E_{sub}(t) = E(t) + \kappa \cdot \underbrace{(\alpha_{env}(t) \cdot M(t))}_{\text{仅环保费起作用}}

  3. 基建投入 (MinfraM_{infra})

    基建投入应该提升城市的承载力。我们可以把 ToptT_{opt} 改写为动态变量:

    Topt(t)=Toptbase+μk=1t(αinfra(k)M(k))累计基建投入T_{opt}(t) = T_{opt}^{base} + \mu \cdot \sum_{k=1}^{t} \underbrace{(\alpha_{infra}(k) \cdot M(k))}_{\text{累计基建投入}}

  4. 补贴投入 (MsubM_{sub})

    收了税,但我返还了一部分 MsubM_{sub} 给居民,居民满意度提高

    Q(t)=ω3max(0, τ(t)R(t)θ(αsub(t)M(t)))净税收负担Q(t) = \dots - \omega_3 \cdot \underbrace{\max\left(0, \ \tau(t) \cdot R(t) - \theta \cdot (\alpha_{sub}(t) \cdot M(t)) \right)}_{\text{净税收负担}}




知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

Next Post

OpenClaw WSL 一键包使用指南