Algorithm 基于多个变量将项目分配到存储桶中

Algorithm 基于多个变量将项目分配到存储桶中,algorithm,math,computer-science,Algorithm,Math,Computer Science,所以我有N个项,每个项都有两个参数,即Item1{x:10,y:20},和M个bucket,其中M

所以我有N个项,每个项都有两个参数,即
Item1{x:10,y:20}
,和M个bucket,其中Mx
y
,这意味着一个
{x:100,y:100}
的bucket只能容纳一些累积Xs和Ys不超过给定bucket的项。因此,例如,一个
Bucket{x:100,y:100}
最多只能容纳前面提到的Item1的5个实例

目标是在每个桶中装入尽可能多的物品的同时,在桶之间或多或少均匀地分配物品


我很确定这是一个众所周知的问题,但我不知道它的名字。有没有解决这类问题的通用算法

听起来像bin Packing是的,这听起来很像NP难,所以你可能需要使用一些近似的解决方案。你可以将其建模为一个整数程序,并使用例如GLPK、NumPy/SciPy、Gurobi、CPLEX来解决。但这将在输入大小上花费指数级的时间。对于较大的实例,最好采用动态规划方法。