Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将矩阵转换为带权的二部图_Java_R_Algorithm_Matrix_Graph - Fatal编程技术网

Java 如何将矩阵转换为带权的二部图

Java 如何将矩阵转换为带权的二部图,java,r,algorithm,matrix,graph,Java,R,Algorithm,Matrix,Graph,我的矩阵是 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 我的任务是根据这个矩阵找到一个最佳的工作分配方案。执行第j项工作的第i名工人的工作效率w(ij)由上述矩阵描述。我有两个问题: 1) 我可以使用代码将此矩阵巧妙地转换为二部图吗? 2) 这是一个应该使用匈牙利算法的例子吗 正如Petar已经提到的,矩阵w表示一个二部图。对于每一行,第一个集中有一个节点,对于每一列,第二个集中有一个节点

我的矩阵是

   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  
我的任务是根据这个矩阵找到一个最佳的工作分配方案。执行第j项工作的第i名工人的工作效率w(ij)由上述矩阵描述。我有两个问题:

1) 我可以使用代码将此矩阵巧妙地转换为二部图吗?

2) 这是一个应该使用匈牙利算法的例子吗

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


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

您是在Java还是R中尝试这样做,还是不要紧,在R中有很多有用的包,当涉及到像这样的东西时,R可能更容易,但是Java与这个问题有什么关系?我标记了Java和R作为可能的编码语言,我想你可以用w来表示bupartite图,其中w[I][j]>0如果从左侧节点i到右侧节点j有一条边