具有中型集合的内存高效加权集合分配

Memory efficient weighted set assignment with medium sized set

我正在尝试根据某个权重 (i,j) 函数匹配(线性赋值)两组元素。到目前为止,我一直使用 munkres,但结果单独使用的内存量 (15000 x 15000 x sizeof(float)) 太大了。我的下一个赌注是拍卖算法,但我不确定它是否符合我的标准。

有些元素可能只出现在一侧。最佳且易于实施的解决方案是可取的。我只需要正确方向的提示,非常感谢。

重量一旦计算出来,就不需要太精确地存储了。通过使用 half-precision floating point 值或其他一些 16 位格式,您可以立即将存储需求从 858 MB 减少到 429 MB。例如,根据权重的范围,您可能希望取权重的对数并将其存储为 16 位整数。或者您可以只存储原始 32 位浮点数的指数部分,它只有 8 位,将存储空间减少到 215 MB。

权重转换(或量化)后,您可以正常应用该算法。