如何列出R中所有可能的最大二分匹配?

时间:2016-11-11 10:00:11

标签: r igraph bipartite

我有一个关联矩阵:

Q = matrix(c(0,1,1,1,0,1,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0), nrow = 5, ncol=5)
rownames(Q) = c(64,32,47,42,58)
colnames(Q) = c(49,64,88,31,13)

我想列出所有可能的最大二分匹配。 使用igraph:

G <- graph_from_incidence_matrix(Q)
M <- max_bipartite_match(G)
M$matching

只提供一个可能的最大匹配:

  64   32   47   42   58   49   64   88   31   13 
"64" "49" "88"   NA   NA "32" "64" "47"   NA   NA 

例如,另一个是:

  64   32   47   42   58   49   64   88   31   13 
"64" "49"   NA   NA   88 "32" "64" "58"   NA   NA 

有没有办法获得R中所有可能的二分匹配的完整列表?

我也试过lpSolve:

res <- lp.assign(Q, "max")

但它也只给了我一个可能的解决方案,而不是全部。

感谢您的帮助!

0 个答案:

没有答案