【问题标题】:How to convert a matrix to a bipartite graph with weights [closed]如何将矩阵转换为具有权重的二部图 [关闭]
【发布时间】:2017-12-15 01:59:27
【问题描述】:

我的矩阵是

   3 4 1 2 2  
   0 1 2 3 1  
   0 5 5 1 3  
   2 2 1 0 5  
   1 4 2 1 3  

我的任务是根据这个矩阵找到最佳的工作分配方案。第 i 个工人做第 j 个工作的工作效率 w (ij ) 由上面的矩阵描述。我有两个问题:

1) 我可以用代码巧妙地将这个矩阵变成二分图吗?
2)这是应该使用匈牙利算法的例子吗?

【问题讨论】:

  • 你是在 Java 还是 R 中尝试这样做,还是没关系?
  • 任一个,R 中有很多有用的包涉及到这样的东西,所以 R 可能更容易,但任何一个
  • 这个问题跟Java有什么关系?
  • 我将 Java 和 R 标记为可能的编码语言,以便在
  • 我猜你可以用 w 来表示二分图,其中 w[i][j] > 0 如果从左边的节点 i 到右边的节点 j 有一条边

标签: java r algorithm matrix graph


【解决方案1】:

正如 Petar 已经提到的,矩阵 w 表示二分图。对于每一行,您在第一组中都有一个节点,对于每一列,您在第二组中都有一个节点。现在每个条目 w[i][j] 表示节点 i 和节点 j 之间的一条边(权重为 w[i][j])。

最佳工作分配(或最大二分匹配)正是匈牙利算法解决的任务。您实际上不需要将矩阵转换为图形结构,因为 HA 通常直接对矩阵进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多