未知非参数需求和有限价格变动的动态定价

news2025/1/11 19:45:41

英文题目:Dynamic Pricing with Unknown Non-Parametric Demand and Limited Price Changes

中文题目:未知非参数需求和有限价格变动的动态定价

单位:麻省理工学院,剑桥

时间:2019

论文链接:https://doi.org/10.1287/opre.2020.0445

代码:

摘要:我们研究了不知道产品任何潜在需求信息的零售商动态定价问题。零售商的目标是通过平衡两个目标:了解需求和最大化收入,在有限的时间范围内最大化累积收入。零售商还力求减少价格试验的数量,因为价格变化具有潜在成本。现有文献在未知需求为参数的情况下解决了这一问题。考虑需求是非参数时的定价问题。我们构建了一个定价算法,该算法使用未知需求函数的二阶近似,并确定所提出的策略何时达到接近最优的后悔率 同时进行 价格变化。因此,与之前文献显示的 价格变化了相比,我们在价格试验次数上展现了相当大的减少,我们还进行了大量的数值实验,以表明该算法在总价格变化方面大大改进了现有方法,在累积遗憾度量上具有相当好的性能。

关键词: learning(学习 )• dynamic pricing(动态定价) • nonparametric models(非参数模型) • limited price changes(有限价格变化)

1介绍

企业不断创新,引入新的产品,以便在快速变化的商业环境中竞争和更好地定位自己。每年,数十亿美元投资于产品创新和新产品启动(Willemot et al. 2015)。不幸的是,并非所有新产品启动都成功。特别是Willemot等人(2015)指出,每年市场上推出的总新产品中有近15%是不成功的,并在生命周期结束时从货架上起飞。事实上,最近的一项调查指出,超过72%的新产品不能满足其收入目标和属性,如定价失败(Carmichael 2014, Huang et al. 2007)。一方面,动态定价给零售商有机会学习价格弹性,另一方面,不知情的定价可能会产生意想不到的后果,并可能导致产品故障。

新产品知情定价决策的一个潜在解决方案是将需求学习纳入动态定价框架中。鉴于定价的普遍性质。对于新产品,许多研究人员已经研究了组合定价和学习问题也就不足为奇了。自 Rothschild (1974) 引入组合问题以来,已经提出了各种扩展和算法。这个问题设置中的核心权衡是探索-开发。虽然零售商可以通过探索价格来学习需求响应,但最大化收入意味着利用已经探索的价格。接近最优算法确保学习和收入的两个竞争目标被适当地平衡。

分析以及所提出算法的性能都依赖于做出的基本假设,特别是关于需求的需求以及需求实现中的错误。未知需求通常由随时间学习的一组参数参数化(Bertsimas 和 Perakis 2006、den Boer 和 Zwart 2013、Keskin 和 Zeevi 2014、Cheung 等人 2015 等)。常用算法使用最大似然估计 (MLE) 技术来确保快速收敛到未知的最佳价格。但是选择参数形式,特别是当需求未知时可能具有挑战性。为了缓解这些问题,很少有研究(例如,参见 Besbes 和 Zeevi 2009,2015 年)专注于假设非参数需求,并提出了接近最优的学习和定价算法。然而,据我们所知,所有非参数定价和学习研究都假设价格可能在每个时期发生变化。这成为一个棘手的假设,尤其是在不断变化的价格涉及更改标签的离线零售环境中,这可能会操作成本高昂(Netessine 2006)。此外,即使在在线环境中,频繁价格变化对消费者信任的负面影响也得到了很好的建立(Garbarino和Lee 2003)。例如,如果消费者观察到频繁的价格变化并观察基于客户未知的潜在客户属性的价格歧视,他们不太可能再次访问商店。鉴于这些问题,我们专注于动态定价和需求学习问题,当零售商更喜欢非常有限的价格变化时,对需求没有参数假设。

价格变化有限的非参数需求给定价问题带来了很大的困难。虽然从一个时间段到另一个时间段的价格对于学习和收入目标可能是最优的,但定价约束可能意味着必须在再次改变价格之前为一组客户保持固定价格(即使它是次优的)。此外,由于需求是非参数的,基于精确 MLE 的参数估计变得有效不可行。遵循这些约束,我们专注于满足一般平滑假设的需求函数类别,并提出了使用三个关键思想的随机有限价格实验 (SLPE) 策略。首先,由于价格变化有限,需求是随机的,一旦选择价格进行实验,它就是固定的,直到可以获得该价格需求的高概率估计。其次,由于实验价格可能长时间保持固定,因此根据高概率仔细选择未来的实验价格使用以前的价格实验估计最佳价格。第三,随着时间的推移,随着包含最优价格的高概率区域变小和更小,我们可以对较长的时间段使用相同的价格,从而确保非常低的累积价格变化,而不会造成额外的收入损失。

我们分析和数值分析了所提出的定价策略,以证明其有效性。我们表明,当未知需求函数局部线性接近最优价格时,需求和收入函数满足普遍施加的连续性假设,两种不同价格需求观测的误差满足两点强盗反馈,SLPE策略的遗憾率为̃O(√T),价格变化率为O(log log T)。Agarwal 和 Dekel (2010) 引入了两点老虎机反馈结构,并由 Nesterov (2011) 独立分析零阶优化方法,当直接梯度计算不可行或不适定时。随后,各种研究人员在各种环境下的两点反馈假设下构建了最优算法(例如,参见Ghadimi和Lan 2013,Duchi等人2015,Shamir 2017)。我们的工作也是这种不断增长的文献的一部分。我们确定策略的遗憾率接近最优(直到对数因子),同时价格变化非常有限。我们注意到之前最著名的价格变化保证是 O(log T )。因此,我们的分析揭示了一类非参数函数,其中最著名的价格变化保证从 O(log T ) 提高到 O(log log T )。

据我们所知,我们还是第一个利用两点强盗反馈来减少价格变化的总数,同时保持接近最优的后悔保证。我们还进行了广泛的数值实验,以实证检验所提出方法的性能。合成数据的示例表明,所提出的算法在性能最佳的基准上大大减少了价格变化的数量。虽然人们会期望这种价格变化的减少可能会导致遗憾的增加,但我们发现我们的政策与基准方法相当。

1.1.文献回顾

需求不确定性下的动态定价在运筹学和运营管理中得到了广泛的研究。虽然已经提出了各种学习方法,但非参数需求加上有限的价格变化会导致收入最大化的重大挑战。定价和学习:定价有着丰富的历史。自 Rothschild (1974) 引入以来,已经提出了许多扩展。回顾其中的论文和参考文献(例如,Aviv 和 Vulcano 2012 和 den Boer 2015)提供了对该领域当前进展的全面概述。虽然许多早期的工作解决了假设潜在需求已知的定价问题,但最近的研究集中在学习需求的问题上而收入。对需求的假设,特别是假设参数形式与非参数形式,极大地改变了学习和定价问题和随后的分析。

用于定价和学习的参数化模型:许多研究人员在未知参数需求的各种假设下提出了动态定价算法。在这种情况下,假设需求参数模型(通常以价格线性),需求模型的未知参数以顺序方式学习。den Boer 和 Zwart (2013) 假设线性价格需求关系,并提出了一种受控方差定价策略,该策略通过引入动态选择价格的方差来完成足够的学习。Keskin 和 Zeevi (2014) 找到了充分条件,在这种条件下,定价策略在线性需求设置中根据其后悔率是最优的。Handel 和 Misra (2015) 和 Bertsimas 和 Dayanos (2017) 使用鲁棒优化的技术来解决需求参数未知的动态定价。最近,Cohen等人(2016)、Qiang和Bayati(2016)、Javanmard和Nazerzadeh(2016)、Ban和Keskin(2017)、Elmachtoub等人(2018)、Bastani等人(2019)等使用了需求参数模型,该模型不仅包括价格,还包括其他产品相关协变量,用于最优定价决策。这些论文都没有明确解释价格变化。因此,它们可能导致价格变化数量相对于总时间范围呈线性增加率。

用于定价和学习的非参数模型:非参数需求的动态定价也得到了广泛的研究。在这种情况下,假设需求属于一系列需求曲线,其特征是收入函数的一些结构属性,如凹性和单峰性。Besbes 和 Zeevi (2015) 构建了一个错误指定的算法,该算法使用需求线性模型来优化后续价格。有点令人惊讶的是,他们发现即使未指定,他们构建的策略也接近最优。根据他们的直觉,我们提出的策略还构建了未知需求的线性插值,并使用这些近似进行未来的定价。然而,由于他们提出的算法没有考虑价格变化,它们至少会产生 O(log T ) 价格变化,大大高于本文提出的所提出算法的价格变化率:O(log log T )。其他人,如Besbes和Zevi(2009),Lei等人(2014),Dokka Venkata Satyanaraya等人(2018),Chen等人(2017)和Chen和Gallego(2018)也构建了非参数定价策略,但没有考虑价格的变化。因此,我们在本文中建立的所提出的算法和理论下限与现有工作根本不同。

价格实验有限的动态定价:动态定价对消费者行为的影响也得到了广泛的研究。例如,PKKannan(2001)假设基于区分消费者的动态定价策略的广泛价格变化可能导致消费者之间的不信任。这些声明通过 Garbarino 和 Lee (2003) 和 Haws 和 Bearden (2006) 进行的实验得到证实。这些研究指出了频繁价格变化和收入最大化之间的内在紧张关系。

在运营管理文献中,对价格变化的限制并不新鲜。Feng 和 Gallego (1995) 考虑单个价格变化的最佳时间以最大化收入。类似地,Bitran 和 Mondschein (1997) 在给定预先指定的价格变化时间表的情况下优化动态价格。Netessine (2006) 考虑了价格变化不频繁和库存约束的最优动态定价问题。然而,这些论文没有考虑需求学习,因此它们与当前工作有很大不同。与我们的工作更接近,Broder (2011) 首先制定了价格变化有限的需求学习问题。针对参数需求设置,作者基于最大似然估计方法构建了一个定价算法,该方法以 O(log T ) 价格变化产生 ̃O(√T ) 遗憾。最近,Cheung 等人。 (2015) 专注于在参数设置中价格变化有限的需求学习问题,其中实际需求是有限已知需求曲线之一。同样,Chen 和 Chao (2017) 专注于未知需求函数的参数族,但增加了审查需求的复杂性。最后,Cohen等人(2015)分析了在许多参数需求设置中,单个价格(平均价格)如何接近最优。然而,由于没有允许价格变化,他们提出的单一价格策略在我们的设置中会获得线性后悔率。

由于参数需求假设,上述所有研究都与当前工作有很大不同。例如,Broder (2011) 的基于 MLE 的算法适用于已知的参数需求形式。同样,Cheung等人(2015)提出的定价策略使用数据驱动的方法来构建零售商已知的候选需求曲线。相比之下,在本文中,我们没有对需求施加任何参数假设。此外,我们不假设历史销售数据可用。我们提出的 SLPE 策略使用根本不同的直觉。我们的价格选择过程使用分段线性近似来为实验提供接近最优的价格。我们通过固定选定的价格来确保有限的价格变化,直到无法以高确定性估计该价格的需求。我们提出的策略以 O(log log T ) 价格变化产生 ̃O(√T ) 后悔率。我们通过广泛的数值研究进一步展示了卓越的经验性能。

1.2.贡献

•价格变化有限的非参数未知需求的动态定价:我们分析了非参数需求下价格变化有限的动态定价和需求学习问题,当可行价格属于连续价格范围时。虽然先前的研究人员分别研究了非参数需求学习问题以及价格变化有限的问题,但据我们所知,本文首次将这两个问题放在一起研究。在许多情况下,动态定价和学习可以与两个假设中的任何一个相符。例如,在离线零售中,新产品需求的参数形式可能很难先验地选择。同样,每个传入的客户都无法更改价格。此外,为新产品选择预定义的价格阶梯本身可能是一个难题。例如,如果价格阶梯太粗糙,从离散价格阶梯中学习到的最优价格可能与实际的最优价格相差甚远,这可能导致遗憾的线性率。

2.模型和性能指标

在本节中,我们制定了动态定价和学习问题,并形式化了后悔、有限价格实验和有限价格变化的概念。

3.提出的算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1037403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

制作频谱灯

最近研究了下傅里叶变换,用它可以通过采集声音信号由时域转换到频域内,从而得到声音的频谱信息,可以做个频谱灯。 主要使用ESP32来实现了他,实现效果如下: 频谱灯 为了可以带出去露营,我把它做的很大&…

ubuntu20.04下源码编译colmap

由于稠密重建需要CUDA,因此先安装CUDA,我使用的是3050GPU,nvidia-smi显示最高支持CUDA11.4。 不要用sudo apt安装,版本较低,30系显卡建议安装CUDA11.0以上,这里安装了11.1版本。 下载: cuda_1…

C语言之内存函数篇(3)

目录 memcpy memcpy的使用 memcpy的模拟实现 NO1. NO2. memcpy可否实现重叠空间的拷贝 my_memcpy memcpy memmove memmove memmove 分析 代码 memset memset的使用 memcmp memcmp的使用 <0 0 >0 今天我们继续介绍几个重要的内存操作函数。&…

js中的数据结构:栈,队列,链表,字典哈希表,树

栈&#xff1a;先进后出 队列&#xff1a;先进先出 链表&#xff1a; 单链表&#xff1a; 双链表&#xff1a; 环形链表&#xff1a;最后一个数据的next指针不是指向null&#xff0c;指向的是任意之间的一个数据&#xff0c;形成一个环 数组和链表的区别&#xff1a; 字典和哈…

FPGA的汽车尾灯控制Verilog

名称&#xff1a;汽车尾灯控制Verilog 软件&#xff1a;Quartus 语言&#xff1a;Verilog 要求&#xff1a; 设计一个汽车尾灯控制器。假设汽车尾部各有2个指示灯&#xff08;LED&#xff09;&#xff0c;分别代表转弯、刹车&#xff0c;控制器功能包括&#xff1a; &…

微信收款码费率0.38太坑了

作为一个有多年运营经验的商家&#xff0c;我本人在申请收款功能时曾经走过了不少弯路。我找遍了市面上的知名的支付公司&#xff0c;但了解到的收款手续费率通常都在0.6左右&#xff0c;最低也只能降到0.38。这个过程吃过不少苦头。毕竟&#xff0c;收款功能是我们商家的命脉&…

有什么好用的设备管理软件?智慧巡检对后勤运维有什么帮助?

定期巡检在设备管理、后勤管理和运维管理中扮演着不可或缺的角色&#xff0c;以及及时发现异常并控制风险。然而&#xff0c;传统巡检工作存在弊端。为了解决这些问题&#xff0c;“的修”报修系统对巡检管理功能进行了突破性的设计和开发。   “的修”报修巡检管理功能包含了…

C++之内部类实现总结(二百三十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

vscode终端中打不开conda虚拟包管理

今天&#xff0c;想着将之前鸽的Unet网络模型给实现一下&#xff0c;结果发现&#xff0c;在vscode中运行python脚本&#xff0c;显示没有这包&#xff0c;没有那包。但是在其他的ipynb中是有的&#xff0c;感觉很奇怪。我检查了一下python版本&#xff0c;发现不是我深度学习的…

转载 - 洞察问题本质,解决工作难题

作者&#xff1a;关苏哲 高效管理者的三大技能 问题界定的6个问题 1.你所需要解决的问题是什么&#xff1f; 2.你为什么需要解决这个问题&#xff1f; 3.你期待的理想结果是什么&#xff1f; 4.这个问题包括哪些子问题&#xff1f; 5.你曾经尝试过哪些解决方式&#xff1f…

Intel架构的基本知识

字节序 字节序根据存储的方向不同, 分为大端字节序(big-endian) 和 小端字节序(little-endian) 大端字节序(big-endian): 低字节存储在起始地址 小端字节序(little-endian): 高字节存储在起始地址 获得当前主机字节序 #include <iostream>using namespace std;int ma…

LabVIEW崩溃后所产生的错误日志文件的位置

LabVIEW崩溃后所产生的错误日志文件的位置 LabVIEW开发环境刚刚崩溃&#xff0c;请问我如何访问崩溃后自动生成的日志文件&#xff1f; LabVIEW崩溃后产生的转储文件位于何处&#xff1f; 代码导致了LabVIEW崩溃&#xff0c;请问哪些文件可以帮助NI技术支持了解具体原因&…

如何做到人声和背景音乐分离?简单粗暴,赶紧学起来~

在这个短视频盛行的时代&#xff0c;优质的背景音乐会让视频锦上添花&#xff0c;但也会造成类似的问题&#xff1a;想单独使用视频中的某一段人声&#xff0c;但会被背景音乐扰乱视听效果。这时就需要将人声和背景音乐进行分离了&#xff0c;今天就来教大家如何将人声和背景音…

最新文档:微信、企业号+地理位置定位+地图展示

概述 公司有需求&#xff0c;通过企业号打卡项目&#xff0c;需要用到企业微信定位 详细 前言 demo是基于微信、企业号平台的一个定位&#xff0c;地图展示项目 后台使用springboot架构搭建的与微信交互的服务&#xff0c;使用httpclient连接池&#xff0c;调用微信接口&…

小黑子—MyBatis:第二章

MyBatis入门2.0 四 小黑子诉说Mybatis核心配置文件详情4.1 多环境4.2 Mybatis的事务管理器 - transactionManager4.3 dataSource&#xff08;数据源&#xff09;4.3.1 不同类型下的数据源有不同的属性4.3.2 pool 和 unpooled 的区别4.3.3 配置具体的数据库连接池对象 4.4 prope…

【操作系统笔记三】内存寻址

物理寻址 主存&#xff08;内存&#xff09; 计算机主存也可以称为物理内存&#xff0c;内存可以看成由若干个连续字节大小的单元组成的数组每个字节都有一个唯一的物理地址&#xff08;Physical Address&#xff09;CPU访问内存前&#xff0c;先拿到内存地址&#xff0c;然后…

Django — 会话

目录 一、Cookie1、介绍2、作用3、工作原理4、结构5、用途6、设置7、获取 二、Session1、介绍2、作用3、工作原理3、类型4、用途5、设置6、获取7、清空信息 三、Cookie 和 Session 的区别1、存储位置2、安全性3、数据大小4、跨页面共享5、生命周期6、实现机制7、适用场景 四、P…

掌动智能浅析故障注入测试的好处与实践方法

在现代技术环境中&#xff0c;系统面临各种潜在的威胁和故障&#xff0c;如硬件故障、网络问题、软件错误等。为了应对这些挑战&#xff0c;开发团队需要确保系统在逆境中依然能够提供可靠的服务。故障注入测试是一种模拟现实故障和异常情况的方法&#xff0c;旨在提高系统的鲁…

vue3+ts+java使用WebSocket传输数据

一、环境 系统&#xff1a;win11 IDE&#xff1a;vscode 框架&#xff1a;electron22.0.0vite2vue3typescript4.8.4springboot2.2.5jdk1.8 二、websocket介绍 2.1 由来 WebSocket未出现之前&#xff0c;浏览器和服务器之间的通信是通过Web的poll技术进行通信&#xff0c;就…

牛客java训练题 day1

9.24 day1 Q 1. this 指针是用来干什么的&#xff1f; 2.基类和派生类分别是指什么&#xff1f; 3.为什么方法中不能写静态变量 4. 解释一下ASCII码和ANSI码和两者的区别 5.简述j ava.io java.sql java.awt java.rmi 分别是什么类型的包 6. 看下面一段代码&#xff1a;…