我有一大组设备,每个设备都有两个特定的参数。在这个集合中,我想创建尽可能相似的设备对。这将由欧几里德规范来完成。但我不确定哪个分配问题分别适合我的情况。 就我而言,我正在寻找最大匹配,而不是完美或最大匹配。 所以两个方面很重要:
起初我想使用https://www.topcoder.com/community/data-science/data-science-tutorials/assignment-problem-and-hungarian-algorithm/#!实现它但同时我不确定这是否解决了这个问题。 我坚持以下几点:匈牙利算法基于二分图,它们使用两个不相交的集合。但我只有一套。 所以我必须在这一组中创建作业(虽然算法将一组的元素分配给另一组的元素),但我不确定这是否可行。
我的问题是:这仍然有用吗?或者我应该使用哪种方法?
答案 0 :(得分:0)
您可以通过以下方式“自定义”匈牙利方法:
1-对行(资源)和列(任务)使用相同的集(设备集)。
2-使用“big M”以避免将设备分配给自身:将对角线元素设置为某个巨大的值
3-在成本矩阵的每个条目(i,j)处分配反映某种不相似度的成本
4-运行匈牙利方法
5-最后,在进行分配时,只选择实际上不超过容差限度的对(换句话说,删除成本较大的对或超出“”的成本)容差限制“。