供应链|NUS覃含章MS论文解读:数据驱动下联合定价和库存控制的近似方法 (二)

在这里插入图片描述

编者按

本次解读的文章发表于 Management Science,原文信息:Hanzhang Qin, David Simchi-Levi, Li Wang (2022) Data-Driven Approximation Schemes for Joint Pricing and Inventory Control Models. https://doi.org/10.1287/mnsc.2021.4212

文章在数据驱动的前提下,研究经典的多周期联合定价和库存控制问题。 在此问题中,零售商定期决定其希望销售的产品的价格和库存水平,其目标是通过将库存水平与随机需求(取决于每个时期的价格)相匹配,在有限的范围内最大化预期利润。

鉴于需求函数或随机噪声分布很难准确掌握完整信息,而过去的需求数据相对容易收集,文章假设零售商对噪声分布或真实的需求函数未知,但假设其可以访问需求假设集,并且真实需求函数可以由需求假设集中候选函数的非负组合表示,或者真实需求函数是广义线性的。基于此,文章提出了一种基于数据驱动的近似算法,使用预先收集的需求数据来解决联合定价和库存控制问题,同时证明了算法的样本复杂度界限。在数值研究中,文章演示了如何从数据构建需求假设集,并验证了所提出的数据驱动算法对动态问题的有效性,其结果显著改善了与基准算法相比的最优性差距。

全信息问题以及数据驱动问题的模型和算法前文已述。本篇解读将继续讨论原论文对算法的讨论和拓展,以及数值计算实验对算法有效性的检验。

1 前文回顾

1.1 模型回顾

在文章中,作者们研究了数据驱动环境下的多周期联合定价和库存控制问题。 根据零售商对需求和价格信息的已知程度,一般将该问题分类为全信息问题和数据驱动问题。承接前文,当零售商拥有有关随机需求的完整信息,即 D t ( ⋅ ) D_t(\cdot) Dt() η t \eta_t ηt已知时,预期利润最大化问题就是经典的有限范围联合定价和库存控制问题 P \mathcal{P} P

其中 V t ( x t ) V_t(x_t) Vt(xt)为起始库存水平 x t x_t xt t t t T T T期的最优期望收益。对于 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T],文章定义 U t ( y t , d t ) U_t(y_t,d_t) Ut(yt,dt)为起始库存水平 y t y_t yt、期望需求 d t d_t dt t t t T T T期的最优期望收益,即

令最优需求方程为

且令 W t ( y t ) W_t(y_t) Wt(yt)表示 t t t T T T期间的最优预期利润,假设零售商将 t t t期间的库存水平设置为 y t y_t yt, 即

因此亦有

则最优基础库存清单需求策略 (base-stock list-demand policy) ( S t ∗ , D t ∗ ) (S_t^*,D_t^*) (St,Dt)可被定义为

依据该库存策略,对于 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T]

对于数据驱动问题,零售商对 D t ( ⋅ ) D_t(\cdot) Dt() η t \eta_t ηt未知,因此文章假设对于任意时期 t t t, 需求假设集合为 Φ t : = { D t 1 ( ⋅ ) , … , D t K t ( ⋅ ) } \Phi_t:=\{D_t^1(\cdot),\ldots,D_t^{K_t}(\cdot)\} Φt:={Dt1(),,DtKt()}预先已知,其中未知的真实需求函数 D t ( ⋅ ) D_t(\cdot) Dt() Φ \Phi Φ集合内函数的线性组合。另外定义 R t k ( p t ) : = p t D t k ( p t ) R_t^k(p_t):=p_tD_t^k(p_t) Rtk(pt):=ptDtk(pt) R t k ( d t ) : = d t ( D t k ) − 1 ( d t ) R_t^k(d_t):=d_t(D_t^{k})^{-1}(d_t) Rtk(dt):=dt(Dtk)1(dt)为作为所有 t t t k k k Φ t \Phi_t Φt中的相关收益函数。原文通过假设3和4保留参数空间的线性结构以进行学习和优化,同时允许基础需求函数具有高度非线性的形式,且确保使用价格需求样本的回归过程得到明确定义(最小二乘法解是唯一的)。对于任何近似算法 A \mathcal{A} A,令 D ^ t ( ⋅ ) \hat{D}_t(\cdot) D^t() η ^ t \hat{\eta}_t η^t分别为经验预期需求函数和经验噪声分布,由 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T]每一个时期的历史数据和算法 A \mathcal{A} A估计所得。令 R ^ t ( ⋅ ) \hat{R}_t(\cdot) R^t()为通过 A \mathcal{A} A所得的经验收益函数,且定义
[ d ^ t min ⁡ , d ^ t max ⁡ ] : = [ D ^ t ( p t max ⁡ ) , D ^ t ( p t min ⁡ ) ] [\hat{d}_t^{\min},\hat{d}_t^{\max}]:=[\hat{D}_t(p_t^{\max}),\hat{D}_t(p_t^{\min})] [d^tmin,d^tmax]:=[D^t(ptmax),D^t(ptmin)]
为经验期望需求的决策空间。因此有

于是定义经验动态规划 P ^ \hat{\mathcal{P}} P^

其中

同时定义经验函数与经验策略如下:

与全信息动态规划 P \mathcal{P} P类似,经验动态规划 P ^ \hat{\mathcal{P}} P^可以使用后向归纳法递归求解。

1.2 数据驱动近似算法回顾

针对数据驱动问题,文章给出每个时期 t t t需求假设集合 Φ t : = { D t 1 ( ⋅ ) , … , D t K t ( ⋅ ) } \Phi_t:=\{D_t^1(\cdot),\ldots,D_t^{K_t}(\cdot)\} Φt:={Dt1(),,DtKt()}以及过往价格-需求对 { ( p t 1 , d t 1 ) , … , ( p t N t , d t N t ) } \{(p_t^1,d_t^1),\ldots,(p_t^{N_t},d_t^{N_t})\} {(pt1,dt1),,(ptNt,dtNt)},基于此二者,文章的目标是构建经验收益函数 R ^ t ( d t ) \hat{R}_t(d_t) R^t(dt)与经验分布函数 η ^ t \hat{\eta}_t η^t.

以下是近似算法 DDPIC 的步骤,该算法在每个时期构造经验收入和成本函数的导数,即 R ^ t ′ ( ⋅ ) \hat{R}'_t(\cdot) R^t() C ^ t r ( ⋅ ) \hat{C}^r_t(\cdot) C^tr()

关于算法的近似性能,文章根据数据驱动函数和真实函数之间导数的接近程度来讨论。通过定义现定义“好”事件 E ( α ) \mathcal{E}(\alpha) E(α)和引理2-4,文章证明了模型的主要项式 R ^ t ( ⋅ ) \hat{R}_t(\cdot) R^t(), C ^ t ( ⋅ ) \hat{C}_t(\cdot) C^t() E η ^ t [ V ^ t ( q t − η ^ t ) ] \mathbb{E}_{\hat{\eta}_t}[\hat{V}_t(q_t-\hat{\eta}_t)] Eη^t[V^t(qtη^t)]在导数方面分别与 R t ( ⋅ ) R_t(\cdot) Rt(), C t ( ⋅ ) C_t(\cdot) Ct() E η t [ V ^ t ( q t − η t ) ] \mathbb{E}_{\eta_t}[\hat{V}_t(q_t-\eta_t)] Eηt[V^t(qtηt)]近似,概率随 N t N_t Nt增长,其中 N t N_t Nt为过往 t t t时期价格-需求对的数量,进而得到原文定理1,即对于任意 α > 0 \alpha>0 α>0,所提出算法能够达到 α \mathcal{\alpha} α的概率的下界可计算(该下界数值详见原文定理1)。

随后文章通过一阶和零阶分析,对好事件 E ( α ) \mathcal{E}(\alpha) E(α)推导出所提出的数据驱动近似算法的样本复杂度界限对于任意 ϵ > 0 \epsilon >0 ϵ>0 β ∈ ( 0 , 1 ) \beta\in(0,1) β(0,1),若每个时期 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T] N t ≥ N t ( ϵ , β ) N_t\geq N_t(\epsilon,\beta) NtNt(ϵ,β),则最优期望利润与期望值之间(通过数据驱动策略)的利润的绝对差距不大于 ϵ \epsilon ϵ的概率至少为 1 − β 1-\beta 1β,其中 N t ( T , ϵ , β ) = O ( T 4 ( T − t + 1 ) 2 ϵ − 2 log ⁡ ( T / β ) . N_t(T,\epsilon,\beta)=O(T^4(T-t+1)^2\epsilon^{-2}\log(T/\beta). Nt(T,ϵ,β)=O(T4(Tt+1)2ϵ2log(T/β).

该样本复杂度界限对于 β \beta β的依赖性而言是最优的,因为其与单周期有容量限制的报童问题的信息论下界相匹配(Cheung and Simchi-Levi 2019)。 然而,对 T T T的依赖性是否紧密仍然未知,因相应的下界仍是开放的。 给定准确度水平和概率水平 β \beta β来获得 T T T阶段联合定价和库存控制问题的近乎最优策略,该界限可以被视为对公司所需样本数量的保守估计。 该界限是保守的,因其为针对 η t \eta_t ηt的所有可能的基础分布和 Φ t \Phi_t Φt中所有可能的基础需求函数的最坏情况界限。

2 算法拓展

这部分的拓展主要针对前文假设的有限元素需求集,即接下来的讨论以具有有界参数的(广义)线性需求函数集为主,同时还包括算法在具有非线性报童成本的基于抽样的库存控制的应用。

2.1 针对广义线性需求集的拓展

现重新定义需求集 Φ t \Phi_t Φt如下:

其中 λ t : R → R \lambda_t:\mathbb{R}\rightarrow\mathbb{R} λt:RR为由 κ t \kappa_t κt, θ t \theta_t θt参数化的链接函数,并设计矩阵

假设1:在每个时期 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T]中,随机需求为 D t ( p t ) + η t D_t(p_t)+\eta_t Dt(pt)+ηt,其中 D ( ⋅ ) D(\cdot) D()是确定性需求期望函数,而 η t \eta_t ηt是在 [ ω t min ⁡ , ω t max ⁡ ] [\omega_t^{\min},\omega_t^{\max}] [ωtmin,ωtmax]上有界的零均值连续随机变量,且在时间上独立。 η t \eta_t ηt的累积分布函数是 Lipschitz 连续的,常数为 I t I_t It.

假设 2. 在每个时期 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T]中, D t ( ⋅ ) D_t(\cdot) Dt()的反函数 D t − 1 ( ⋅ ) D_t^{-1}(\cdot) Dt1()是二次连续可微且严格递减的,其一阶导数和二阶导数是有界的。此外,预期收入函数 R t ( d t ) : = d t D t − 1 ( d t ) R_t(d_t):=d_tD_t^{-1}(d_t) Rt(dt):=dtDt1(dt)在预期需求 d t d_t dt中严格凹。

结合前文所述的假设1和2,现对每个时期 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T]添加新假设如下:

  1. 真实需求函数 D t ( ⋅ ) D_t(\cdot) Dt() Φ t \Phi_t Φt中的一个广义线性函数。
  2. 函数 λ t \lambda_t λt二阶可导且已知,其一阶和二阶导数的上界分别为 L λ t 1 L_{\lambda_t}^1 Lλt1 L λ t 2 L_{\lambda_t}^2 Lλt2,且有 inf ⁡ x ∈ [ κ t min ⁡ p t min ⁡ + θ t min ⁡ , κ t max ⁡ p t max ⁡ + θ t max ⁡ ] λ t ′ ( x ) > 0. \inf_{x\in[\kappa_t^{\min}p_t^{\min}+\theta_t^{\min},\kappa_t^{\max}p_t^{\max}+\theta_t^{\max}]}\lambda_t^{'}(x)>0. infx[κtminptmin+θtmin,κtmaxptmax+θtmax]λt(x)>0.
  3. 样本协方差矩阵的最小特征值存在通用下界 λ ‾ t > 0 \underline{\lambda}_t>0 λt>0,即矩阵 λ min ⁡ ( 1 N t Λ t ) ≥ λ ‾ t \lambda_{\min}(\frac{1}{N_t}\Lambda_t)\geq \underline{\lambda}_t λmin(Nt1Λt)λt.

根据假设,至少存在两个不同的 p t i p_t^i pti使得矩阵 Λ t \Lambda_t Λt可逆,

为估计参数 κ t \kappa_t κt θ t \theta_t θt, 首先找到满足如下两等式的 κ t ∈ R \kappa_t\in\mathbb{R} κtR θ t ∈ R \theta_t\in\mathbb{R} θtR,并将解分别投射在区间 [ κ t min ⁡ , κ t max ⁡ ] [\kappa_t^{\min},\kappa_t^{\max}] [κtmin,κtmax] [ θ t min ⁡ , θ t max ⁡ ] [\theta_t^{\min},\theta_t^{\max}] [θtmin,θtmax]上,进而得到 κ ^ t \hat{\kappa}_t κ^t θ ^ t \hat{\theta}_t θ^t. 于是现有的数据驱动问题中的需求可表示为 D ^ t ( p t ) = λ t ( κ ^ t p t + θ ^ t ) \hat{D}_t(p_t)=\lambda_t(\hat{\kappa}_tp_t+\hat{\theta}_t) D^t(pt)=λt(κ^tpt+θ^t), 经验收益为 R ^ t ( d t ) = d t D ^ t − 1 ( d t ) \hat{R}_t(d_t)=d_t\hat{D}_t^{-1}(d_t) R^t(dt)=dtD^t1(dt). 对于数据集中的每个价格-需求对,定义 η ^ t j = d t j − D ^ t ( p t k ) = η t j − Δ t j \hat{\eta}_t^j=d_t^j-\hat{D}_t(p_t^k)=\eta_t^j-\Delta_t^j η^tj=dtjD^t(ptk)=ηtjΔtj η t \eta_t ηt的偏差样本,其中 Δ t j : = D t ( p t j ) − D ^ t ( p t j ) \Delta_t^j:=D_t(p_t^j)-\hat{D}_t(p_t^j) Δtj:=Dt(ptj)D^t(ptj)为偏差项。令 E η ^ t [ f ( η ^ ) ] \mathbb{E}_{\hat{\eta}_t}[f(\hat{\eta})] Eη^t[f(η^)]表示 1 N t ∑ j = 1 N t f ( η ^ t j ) \frac{1}{N_t}\sum_{j=1}^{N_t}f(\hat{\eta}_t^j) Nt1j=1Ntf(η^tj), 则可定义 C ^ t ( q t ) \hat{C}_t(q_t) C^t(qt)如下:

在此拓展中,文章使用基于最大似然的方法来构建经验收益函数,并且样本中的偏差项需要额外的集中结果。 通过原文定理5中,文章表明,样本复杂度界限与前文所述的关于原定数据驱动问题的定理4相同。

2.2 非线性报童问题的成本函数

文章提出,若满足以下假设7,则原文定理4和5中关于样本复杂度界限的定理依然成立:

假设7:在每个时期 t ∈ [ 1 , … , T ] t\in[1,\ldots,T] t[1,,T]中,报童问题成本函数 C t ( q t ) = E η t [ f t ( q t + η t ) ] C_t(q_t)=\mathbb{E}_{\eta_t}[f_t(q_t+\eta_t)] Ct(qt)=Eηt[ft(qt+ηt)], 其中 f t : R → R f_t:\mathbb{R}\rightarrow\mathbb{R} ft:RR为凸。对于任意 q t ∈ R q_t\in\mathbb{R} qtR, 存在常数 M t C > 0 M_t^C>0 MtC>0满足 ∣ f t l ( q t ) ∣ ≤ M t C |f_t^l(q_t)|\leq M_t^C ftl(qt)MtC以及 ∣ f t r ( q t ) ∣ ≤ M t C |f_t^r(q_t)|\leq M_t^C ftr(qt)MtC. 同时,对于任一 q t ′ , q t ′ ′ ∈ R q_t^{'},q_t^{''}\in\mathbb{R} qt,qt′′R, 存在常数 L t C > 0 L_t^C>0 LtC>0满足 ∣ f t l ( q t ′ ) − f t l ( q t ′ ′ ) ∣ ≤ L t C ∣ q t ′ − q t ′ ′ ∣ |f_t^l(q_t^{'})-f_t^l(q_t^{''})|\leq L_t^C|q_t^{'}-q_t^{''}| ftl(qt)ftl(qt′′)LtCqtqt′′以及 ∣ f t r ( q t ) ′ − f t r ( q t ′ ′ ) ∣ ≤ L t C ∣ q t ′ − q t ′ ′ ∣ |f_t^r(q_t)^{'}-f_t^r(q_t^{''})|\leq L_t^C|q_t^{'}-q_t^{''}| ftr(qt)ftr(qt′′)LtCqtqt′′.

假设 7 确保报童成本函数是具有有界导数和 Lipschitz 导数的凸函数的期望,但不要求函数具有任何(分段)线性结构。对于 C t ( ⋅ ) C_t(\cdot) Ct()的样本平均近似值 C ^ t ( ⋅ ) \hat{C}_t(\cdot) C^t(),构建

类似地,对导数应用样本平均近似:

为简化问题,文章主要针对事件 ∀ j = 1 , … , N t : ∣ Δ t j ∣ ≤ α / ( 2 L t C ) \forall j=1,\ldots,N_t: |\Delta_t^j|\leq \alpha/(2L_t^C) j=1,,Nt:Δtjα/(2LtC), 即偏差项的上限统一为 α / ( 2 L t C ) \alpha/(2L_t^C) α/(2LtC),且证明(原文命题2)若对于某常数 α > 0 \alpha>0 α>0满足 ∀ j = 1 , … , N t : ∣ Δ t j ∣ ≤ α / ( 2 L t C ) \forall j=1,\ldots,N_t: |\Delta_t^j|\leq \alpha/(2L_t^C) j=1,,Nt:Δtjα/(2LtC),则

2.3 计算复杂度的降低

文章分析,所提出的DDPIC算法存在一个计算复杂性的问题是,通过 SAA 方法构建的数据驱动动态规划中的函数可能在 T T T中具有指数数量的断点。这个问题可通过运用 Cheung 和 Simchi-Levi(2019 )提出的稀疏化方法,提供多项式时间近似算法来求解数据驱动的动态规划。 虽然多项式时间算法比没有稀疏化的 SAA 方法需要更多的样本,但它们的样本复杂度在 T T T, ϵ \epsilon ϵ, β \beta β 中相同。 关键的改进是,通过稀疏化技术,算法只需要在多项式断点处评估值函数的导数。

稀疏化的思想是在通过后向归纳法求解动态规划时,通过每个周期的导数重采样步骤来减少 V t ( x t ) V_t(x_t) Vt(xt)的断点数量。 此步骤在以下算法中for循环的最后两行中进行了说明:

文章指出,稀疏化算法对 N 1 , ⋯   , N T , T , 1 ζ N_1, \cdots,N_T,T, \frac{1}{\zeta} N1,,NT,T,ζ1具有多项式运行时间,其中稀疏系数 ζ \zeta ζ控制了运行时间复杂度和样本复杂度的平衡。特别地,若令 ζ : = α 1 \zeta:=\alpha_1 ζ:=α1(与定理4和5中的标量相同),则算法仍具有样本复杂度 O ( T 6 ϵ − 2 log ⁡ ( T / β ) O(T^6\epsilon^{-2}\log(T/\beta) O(T6ϵ2log(T/β).

3 数值实验

3.1 实验设置

  • 实验问题

考虑 T = 7 T=7 T=7个时期、起始库存为 x x x,其中 x x x由均匀分布 X ∼ [ 0 , 80 ] X\sim[0,80] X[0,80]取样。在每个时期 t ∈ { 1 , … , T } t\in\{1,\ldots,T\} t{1,,T}中,令可行价格区间为 [ p t min ⁡ , p t max ⁡ ] = [ 60 , 90 ] [p_t^{\min},p_t^{\max}]=[60,90] [ptmin,ptmax]=[60,90]以及单位订货成本 c t = 60 c_t=60 ct=60. 需求函数 D t ( ⋅ ) D_t(\cdot) Dt()有以下三个参数族函数之一:(具体的参数数值请参考原文章节6.1.1)

a. 线性需求: D t ( p ) = κ t + θ t p D_t(p)=\kappa_t+\theta_tp Dt(p)=κt+θtp t = 3 , … , 7 t=3,\ldots,7 t=3,7);

b. 指数需求: D t ( p ) = e κ t + θ t p D_t(p)=e^{\kappa_t+\theta_tp} Dt(p)=eκt+θtp t = 1 t=1 t=1);

c. 对数需求: D t ( p ) = M D ⋅ e κ t + θ t p / ( 1 + e κ t + θ t p ) , M D = 600 D_t(p)=M_D\cdot e^{\kappa_t+\theta_tp}/(1+e^{\kappa_t+\theta_tp}), M_D=600 Dt(p)=MDeκt+θtp/(1+eκt+θtp),MD=600 ( t = 2 t=2 t=2).

随机噪声 η t \eta_t ηt的分布由以下两族选择:

a. 均匀分布: Unif ( − ω t , ω t ) ; \text{Unif}(-\omega_t,\omega_t); Unif(ωt,ωt);

b. 截断正态分布: Normal ( 0 , σ t ) \text{Normal}(0,\sigma_t) Normal(0,σt), 只取 [ − ω t , ω t ] [-\omega_t,\omega_t] [ωt,ωt]范围内的值。

依照上述设定,构建数据驱动问题,对价格-需求对取样,其中对价格在 [ p t min ⁡ , p t max ⁡ ] [p_t^{\min},p_t^{\max}] [ptmin,ptmax]中取样,并设定 N t ∈ { 20 , ⋯   , 160 } N_t\in\{20,\cdots,160\} Nt{20,,160}.

  • 算法表现衡量标准

μ = { μ 1 , … , μ T } \mu=\{\mu_1,\ldots,\mu_T\} μ={μ1,,μT}为针对 T T T x x x的任意库存策略,其期望收益为 π 1 ( x ; μ ) \pi_1(x;\mu) π1(x;μ),使其达到最优的收益 π 1 ( x ; μ ∗ ) \pi_1(x;\mu^*) π1(x;μ)的策略 μ ∗ = { μ 1 ∗ , … , μ T ∗ } \mu^*=\{\mu_1^*,\ldots,\mu_T^*\} μ={μ1,,μT}为最优策略。文章运用绝对最有差距 (absolute optimality gap), π ( μ ∗ ) − π ( μ ) \pi(\mu^*)-\pi(\mu) π(μ)π(μ), 来衡量任意策略与最优策略的期望收益差距,该数值越小则策略越优。

  • 基准算法

对于全信息问题,文章引用Bernstein et al. (2016) 中提出的启发式算法作为基准算法 (Heuristic-FI)。该算法计算短视需求函数 (myopic demand) 作为定价/需求设定策略,并遵循基本库存策略 (base-stock policy)来做出库存补货决策。原算法中设定交货时间 (lead time)为正,为符合模型设定,文章化用该算法,细节详见章节6.1.3.

对于数据驱动问题,文章将由DDPIC 所得的收益和成本函数代入 Heuristic-FI 来确定定价和补货决策。该算法被记作 Heuristic-DD.

3.2 构建需求假设集

给定 N t N_t Nt个价格-需求对样本 { p t j , d t j } \{p_t^j,d_t^j\} {ptj,dtj},文章为需求假设集 Φ t \Phi_t Φt构建 K t K_t Kt个候选需求函数。具体来说,对每个需求函数族:

  1. 根据数据估计价格敏感度参数 θ t \theta_t θt的下限 θ ^ t min ⁡ \hat{\theta}_t^{\min} θ^tmin和上限 θ ^ t max ⁡ \hat{\theta}_t^{\max} θ^tmax
  2. θ ^ t min ⁡ \hat{\theta}_t^{\min} θ^tmin θ ^ t max ⁡ \hat{\theta}_t^{\max} θ^tmax之间取5个均匀分布的数值 { θ t ( 1 ) , ⋯   , θ t ( 5 ) } \{\theta_t^{(1)},\cdots,\theta_t^{(5)}\} {θt(1),,θt(5)}
  3. 利用5组 κ t ( k ) \kappa_t^{(k)} κt(k) θ t ( k ) \theta_t^{(k)} θt(k),构建5个需求函数,其中 κ t ( k ) \kappa_t^{(k)} κt(k)为能最小化给定 θ t ( k ) ∈ { θ t ( 1 ) , ⋯   , θ t ( 5 ) } \theta_t^{(k)}\in\{\theta_t^{(1)},\cdots,\theta_t^{(5)}\} θt(k){θt(1),,θt(5)}经验平方误差的参数。

由于底层需求函数族未知,文章从这三个族中收集候选需求函数,总共 K t = 15 K_t=15 Kt=15个函数,形成需求假设集 Φ t \Phi_t Φt(见图 1)。 最后,文章将 Φ t \Phi_t Φt输入到DDPIC算法中,以计算数据驱动的定价和库存补货政策。

3.3 算法表现比较

文章在图2比较了Heuristic-FI、Heuristic-DD 和 DDPIC 与最优收益 π ( μ ∗ ) \pi(\mu^*) π(μ)的绝对最优性差距。 可以看到,随着数据大小 N N N的增长,最优性差距在所提出的算法 DDPIC 和基准算法 Heuristic-DD 都有所提高(因需求学习和 SAA 过程随着样本的增多而变得更加准确),而Heuristic-FI 是在全信息环境下实现的,因此其收益差距与样本大小无关。 在所有三种算法中,DDPIC 在 N ≥ 40 N\geq 40 N40时实现最佳性能,并且在该问题设置中,当 n = 20 n=20 n=20时,它能够将绝对利润差距保持在 114.30 以下;当 n = 160 n=160 n=160时,它能够将绝对利润差距保持在 15.79 以下,即相对差距分别为 < 7.68 % <7.68\% <7.68% < 1.06 % <1.06\% <1.06%.

由于 Heuristic-FI 和 Heuristic-DD 中的启发式设计使用短视需求函数,因此这两种基准算法并不总是表现得良好。 当库存水平 y y y值很大时,算法的性能通常会下降,此时最优需求函数不能通过启发式逼近,从而导致初始库存平均预期利润差距比 DDPIC 更大。 另一方面,所提出的算法DDPIC通过逆向归纳法构造经验动态规划并计算经验解,随着样本量 N N N越大,经验需求函数和噪声分布变得更加准确,其性能得以不断提高。但是,当 N N N较小时, DDPIC 没有足够的信息来生成类似 Heuristic-FI 接近最优的策略,因为文章假设后者拥有完整的信息。 总体而言,在文章的问题设置中,当 N N N较大时,DDPIC 能够将两种基准算法的利润差距缩小到 > 85 % >85\% >85%. 当 N N N很小时,Heuristic-FI 的性能可能优于 DDPIC.

3.4 问题设置的影响

文章随后研究了不同程度的报童成本和噪声方差对 DDPIC 和基准算法性能的影响。

首先引入报童成本比例因子 λ c o s t \lambda_{cost} λcost,即持有成本 h t h_t ht和积压成本 b t b_t bt的乘数。 该比例因子影响报童成本与收益之比的大小,因此控制了联合定价和库存控制问题中管理库存的相对“重要性”。表1显示,随着 λ c o s t \lambda_{cost} λcost的增加,两种数据驱动算法(Heuristic-DD、DDPIC)的利润差距变得更大,因报童对任何供需不匹配的成本“惩罚”都会放大。 然而,当 λ c o s t \lambda_{cost} λcost变化时,Heuristic-FI 的性能要稳定得多,因该算法准确地学习了最佳基础库存水平。 此外,文章发现所提出的算法 DDPIC 的最优性差距比两种基准算法的值小得多,因其目标是准确地逼近真实的动态规划,并且比其他基于启发式的算法更不易受到成本放大的影响。 所以当 λ c o s t \lambda_{cost} λcost从 0.5 增加到 1.5 时,DDPIC 相对于基准算法 Heuristic-FI 和 Heuristic-DD 的收益差距从 32% 左右改善到 61% 以上。

其次,文章通过使用 η t ′ = λ c o s t η t \eta_t^{'}=\lambda_{cost}\eta_t ηt=λcostηt来改变噪声的方差,其中 η t \eta_t ηt为噪声随机变量, λ n o i s e \lambda_{noise} λnoise是噪声缩放因子。给定相同数量的样本,噪声缩放因子 λ n o i s e \lambda_{noise} λnoise会影响学习任务的“难度”,因为具有较大噪声的需求样本使得需求函数和噪声分布的估计更具挑战性。 表2证实了所提出的数据驱动算法DDPIC以最小的 λ \lambda λ噪声值获得了最佳性能,在此情况下算法的收益差距小于16,相当于相对最优性差距<1%。 在所有实验中,DDPIC 都能够将基准算法的收益差距缩小 40% 以上。

最后,文章通过实证检验了价格阶梯对所提出算法性能的影响。文章通过搜索离散价格中的最佳价格来修改所提出的算法,并计算每组离散价格的利润差距。 表3显示,当可行价格稀疏时,如只有四个离散可行价格{60,70,80,90}的情况所示,所提出算法的修改版本的利润差距明显更大。 同时,Heuristic-FI 保持了特别小的最优性差距,因此价格阶梯的稀疏性导致两种数据驱动算法对真实需求模型的学习不足。 此外,文章指出, DDPIC算法是为连续定价决策而设计的,因此可能存在更好的数据驱动联合定价和库存控制算法,专门为价格阶梯设计。 当离散价格集合较密集时,算法的性能与连续价格区间的原始问题设置相似,并且 DDPIC 能够

4 结论

  • 文章聚焦于数据驱动的联合定价和库存控制问题的样本复杂度界限,证明了该问题相较于一般多阶段随机规划问题的指数样本复杂度界限,具有多项式样本复杂度界限,使得数据驱动解决方案更为可行。
  • 文章提出了一种样本高效算法,并证明其在合理数据量下生成接近最优的定价和库存策略的有效性,凸显了理论发现的实际应用性。
  • 未来研究方向包括将分析扩展到非参数需求函数、解决乘法需求模型和带需求审查的缺货模型的挑战,以及探索改进 O ~ ( T 6 ) \tilde{O}(T^6) O~(T6)样本复杂度界限以提高效率。

参考文献

Chen X, Simchi-Levi D (2004) Coordinating inventory control and pricing strategies with random demand and fixed ordering cost: The finite horizon case. Oper. Res. 52(6):887–896.

Cheung WC, Simchi-Levi D (2019) Sampling-based approximation schemes for capacitated stochastic inventory control models. Math. Oper. Res. 44(2):668–692.

Negahban S, Wainwright MJ (2011) Estimation of (near) low-rank matrices with noise and high-dimensional scaling. Ann. Statist. 39(2):1069–1097.

Bernstein F, Li Y, Shang K (2016) A simple heuristic for joint inventory and pricing models with lead time and backorders. Management Sci. 62(8):2358–2373.

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是在 Windows 系统中使用 PyTorch 实现使用 ResNet 提取 NUS-WIDE 数据集特征并将其保存到图像和标签文件中的步骤: 1. 下载 NUS-WIDE 数据集并解压缩到指定文件夹。 2. 安装 PyTorch 和 torchvision 库。 3. 创建一个 Python 脚本,并导入必要的库: ```python import os import torch import torchvision.models as models import torchvision.transforms as transforms from PIL import Image import numpy as np import pandas as pd ``` 4. 加载预训练的 ResNet 模型: ```python model = models.resnet50(pretrained=True) ``` 5. 我们需要使用 ResNet 中的最后一个卷积层的输出作为特征向量。因此,我们需要创建一个新的模型,该模型只包含 ResNet 的前面的层和最后一个卷积层: ```python model = torch.nn.Sequential(*(list(model.children())[:-1])) ``` 6. 加载 NUS-WIDE 数据集的图像,并将其转换为模型所需的格式: ```python transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) def load_image(image_path): image = Image.open(image_path) image = transform(image) image = image.unsqueeze(0) return image ``` 7. 加载数据集的标签: ```python labels = pd.read_csv("NUS-WIDE-urls/NUS-WIDE-urls.txt", sep="\t", header=None, usecols=[1]) ``` 8. 遍历数据集中的所有图像,并使用 ResNet 提取其特征向量: ```python features = [] for i, filename in enumerate(os.listdir("NUS-WIDE-urls/images")): image_path = os.path.join("NUS-WIDE-urls/images", filename) image = load_image(image_path) output = model(image) feature = output.detach().numpy().squeeze() features.append(feature) ``` 9. 将特征向量保存到 numpy 数组中: ```python features = np.array(features) np.save("features.npy", features) ``` 10. 将标签保存到 CSV 文件中: ```python labels.to_csv("labels.csv", index=False, header=False) ``` 这样,就可以在 Windows 条件下使用 PyTorch 和 ResNet 提取 NUS-WIDE 数据集的特征,并将它们保存到图像和标签文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值