返回

寻找最便宜的产品配置的算法

发布时间:2022-08-30 01:39:12 363
# 数据

数据结构不明显,需要解释。我们必须遵循以下模型:

库存商品-表示真正唯一的对象项(例如:任何给定的HDD及其序列号和购买价格)。每个stock\u项目的数量为0或1,stock\u价格为0或更多。一个stock\u项目必须仅与一个商品类型的产品绑定

产品-表示产品的定义,而不是像stock\u items这样的真实对象(例如:像Seagate Exos HDD这样的HDD型号)。在我们的模型中,它可以有3种基本类型:

  • 商品
  • “组”
  • 配置

商品是与stock\u项目绑定的简单对象。两种商品之间不存在任何关系。商品库存数量是绑定到此产品的所有库存项目的库存数量之和。

组可以由商品、其他组组成,并且不能包含配置。组的库存量是组成员的库存量之和。在我们的模型中,组的含义是它是一组类似的产品(一个可以替代另一个)。

配置可以由商品、组和/或配置组成。配置中的每个项目可以有1个或多个数量。我们模型中的配置表示一组具有某些功能意义的产品(例如:PC是一种配置,它可以从一组RAM DDR4 32GB中取出任何4种商品,并从一组SATA SSD 512GB 2.5中取出2个HDD。这些组由相互兼容的不同商品组成。我们需要以与其他产品类型相同的方式显示配置的库存数量。

现在我们面临的问题是,每种商品都可以存在于许多组中,相互嵌套和/或相互嵌套的配置中。

我们的数据集非常大,一些配置可以由400种不同的商品(或更多)组成,计算中涉及数千个stock\u项目。

我将解释真实世界的用法:该公司正在使用包含基本配置版本(基本配置)的配置构建PC。因此,我们基本上拥有与barebone相同的PC配置(内部所有部件都没有CPU、RAM和HDD)。然后,这些基本要素与其他产品组(如RAM内存,可以在组内、组内)和产品(商品)组合,形成最终用户配置。

样本数据:


PRODUCT B [stock quantity=20, avg_stock_price=$95] is in GROUP G1

PRODUCT C [stock quantity=10, avg_stock_price=$90] is in GROUP G2

GROUP G1 is made of PRODUCT A and PRODUCT B [stock quantity=120]

GROUP G2 is made of PRODUCT A and PRODUCT C [stock quantity=110]

CONFIGURATION C1 is made of GROUP G2 x2 AND PRODUCT A x1 [stock_quantity=60]

CONFIGURATION C2 is made of CONFIGURATION C1 x1 AND GROUP G1 x3 [stock_quantity=40] 

 

  • 可为配置类型的任何给定产品生成的配置总数
  • 给定配置的前X个最便宜/最昂贵的库存项目集。

 

现在,我们可以将单个stock\u项目(每个项目的价格不同)替换为等式中的产品。我们会发现有很多方法可以做到这一点。为了找到最便宜的解决方案,我们需要迭代每种可能的库存商品组合,计算价格并按其对结果进行排序。

在我们的真实场景中,数据集是巨大的,需要几个小时才能完成整个库存的迭代。我们需要找到正确的算法这样可以更快地解决此问题。

stock\u项目可能如下所示。重要的是,每个stock\u项目可以有不同的股价:

 - RAM 32GB Hynix serial number #1000, stock_quantity=1, stock_price=$99
 - RAM 32GB Hynix serial number #1001, stock_quantity=1,
   stock_price=$101
 - RAM 32GB Hynix serial number #1002, stock_quantity=1,
   stock_price=$100
 - ...
 - RAM 32GB Hynix serial number #1099, stock_quantity=1,
   stock_price=$103
 - RAM 32GB Samsung serial number #2000, stock_quantity=1,
   stock_price=$98
 - RAM 32GB Samsung serial number #2001, stock_quantity=1,
   stock_price=$99
 - RAM 32GB Samsung serial number #2002, stock_quantity=1,
   stock_price=$97
 - RAM 32GB Samsung serial number #2003, stock_quantity=1,
   stock_price=$96
 - RAM 32GB Micron serial number #3000, stock_quantity=1,
   stock_price=$121
 - RAM 32GB Micron serial number #3001, stock_quantity=1,
   stock_price=$120
 - ...
 - RAM 32GB Micron serial number #3019, stock_quantity=1,
   stock_price=$119```

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像