asp网站免费空间,重庆免费建网站,常平建设局网站,网站建设哪家好服务面对需求的不确定性#xff0c;报童模型是做库存优化的常见模型。而标准报童模型假设价格是固定的#xff0c;此时求解一个线性规划问题#xff0c;可以得到最优订货量#xff0c;这种模型存在局限性。因为现实世界中价格与需求存在一定的关系#xff0c;本文假设需求q是价…面对需求的不确定性报童模型是做库存优化的常见模型。而标准报童模型假设价格是固定的此时求解一个线性规划问题可以得到最优订货量这种模型存在局限性。因为现实世界中价格与需求存在一定的关系本文假设需求q是价格p的线性函数基于历史需求数据学习回归直线的参数并计算拟合残差带入到报童模型中此时的报童模型变成一个二次规划问题其目标函数是关于价格p是二次的。
方法
为提高报童模型的准确性使用SAA算法解决随机优化问题并与其他方法做对比。
对标准报童模型做的三个扩展
扩展1允许rush order
当售卖当天需求量过高时允许报童紧急订报只是价格g比一般订购价格c稍高即gc 如果定货太多那么每份报纸会产生持货成本t特别地如果允许以一定价格回退给厂商那么t0 。但在这个文章中仅考虑t0的情况。 符号说明 单份报纸的售价为p; 订货量是q; 目标函数是
扩展2需求与价格呈线性相关
假设需求与价格的线性回归模型如下 D β 0 β 1 p ϵ i D\beta_0\beta_1p\epsilon_i Dβ0β1pϵi 根据给定的数据集含价格和需求量即 { ( p i , D i ) ∣ i 1 , 2 , . . . , n } \{(p_i,D_i)|i1,2,...,n\} {(pi,Di)∣i1,2,...,n}找出最佳拟合线性回归函数的参数。假设干扰项 ϵ i \epsilon_i ϵi具有随机性,根据历史数据 { ( p i , D i ) ∣ i 1 , 2 , . . . , n } \{(p_i,D_i)|i1,2,...,n\} {(pi,Di)∣i1,2,...,n}学习到参数 β 0 , β 1 \beta_0,\beta_1 β0,β1计算残差值 { ϵ i ∣ i 1 , 2 , . . . , n } \{\epsilon_i|i1,2,...,n\} {ϵi∣i1,2,...,n}。
对于价格固定的标准报童模型求最优订货量 如果新价格p出现将计算好的残差值 { ϵ i ∣ i 1 , 2 , . . . , n } \{\epsilon_i|i1,2,...,n\} {ϵi∣i1,2,...,n}和新价格p带入模型 D β 0 β 1 p ϵ i D\beta_0\beta_1p\epsilon_i Dβ0β1pϵi可以得到新价格p所对应的需求量估计值 { D i ^ ∣ i 1 , 2 , . . . , n } \{\hat{D_i}|i1,2,...,n\} {Di^∣i1,2,...,n}这些估计值会带入到标准报童模型中求解该线性规划问题从而得到最优订货量。 关于计算需求量估计值的进一步解释比如估计参数 β 0 1000 , β 1 − 2 \beta_01000,\beta_1-2 β01000,β1−2现有两个样本的拟合残差是15和-9对于新价格2来说需求量估计值有 1000 − 2 ∗ 2 15 1011 1000-2*2151011 1000−2∗2151011, 1000 − 2 ∗ 2 − 9 987 1000-2*2-9987 1000−2∗2−9987对于价格不固定的扩展报童模型求最优订货量和最优价格 此时目标函数 中 p ∗ D i p*D_i p∗Di就会变成 p ∗ ( β 0 β 1 p ϵ i ) p*(\beta_0\beta_1p\epsilon_i) p∗(β0β1pϵi)这是价格p的二次函数。 注意上面目标函数中的 D i D_i Di指的是新价格p所对应的第i个需求估计值而不是原数据集中第i个样本的需求值。 我觉得没有疑问了这本身就是一个关于价格p的二次优化问题。
注 为了求解这个问题引入哑变量 h i h_i hi表示第i天成本的负值。如此一来目标函数——利润函数可以表示为收益成本负值的平均其中收益指 p ∗ D i p*D_i p∗Di成本负值指 h i h_i hi。 扩展3分析数据集对最优订货量和最优价格的影响最优订购量、最优价格的敏感性分析
对原数据集做重采样计算最优订货量、最优价格、对应的期望利润值。
任务
根据给定数据集估计出需求与价格之间的线性回归方程给定参数c0.5,g0.75,t0.15,利用残差数据 { ϵ i ∣ i 1 , 2 , . . . , n } \{\epsilon_i|i1,2,...,n\} {ϵi∣i1,2,...,n}求价格p1时的需求量估计值 { D i ^ ∣ i 1 , 2 , . . . , n } \{\hat{D_i}|i1,2,...,n\} {Di^∣i1,2,...,n}求价格p1时的最优订货量这是一个线性规划问题假设价格不是固定的将需求量与价格的线性回归方程带入到报童模型中解QP(二次规划问题目标函数含价格的平方项)得最优订货量、最优价格分析最优价格、最优订货量是否对数据集敏感。对原数据集做重采样重新估计需求与价格之间的线性回归函数参数 求最优价格和最优订货量重复上述重采样、拟合操作得到多组最优订货量和最优价格为得到的最优订货量、最优价格、期望利润绘制直方图观察统计规律。
建模
价格固定时
下面是思路我用黄色荧光笔标了步骤即 如果新价格p出现将计算好的残差值 { ϵ i ∣ i 1 , 2 , . . . , n } \{\epsilon_i|i1,2,...,n\} {ϵi∣i1,2,...,n}和新价格p带入模型 D β 0 β 1 p ϵ i D\beta_0\beta_1p\epsilon_i Dβ0β1pϵi可以得到新价格p所对应的需求量估计值 { D i ^ ∣ i 1 , 2 , . . . , n } \{\hat{D_i}|i1,2,...,n\} {Di^∣i1,2,...,n}这些估计值会带入到标准报童模型中求解该线性规划问题从而得到最优订货量。 上述模型的含义目标函数是最大化利润引入哑变量 h i h_i hi表示第’i天的成本负值。 上面画黄线的约束表示不管需求量大于还是小于订货量利润都大于 h i h_i hi。换言之限制利润不管需求量大于还是小于订货量大于等于一个变量这个变量大于等于负无穷。 ??为什么成本负值数组h的约束不是 0 h − inf 0h-\inf 0h−inf 做实验的时候加上试试。会影响结果 将上述约束化简成Gurobi建模所需要的形式如下图的蓝笔 注“Gurobi建模所需要的形式”是指“明确哪些是决策变量哪些是决策变量的系数哪些是右端项”这里的决策变量有 q , h 1 , . . . h N q,h_1,...h_N q,h1,...hN。 化简步骤见图中黑笔
价格不固定时
我用蓝笔标注了步骤 首先获取需求-价格数据集估计线性回归参数并计算残差数据 接着把 D β 0 β 1 p ϵ i D\beta_0\beta_1p\epsilon_i Dβ0β1pϵi带入到标准报童模型中会得到一个二次规划问题。
将之前的拟合结果——残差数据、拟合函数参数等带入到上述模型中得到需求量估计值 D i D_i Di得到如下模型
记录一个我没看懂的地方。我觉得作者的转换并没有把二次约束转成线性约束啊难道是我对“二次规划”的定义理解出错了我以为的二次规划是目标函数是二次的约束是一次的 数学优化问题。 关于上图的问题我在纸上列了一下作者的Gurobi模型应该是把上面两个约束的二次项 p 2 p^2 p2拿掉了用报告里面的话说拿到目标函数中了。 ??为什么可以直接拿掉呢 关于上面的约束如何化简成jupyter文件中Gurobi模型我在草稿纸上简单列了一下蓝色荧光笔标注的是Gurobi建模时所用的约束。 约束1 约束2
上图还有一个问题是目标函数中决策变量 h i h_i hi的系数应该是1。这一点可以从两个地方看出来第一老师给的作业说明见上面“扩展2”中 h i h_i hi的含义说明——成本负值第二作者的Gurobi建模obj数组中目标函数系数的指定。
最优解的稳定性分析
目标探究使用不同的数据集是否会影响到最优解——最优价格和最优订货量 做法对原数据集做1000次重采样每次采样随机抽取99组样本形成新数据集。然后针对新数据集计算并收集最优订货量和最优价格以及对应的最优利润expect_profit。绘制最优订货量、最优价格、最优价格的分布直方图发现大致服从正态分布且最优价格与之前LP中的预定价格1相差不大expect_profit的均值也与之前LP的expect_profit相差不大。
注新数据集与原数据集样本顺序是不同的。我觉得这里有些不妥……应该设计新数据集是原数据集的子集然后观察最优解的统计规律
我给这个报告添加了一个conclusion如下图