33得票8回答
匈牙利算法:如何找到覆盖零的最小行数?

我正在尝试实现匈牙利算法,但我卡在了第五步。基本上,给定一个n x n的数字矩阵,我该如何找到最少数量的垂直+水平线条,以便覆盖矩阵中的零? 在有人将这个问题标记为此问题的副本之前,请注意,那里提到的解决方案是不正确的,另外其他人也遇到了代码中的错误。 我不是在寻找代码,而是要理解如何绘制...

14得票3回答
匈牙利算法:如何用最少的直线覆盖0元素?

我正在尝试在Java中实现匈牙利算法。 我有一个NxN的成本矩阵。我按照这个指南逐步操作。因此,我有costMatrix [N] [N]和两个数组来跟踪覆盖的行和列-rowCover [N],rowColumn [N](1表示已覆盖,0表示未覆盖)。 如何用最少的线覆盖0? 有人能指点我一下...

10得票1回答
如何在PySpark UDF中解决类似匈牙利算法/线性求和分配的任务问题(包括特殊情况)

我有一个任务问题,并希望问问SO社区如何最好地为我的spark dataframe实现此任务(利用spark 3.1+)。我将首先描述问题,然后再进行实现。 这就是问题:我最多有N个任务和N个个体(在此问题的情况下,N=10)。每个个体执行每个任务的成本不同,其中最小成本为$0,最大成本为$1...

10得票3回答
匈牙利算法:一个工人可承担多个任务

是否有一种扩展匈牙利算法以满足每个工人分配多个工作的方法?在最简单的情况下,该算法将一个工作分配给一个工人。 我的应用是一个利润最大化问题,有3个工人和180个工作。我还会添加一些约束条件(每个工人被分配至少50个工作)。 我已经成功地使用Python中的mungres库实现了匈牙利算法,它运...

8得票1回答
匈牙利算法:我在分配尽可能多的工作给工人方面遇到了困难。

我已经在C++中实现了匈牙利算法。这个实现对于许多情况都非常有效。然而,有些情况下我的算法根本不起作用,因为我相信(并且事实证明)算法的一个步骤实现是错误的。 我的实现将数组X作为输入,运行算法的步骤,并产生最终的分配方案。 算法的步骤可以在维基上找到:匈牙利算法 在第3步中,它有以下成...

8得票4回答
最小化点对之间的距离

我的问题如下: Given a number of 2n points, I can calculate the distance between all points and get a symmetrical matrix. Can you create n pairs of poi...

8得票2回答
我可以使用匈牙利算法来寻找最大成本吗?

匈牙利算法可以在多项式时间内解决分配问题。给定工人和任务,以及一个n×n矩阵,其中包含将每个工人分配到任务的成本,它可以找到最小化成本的分配。 我想找到成本最大的选择,可以使用匈牙利算法或类似方法吗?还是只能指数级地完成?

8得票1回答
匈牙利算法-维基百科的方法对于这个例子无效。

我正在尝试在C中实现匈牙利算法。 我有一个矩阵: 35 0 0 0 0 30 0 5 55 5 0 10 0 45 30 45 我现在需要找到覆盖所有零的最小行数(尽可能多地进行分配)。显然,通过检查,这是第1列和第3列以及第1行。 维基百科建议以下方法: 第1...

7得票1回答
匈牙利算法多重分配

假设我们有N个工作和K名工人来完成这些工作。但是对于某些工作,我们需要两名员工,而对于其他工作,我们只需要一名员工。此外,员工不能做所有的工作。例如,工人1可以做1、2和5号工作,但不能做3和4号工作。另外,如果我们雇用工人1来做工作1,则希望他也可以做2和5号工作,因为我们已经支付了他的报酬...

7得票2回答
匈牙利算法在非方阵矩阵中的应用

我正在尝试实现匈牙利算法。当矩阵不是方阵时,一切都很好,除了这一点。我查找的所有方法都说我应该通过添加虚拟行/列来使其成为方阵,并用矩阵中的最大数填充虚拟行/列。我的问题是,这样做不会影响最终结果吗?难道虚拟行/列填充的数字不应该至少为 max+1 吗?