从R中的maxFlowFordFulkerson恢复最大二部匹配

从R中的maxFlowFordFulkerson恢复最大二部匹配,r,graph-theory,mathematical-optimization,bipartite,ford-fulkerson,R,Graph Theory,Mathematical Optimization,Bipartite,Ford Fulkerson,我想找到最大二部匹配,所以我将使用Flow Ford Fulkerson算法,如下所示 但是当我实现这个函数时,我只得到了最大流的值,但是我感兴趣的是流本身,这样我就可以找到匹配 有人能帮我吗 我在R中使用了函数maxFlowFordFulkerson。仅使用您找到的函数的输出无法做到这一点。除了最大流量的值外,它还提供了最小切割,这提供了一些额外的信息,但仍然不是您想要的 使用您参考的页面中的示例(为了便于参考,请复制以下内容): >库(“操作树”) >顶点边maxFlowFordFulke

我想找到最大二部匹配,所以我将使用Flow Ford Fulkerson算法,如下所示

但是当我实现这个函数时,我只得到了最大流的值,但是我感兴趣的是流本身,这样我就可以找到匹配

有人能帮我吗


我在R中使用了函数
maxFlowFordFulkerson

仅使用您找到的函数的输出无法做到这一点。除了最大流量的值外,它还提供了最小切割,这提供了一些额外的信息,但仍然不是您想要的

使用您参考的页面中的示例(为了便于参考,请复制以下内容):

>库(“操作树”)
>顶点边maxFlowFordFulkerson(顶点,边,source.node=1,sink.node=14)
$s.cut
[1] 1 3
$t.cut
[1]  2  4  5  6  7  8  9 10 11 12 13 14
$max.flow
[1] 5
这里,两个分区中的顶点分别为2:7和8:13,因此这告诉我们顶点3,即左分区顶部的第二个顶点,仍然不匹配,但除此之外,它没有告诉您任何匹配的信息

如果您想坚持使用
igraph
,您可以使用来获得您想要的。因为这一个直接作用于二部图,所以我们根本不需要处理辅助源/汇顶点。使用上面的示例:

>库(“igraph”)
>最大二部匹配(g)
$匹配大小
[1] 5
$匹配重量
[1] 5
美元匹配
[1] 8 NA 7 9 10 12 3 1 4 5 NA 6

这里,左分区用1:6表示,右分区用7:12表示。从
$matching
中,我们了解到左侧分区中的6个顶点分别与8、nothing、7、9、10和12匹配。

仅使用您找到的函数的输出无法做到这一点。除了最大流量的值外,它还提供了最小切割,这提供了一些额外的信息,但仍然不是您想要的

使用您参考的页面中的示例(为了便于参考,请复制以下内容):

>库(“操作树”)
>顶点边maxFlowFordFulkerson(顶点,边,source.node=1,sink.node=14)
$s.cut
[1] 1 3
$t.cut
[1]  2  4  5  6  7  8  9 10 11 12 13 14
$max.flow
[1] 5
这里,两个分区中的顶点分别为2:7和8:13,因此这告诉我们顶点3,即左分区顶部的第二个顶点,仍然不匹配,但除此之外,它没有告诉您任何匹配的信息

如果您想坚持使用
igraph
,您可以使用来获得您想要的。因为这一个直接作用于二部图,所以我们根本不需要处理辅助源/汇顶点。使用上面的示例:

>库(“igraph”)
>最大二部匹配(g)
$匹配大小
[1] 5
$匹配重量
[1] 5
美元匹配
[1] 8 NA 7 9 10 12 3 1 4 5 NA 6
这里,左分区用1:6表示,右分区用7:12表示。从
$matching
中,我们了解到左侧分区中的6个顶点分别与8、nothing、7、9、10和12匹配