ruby – 用于找到产品和商店的最佳组合以最小化成本的算法

你好Stackoverflow人,

我经营一个网站,发现其用户是最便宜的购买书籍的地方.这对于一本书来说很容易,但对于多本书来说,在一家商店购买一本书和从另一家商店购买另一本书有时会更便宜.

目前我找到了销售用户列表中所有书籍的最便宜的商店,但我希望拥有一个更智能的系统.这里有更多信息:

>一本书的价格对于商店来说是不变的.
>运费的价格可能会有所不同,具体取决于书籍数量或书籍的总价值.
>每个商店对象可以购买一系列书籍并返回运费.
>通常,并非每家商店都出售每本书.

不确定这里链接到我的网站是否很酷,但它列在我的用户个人资料中.

我希望能够找到最便宜的商店和书籍组合.

我担心它需要蛮力的方法 – 并且有35家商店,对于适量的书籍来说,组合的数量将是巨大的.我觉得组合的数量是(#shops)^(#books) – 但不是100%

问题是,我应该采用什么方法?这个问题是否适合众所周知的问题?如果需要蛮力,在Ruby中这样做的好方法是什么?我可以优先考虑商店先尝试吗?

解决方法

不幸的是,这是一个没有任何简单解决方案的组合优化问题的例子.一般来说,你确实需要蛮力方法.然而!我怀疑这个问题有一些特殊的结构会有所帮助.例如,随着您更改书籍组合,运费不会随意变化 – 当您添加书籍时,它可能会线性增加和/或饱和.

这是我推荐的,然后:

>离线,估算每家商店的运输政策,这样,给定书籍(可能还有他们的重量),您可以估算运费而无需参考他们的网站.
>对于每个商店,计算每本书的成本(如果有的话).
>离线,浏览每个商店或一组商店,并使用您的离线运送政策估算总费用.
>选择最便宜的商店(或商店).如果有多个相似,请计算确切的答案.

这应该让你开始,并将让你没有完整的搜索.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...