当前位置: 首页 > news >正文

GPT打数模——电商品类货量预测及品类分仓规划

背景

电商企业在各区域的商品存储主要由多个仓库组成的仓群承担。其中存储的商品主要按照属性(品类、件型等)进行划分和打标,便于进行库存管理。图 1 是一个简化的示意图,商品品类各异,件数众多,必须将这些商品分散到各个仓库存储。品类分仓规划决定各商品存放在哪些仓库问题,合理的品类分仓规划对提升每个仓的管理效率、降低总体仓储成本至关重要。

准确的仓储货量预测是品类分仓规划的重要依据,对于准确的预测结果能够预见性地决定未来的仓储资源使用决策,以提前规划仓储资源,减少冗余场地的投入。一般来说,该场景需要预测两个目标,分别为库存量和销量。其中,库存量为该品类在全部仓库所需存放的总库存,分仓结果中受到仓库的仓容限制;销量为该品类在全部仓库所需打包出库的总量,分仓结果中受到产能限制。

目标和约束

在得到未来各品类的预测货量后,各个品类的分仓规划是供应链规划者的重要研究问题。若将品类集中存放在数量较少的仓库中,则将超过该仓的仓容及产能上限,造成履约问题;若同一品类分在多个仓库中,则会显著增加仓库数量,增大品类库存的管理难度及总成本。此场景需考虑的上限包括两个,分别为仓容上限和产能上限,其中仓容上限为某仓库可以存放的最高库存量,产能上限为某仓库一天可以出库的最高销量。另外,若将相似的品类(使用品类关联度衡量相似性)放在同一个仓库中,同一订单中的商品更可能集中出货,可以在实际履约中减少包裹数量,从而降低履约成本。

约束的详细说明

合理的品类分仓方案,应该同时考虑仓群的复杂度及单仓仓容及产能约束,给出最优的分仓结果需综合考虑以下指标:

  1. 仓容利用率:单仓总库存/仓容上限;
  2. 产能利用率:单仓总出库量/产能上限;
  3. 总仓租成本:使用仓库的仓租成本之和;
  4. 品类分仓数:单品类存放的仓库数量;
  5. 品类关联度:存放在同一仓库的所有品类之间的关联度之和。

需要明确考虑的指标,就一定要算这些

现有一个仓储网络,包含140个仓库以及350种品类,附件1及附件2分别为各品类的历史库存量及销量,附件3为不同仓库相关信息(仓租日成本、仓容上限、产能上限),附件4为不同品类之间的关联度(表中未出现的品类组合关联度设为0),附件5为不同品类的相关信息(品类编码、件型)。基于以上数据,请完成以下问题:

问题

问题 1

建立货量预测模型,对该仓储网络350个品类未来3个月(7-9月)每个月的库存量及销量进行预测,其中库存量根据历史每月数据预测月均库存量即可,填写表1的预测结果并放在正文中,并将完整结果填写在 result 表格文件中的“月库存预测结果”的表单中;销量需给出未来每天的预测结果,填写表2的预测结果并放在正文中,并将完整结果填写在 result 表格文件中的“日销量预测结果”的表单中。

表 1:月库存量预测结果

7 月库存量8 月库存量9 月库存量
category1
category31
category61
category91
category121
category151
category181
category211
category241
category271
category301
category331

表 2:日销量预测结果

7.17.117.217.318.18.118.218.319.19.119.21
category1
category31
category61
category91
category121
category151
category181
category211
category241
category271
category301
category331

问题 2

假设当前限定每个品类只能放在一个仓库中,即一品一仓,各品类之间请基于问题1的预测结果建立规划模型,综合考虑多个业务目标,求得品类的分仓方案,包括:应使用哪些仓库,使用的仓库需存放哪些品类的库存。填写表3的分仓结果并放在正文中,并将完整品类分仓结果填写在 result 表格中的“一品一仓分仓方案”表单中。

表 3:“一品一仓”分仓方案

warehouse
category1
category31
category61
category91
category121
category151
category181
category211
category241
category271
category301
category331

问题 3

现在为每个品类按照件型及高级品类进行打标(如附件5),并放开一品一仓假设,即允许一个品类存放于多个仓库,但同一品类存放的仓库数量不能超过3个,并希望同件型、同高级品类尽量放在一个仓库中。假设同一品类在不同仓库之间分布的库存量比例及出库量比例相同,当前业务的首要目标是最大品类关联度,同时兼顾其他指标。请基于问题1的预测结果建立规划模型,求得新的品类分仓方案,并分析不同方案中各业务指标的表现。填写表4的分仓结果并放在正文中,并将完整品类分仓结果填写在 result 表格中的“一品多仓分仓方案”表单中。

warehousewarehousewarehouse
category1
category31
category61
category91
category121
category151
category181
category211
category241
category271
category301
category331

数据

附件1.csv如下:

品类月份库存量
category2252023/6/14676058
category842023/1/14421974
category212023/1/14411095
category842022/7/13689222
category842023/2/13431261
category2252023/3/13133157
category2252022/7/13095300
category2252023/1/12966388
category842023/6/12913526
category2252023/2/12890619
category2142022/9/114491
category3002022/9/114484
category2282023/2/114446
category1272023/3/114432
category2142023/6/114405
category2142023/3/114339
category2382022/9/114333
category1272022/8/114331
category912022/9/114304
category2712022/8/114279
category2102022/7/11
category2102022/8/11
category2102023/1/11
category3262023/3/11
category3262023/4/11
category3262023/5/11
category3292022/7/11
category3362022/7/11
category3362022/9/11
category3362022/8/11

附件2.csv如下:

品类日期销量
category842023/6/18141914
category212022/8/31130556
category842023/6/1115928
category2252023/6/1110234
category212022/8/29110020
category212022/9/30104616
category2542023/6/18100254
category842023/6/1998706
category212023/6/1896650
category212023/6/1694176
category2572022/7/14164
category782022/9/17164
category782023/5/24164
category782023/4/7164
category2962022/7/30164
category132022/7/22164
category522023/6/1164
category2612023/4/19164
category742023/4/25164
category802023/6/23164
category2102022/9/110
category2102022/8/190
category2102023/6/270
category2102023/6/70
category2102023/4/290
category2102022/9/300
category2102022/8/180
category2102023/5/20
category2102022/8/50
category2102022/8/220

附件3.csv如下:

仓库库存上限产能上限库存周转成本
warehouse1618887203101826.33
warehouse21200847411177073.34
warehouse3781957338576018.78
warehouse411125063557111591.8
warehouse54298961172.46
warehouse61200586.94946
warehouse716224611196660.839
warehouse822591896741350.82
warehouse9860000203667866.29
warehouse1018000001912019424.5
warehouse6655504918889909.825
warehouse672825685972212177.7
warehouse681354130215183821.84
warehouse691020000359333766.58
warehouse70757230264.9634
warehouse7124509868091418.85
warehouse72560000107013942.35
warehouse7349961340455407.63
warehouse7424127422411530.96
warehouse75436724106864694.82
warehouse131200475132851416.02
warehouse13295001247356151.808
warehouse1332078326809077303.47
warehouse134133000002750164136.7
warehouse13527162714900578.705
warehouse136302874281752125.37
warehouse137277876175932967.97
warehouse13887082659.061
warehouse139135000009202043302
warehouse14044823103920143424.8

附件4.csv如下:

品类1品类2关联度
category157category195103
category157category2267448
category157category6045
category157category279119
category195category2263139
category195category86370
category195category307515
category195category603012
category195category1912813
category195category17378
category254category34609
category254category3251235
category254category160249
category254category20117
category254category22762
category254category30112
category254category15530
category254category236175
category254category273711
category254category56208
category71category15313
category229category59145
category229category34323
category202category29111
category202category13949
category291category13912
category139category25547
category139category23417
category139category20414
category204category273273

附件5.csv如下:

品类高级品类级别
category165high_category1B
category204high_category2A
category134high_category3A
category110high_category4A
category199high_category5B
category26high_category6C
category304high_category7A
category287high_category6B
category227high_category8C
category57high_category5B
category226high_category24B
category68high_category5B
category27high_category3B
category322high_category3B
category205high_category3C
category145high_category2C
category138high_category3C
category197high_category21C
category190high_category28C
category253high_category1B
category333high_category24A
category332high_category3A
category338high_category5C
category336high_category31A
category345high_category31C
category347high_category23A
category346high_category43A
category348high_category3A
category349high_category44A
category350high_category45A

思路

问题 1:货量预测模型建立

1.1 库存量预测

目标:预测未来3个月(7-9月)每个品类的月均库存量。

步骤概述

  1. 数据加载与预处理

    • 读取数据
      • 加载附件1.csv,获取350个品类的历史月库存量数据。
      • 加载附件5.csv,获取每个品类的高级品类和级别信息。
    • 日期处理
      • 将“月份”列转换为日期格式(如datetime类型)。
      • 将“月份”设为时间序列索引。
    • 缺失值处理
      • 检查并填补缺失月份的数据,常用方法包括前向填充(ffill)或插值。
    • 数据合并
      • 附件5.csv中的高级品类和级别信息与库存数据合并,形成完整的数据集。
  2. 特征工程

    • 时间特征
      • 提取月份、季度等时间相关特征,以捕捉季节性和趋势性。
    • 品类特征
      • 对高级品类和级别进行独热编码(One-Hot Encoding),将类别信息转化为数值特征。
    • 滞后特征
      • 创建滞后库存量特征,如前1月、前2月、前3月的库存量,以捕捉时间依赖性。
    • 移动平均
      • 计算库存量的移动平均(如3个月移动平均),以平滑数据波动。
    • 其他特征
      • 根据需要,考虑添加其他相关特征,如促销活动、节假日影响等,以提高模型的预测能力。
  3. 模型训练与预测

    • 模型选择
      • 时间序列模型:SARIMA、SARIMAX,适用于具有季节性和趋势性的品类。
      • 机器学习模型:随机森林、梯度提升树(如XGBoost、LightGBM),适用于多特征的预测。
      • 深度学习模型:LSTM(长短期记忆网络),适用于捕捉复杂的时间依赖关系。
    • 模型训练
      • 针对每个品类,使用历史库存数据训练不同的模型。
      • 采用交叉验证(如时间序列交叉验证)评估模型性能,选择表现最优的模型。
    • 模型评估
      • 使用评估指标如MAE(平均绝对误差)、RMSE(均方根误差)等,确保预测的准确性。
    • 预测
      • 使用训练好的模型预测7月、8月和9月的库存量。
      • 对每个品类选择最佳模型的预测结果作为最终预测值。
    • 结果保存
      • 将预测结果汇总并保存到result.xlsx的“月库存预测结果”表单中,确保数据格式与表1一致。

调整与优化建议

  • 模型多样性:不同品类可能具有不同的库存模式,建议对每个品类尝试多种模型,并选择表现最优的模型进行预测。
  • 并行处理:由于品类数量较多(350个),建议使用并行计算方法(如多线程或多进程)以提高计算效率。
  • 特征丰富性:根据实际情况,添加更多相关特征(如促销活动、市场趋势等),以提升模型的预测能力。

1.2 销量预测

目标:预测未来3个月(7-9月)每天的销量。

步骤概述

  1. 数据加载与预处理

    • 读取数据
      • 加载附件2.csv,获取350个品类的历史日销量数据。
      • 加载附件5.csv,获取每个品类的高级品类和级别信息。
    • 日期处理
      • 将“日期”列转换为日期格式(如datetime类型)。
      • 将“日期”设为时间序列索引。
    • 缺失值处理
      • 检查并填补缺失日期的数据,常用方法包括填零或前向填充。
    • 数据合并
      • 附件5.csv中的高级品类和级别信息与销量数据合并,形成完整的数据集。
  2. 特征工程

    • 时间特征
      • 提取星期几、是否周末、是否节假日等时间相关特征,以捕捉日销量的周期性和异常性。
    • 品类特征
      • 对高级品类和级别进行独热编码(One-Hot Encoding)。
    • 滞后特征
      • 创建滞后销量特征,如前1天、前7天的销量,以捕捉短期和长期依赖性。
    • 移动平均
      • 计算销量的移动平均(如7天移动平均),以平滑数据波动。
    • 其他特征
      • 根据需要,考虑添加其他相关特征,如促销活动、天气数据等,以提高模型的预测能力。
  3. 模型训练与预测

    • 模型选择
      • 时间序列模型:Prophet,适用于具有明显趋势和季节性的时间序列数据。
      • 机器学习模型:XGBoost、LightGBM,适用于多特征的日销量预测。
      • 深度学习模型:LSTM,适用于捕捉复杂的时间依赖关系。
    • 模型训练
      • 针对每个品类,使用历史日销量数据训练不同的模型。
      • 采用交叉验证(如时间序列交叉验证)评估模型性能,选择表现最优的模型。
    • 模型评估
      • 使用评估指标如MAE、RMSE等,确保预测的准确性。
    • 预测
      • 使用训练好的模型预测未来90天(7-9月)的每日销量。
      • 对每个品类选择最佳模型的预测结果作为最终预测值。
    • 结果保存
      • 将预测结果汇总并保存到result.xlsx的“日销量预测结果”表单中,确保数据格式与表2一致。

调整与优化建议

  • 模型多样性:不同品类可能具有不同的销量模式,建议对每个品类尝试多种模型,并选择表现最优的模型进行预测。
  • 节假日处理:确保在模型中正确处理节假日对销量的影响,Prophet提供了内置的节假日处理功能,可以利用。
  • 数据分布:对销量数据进行分析,确定是否需要对数据进行平滑处理或转换(如对数转换)以提高模型效果。
  • 并行处理:由于品类数量较多,建议使用并行计算方法以提高计算效率。

问题 2:一品一仓分仓方案

目标:每个品类只能放在一个仓库中,综合考虑仓容、产能、仓租成本及品类关联度,求得最优分仓方案。

步骤概述

  1. 数据加载与预处理

    • 读取预测结果
      • result.xlsx的“月库存预测结果”表单中读取每个品类的7-9月库存量预测。
      • result.xlsx的“日销量预测结果”表单中读取每个品类的7-9月日销量预测,并计算总销量(如7-9月每日销量之和)。
    • 读取仓库信息
      • 加载附件3.csv,提取每个仓库的仓容上限、产能上限和仓租日成本。
      • 计算每个仓库在3个月内的总仓租成本(仓租日成本 × 90天)。
    • 读取关联度数据
      • 加载附件4.csv,构建品类之间的关联度矩阵。未出现的品类组合关联度设为0。
  2. 计算总库存量和总销量

    • 对于每个品类,计算7-9月的总库存量(3个月库存量之和)。
    • 对于每个品类,计算7-9月的总销量(90天日销量之和)。
  3. 构建优化模型

    • 决策变量
      • x i , j x_{i,j} xi,j:二元变量,表示品类 i i i是否分配到仓库 j j j(1为是,0为否)。
      • z j z_j zj:二元变量,表示仓库 j j j 是否被使用(1为是,0为否)。
    • 目标函数
      • 主要目标:最大化总品类关联度。
      • 次要目标:最小化总仓租成本。
      • 综合目标:采用加权和的方法,将两者结合起来,如:
        Maximize  ∑ j ( ∑ i ∑ k 关联度 ( i , k ) ⋅ x i , j ⋅ x k , j ) − λ ⋅ ∑ j 仓租成本 j ⋅ z j \text{Maximize } \sum_{j} \left( \sum_{i} \sum_{k} \text{关联度}(i,k) \cdot x_{i,j} \cdot x_{k,j} \right) - \lambda \cdot \sum_{j} \text{仓租成本}_j \cdot z_j Maximize j(ik关联度(i,k)xi,jxk,j)λj仓租成本jzj
        其中,( \lambda ) 是权重系数,用于平衡关联度和仓租成本。
    • 约束条件
      • 一品一仓
        ∀ i , ∑ j x i , j = 1 \forall i, \sum_{j} x_{i,j} = 1 i,jxi,j=1
      • 仓容约束
        ∀ j , ∑ i 总库存量 i ⋅ x i , j ≤ 仓容上限 j \forall j, \sum_{i} \text{总库存量}_i \cdot x_{i,j} \leq \text{仓容上限}_j j,i总库存量ixi,j仓容上限j
      • 产能约束
        ∀ j , ∑ i 总销量 i ⋅ x i , j ≤ 产能上限 j \forall j, \sum_{i} \text{总销量}_i \cdot x_{i,j} \leq \text{产能上限}_j j,i总销量ixi,j产能上限j
      • 仓库使用定义
        ∀ j , ∑ i x i , j ≤ M ⋅ z j \forall j, \sum_{i} x_{i,j} \leq M \cdot z_j j,ixi,jMzj
        其中, M M M是一个足够大的常数,确保只要有任何品类分配到仓库 j j j,$z_j $ 就为1。
      • 关联度计算
        • 由于直接在目标函数中计算 x i , j × x k , j x_{i,j} \times x_{k,j} xi,j×xk,j 会导致非线性,建议采用线性化方法或近似策略:
          • 预计算关联度:将每对品类的关联度分配到同一仓库的贡献预先计算为一个常数,利用线性化方法表示。
          • 使用辅助变量:引入辅助变量表示某对品类是否共同分配到同一仓库,并将其与关联度结合。
          • 简化目标:考虑仅最大化每个仓库内品类的总关联度,而非逐对品类计算。
  4. 求解优化模型

    • 优化工具
      • 推荐使用高级优化求解器如Gurobi、CPLEX,因为模型规模较大(350品类 × 140仓库 = 49,000个决策变量)且涉及混合整数规划(MIP)。
      • 如果使用PuLP,建议结合其与Gurobi或CPLEX接口,以提升求解效率。
    • 模型优化
      • 变量剪枝:提前排除不可能的仓库分配,如某些仓库的仓容或产能不足以容纳某品类的库存量或销量。
      • 分步优化:优先分配高库存量和高销量的品类,减少模型复杂度。
      • 迭代优化:根据初步结果调整模型参数和约束条件,以进一步优化分仓方案。
  5. 保存结果

    • 将分仓结果(每个品类对应的仓库)保存到result.xlsx的“一品一仓分仓方案”表单中,确保数据格式与表3一致。

调整与优化建议

  • 目标函数线性化:由于目标函数中涉及 ( x_{i,j} \times x_{k,j} ) 的非线性项,建议采用以下方法保持模型的线性性:

    • 预计算关联度贡献:对每对品类 ( i , k ) (i,k) (i,k),计算其在同一仓库中的关联度贡献,将其转化为线性表达。
    • 辅助变量引入:引入新的变量 y i , k , j y_{i,k,j} yi,k,j 表示品类 i i i k k k 是否同时分配到仓库 j j j,并添加约束 y i , k , j ≤ x i , j y_{i,k,j} \leq x_{i,j} yi,k,jxi,j y i , k , j ≤ x k , j y_{i,k,j} \leq x_{k,j} yi,k,jxk,j,以及 y i , k , j ≥ x i , j + x k , j − 1 y_{i,k,j} \geq x_{i,j} + x_{k,j} - 1 yi,k,jxi,j+xk,j1
    • 简化目标:如关联度计算复杂度过高,可考虑仅最大化每个仓库内品类的总关联度,而非逐对品类计算。
  • 仓库使用变量:通过引入辅助变量 z j z_j zj,确保只计算被使用仓库的仓租成本。

  • 模型规模优化:通过预筛选仓库(例如,基于地理位置、服务区域等)来减少决策变量数量,提高求解效率。


问题 3:一品多仓分仓方案

目标:允许每个品类分配到最多3个仓库,同时尽量将同件型和同高级品类的品类集中在同一仓库中,最大化品类关联度,兼顾仓容、产能和其他指标。

步骤概述

  1. 数据加载与预处理

    • 读取预测结果
      • result.xlsx的“月库存预测结果”表单中读取每个品类的7-9月库存量预测。
      • result.xlsx的“日销量预测结果”表单中读取每个品类的7-9月日销量预测,并计算总销量(如7-9月每日销量之和)。
    • 读取仓库信息
      • 加载附件3.csv,提取每个仓库的仓容上限、产能上限和仓租日成本。
      • 计算每个仓库在3个月内的总仓租成本(仓租日成本 × 90天)。
    • 读取关联度数据
      • 加载附件4.csv,构建品类之间的关联度矩阵。未出现的品类组合关联度设为0。
    • 读取品类高级信息
      • 加载附件5.csv,获取每个品类的高级品类和级别信息,用于特征工程和聚类分析。
  2. 计算总库存量和总销量

    • 对于每个品类,计算7-9月的总库存量(3个月库存量之和)。
    • 对于每个品类,计算7-9月的总销量(90天日销量之和)。
  3. 构建优化模型

    • 决策变量
      • x i , j x_{i,j} xi,j:二元变量,表示品类 ( i ) 是否分配到仓库 ( j )(1为是,0为否)。
      • y i , j y_{i,j} yi,j:连续变量,表示品类 ( i ) 在仓库 ( j ) 的库存量比例(0到1)。
      • z j z_j zj:二元变量,表示仓库 ( j ) 是否被使用(1为是,0为否)。
    • 目标函数
      • 主要目标:最大化总品类关联度。
      • 次要目标:最小化总仓租成本和总库存周转成本。
      • 综合目标:采用加权和的方法,将多目标结合起来,如:
        Maximize  ∑ j ( ∑ i ∑ k 关联度 ( i , k ) ⋅ x i , j ⋅ x k , j ) − λ 1 ⋅ ∑ j 仓租成本 j ⋅ z j − λ 2 ⋅ ∑ j 库存周转成本 j ⋅ ∑ i y i , j \text{Maximize } \sum_{j} \left( \sum_{i} \sum_{k} \text{关联度}(i,k) \cdot x_{i,j} \cdot x_{k,j} \right) - \lambda_1 \cdot \sum_{j} \text{仓租成本}_j \cdot z_j - \lambda_2 \cdot \sum_{j} \text{库存周转成本}_j \cdot \sum_{i} y_{i,j} Maximize j(ik关联度(i,k)xi,jxk,j)λ1j仓租成本jzjλ2j库存周转成本jiyi,j
        其中, λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2是权重系数,用于平衡不同目标。
    • 约束条件
      • 分仓数量
        ∀ i , ∑ j x i , j ≤ 3 \forall i, \sum_{j} x_{i,j} \leq 3 i,jxi,j3
      • 仓容约束
        ∀ j , ∑ i ( 总库存量 i ⋅ y i , j ) ≤ 仓容上限 j \forall j, \sum_{i} (\text{总库存量}_i \cdot y_{i,j}) \leq \text{仓容上限}_j j,i(总库存量iyi,j)仓容上限j
      • 产能约束
        ∀ j , ∑ i ( 总销量 i ⋅ y i , j ) ≤ 产能上限 j \forall j, \sum_{i} (\text{总销量}_i \cdot y_{i,j}) \leq \text{产能上限}_j j,i(总销量iyi,j)产能上限j
      • 库存比例约束
        ∀ i , j , y i , j ≤ x i , j ⋅ 总库存量 i \forall i,j, y_{i,j} \leq x_{i,j} \cdot \text{总库存量}_i i,j,yi,jxi,j总库存量i
      • 仓库使用定义
        ∀ j , ∑ i x i , j ≥ z j \forall j, \sum_{i} x_{i,j} \geq z_j j,ixi,jzj
      • 品类聚集约束
        • 同件型和同高级品类聚集:通过引入额外的约束或目标项,鼓励将同件型和同高级品类的品类分配到同一仓库。例如:
          • 奖励项:在目标函数中增加同组品类共同分配到同一仓库的奖励项。
          • 限制项:限制同组品类分配到不同仓库的数量。
  4. 求解优化模型

    • 优化工具
      • 推荐使用高级优化求解器如Gurobi、CPLEX,因为模型规模较大且涉及混合整数规划(MIP)。
      • 可以结合使用PuLP与高级求解器接口,以提升求解效率。
    • 模型优化
      • 变量剪枝:提前排除不可能的仓库分配,如某些仓库的仓容或产能不足以容纳某品类的库存量或销量。
      • 分步优化:优先分配高库存量和高销量的品类,减少模型复杂度。
      • 聚类分析:在优化模型前,对品类进行聚类分析,根据高级品类和件型进行分组,然后在优化模型中优先将同一组内的品类分配到同一仓库。
      • 目标函数奖励:在目标函数中增加同组品类共同分配到同一仓库的奖励项,以鼓励聚集。
      • 库存比例约束:确保分配到多个仓库的库存比例合理,避免某些仓库库存过多或过少。可以引入额外的约束条件,如限制每个仓库分配给某品类的库存比例范围(例如,至少10%,至多70%)。
  5. 保存结果

    • 将分仓结果(每个品类对应的一个或多个仓库及其库存量比例)保存到result.xlsx的“一品多仓分仓方案”表单中,确保数据格式与表4一致。

调整与优化建议

  • 目标函数线性化:由于目标函数中涉及 x i , j × x k , j x_{i,j} \times x_{k,j} xi,j×xk,j 的非线性项,建议采用以下方法保持模型的线性性:

    • 预计算关联度贡献:对每对品类 ( i , k ) (i,k) (i,k),计算其在同一仓库中的关联度贡献,将其转化为线性表达。
    • 辅助变量引入:引入新的变量 y i , k , j y_{i,k,j} yi,k,j 表示品类 i i i k k k 是否同时分配到仓库 j j j,并添加约束 y i , k , j y_{i,k,j} yi,k,j l e q x i , j leq x_{i,j} leqxi,j y i , k , j ≤ x k , j y_{i,k,j} \leq x_{k,j} yi,k,jxk,j y i , k , j ≥ x i , j + x k , j − 1 y_{i,k,j} \geq x_{i,j} + x_{k,j} - 1 yi,k,jxi,j+xk,j1
    • 简化目标:如关联度计算复杂度过高,可考虑仅最大化每个仓库内品类的总关联度,而非逐对品类计算。
  • 品类聚集实现

    • 聚类分析:对品类进行聚类分析,根据高级品类和件型进行分组,确保同一组内的品类优先分配到同一仓库。
    • 目标函数奖励:在目标函数中增加同组品类共同分配到同一仓库的奖励项,以鼓励聚集。
  • 库存比例约束:确保分配到多个仓库的库存比例合理,避免某些仓库库存过多或过少。可以引入额外的约束条件,如限制每个仓库分配给某品类的库存比例范围(例如,至少10%,至多70%)。

  • 模型规模优化:通过预筛选仓库(例如,基于地理位置、服务区域等)来减少决策变量数量,提高求解效率。


业务指标分析

在完成分仓方案后,需要对不同方案的业务指标进行评估,以确保满足业务需求。以下是关键指标及其评估方法:

1. 仓容利用率

仓容利用率 = 单仓总库存量 仓容上限 \text{仓容利用率} = \frac{\text{单仓总库存量}}{\text{仓容上限}} 仓容利用率=仓容上限单仓总库存量

评估方法

  • 对每个仓库,计算其分配到的所有品类的总库存量。
  • 将总库存量除以该仓库的仓容上限,得到仓容利用率。
  • 汇总所有仓库的仓容利用率,计算平均值或其他统计指标。
  • 目标:保持仓容利用率在合理范围内(如70%-90%),避免仓库过度或不足利用。

2. 产能利用率

产能利用率 = 单仓总出库量 产能上限 \text{产能利用率} = \frac{\text{单仓总出库量}}{\text{产能上限}} 产能利用率=产能上限单仓总出库量

评估方法

  • 对每个仓库,计算其分配到的所有品类的总销量。
  • 将总销量除以该仓库的产能上限,得到产能利用率。
  • 汇总所有仓库的产能利用率,计算平均值或其他统计指标。
  • 目标:保持产能利用率在合理范围内,确保仓库的出库能力得到充分利用,避免产能过剩或不足。

3. 总仓租成本

总仓租成本 = ∑ j 仓租成本 j ⋅ z j \text{总仓租成本} = \sum_{j} \text{仓租成本}_j \cdot z_j 总仓租成本=j仓租成本jzj

评估方法

  • 汇总所有被使用仓库的仓租成本,即所有被分配至少一个品类的仓库的仓租成本之和。
  • 目标:最小化总仓租成本,同时满足库存和销量需求。

4. 品类分仓数

评估方法

  • 一品一仓方案
    • 确保每个品类仅分配到一个仓库。
  • 一品多仓方案
    • 确保每个品类最多分配到三个仓库。
  • 统计每个品类被分配到的仓库数量,验证是否符合约束。
  • 目标:确保分仓数满足“一品一仓”或“一品多仓”的约束,避免超出分配限制。

5. 品类关联度

品类关联度总和 = ∑ j ∑ i ∑ k 关联度 ( i , k ) ⋅ x i , j ⋅ x k , j \text{品类关联度总和} = \sum_{j} \sum_{i} \sum_{k} \text{关联度}(i,k) \cdot x_{i,j} \cdot x_{k,j} 品类关联度总和=jik关联度(i,k)xi,jxk,j

评估方法

  • 基于附件4.csv,计算同一仓库内所有品类对的关联度之和。
  • 汇总所有仓库的品类关联度,得到总品类关联度。
  • 目标:最大化总品类关联度,以提高履约效率和降低成本。

6. 库存周转成本

评估方法

  • 对每个仓库,计算其分配到的品类的库存量与仓库的库存周转成本的乘积。
  • 汇总所有仓库的库存周转成本,得到总库存周转成本。
  • 目标:控制库存周转成本,确保分仓方案在成本控制方面表现良好。

7. 仓库使用率

评估方法

  • 评估各仓库的使用情况,计算被使用仓库的比例。
  • 确保仓库使用均衡,避免部分仓库过度使用而其他仓库闲置。
  • 目标:均衡仓库使用,优化资源分配。

业务指标分析方法

1. 指标计算

仓容利用率

  • 对每个仓库,计算其总库存量(分配到该仓库的所有品类的库存量之和)。
  • 将总库存量除以该仓库的仓容上限,得到仓容利用率。

产能利用率

  • 对每个仓库,计算其总销量(分配到该仓库的所有品类的销量之和)。
  • 将总销量除以该仓库的产能上限,得到产能利用率。

总仓租成本

  • 汇总所有被使用仓库的总仓租成本,即所有被分配至少一个品类的仓库的仓租成本之和。

品类关联度总和

  • 基于附件4.csv,计算同一仓库内所有品类对的关联度之和。
  • 汇总所有仓库的品类关联度,得到总品类关联度。

库存周转成本

  • 对每个仓库,计算其分配到的品类的库存量与仓库的库存周转成本的乘积。
  • 汇总所有仓库的库存周转成本,得到总库存周转成本。

仓库使用率

  • 评估各仓库的使用情况,计算被使用仓库的比例。
  • 确保仓库使用均衡,避免部分仓库过度使用而其他仓库闲置。

2. 可视化

利用数据可视化工具(如Matplotlib、Seaborn、Tableau)进行数据可视化,展示各仓库的利用率、成本分布和关联度分布等,便于直观分析。

示例可视化

  • 仓容利用率分布:展示各仓库的仓容利用率分布情况。
  • 产能利用率分布:展示各仓库的产能利用率分布情况。
  • 总仓租成本柱状图:展示各仓库的总仓租成本。
  • 品类关联度热力图:展示不同仓库内品类关联度的热力分布。

3. 优化调整

根据指标评估结果,调整优化模型的权重和约束条件,反复迭代优化分仓方案,直至满足业务需求。例如:

  • 仓容利用率过低:调整模型中的权重系数,增加对仓库使用的激励,或通过调整品类分配策略来优化。
  • 产能利用率不均衡:重新调整产能约束,确保各仓库的产能得到合理利用。
  • 总仓租成本过高:优化模型中的成本权重,寻找更具成本效益的分仓方案。
  • 品类关联度不足:增强目标函数中对关联度的权重,或通过增加品类聚集的奖励项,提高关联度优化效果。

拓展建议

  1. 问题1

    • 模型多样性:不仅限于SARIMA和Prophet,建议尝试多种模型(如随机森林、XGBoost、LightGBM、LSTM)并选择最佳模型。
    • 并行处理:利用多线程或多进程提高预测效率,尤其在处理350个品类时。
    • 特征丰富性:根据实际情况,添加更多相关特征(如促销活动、市场趋势等),以提升模型准确性。
    • 模型评估与选择:采用多个评估指标(如MAE、RMSE)进行模型评估,选择表现最优的模型。
  2. 问题2

    • 关联度计算优化:采用线性化方法或辅助变量来处理目标函数中的非线性关联度计算,确保模型的线性性和可求解性。
    • 仓库使用变量:通过辅助变量 ( z_j ) 正确反映仓库是否被使用,并在目标函数中合理引入仓租成本。
    • 模型规模优化:通过预筛选仓库(如基于地理位置、服务区域等)来减少决策变量数量,提高求解效率。
    • 使用高效求解器:推荐使用高级求解器(如Gurobi、CPLEX),以处理大规模优化问题。
  3. 问题3

    • 品类聚集实现:通过引入聚类分析或在优化模型中增加聚集约束,确保同件型和同高级品类的品类尽量集中分配。
    • 库存比例约束:引入库存比例约束,确保每个品类在多个仓库之间的库存分配合理,避免某些仓库库存过多或过少。
    • 目标函数细化:进一步细化目标函数,明确各项指标的权重和优先级,确保模型能够平衡多种业务目标。
    • 变量剪枝与模型优化:提前排除不可能的仓库分配,使用高效的优化求解器(如Gurobi、CPLEX),并优化模型结构以减少计算时间。
  4. 业务指标分析

    • 全面评估:确保全面计算和分析所有关键业务指标,如仓容利用率、产能利用率、总仓租成本、品类关联度等。
    • 可视化呈现:通过数据可视化工具,直观展示分仓方案的各项指标,便于决策和优化。
    • 迭代优化:根据指标评估结果,调整优化模型的权重和约束条件,反复迭代优化分仓方案,直至满足业务需求。
  5. 技术实现

    • 优化求解器选择:对于大规模优化问题,建议使用高效的求解器(如Gurobi、CPLEX),而不仅依赖于PuLP的默认CBC求解器。
    • 代码优化与调试:确保代码高效、可读,并通过小规模测试验证模型和代码的正确性。
    • 自动化流程:建议将预测和分仓过程自动化,定期更新预测数据和分仓方案,适应市场变化。

本篇文章完整思路和整理由GPT提供,仅供参考。使用地址::https://vlink.cc/mosha

相关文章:

GPT打数模——电商品类货量预测及品类分仓规划

背景 电商企业在各区域的商品存储主要由多个仓库组成的仓群承担。其中存储的商品主要按照属性(品类、件型等)进行划分和打标,便于进行库存管理。图 1 是一个简化的示意图,商品品类各异,件数众多,必须将这些…...

华为OD机试 - 螺旋数字矩阵 - 矩阵(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…...

分类预测 | GCN图卷积神经网络多特征分类预测(MATLAB)

分类预测 | GCN图卷积神经网络多特征分类预测(MATLAB) 目录 分类预测 | GCN图卷积神经网络多特征分类预测(MATLAB)分类效果基本介绍程序设计参考资料分类效果 基本介绍 GCN图卷积神经网络多特征分类预测(MATLAB) 在图卷积神经网络(GCN)中,多特征分类...

FPGA搭建PCIE3.0通信架构简单读写测试,基于XDMA中断模式,提供3套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案本博客方案的PCIE2.0版本 3、PCIE基础知识4、工程详细设计方案工程设计原理框图XDMA配置及使用XDMA中断模块数据缓存架构用户逻辑Windows版本XDMA驱动安装Linux版本XDMA驱动安装测试应用程序工程源码架构PCIE上板…...

App相关技术以及打包

平时小伙伴们自己的博客网站只能在浏览器打开,但是有时候你想要制作自己独立个人博客app,宣传并推广自己的app,打造个人ip。如何把自己的web博客网站打包成安卓app? 1.开发App的相关技术使⽤ ⽬前市⾯上的移动互联开发技术主要分…...

【unity】【游戏开发】Unity代码不给提示怎么办?

【现象】 Unity用着用着忽然VS脚本不给提示了。 【分析】 重启Unity无效 重启VS无效 重装VS无效 感觉应该是项目设置问题 【最终方法】 打开Edit->Preferences。 如果是这个画面就把Script Editor改成自己的VS编辑器。 变成下面这个样子,点击Regenerate Pr…...

Kubernetes固定Pod IP和Mac地址

方案1: 在 Calico GitHub Issues#5196 问题的 commits#6249 提交中,引入新的 Pod 注释cni.projectcalico.org/hwAddr,用于将指定的 MAC 地址分配给容器端 Veth 接口。 将Calico升级至v3.24.1或以上版本,使用如下注解轻松设置Pod…...

计算机组成原理之数据的对齐和大/小端存放方式、计算机中数据对齐的具体方式有哪些

1、计算机组成原理之数据的对齐和大/小端存放方式 数据对齐 数据对齐是处理器为了提高处理性能而对存取数据的起始地址所提出的一种要求。 系统一次性读取内存中数据的大小是固定的,例如字长为32位的操作系统,默认的一次读取4字节内容。因此&#xff…...

【学术论文投稿】Windows11开发指南:打造卓越应用的必备攻略

【IEEE出版南方科技大学】第十一届电气工程与自动化国际会议(IFEEA 2024)_艾思科蓝_学术一站式服务平台 更多学术会议论文投稿请看:https://ais.cn/u/nuyAF3 目录 引言 一、Windows11开发环境搭建 二、Windows11关键新特性 三、Windows11设计指南 …...

【毕业论文+源码】基于SSM(Spring + Spring MVC + MyBatis)的房屋租赁系统

创建一个基于SSM(Spring Spring MVC MyBatis)框架的房屋租赁系统是一个涉及多个步骤的过程。这个过程包括但不限于需求分析、数据库设计、前端界面设计以及后端逻辑实现等。 1. 需求分析 首先,明确你的房屋租赁系统的功能需求。例如&…...

【golang】解析 JSON到指定结构体

1.解析[1,2,3,4]数组类型的json package mainimport ("encoding/json""fmt" )func main() {// JSON 数据jsonData : [1, 2, 3, 4]// 定义一个切片来接收解析后的数据var numbers []int// 解析 JSON 数据到切片err : json.Unmarshal([]byte(jsonData), &am…...

设计模式——过滤器模式

一、定义和概念 定义 C 过滤器模式(Filter Pattern)也称为标准模式(Criteria Pattern),是一种设计模式,用于根据不同的标准或条件从一组对象中筛选出符合条件的对象。它将筛选条件的逻辑封装在不同的过滤器…...

Unity(四十八):Unity与Web双向交互

效果 游戏对象绑定脚本 游戏脚本源码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Tent : MonoBehaviour {public Camera camera;// Start is called before the first frame updatevoid Start(){}// Update is called once…...

web前端--网页练习

html代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>小米</title><!-- 引…...

信息安全入门——网络安全控制

目录 前言信息安全入门&#xff1a;网络安全控制基础1. 用户识别技术&#xff1a;确认你是谁2. 访问控制技术&#xff1a;定义你能做什么3. 访问控制列表&#xff08;ACL&#xff09;&#xff1a;精细的权限管理4. 漏洞控制&#xff1a;防范未然5. 入侵检测系统&#xff08;IDS…...

跟着鸟儿学飞行?扑翼机器人的感知秘籍

大家好&#xff01;今天来了解一篇扑翼机器人的研究——《Avian-inspired embodied perception in biohybrid flapping-wing robotics》发表于《Nature Communications》。在广阔天空中&#xff0c;鸟类凭借精妙翅膀结构与敏锐感知自由翱翔&#xff0c;这一直吸引着科学家探索其…...

Python画笔案例-093 绘制 彩虹图

1、绘制 彩虹图 通过 python 的turtle 库绘制 彩虹图,如下图: 2、实现代码 绘制 彩虹图,以下为实现代码: """彩虹图.py """ import turtledef draw_semi_circle(radius):"""画半圆函数"""turtle...

【数据结构】贪心算法:决策的艺术

贪心算法&#xff08;Greedy Algorithm&#xff09;是一类在每一步选择中都采取局部最优解的方法&#xff0c;希望最终能够达到全局最优解。通俗地说&#xff0c;贪心算法的思想就是“每一步都尽量做出最好的选择”&#xff0c;以期望整个过程的最终结果也达到最优状态。贪心算…...

Linux LVS详解

LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是一个基于Linux操作系统的高性能、可扩展的负载均衡器。以下是对LVS的详细介绍&#xff1a; 一、简介 LVS项目由章文嵩博士在1998年5月发起&#xff0c;是中国国内最早出现的自由软件项目之一…...

LabVIEW显微镜自动对焦系统

在生物医学研究中&#xff0c;显微镜图像的清晰度对于细胞分析非常重要。传统的手动对焦方法容易受到人为因素的影响&#xff0c;因此开发了一种自动对焦技术&#xff0c;以提高图像采集的准确性和效率。 自动对焦方法概述 该系统结合了图像清晰度评估和一维功能优化&#xff…...

基于IP的真实地址生成器

ip-geoaddress-generator 是一个基于 Web 的在线应用程序&#xff0c;能够根据 IP 地址生成真实的随机地址信息。通过多个 API 获取位置数据和随机用户信息&#xff0c;该工具为用户提供了完整的虚拟身份。它由 Next.js 和 Radix UI 构建&#xff0c;具备自动检测当前 IP 地址和…...

下面程序头的三个import语句可以合并或简化么?

下面程序头的三个import语句可以合并或简化么&#xff1f; from tkinter.simpledialog import askinteger from tkinter import * from tkinter import messagebox ——是的&#xff0c;三个import语句可以合并为一个。 合并后的import语句如下所示&#xff1a; from tkinte…...

深度学习--CNN实现猫狗识别二分类(附带下载链接, 长期有效)

1. 代码实现(包含流程解释) 样本量: 8005 # # 1.导入数据集(加载图片)数据预处理# 进行图像增强, 通过对图像的旋转 ,缩放,剪切变换, 翻转, 平移等一系列操作来生成新样本, 进而增加样本容量, # 同时对图片数值进行归一化[0:1] from tensorflow.keras.preprocessing.image …...

Depcheck——专门用于检测 JavaScript 和 Node.js 项目中未使用依赖项的工具

文章目录 Depcheck 是什麽核心功能&#x1f4da;检测未使用的依赖&#x1f41b;检测缺失的依赖✨支持多种文件类型&#x1f30d;可扩展性 安装与使用1. 安装 Depcheck2. 使用 Depcheck Depcheck 的应用总结项目源码&#xff1a; Depcheck 是什麽 来看一个常见错误场景&#x1…...

前端构建工具vite的优势

1. 极速冷启动 Vite 使用原生 ES 模块 (ESM) 在开发环境下进行工作。相比于传统构建工具需要打包所有的文件&#xff0c;Vite 只在浏览器请求模块时动态加载所需的文件。无打包冷启动&#xff1a;无需预先打包&#xff0c;项目启动非常快&#xff0c;尤其对于大型项目效果更明…...

hive查询语句

1.基本语法 SELECT [ALL | DISTINCT]select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BYcol_list] [HAVING where_condition] [ORDER BYcol_list] [CLUSTER BYcol_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ] [LIMIT number] …...

【AIGC】2024-ECCV-ControlNet++:通过有效的一致性反馈改进条件控制

2024-ECCV-ControlNet: Improving Conditional Controls with Efficient Consistency Feedback ControlNet&#xff1a;通过有效的一致性反馈改进条件控制摘要1. 引言2. 相关工作2.1 基于扩散的生成模型2.2 可控的文本到图像扩散模型2.3 语言和视觉奖励模型 3. 方法3.1. 初步3.…...

Mysql5.7变为GreatSQL 8.0.32-25过程中,SQL语句报错及解决方案

考虑兼容国产化数据库&#xff0c;现需要将Mysql5.7变为GreatSQL&#xff0c;在执行部分sql时&#xff0c;发现在Mysql5.7无报错&#xff0c;在GreatSQL有报错&#xff0c;在此记录一下遇到的几个错误。 1.ERROR 1231 (NO_AUTO_CREATE_USER) 1.1.报错提示 ERROR 1231 (42000…...

Qt 使用QAxObject将QTableView数据导出到Excel表格

这是我记录Qt学习过程的第6篇心得文章&#xff0c;主要是方便自己编写的应用程序导出Excel数据的&#xff0c;走了不少弯路直接上代码。 实现代码&#xff1a; //人员信息导出 ui->pbtn2->setEnabled(false); // 打开文件对话框&#xff0c;选择 excel文件 QString fil…...

fastGpt

参考本地部署FastGPT使用在线大语言模型 1 rockylinx 1 ollama安装 在rockylinux中安装的&#xff0c;ollama由1.5G&#xff0c;还是比较大&#xff0c;所有采用在windows下下载&#xff0c;然后安装的方式&#xff0c;linux安装 tar -C /usr -xzf ollama-linux-amd64.tgz #…...

给网站增加功能怎么做/公司软文

转自&#xff1a;http://code4app.com/article/cocoapods-install-usage 目录 CocoaPods是什么&#xff1f;如何下载和安装CocoaPods&#xff1f;如何使用CocoaPods&#xff1f; 场景1&#xff1a;利用CocoaPods&#xff0c;在项目中导入AFNetworking类库场景2&#xff1a;如何…...

wordpress bbs插件/游戏合作渠道

文丨安迪斯晨风有一些生僻字&#xff0c;一眼看上去觉得和常用字没区别&#xff0c;不过等你揉揉眼睛仔细看就会发现它们像是“缺胳膊少腿儿”一样。作为一个强迫症患者&#xff0c;宝宝总想拿起笔给它添上一丢丢。下面就让我们来认识一下这些字吧&#xff01;首先出场的是“戓…...

做移动网站优化优/营销网站优化推广

1、问题的产生&#xff1a; 在github上fork一个开源项目之后&#xff0c;想要修改部分代码后供公司项目使用。发现需要修改源项目中的所有内部import&#xff0c;例如开源模块 M中存在P1、P2等package&#xff0c; 其中P2 import P1的import路径为 “github.com/someone/M/P1”…...

wordpress编辑颜色/国内新闻摘抄2022年

给一个正整数&#xff0c;如果是偶数&#xff0c;则减半&#xff1b;如果是奇数&#xff0c;则变为它的三倍加一。直到变为一停止。对于所有正整数经过足够多次变换最终总能达到1。#!/usr/bin/env python# -*- coding: utf-8 -*-def collatz(number):while(number ! 1):if numb…...

网站建设丿金手指稳定/seo网页优化平台

MCCS 是什么&#xff1f; MCCS 是什么&#xff1f; …… 如果你没在任何地方听说过这个词&#xff0c;那就对了。因为这个词是本文作者&#xff0c;也就是颐和园创造出来的。 MCCS 是作者创造的一种新的 iOS APP 构建方式和设计模式。它是对 MVC 模式的扩展。其目的是为了解决…...

青岛标志设计公司/优化师是干嘛的

XSS XSS全称跨站脚本攻击(Cross Site Scripting)&#xff0c;顾名思义&#xff0c;就是通过向某网站写入js脚本来实现攻击。如果熟悉或了解SQL注入的话&#xff0c;这么一说大概就十分清楚了。 如果是刚接触web开发的同学&#xff0c;可能乍想不明白&#xff0c;自己的网站&…...