Algorithm python中适合包的精确算法

Algorithm python中适合包的精确算法,algorithm,knapsack-problem,Algorithm,Knapsack Problem,我有一组具有size属性的项目 我还有一套袋子,里面可以装number物品。每个项目必须在min\u size和max\u size之间。为了简化,我们也可以认为我们只有一个项目的袋子在最小和最大尺寸。 考虑到这两套,我必须确定我是否能在有限的时间复杂度内把这些物品放进袋子里 这看起来像是一个背包问题,但从某些方面来看,它与背包问题略有不同,从我不知道的方式来看,它可能会更有效地解决 现在,我的尝试是第一次拟合,但并非在所有情况下都是正确的,我必须实施精确的方法 有没有人能有效地解决这个问题?这

我有一组具有
size
属性的项目

我还有一套袋子,里面可以装
number
物品。每个项目必须在
min\u size
max\u size
之间。为了简化,我们也可以认为我们只有一个项目的袋子在最小和最大尺寸。 考虑到这两套,我必须确定我是否能在有限的时间复杂度内把这些物品放进袋子里

这看起来像是一个背包问题,但从某些方面来看,它与背包问题略有不同,从我不知道的方式来看,它可能会更有效地解决

现在,我的尝试是第一次拟合,但并非在所有情况下都是正确的,我必须实施精确的方法


有没有人能有效地解决这个问题?这是一个与语言无关的一般性问题,但首选Python中的示例。

关于行李规格的问题:行李是否仅受
number
minu size
max\u size
的约束?因此,如果一个袋子可以装2件物品,那么这些物品是否都是
最小尺寸
,或者都是
最大尺寸
,或者每件物品中有一件,或者甚至只是介于两者之间的一些尺寸?还是袋子规格更具体?@Hans袋子只受这些数字的限制,一个袋子可以包含0、1或两个物品,每个物品的大小介于最小和最大大小之间。因此,它可以包含两个最大尺寸的物品,两个最小尺寸,两个中间,一个最小值一个最大值。一种方法是将其视为一个图形问题:具有
number
容量的行李与具有单个物品容量的
number
行李相同(具有相同的
min
max
)。然后,您将得到一边的项目节点和另一边的包节点的二分图,其中每个包都连接到给定大小约束的它可能包含的所有项目。这可以作为
O(|项目|*|单容量行李|)中的最大流量问题来解决
。这里有一些很好的幻灯片:@Hans谢谢你的评论!我没有想到把它转换成图表。