sql-server - 算法找到满足给定要求的最少数量的项目

标签 sql-server algorithm tsql

我想针对以下问题实现一个算法。它稍后需要在 T-SQL 中实现:

  • 我有一组供应商 - 让我们说是商店。每个商店都有它提供的一组项目。有些商品在商店之间重叠,有些商品仅出现在一家商店中。
  • 我有一个元素 list - 比方说一个包含我想要的一组元素的购物 list 。

我现在必须找到提供 ALL 商品同时需要最少数量商店的商店组合。

我很确定这个问题经常得到解决,并且该算法有自己的名称,但我无法通过搜索找到它。

最佳答案

抱歉,我想我第一次误解了这个问题。你的问题本质上是一个 Set Cover Problem这是NP-Complete。有启发式方法,但没有最佳解决方案。

(这很相似,但不完全是您的问题,尽管值得一看)Knapsack Problem

关于sql-server - 算法找到满足给定要求的最少数量的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16990725/

相关文章:

sql-server - 仅当使用列列表且 IDENTITY_INSERT 为 ON SQL Server 时,才能指定表中标识列的显式值

sql - 消除具有相反值的行

image - 图像之间的欧氏距离

algorithm - 通过使用最小交换交换相邻元素对序列进行排序

sql - 是否可以在 SQL Server 中的表上应用默认过滤器?

sql - 让我清楚地了解 Oracle 9i 中的外部联接

sql - 如何将动态列值拆分为动态多列值

sql-server - 无法通过批处理文件使用 SQLCMD 连接到 SQL Server

c++ - 如何优化匹配范围(作业)

sql - 我需要在 AdventureWorks (SQL 2005) 上进行慢速查询