使用学习增强的精确方法和学习启发式算法解决多期动态定价问题 Angel A. Juan Yangchongyi Men Veronica Medina Marc Escoto

《Algorithms》:Solving a Multi-Period Dynamic Pricing Problem Using Learning-Augmented Exact Methods and Learnheuristics Angel A. Juan, Yangchongyi Men, Veronica Medina and Marc Escoto

【字体: 大 中 小 】 时间:2026年04月14日 来源:Algorithms 2.1

编辑推荐:

  摘要:本文探讨了一个动态多期定价问题,该问题考虑了随时间变化的情境信息和库存限制。销售量被建模为价格和一个多维情境向量的函数,这个向量可能包括客户位置、收入、忠诚度、竞争对手价格以及促销活动等因素。这种建模方式能够捕捉有限销售期限内的复杂市场动态。问题被构建为一个二次规划模型,并

  摘要:本文探讨了一个动态多期定价问题,该问题考虑了随时间变化的情境信息和库存限制。销售量被建模为价格和一个多维情境向量的函数,这个向量可能包括客户位置、收入、忠诚度、竞争对手价格以及促销活动等因素。这种建模方式能够捕捉有限销售期限内的复杂市场动态。问题被构建为一个二次规划模型,并提出了两种不同的解决方法。第一种方法使用多元回归模型对销售函数进行线性近似,从而得到一个精确的二次规划解作为基准。第二种是一种“学习启发式”算法,它将非线性销售学习模型与元启发式优化相结合,在现实的运营约束下生成高质量的定价策略。计算实验证明了所提出的学习启发式方法的有效性。

1. 引言
动态定价指的是根据市场状况、客户行为和运营约束实时调整价格的策略[1]。它在包括电子商务、运输、零售和酒店业在内的多个行业的收入管理中扮演着关键角色。尽管动态定价被广泛使用,但由于销售不确定性、市场波动性、客户偏好异质性以及库存或定价规则等实际限制,它仍然是一个具有挑战性的问题。当价格需要在多个时间周期内设定时,这些挑战会更加复杂,因为一个时间点的决策会影响到未来的结果[2]。许多动态定价模型经常忽视或简化了情境信息和库存约束的作用[3]。现实世界的销售情况很少仅由价格决定,而是受到经济指标、竞争对手行为、季节性或产品属性等多种外部和动态因素的影响。明确表示这些信息可以实现对销售更真实和灵活的建模。通过将这种多维度、随时间变化的情境纳入考虑,可以更好地模拟影响购买决策的复杂互动。本文通过将动态多期定价问题构建为一个在库存和定价约束下的情境感知优化任务来应对这些挑战。我们提出了一种兼顾理论严谨性和实际应用性的双层方法。首先,我们使用统计回归模型基于价格和情境信息得出销售函数的线性近似。这种近似可以将问题转化为混合整数二次规划(MIQP),或者在价格不是整数的情况下转化为二次规划(QP)。这些模型可以使用现代优化工具得到精确解。这一步为确保情境和多期依赖性得到严格考虑提供了坚实的基础。然而,现实世界的销售关系往往是非线性和复杂的,线性近似可能无法完全捕捉这些动态[4]。为了克服这一点,我们引入了一种新颖的“学习启发式”算法,它将非线性机器学习模型与元启发式优化相结合。所谓“学习启发式”指的是一类在元启发式框架内整合机器学习的混合方法,用于处理依赖于情境或动态变化的优化问题元素[5]。在我们的方法中,机器学习模型从历史数据和情境特征中预测更丰富的销售模式,而元启发式算法则高效地探索解决方案空间,在实际约束下生成高质量的定价策略[6]。这种混合方法能够实现可扩展和自适应的动态定价解决方案,特别是在大型市场或销售关系非线性的市场中。

我们工作的主要贡献如下:(i)将动态定价形式化为一个情境敏感的多期优化问题,其中需求通过线性回归进行建模,明确考虑了个别客户特征和外部因素,同时强制执行库存和价格约束;(ii)使用依赖于线性预测模型的精确求解器(Gurobi)来解决上述问题;(iii)提出了一种结合XGBoost非线性预测模型和粒子群优化(PSO)元启发式算法来解决问题;(iv)分析并比较了每种方法提供的结果。结果显示,我们的学习启发式方法提供了一个灵活的框架,能够适应情境依赖的需求模型和多期定价,这一点在合成实例中得到了验证。本文的其余部分结构如下:第2节回顾了关于情境感知和多期动态定价的相关工作;第3节提出了问题的正式表述,并解释了如何使用精确求解器来解决它;第4节描述了用于生成数值实验的合成数据的过程;第5节解释了开发线性和非线性机器学习模型的目的,即估计销售量;第6节介绍了用于非线性模型的学习启发式算法;第7节提供了计算实验结果的分析;最后,第8节总结了关键发现和未来研究的方向。

2. 相关工作
与我们的工作相关的两个领域是情境动态定价和多期动态定价。情境动态定价将客户或市场特征纳入需求学习中,而多期动态定价则在库存或易逝性等运营约束下整合了随时间变化的定价决策。以下回顾总结了这两个领域的主要贡献,并强调了我们的工作如何与它们相连接。
情境动态定价已成为收入管理中的一个关键领域,它将需求学习与跨时间的运营约束结合起来。Luo等人[7]提出了一种无分布的方法,假设客户估值是情境的线性函数加上未知噪声。他们的策略同时学习了情境-需求关系和噪声分布,使用了一个扰动线性强盗框架。他们证明了匹配遗憾界限,并在模拟和真实的汽车贷款数据上验证了性能,即使在噪声未知的情况下也展现出鲁棒性。Bu等人[8]在基于情境的定价设置中探索了半参数需求模型,考虑了价格和情境的和模型以及结合平滑价格函数和线性情境的模型。他们的在线算法实现了最小最大最优遗憾率,并得出了明确的界限,阐明了模型平滑度和情境维度如何影响学习复杂性。Liu等人[9]研究了买家可以策略性地操纵其情境数据时的动态定价。在个性化定价设置下,这些作者设计了一种政策,可以在线估计买家估值和操纵成本。他们表明,忽略策略性操纵会导致线性遗憾,而他们的算法在该设置下实现了最优遗憾。Wang等人[10]探讨了情境动态定价中经常被忽视的不确定性量化问题。他们为序列定价数据下需求函数开发了一个无偏估计器,从而实现了有效的逐点和均匀置信区间。这为在需求变化的情况下进行决策提供了具有操作价值的不确定性估计。Miao等人[11]通过结合在线聚类和需求估计来研究基于情境的动态定价。他们提出了一种自适应算法,将相似的客户情境分组以改进价格推荐,无需先前的需求模型。他们的方法实时更新簇和定价决策,确保了在遗憾界限上的性能保证。数值实验展示了其在高度异质市场中的优势。Chen等人[12]关注情境动态定价中的公平性,引入了“效用公平性”概念,其中价格决策旨在平衡不同客户群体间的收入和公平性。他们的模型在保持竞争性收入表现的同时减少了客户群体间的效用差异。Nambiar等人[13]研究了假设的需求模型错误指定时的动态定价。他们开发了一个学习框架,根据观测数据更新定价政策和需求模型,减轻了初始错误指定的不利影响。他们的结果显示,与静态或纯粹的利用策略相比,自适应模型校正显著提高了收入。
多期动态定价文献关注了随时间变化的定价决策,通常考虑了库存或易逝性等运营约束。Ullah等人[14]研究了多期报摊商框架中的动态定价决策,其中需求是随机的且价格相关的。他们开发了一个分析模型,联合确定多个周期内的最优价格和订单量。他们的研究考察了需求不确定性和库存补充之间的互动,在特定情况下提供了封闭形式的解决方案。Wang等人[15]提出了一个多模态动态定价框架,其中需求可以在不同制度间切换,每个制度都有不同的价格敏感性。使用随机模型和机器学习技术,他们开发了适应观察到的需求模式的策略。该方法在合成和真实数据集中都表现出强大的性能。Chung等人[16]分析了忠诚度计划中的动态定价,其中客户可以用积分兑换商品。他们将现金定价和积分兑换的互动建模为一个动态优化问题。解决方案考虑了客户兑换行为,展示了最优价格如何取决于积分余额和兑换规则。Mumbower[17]回顾了关于航空公司附加服务(如行李费和座位升级)动态定价的最新研究。该论文综合了优惠管理和收入优化文献,指出了在统一动态框架中结合附加服务和机票定价的新兴趋势。Hu等人[18]研究了在消费者偏好低碳选项下的易逝产品动态定价。他们开发了一个模型,其中价格和产品寿命共同影响环保消费者的需求。结果表明,纳入低碳偏好会改变最优定价轨迹,并可以提高收入和可持续性成果。Liang等人[19]提出了使用深度强化学习的预售机制的分布式动态定价策略。他们的方法协调多个卖家以分散的方式优化价格,同时学习需求模式。该方法在卖家面临部分信息和竞争的环境中提高了收入。Cho和Papavasiliou[20]研究了多区间实时电力市场中的不确定定价策略。他们开发了一个随机优化模型,考虑了需求波动、发电限制和市场规则。他们的结果提供了关于供应和需求不确定性如何影响最优定价计划的见解。Chen等人[21]研究了新鲜农产品在期权合约下的多期定价和订购。他们模拟了初步订单和期权订单的决策,同时考虑了易逝性和价格相关需求。分析表明,常规产品和优惠产品之间的价格差异会影响不同周期的订单分配。
一些最近的研究进一步推进了情境动态定价,研究了多产品、多期和对抗性需求设置。Perivier和Goyal[22]考虑了在情境多项式逻辑模型下的动态定价和商品组合,提出了一种在线牛顿步长算法,在对抗性情境到达时实现了接近最优的遗憾。他们的工作将随机定价策略与情境强盗方法相结合,并强调了自一致性在改善遗憾界限中的作用。Hua等人[23]研究了电子商务新鲜零售中易逝产品的多期降价定价。他们结合了半参数结构需求模型和反事实预测来捕捉价格弹性和需求不确定性。他们的两阶段马尔可夫决策过程方法在有限时间范围内高效地优化了定价策略,并在真实世界设置中展示了有效性。Tullii等人[24]提出了一种用于情境动态定价的算法,该算法在价格和成本模型线性和非线性情况下适应估值近似和价格优化。他们的方法在线性情况下实现了订单最优遗憾界限,并改善了平滑非线性估值的结果。这项工作展示了在高维情境空间中整合机器学习与适应性定价的好处。虽然最近的研究将情境销售学习与多期动态定价相结合,但它们并没有明确考虑库存或易逝性等运营约束。我们的工作通过提出一种基于PSO的学习启发式方法来填补这一空白,该方法在多期设置下将情境感知的销售量学习与操作上现实的定价决策相结合。PSO类型的算法已被广泛研究用于复杂、高维和受限的优化问题。例如,Zhu等人[25]结合了多元线性回归和PSO来优化短期货架寿命蔬菜的定价和补充。更广泛地说,PSO的最新进展及其在复杂、非线性及受限优化问题(如混合可再生能源系统设计[26]和现实工程优化问题的异质综合学习PSO变体[27]中的应用,证明了该算法在处理受运营约束的决策空间方面的适用性,这激发了其在动态定价设置中的采用。

3. 问题建模
考虑一家公司在有限时间范围内(n个周期,?? ∈?? ={1,2,…,??})为产品定价的情况。在每个时间点 ?? ∈??,公司会从一组整数价格水平 {????????,????????+1,…,????????} 中选择一个离散的正价格 ???? ∈?+,其中 ???????? >???????? >0。对于给定的时间点 ?? ∈??,t 时期的销售量 ???? ∈? 是一个非负整数,它取决于所选的价格 ???? 和该时期的 m 维上下文向量 ???? =(??1???,??2???,…,???????),即 ???? =???(????,????),对所有 ?? ∈?? 都成立,其中 ???( ·) 表示一个通用的销售函数。假设对于所有 ?? ∈??,???? 在时间点 ?? =1 时是已知的。公司在整个时间段内都有一个固定的正库存 ???????? ∈?+,因此有 ∑??∈?????? ≤????????。目标是在每个时间点 t 选择价格 ???? 以最大化总收入 ?? =∑??∈?????? =∑??∈???????????,同时要受到库存和价格的限制。相应的数学规划模型可以如下表述:

最大化 ??=∑??∈??????=∑??∈??????????? (1)
受限于 ????=???(????,????) 对所有 ?? ∈?? (2)
∑??∈??????≤???????? (3)
????????≤????≤???????? 对所有 ?? ∈?? (4)
????∈?+ 对所有 ?? ∈?? (5)

方程(1)中的目标函数是指最大化总收入。约束(2)指定了每个时间点 ?? ∈?? 的销售量是价格和上下文的函数。约束(3)确保总销售额不超过库存。约束(4)对每个时间点设置了价格限制,约束(5)定义了变量的取值范围。一般来说,这是一个混合整数非线性规划(MIQP),因为 ???( ·) 是非线性的,因此 ????????? 也是非线性的。

为了使模型能够被精确求解器处理,销售函数 ???( ·) 可以通过价格 ???? 和上下文向量 ???? 的线性函数来近似,如方程(6)所示:
????=???(????,????)≈??+??∑??=1????????????+???????????∈?? (6)
其中 ???? =(??1???,??2???,…,???????) 对所有 ?? ∈?? 都是已知的,而 ??、???? 和 ?? 是根据数据估计出来的常数,用于捕捉观察到的销售模式。将这个线性近似值代入收入表达式得到方程(7):
??=∑??∈???????????≈∑??∈???????(??+??∑??=1????????????+???????)=∑??∈??(???????+??∑??=1?????????????????+?????2??) (7)

由于 ???? 和系数 ??、????、?? 是已知常数,收入是决策变量 ???? 的二次函数。如果 ?? <0,这个二次函数是凹函数,那么相应的最大化问题就是一个凸二次规划。完整的模型表述在方程(8)–(12)中:

最大化 ??=∑??∈??(???????+??∑??=1????????????+?????2??) (8)
受限于 ????=???(????,????) 对所有 ?? ∈?? (2)
∑??∈??????≤???????? (3)
????????≤????≤???????? 对所有 ?? ∈?? (4)
????∈?+ 对所有 ?? ∈?? (5)

方程(1)中的目标函数是指最大化总收入。约束(2)指定了每个时间点 ?? ∈?? 的销售量是价格和上下文的函数。约束(3)确保总销售额不超过库存。约束(4)对每个时间点设置了价格限制,约束(5)定义了变量的取值范围。一般来说,这个模型是一个混合整数非线性规划(MIQP),因为 ???( ·) 是非线性的,因此 ????????? 也可能是非线性的。

为了让模型能够被精确求解器处理,销售函数 ???( ·) 可以通过价格 ???? 和上下文向量 ???? 的线性函数来近似,如方程(6)所示:
????=???(????,????)≈??+??∑??=1????????????+???????≡??+??∑??=1????????????+???????) (6)
其中 ???? =(??1???,??2???,…,???????) 对所有 ?? ∈?? 都是已知的,而 ??、???? 和 ?? 是根据数据估计出来的常数,用于捕捉观察到的销售模式。将这个线性近似值代入收入表达式得到方程(7):
??=∑??∈???????????≈∑??∈???????(??+??∑??=1????????????+???????)=∑??∈??(???????+??∑??=1?????????????????+?????2??) (7)

由于 ???? 和系数 ??、????、?? 是已知常数,收入是决策变量 ???? 的二次函数。如果 ?? <0,这个二次函数是凹函数,那么得到的最大化问题就是一个凸二次规划。完整的模型表述在方程(8)–(12)中:

最大化 ??=∑??∈??(???????+??∑??=1????????????+?????2??) (8)
受限于 ????=??+??∑??=1????????????+???????≡??+??∑??=1????????????+???????) (9)
∑??∈??????≤???????? (10)
????????≤????≤????????3 对所有 ?? ∈?? (11)
????∈?+3 对所有 ?? ∈?? (12)

其中 ??? 和 ???? 是原始变量的估计值,???? 可以被视为与 ???? 相关联的辅助变量。这种新的表述是一个 MIQP,因为目标函数中有二次项 ?????2??,并且对 ???? 有整数性约束。这种表述可以使用 MIQP 求解器来解决,例如 Gurobi(https://www.gurobi.com,访问于 2026 年 4 月 3 日)或 CPLEX(https://www.ibm.com/products/ilog-cplex-optimization-studio,访问于 2026 年 3 月 23 日),这些求解器可以处理带有整数变量的二次目标问题。

最后,如果价格变量 ???? 被允许是连续的正实数,即 ???? ∈?+ 且 0
4. 合成数据生成
为了支持和测试用于估计销售函数 ???( ·) 的机器学习模型,并对动态定价问题进行计算实验,生成了包含 20,000 个观测值的合成数据集。每个观测值代表在时间点 ?? ∈?? 注册的一个销售事件,包含相关价格(????)、上下文变量(????)和销售量(????)。如表 1 所示,数据集包含变量 ????、客户 ???????? 代码、客户 ???????????(月家庭收入)、客户 ???????????????????? 状态(客户忠诚度计划会员的二元指标)、时期 t 的竞争对手价格(???????)、时期 t 的促销标志(????????,二元指标)以及 ????(整数)。这些变量被选中是为了捕捉销售的关键驱动因素,包括产品价格、空间异质性、社会经济特征、竞争状况和促销效果,同时保持数据集足够紧凑以便进行受控实验。

表 1. 合成数据集的样本。合成数据集是为了模拟销售量(????)作为价格(????)和上下文变量(????)的非线性函数而生成的。目标是创建数据,使得线性模型能够达到适度的预测能力,而非线性模型可能更能准确捕捉复杂情况,从而反映真实的销售行为。时期 t 的价格变量(???????)是一个在 5 到 25 之间均匀分布的连续变量,代表公司在每个观测值中提供的销售价格。变量 ???????? 是从集合 {1,2,…,30} 中随机抽取的离散整数,模拟了 30 个地理区域的客户位置。客户 ??????????? 使用对数正态分布模拟,参数为 ?? =8.474104 和 ?? =0.293560(即平均值为 5000,标准差为 1500)。这个选择确保了所有收入值都是正数,同时保持了预期的平均值和自然变异。变量 ????????????????? 是二元的,从伯努利分布中抽取,成功概率为 0.3,表示客户是否对公司忠诚。变量 ??????? 代表时期 t 的竞争对手价格,也是在 5 到 25 之间均匀抽取的连续变量,捕捉了竞争定价动态。同样,变量 ???????? 是从伯努利分布中抽取的二元指标,概率为 0.2,表示时期 t 是否有促销活动。最后,变量 ???? 是作为上述预测变量的非线性函数生成的,捕捉了复杂的交互作用和二次效应。首先,如方程(13)所述,生成了一个辅助变量 ??′??;即,通过 ???? 的负线性和二次项调整基线截距,通过 ??????????? 的正线性效应,以及 ?????????????????、??????????? 和 ??????? 的附加效应。变量 ???? 和 ???????????、???? 和 ??????????? 之间的交互项,以及 ??????????? 和 ??????? 之间的交互项引入了非线性依赖。添加高斯噪声 ????,均值为 0,标准差为 1,以反映随机变化:
??′??=100?1.2????+0.00035??????????????+3.0???????????? ?0.7???????+2.0????????????0.8??2??+ ?0.0012????·????????????0.025????·??????????????+ ?0.03???????????·???????????·???????+???? (13)
其次,为了确保销售量始终为正,应用了 softplus 变换 [28],如方程(14)所述:
????=round?(log?(1+????′??)) (14)
这种变换产生了适合建模和预测的平滑变化的非负销售值,同时保持了数值稳定性,同时保留了真实的零销售结果。

5. 机器学习模型
使用 Python 3.12.2,首先它被广泛用于连续优化,因为它可以在不需要梯度信息的情况下探索复杂、非线性和非凸的搜索空间。PSO适用于本文中的问题,其中目标函数是非线性的,可能不可微分,并且在存在约束条件时传统的基于梯度的求解器可能会失败[31]。选择PSO而不是其他元启发式方法是因为它的简单性、相对较少的超参数数量以及配置连续优化任务的便利性。尽管也可以使用其他方法来解决这类问题,但如第2节所讨论的,PSO在相关的实值和非线性优化领域已经被广泛使用,这使得它成为本研究所分析的动态定价设置中的一个成熟且可靠的选择。在我们的动态定价问题中,PSO用于优化一个有限时间范围内的价格序列?? ={1,2,…,??}。我们考虑一个价格向量?? =(??1,??2,…,????),其中对于所有?? ∈??,有???? ∈[????????,????????]。时期t的预期销售量由销售模型^???? =???(????,????)预测,其中???( ·)是使用第5节描述的XGBoost模型从历史数据中学习得到的,而????是在时间范围开始时可用的上下文信息向量。尽管这种学习启发式方法是通过实证验证的,但其收敛性质可以与现有的PSO理论相关联。经典分析表明,对于标准的参数选择,惯性权重PSO会收敛到一个稳定点,因为粒子速度会随时间减小,并且搜索空间是有界的[32,33]。在受限环境中,算法1中使用的投影机制(将价格裁剪到[????????, ????????])被认为可以保持可行性,并引导群体朝向边界或内部稳定点[34,35]。虽然基于XGBoost的销售函数是非线性和不平滑的,但理论工作表明,PSO在紧凑的黑盒搜索空间中几乎肯定能够收敛到一个稳定解[36]。算法1 基于PSO的学习启发式方法1:输入:时间范围长度n,库存限制????????,价格范围[????????,????????],上下文向量{????}????=1,销售模型???(????,????) 2:初始化:包含l个粒子的群体{????=(????1,…,??????)}????=1,每个粒子的价格??????随机选取在[????????,????????]范围内 3:将l个粒子的速度{????=(????1,…,??????)}????=1初始化为零,并初始化w和??_???????? 4:对于每个i =1到l 5: fitness(????) ← GetFitness(????) 6:结束循环 7:根据适应度存储个人最佳位置和全局最佳位置 8:当不满足停止条件时继续循环 ? 主循环 9:更新惯性值w 10:对于每个粒子i =1到l 11: 对于每个时间段t =1到n 12: 随机选取??1,??2 ∈???(0,1) 13: 更新速度:?????? ←????????? +??1???1?(??????,??????????????????) +??2???2?(??????,??????????????????) 14: 将??????裁剪到??_???????? 15: 更新位置:?????? ←?????? +?????? 16: 裁剪到范围:?????? ←min?(max?(??????,????????),????????) 17: 结束循环 18: fitness(????) ← GetFitness(????) 19: 如果fitness(????) > fitness(???????????????) then 20: ??????????????? ←???? 21: 如果fitness(????) > fitness(???????????????) then 22: ??????????????? ←???? 23: 结束if 24: 结束if 25: 结束循环 26:结束循环 27:输出:找到的最佳价格向量:??* =???????????????PSO框架使用l个粒子(算法1)。每个粒子?? ∈{1,…,??}代表一个候选价格向量???? =(????1,…,??????),并有一个相关的速度向量???? =(????1,…,??????),用于指导它在搜索空间中的移动。最初,粒子位置在可行的价格范围内随机选取,速度设置为零,并使用算法2评估每个粒子的适应度(总收入)。每个粒子的个人最佳位置和全局最佳位置相应地初始化。在PSO算法的每次迭代k中,使用标准的PSO规则更新粒子的速度和位置。对于每个粒子?? ∈{1,…,??}和每个时间段t ∈??,有 ????,??+1??=??????,????+??1??1?(????,????,????????????????,????)+??2??2?(??????,????????????????,????) (16) ????,??+1??=????,????+????,??+1?? (17)其中w是惯性权重,??1和??2是加速系数,且??1,??2 ~???(0,1)。更新后,价格被投影回可行区间[????????,????????]。在位置更新后,使用算法2重新计算每个粒子的适应度,该算法计算总收入,同时遵守库存限制: fitness?(????)=??∑??=1???????????? (18) ??????=min?(max?(0,?^???????),??????1) (19) ????=?????1???????,??0=??max (20)如果粒子改善了它的个人最佳适应度,则更新个人最佳适应度。如果新的个人最佳适应度优于当前的全局最佳适应度,则也更新全局最佳适应度。这个循环一直持续,直到满足停止条件(例如,最大迭代次数或收敛)。算法输出全局最佳价格向量??* =???????????????,该价格向量在库存限制下最大化总收入。这种方法允许基于PSO的学习启发式方法有效地探索价格序列空间,同时利用XGBoost模型的预测能力和对可行价格策略的元启发式搜索。算法2 GetFitness(??) 1:???????????????????? ←0, ?? ←??max 2:对于每个时间段t =1到n 3: 如果?? =0 then 4: ???? ←0 5: 否则 6: ^???? ←???(????,????) 7: ???? ←min?(max?(0,?^?????), ???) 8: ?? ←?? ????? 9: ???????????????????? ←???????????????????? +???? ·???? 10: 结束if 11:结束循环 12:返回???????????????????? 7. 实验与结果分析为了测试两种方法(使用线性回归器的精确求解器和使用非线性回归器的元启发式方法),设计了几项实验。在这个数值研究中,n被设置为10,作为考虑多期销售的示例。使用第4节中类似的方法创建了20个新的客户档案,包括一些基本标识符,如????????, ?????????????????, 和????????????????????。如表3所示,为每个客户和时间段生成了竞争价格和促销标志。它们被标记为?????1, ??????????????1, …, ?????10, ??????????????10。对于每个客户实例,决策变量????被限制在[5,25]的范围内。固定库存水平??max是从[100,1000]范围内的等差数列中选取的,公差为50。总共使用了第3节中描述的精确求解器和第6节中介绍的学习启发式方法解决了380个实例。对于基于PSO的学习启发式方法,采用了标准参数设置,群体大小?? =50,线性递减的惯性权重范围从?? =0.9到?? =0.36,最大速度为4,加速度系数??1 =??2 =1.5,这些在文献中是常见的。最大迭代次数设置为150。进行了不同参数配置的初步实验,但所选的设置在解决方案质量和计算时间之间提供了良好的平衡,因此被用于所有实验。表3。实验输入实例:10个时段内的20个新客户。由于模型表示的局限性,这两种方法处理????(取决于决策变量)的方式不同。像Gurobi这样的优化求解器使用线性回归训练的线性表达式(方程(15)),因为它们只能处理线性或二次规划问题。相比之下,这里应用的启发式算法如PSO元启发式可以适应非线性函数,因此可以结合XGBoost的预测来预测销售量。由于线性回归模型对实际数据的拟合不够准确,因此通过求解器获得的‘精确解’需要与实际销售额进行验证。如第5节所讨论的,XGBoost预测的销售量被视为实际发生的销售的代理。因此,使用训练好的XGBoost模型重新评估精确方法产生的解决方案,以确定它们的现实世界有效性。表4总结了通过将不同的优化方法应用于每个实例而获得的平均结果。第一列报告了评估的不同最大库存水平????????。EM_pred、EM_real和LH列显示了三种主要情景下的平均结果。EM_pred对应于使用线性回归模型预测销售的精确求解器获得的收入。EM_real代表通过评估EM_pred解决方案并使用XGBoost模型获得的‘真实’收入,假设XGBoost模型提供了真实的销售量。LH显示了通过结合XGBoost和PSO启发式的学习启发式方法获得的收入。百分比差异列Gap% (1–2)和Gap% (3–2)报告了不同情景之间的平均偏差。具体来说,Gap% (1–2)衡量了EM_real与EM_pred之间的偏差,量化了由于线性回归模型引入的误差导致的收入损失。首先对每个实例计算(????_???????? ?????_????????)/????_???????? ×100%,然后在所有实例中取平均值。同样,Gap% (3–2)平均表示了EM_real和LH之间的相对差异,以LH为基准。我们采用LH作为分母,因为EM_real有时会产生零收入,这会导致比率未定义或不稳定。因此,差距是作为(???? ?????_????????)/???? ×100%计算的,然后在所有实例中取平均值。注意,这些平均差距值不是从平均收入中获得的,而是从平均实例级百分比差距中获得的。跨实例平均可以突出一致的趋势,同时减少实例特定的变异性。所有实例的完整结果集可以在在线仓库中找到(https://github.com/MarcEscoto/Multi-Period-Revenue-Optimisation.git,访问日期为2026年3月23日)。结果显示了跨实例和库存水平的一致模式。在????????的低值时,EM_pred和EM_real之间的差异非常大,通常超过90%,表明基于线性模型的解决方案大大高估了实际收入。随着????????的增加,EM_pred的预测逐渐更接近实际收入。另一方面,学习启发式方法在所有库存水平上的平均表现更好,尤其是在????????的值较小时,性能差距更大。表4。所有实例中精确(EM)和学习启发式(LH)的平均结果。为了可视化每种方法的结果分散情况,图1和图2展示了每个????????值的百分比差距的箱线图(每个箱线图的平均值用红色三角形表示)。为了提高可读性,箱线图按连续的????????值分组显示(例如,100–150, 200–250等)。图1展示了EM_pred和EM_real之间的差距。结果表明,在????????的低值时,所有实例中的差距一直非常高,大多数值接近100%,表明线性模型大大高估了收入。随着????????的增加,EM_pred的预测逐渐更接近实际收入。另一方面,学习启发式方法在所有库存水平上的平均表现更好,尤其是在????????的值较小时,性能差距更大。表4。所有实例中精确(EM)和学习启发式(LH)的平均结果。为了可视化每种方法的结果分散情况,图1和图2展示了每个????????值的百分比差距的箱线图(每个箱线图的平均值用红色三角形表示)。为了提高可读性,箱线图按连续的????????值分组显示(例如,100–150, 200–250等)。图1展示了EM_pred和EM_real之间的差距。结果表明,在????????的低值时,所有实例中的差距一直非常高。随着????????的增加,中位数和差距的分散度逐渐减小,表明当库存限制放宽时,线性近似变得更加可靠。在少数实例中以下是按照要求翻译后的文本:

### Pareto边界示例:针对4位特定客户

#### (a) 客户6
#### (b) 客户11
#### (c) 客户12
#### (d) 客户7

通过这些Pareto边界,我们可以观察到四种不同的行为模式,这些模式按照出现频率进行了排序。最常见的趋势如图3a所示:精确模型虽然能够预测出较高的收入,但实际上在大多数$q_{\max}$值下,实现的收入存在显著且持续的差距。在这种情况下,即使学习启发式方法(LH)得到的结果低于EM_pred的值,但仍然显著优于精确模型的实际收入。这种模式凸显了该方法对于模型不准确性的鲁棒性——尽管它不能保证最优解,却能始终提供更好的实际性能。

#### (b) 客户11
在这种情况下,EM_pred与EM_real之间的差距仍然存在,但LH有时会优于EM_pred。尽管精确模型已经将其(近似)问题求解到最优状态,但在线性近似下能够获得的最大收入仍可能低于实际销售所能达到的最大收入。这凸显了依赖错误预测模型的额外风险。在实际操作中,这种风险可能导致管理者低估库存的真实收入潜力,从而订购少于最佳数量的库存。

#### (c) 客户12
这种模式出现频率较低,但同样值得注意:在某些情况下,LH甚至比精确模型本身能够为某些库存水平带来更高的实际收入。这是因为线性回归有时会低估销量。精确模型基于这种保守的预测进行优化,因此设定的价格低于实际最优价格。当这些价格与实际销售情况相结合时,高于预期的销量会带来超出预测值的收入。然而,这种反向的近似误差同样危险,它可能导致决策者设定过于保守的价格,从而损失大量收入,并低估库存的真实利润潜力。

#### (d) 客户7
在某些情况下,精确模型的实际收入在一个或多个$q_{\max}$值上超过了学习启发式方法的结果。有两个合理的解释:首先,学习启发式方法依赖于随机元启发式搜索,因此偶尔的糟糕随机种子可能会导致次优解;其次,线性预测有时能为恰好在近似模型中实现最大收入的价位提供良好的局部拟合。当库存阈值超过某个临界值(本例中为$q_{\max} \geq 600$)时,精确模型的预测曲线与实际收入曲线非常接近,表明该区域的近似精度很高。

由于LH依赖于随机元启发式方法,我们进行了一个小规模的可变性分析,以评估结果对随机种子初始化的敏感性。该算法使用不同的种子执行了10次运行,针对一个代表性实例进行了测试。图4显示了每次运行得到的Pareto边界,以及EM_pred和EM_real的结果。可以看到,不同种子初始化得到的最小值和最大值最初几乎没有差异。然而,随着$q_{\max}$的增加,种子之间的最小值-最大值范围逐渐扩大。即便在较高的$q_{\max}$值下,观察到的可变性仍然很小,整体趋势保持不变。

### 结论

本文研究了在库存限制条件下的动态多期定价问题,利用了历史销售数据和上下文特征。我们开发并比较了两种解决方法:一种是基于线性回归模型的精确QP求解器;另一种是将非线性XGBoost模型与PSO结合的学习启发式框架。线性回归模型虽然易于解释且与QP公式兼容,但其预测准确性仅为中等水平(测试数据上的$R^2 \approx 0.76$),并且存在较大的预测误差,这反映了其在捕捉价格、上下文和销售之间的非线性关系方面的局限性。相比之下,XGBoost模型实现了接近完美的准确性($R^2 \approx 0.998$),其平均绝对误差(MAE)和均方根误差(RMSE)都非常低,显示出它能够很好地近似真实的销售动态。

计算实验涵盖了代表不同客户特征和多期环境的多个合成案例,这些案例具有不同的库存水平。QP求解器始终能够生成在线性模型下实现最大预测收入的价格向量。然而,当使用XGBoost的预测结果作为实际销售的代理进行评估时,尤其是在库存限制严格的情况下,会出现较大的差异,收入过高估计的情况经常达到100%。随着库存水平的增加,这种高估现象逐渐减少。相比之下,学习启发式方法直接将高度精确的非线性XGBoost预测结果纳入PSO优化过程中,生成的定价策略在所有案例和库存水平下都更接近实际销售收入。Pareto边界分析也证实了这一趋势。尽管学习启发式方法通常优于精确方法,但在少数情况下,精确模型反而实现了更高的实际收入。这揭示了随机元启发式搜索的局限性,同时也表明了当XGBoost的预测更加准确时,其能够获得更优结果的强大潜力。

最后,尽管我们的研究展示了学习启发式方法的性能优势,但也需要认识到预测准确性和可解释性之间的权衡。精确方法中的线性模型具有较高的透明度,而像XGBoost这样的不太透明的模型虽然能提高准确性,但却牺牲了可解释性。XGBoost的偶然优越性进一步强调了在保持可解释性的同时增强其预测组件的价值。未来的研究可以尝试使用弹性网络、线性样条等技术来提升精确模型的预测能力,或者长期采用约束学习方法,即让机器学习预测动态变化,然后将其线性化后纳入精确模型中。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号