我想针对以下问题实施算法。稍后需要在T-SQL
:
shopping
列表,其中包含一组我想要的项目。我现在必须找到提供ALL
项目的商店组合,同时需要最少量的商店。
我很确定这个问题经常被解决,算法有自己的名字,但我无法通过搜索找到它。
答案 0 :(得分:2)
对不起,我想我第一次误解了这个问题。你的问题基本上是Set Cover Problem NP-Complete。有启发式方法,但没有最佳解决方案。
(这是类似但不完全是你的问题,值得一看)Knapsack Problem
答案 1 :(得分:1)
不确定任何特定算法。但考虑到你的要求,我会:
如果您想真正优化这一点,那么您可以寻找任何多余的商店。一个多余的商店将有你的清单中的一个或多个其他商店提供的物品。
再想一想,这可以使用二进制线性编程来解决。每个商店都是可变的,并且约束条件是每个商品必须由至少一个商店提供服务。然后,您尝试尽量减少商店数量。不确定如何在T-SQL中解决这个问题。