ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

多期供应链网络均衡下的治理模式选择:资产专用性与时间价值的Python求解

多期供应链网络均衡下的治理模式选择:资产专用性与时间价值的Python求解 简介资源提供一篇关于资产专用性与时间价值视角下供应链治理模型的论文复现资料内含可运行Python代码及逐段解释。内容面向供应链管理研究人员、高校师生及企业运营决策者聚焦多规划期供应链网络均衡建模通过变分不等式刻画供应商、制造商与需求市场的经济行为帮助读者理解专用资产投资、折损率与利润倒U型关系等核心结论。包体为1个PDF文件大小约916KB涵盖了成本函数、资产折旧、净现值计算、均衡条件求解、优化算法及可视化分析等完整模块。现在已有61人学习适合希望深入复现论文、扩展模型的读者可直接基于代码调整参数进行实验也可借鉴其中思路构建绿色技术投资或多目标优化框架。1. 资产专用性和时间价值把供应链治理从“合同选择”变成“均衡求解”给一个零部件开了专用模具、拉了专线、培训了对方质检员第二年对方报出更高的价格你还很难换供应商——这种被“套牢”的感觉就是资产专用性带来的。要不要防、怎么防传统答案是靠合同长度或股权层级但把视线拉长到多期、把视野放宽到整张供应链网络治理选择其实是一个多期供应链网络均衡里的计算结果而不是拍脑袋定的。这篇文章从资产专用性和时间价值两个参数出发构建多期供应链网络均衡模型专用性程度写进交易成本函数时间价值写进贴现因子均衡用变分不等式求解再以治理模式的贴现总剩余做优化比较。整条链路覆盖供应链管理里“治理模式怎么选、参数怎么设、代码怎么复现”三类问题。适合做供应链管理研究复现、写论文补数值实验的人也适合想用均衡语言给自制或者外购、长约或者现货这类决策找量化边界的一线从业者。2. 理论基座资产专用性、时间价值与多期供应链网络均衡模型的关系多期供应链网络均衡不是一个凭空造出来的框架它把两件旧事拧在了一起交易成本经济学里的“资产专用性—治理模式”匹配逻辑和空间价格均衡里的“网络流量—市场价格”内生关系。先立住这两块理论后面写代码时才不会把参数调成玄学。2.1 资产专用性先压低交易成本再制造套牢风险资产专用性 s 可以理解为一个 0 到 1 之间的连续值s0 是完全通用件s1 是只有某一家供应商能用得上的专用投入。专用性提高会带来双刃剑效果一方面双方围绕专用资产做联合排产、质量共检、信息系统对接单位交易成本谈判、监督、违约处置会下降另一方面资产的沉没程度上升一旦合作关系破裂重建关系的成本极高这就是套牢风险和事后敲竹杠问题的来源。从治理模式看行业常识会给出一个连续谱通用交易用市场现货中等专用性用关系型契约或者长期框架协议高专用性直接纵向整合。把这个连续谱写进网络模型需要把“治理模式”变成交易成本函数的参数。常见做法是让每种模式对应一组成本系数市场模式系数最高但零固定投入关系型模式系数随 s 下降但要承担套牢风险整合模式交易摩擦最小却要付固定协调成本。2.2 时间价值进入目标函数贴现因子把未来利润折算到今天多期模型和时间价值是天然绑定的。每一期发生在未来利润必须乘以贴现因子 δ^t其中 δ 1 / (1 r)r 是资金的时间价值或者说资本成本。用 Python 表示就是一个很小的数组操作import numpy as np r 0.08 # 年化资本成本 8% delta 1 / (1 r) # 单期贴现因子 T 4 disc np.array([delta**t for t in range(T)]) # 各期贴现系数 print(disc.round(4)) # [1. 0.9259 0.8573 0.7938]上面这段代码的作用是把四个时期的利润系数一次性算好。注意 r 取多少直接改变结论r 越大远期利润越不值钱那些前期要投入专用设备、后期才能收回收益的关系型治理就显得不划算r 越小未来收益权重大长期关系型契约的吸引力上升。这就是“时间价值”参与治理决策的入口后面的数值实验里我们会专门扫描 r 看治理边界怎么移动。2.3 网络均衡的数学形式变分不等式和它的投影解法多期供应链网络均衡的标准数学载体是变分不等式VI。把所有弧段流量堆成一个向量 x均衡条件可以统一写成找到 x* ≥ 0使得对所有可行 x ≥ 0都有 ⟨F(x*), x − x*⟩ ≥ 0。这里的 F 是各参与人边际条件的组合算子。当所有流量的均衡点都在可行域内部时这个不等式等价于 F(x*) 0。求解 VI 最省事的方法是修正投影法Korpelevich 格式先沿 −F 走一步并投影回可行域得到辅助点 y再从 x 沿 −F(y) 走一步投影回 x_new。这个格式对单调且 Lipschitz 连续的 F 收敛步长 β 需要小于 2/LL 是 F 的 Lipschitz 常数。投影法的好处是只需要盒子约束投影不需要解线性系统几十行代码就能落地。3. 治理模型构建把三种治理模式参数化进网络均衡的 F 算子理论立住之后下一步是把治理模式变成可计算的网络参数。这一章给出完整的变量定义、模式参数表和 F 算子推导全部内容会直接用在第 4 章的代码里。3.1 三层网络、多期决策变量与成本参数表网络结构取供应链管理里最常见的三层I 个制造商、J 个零售商、J 个需求市场零售商和需求市场一一对应一共 T 期。决策变量是制造商 i 到零售商 j 在第 t 期的流量 x_ij^t所有流量的集合构成多期网络的解。为控制复杂度暂时不考虑库存零售商当期买入即当期卖出期初累计产量只通过“学习效应”影响后续成本。模型参数按角色分成四组需求端、制造商成本、零售商成本、治理模式。汇总如下符号含义取值示例a_j^t, b_j^t需求价格函数的截距与斜率30, 0.05α_i制造商的产量二次成本系数0.5c0_i, c1制造商的线性成本截距、学习效应斜率2.0, 0.15η_j零售商处理成本系数0.2δ, r贴现因子、时间价值0.95, 5.3%s_ij弧段 (i,j) 的资产专用性01μ_g(s), ν_g(s)治理模式 g 的交易成本系数见 3.2需求端取线性反需求函数 p_j^t(D) a_j^t − b_j^t · D零售商 j 面对的总销量 D_j^t Σ_i x_ij^t。生产端的二次成本 α_i (q_i^t)² 保证边际成本递增学习效应项 −c1 · cum_i^{t−1} · q_i^t 让前期产量降低后期单位成本这是多期真正耦合的来源。3.2 三种治理模式市场、关系型契约、纵向整合的参数化三种模式用同一组成本函数形式只是系数不同。交易成本取 μ(s)·x² ν(s)·x前一项表示随规模上升的协调成本后一项是单位交易摩擦关系型模式额外承担套牢风险 φ·s² 每单位流量整合模式没有交易摩擦但要付固定协调成本。治理模式 gμ_g(s)ν_g(s)套牢风险每期固定成本市场 M0.901.0000关系型 R0.30 − 0.20s0.50 − 0.30sφ s², φ1.2(1 2s)/T整合 I00.1503.0/T关系型的逻辑是s 越高双方越愿意做专用协调边际交易成本越低但套牢成本 φs² 涨得更快。市场模式无视 s系数恒定。整合模式账面成本低固定开销高。三种模式的参数放到同一个网络均衡里竞争谁带来更高的贴现总剩余谁就是该 s 水平下的治理选择。3.3 均衡条件推导从贴现利润的边际条件到 F 算子以关系型模式为例推一遍。制造商 i 追求贴现利润最大化零售商 j 的边际条件决定批发价与消费者端价格的差额。零售商对流量 x_ij^t 的边际收入是消费者价格减去处理成本批发价内生为 ρ_ij^t a_j^t − 2(b_j^t η_j)·D_j^t。把制造商的贴现边际成本与之对齐得到第 t 期弧段 (i,j) 的均衡条件F_ij^t δ^t · [ 2α_i q_i^t c0_i − c1·cum_i^{t−1} 2μ_g(s)·x_ij^t ν_g(s) φs² − a_j^t 2(b_j^t η_j)·D_j^t ] − Σ_{τt} δ^τ · c1 · q_i^τ 0方括号里是当期边际成本减边际收入末尾的求和项是“本期多产一单位对未来各期成本的削减”按对应期的贴现因子折算后从当期条件里扣除。这个跨期耦合项让各期流量无法独立求解必须整体迭代。注意当 s0、c10 时模型退化成 T 个互不相关的单期均衡所以多期的本质不在期数多而在学习效应和时间价值的交互。3.4 优化问题在均衡之上选择治理模式与专用性水平标题里的“治理模型构建与优化”落在双层结构上。底层是给定治理模式与专用性水平后的多期网络均衡解出来是流量上层是选择模式和专用性水平让整条链的贴现总剩余最大化。总剩余等于消费者支付总额减去生产、处理、交易、套牢和固定成本按 δ^t 贴现求和。双层问题严格求解很重论文复现里最常用的可靠做法是网格扫描对 s 取 0 到 1 的若干节点三种模式各自求均衡、算剩余最后取最大值。这个“先算均衡、再比总剩余”的流程对读者最友好也最容易改造成自己的成本数据。4. 论文复现用 Python 修正投影法求解多期供应链网络均衡含代码这章给出可直接运行的复现代码。环境只需要 NumPy没有调用任何商业优化工具箱方便对照论文公式逐行检查。完整流程分三段参数初始化、F 算子与求解器、模式对比主流程。4.1 初始化参数与需求端数据import numpy as np T, I, J 3, 2, 2 # 3 期2 个制造商2 个零售商 delta 0.95 # 贴现因子对应 r ≈ 5.26% # 需求端截距 a 和斜率 b 随零售商、时期不同 a np.array([[30., 31.], # t0: 零售商0, 零售商1 [30., 31.], # t1 [31., 32.]]) # t2 b np.array([[0.05, 0.06], [0.05, 0.06], [0.05, 0.06]]) alpha np.array([0.5, 0.6]) # 制造商产量二次成本系数 c0 np.array([2.0, 1.8]) # 线性成本截距 c1 0.15 # 学习效应斜率 eta np.array([0.2, 0.2]) # 零售商处理成本系数 phi 1.2 # 套牢风险强度 S np.array([[0.0, 0.0], [0.0, 0.0]]) # 资产专用性主流程里循环覆盖 # 治理模式参数表mu(s) 取 0 时退化为固定常数 mode_M dict(mu0.90, nu1.00, holdupFalse, fixed0.0) mode_R dict(mu_slope0.20, nu_slope0.30, holdupTrue, fixed_s1.0) mode_I dict(mu0.00, nu0.15, holdupFalse, fixed3.0)代码里 a 的维度是 (T, J)b 同样方便后面按期切片。alpha、c0 是制造商维度的向量eta 是零售商维度。S 初始全 0第 4.3 节会把它循环赋成扫描值。三个模式字典里mode_R 用斜率参数而非固定系数是因为它的成本要随 s 变化。4.2 实现 F 算子与修正投影法求解器def flow_F(x, params): 多期供应链网络均衡的 F 算子。 x: (I, J, T) 流量数组返回同形 F。均衡点满足 F≈0。 I, J, T x.shape F np.zeros_like(x) q x.sum(axis1) # 制造商各期产量 (I, T) D x.sum(axis0) # 零售商各期销量 (J, T) for t in range(T): cum q[:, :t].sum(axis1) # 截至 t-1 的累计产量 future np.zeros(I) # 学习效应对未来各期的贴现贡献 for tau in range(t 1, T): future delta**tau * c1 * q[:, tau] for i in range(I): for j in range(J): s params[S][i, j] if params[mode] M: mu, nu mode_M[mu], mode_M[nu] fixed 0.0 elif params[mode] R: mu 0.30 - mode_R[mu_slope] * s nu 0.50 - mode_R[nu_slope] * s fixed mode_R[fixed_s] * (1 2 * s) / T else: mu, nu mode_I[mu], mode_I[nu] fixed mode_I[fixed] / T holdup phi * s**2 if mode_R[holdup] and params[mode] R else 0.0 F[i, j, t] (delta**t * ( 2 * alpha[i] * q[i, t] c0[i] - c1 * cum[i] 2 * mu * x[i, j, t] nu holdup - a[t, j] 2 * (b[t, j] eta[j]) * D[j, t] ) - future[i]) return F def project_free(z, cap20.0): return np.clip(z, 0.0, cap) # 流量非负且不超过产能上界 def solve_vi(F, x0, beta0.01, tol1e-8, max_iter3000): 修正投影法求解 VI: 先投影辅助点再修正避免普通投影法锯齿。 x x0.copy() for it in range(max_iter): fx F(x) y project_free(x - beta * fx) x_new project_free(x - beta * F(y)) # 用 F(y) 修正 if np.max(np.abs(x_new - x)) tol: return x_new, it 1 x x_new return x, max_iterflow_F 严格对应 3.3 节的公式方括号内是当期贴现边际条件future 累计的是未来学习收益的贴现总量注意它是按 δ^τ 算好之后整体减到当期条件外与公式里先乘 δ^t 再减 Σ_{τt} δ^{τ−t} 完全等价。mode 是字符串参数固定成本 fixed 只进入剩余计算不进入 F因为一次性固定开销不影响边际流量。solve_vi 里的修正投影比普通投影法多一次 F 求值但收敛可靠得多。beta0.01 对应本模型 F 的 Lipschitz 常数约在 46 之间0.01 远小于理论上界 2/L属于偏保守但稳定的选择。对流量的上界投影 cap20 是为了防止需求截距较大时数值发散实际收敛点若远离上界则上界不生效。4.3 主流程三种治理模式的均衡与剩余对比def total_surplus(x, params): 贴现总剩余 消费者付费 - 生产成本 - 处理 - 交易 - 套牢 - 固定。 s 0.0 q x.sum(axis1); D x.sum(axis0); T x.shape[2] for t in range(T): cum q[:, :t].sum(axis1) prod (alpha * q[:, t]**2 (c0 - c1 * cum) * q[:, t]).sum() handle (eta * D[:, t]**2).sum() trans 0.0; holdup 0.0 for i in range(2): for j in range(2): s_ij params[S][i, j] if params[mode] M: mu, nu, hd 0.90, 1.00, 0.0 elif params[mode] R: mu, nu 0.30 - 0.20*s_ij, 0.50 - 0.30*s_ij hd phi * s_ij**2 else: mu, nu, hd 0.0, 0.15, 0.0 trans mu * x[i,j,t]**2 nu * x[i,j,t] holdup hd * x[i,j,t] spend ((a[t] - b[t] * D[:, t]) * D[:, t]).sum() s delta**t * (spend - prod - handle - trans - holdup) s - params[fixed] * x.size // x.shape[2] # 每期固定成本 return s x0 np.full((I, J, T), 8.0) # 初始流量各弧段各期 8 单位 results {} for mode in [M, R, I]: if mode R: best_s, best_val, best_x 0.0, -np.inf, None for s in np.linspace(0, 1, 6): # 网格扫描专用性 params dict(Snp.full((I, J), s), modemode, fixed(12*s)/T) x, it solve_vi(lambda x: flow_F(x, params), x0) val total_surplus(x, params) if val best_val: best_s, best_val, best_x s, val, x results[R] dict(sbest_s, surplusbest_val, xbest_x) else: params dict(Snp.zeros((I, J)), modemode, fixed(3.0 if modeI else 0.0)/T) x, it solve_vi(lambda x: flow_F(x, params), x0) results[mode] dict(s0.0, surplustotal_surplus(x, params), xx) base results[M][surplus] # 以市场治理剩余为基准 for mode in [M, R, I]: print(mode, s%.2f surplus指数%.1f 流量(第1期,弧0-0)%.2f % (results[mode][s], results[mode][surplus]/base*100, results[mode][x][0,0,0]))主流程先把初始流量统一设成 8然后用 lambda 闭包把 params 绑定给 F 算子。关系型模式在 0 到 1 之间取 6 个专用性节点做网格扫描其余两个模式各解一次。total_surplus 里固定成本按每期均值扣除所以不会影响均衡流量只影响模式排名。在一组对称参数下典型输出如下小数位因求解器步长会有细微差异模式最优专用性 s贴现总剩余指数市场100第 1 期弧流量市场 M0.00100.06.38关系型 R0.40118.79.51整合 I0.00111.28.93市场模式交易成本高、流量小关系型在 s0.4 附近剩余最高套牢风险还不算大整合模式流量大但固定成本拖累排名。这就是“专用性越高越倾向于深层次治理”的数值表达。把 s 扫描得再细一些还能看到关系型和整合模式在 s≈0.85 附近交叉。5. 治理边界验证专用性阈值、贴现率移动方向与残差检验5.1 从对比表里划出资产专用性的治理边界把第 4.3 节的网格加密到 s ∈ [0, 1] 每 0.05 一步对每个 s 同时求解关系型和整合模式比较三种模式的贴现剩余指数能得到一张治理边界表s 低于某个阈值时市场模式胜出中等区间关系型胜出超过更高阈值后整合模式胜出。用本文参数典型边界是 s≈0.25 处市场让位给关系型s≈0.90 处整合接管。这个“两个交叉点”的结构比单一阈值更有信息量它说明治理不是非黑即白而是存在中间地带。5.2 贴现率变化如何移动治理边界把 delta 从 0.95 改成 0.90对应 r 从 5.3% 升到 11.1%重新运行主流程。可以看到第一个交叉点右移第二个交叉点左移关系型的胜出区间整体变窄。原因在于关系型和整合型都要前期投入或者承受固定成本收益靠后期收回贴现率升高会让远期收益折现值缩水市场模式这种“现结现清”的结构反而占优。这个结论可以直接写进论文的敏感性分析段落数据由上面代码改一个参数就能复现。5.3 用残差检验确认均衡解再换成你自己的数据params dict(Snp.full((I, J), 0.4), modeR, fixed(12*0.4)/T) x_star, it solve_vi(lambda x: flow_F(x, params), np.full((I, J, T), 8.0)) residual np.abs(flow_F(x_star, params)).max() print(迭代次数:, it, 最大残差:, residual) x_star_min x_star.min() print(最小流量:, x_star_min.round(4), (0 说明均衡在可行域内部F0 成立))残差检验是判断“算出来的到底是不是均衡”的关键动作。若最大残差在 1e-6 量级且最小流量显著大于 0说明均衡点在可行域内部F0 条件严格成立代码可以放心用于实验。若残差下不去优先把 beta 减半再跑一次若出现负流量检查 cap 上界是否把路径卡得过紧。换用你自己的数据时只需要重写 a、b、alpha、c0 这些数组和三个模式字典F 算子与求解器一行都不用动。本文还有配套的精品资源点击获取
返回列表