Algorithm 最大二部图(1,n)";“匹配”;

Algorithm 最大二部图(1,n)";“匹配”;,algorithm,graph,matching,Algorithm,Graph,Matching,我有一个二部图。我正在寻找一个最大(1,n)“匹配”,这意味着分区a中的每个顶点都有分区B中的n个关联顶点 下图显示了图形中的最大(1,3)匹配。为匹配选择的边为红色,未选择的边为黑色 这不同于标准的二部匹配问题,其中每个顶点仅与另一个顶点关联,使用此符号可称为(1,1)匹配 如果匹配基数(n)不是强制的,而是上界(A中的顶点可以有0=3。但在构造问题实例时,您可以自由选择N。只要选择N=|V(G)|。我的第一个想法与他们的想法相似,但考虑到N的额外限制,证明似乎是可靠的。您需要选择N,以便N

我有一个二部图。我正在寻找一个最大(1,n)“匹配”,这意味着分区a中的每个顶点都有分区B中的n个关联顶点

下图显示了图形中的最大(1,3)匹配。为匹配选择的边为红色,未选择的边为黑色

这不同于标准的二部匹配问题,其中每个顶点仅与另一个顶点关联,使用此符号可称为(1,1)匹配


如果匹配基数(n)不是强制的,而是上界(A中的顶点可以有0G,您可以(在多项式时间内)构造问题的实例,以便:

  • A中的顶点表示
    G
  • A的每个顶点与B的n个顶点正好相连
  • 当且仅当A的任意两个顶点在
    G
    中连接时,B中有一个共同的邻接点。要始终实现这一点,请选择n=Δ(G)

现在,实例中的最大“匹配”映射回
G

中的最大独立集(不是真的:)事实上,我正在开发一个基于BitTorrent的P2P协议,我需要匹配算法将对等点与片段关联起来……所以,你想最大化具有n个连接的对等节点的数量吗?我想必须要最大化其他一些约束(可能是片段的覆盖范围?),否则算法将很简单。至少如果图片是正确的,并且你可以在B中有一个垂直的多个边缘(这在执行最大匹配时通常不是这种情况)HerdplattenToni:前面的图片是不正确的,谢谢你指出它。与标准(1,1)匹配一样,B中的顶点只能有一条边。不能总是满足最后一个项目符号。例如,G有一个顶点v和N+1个邻居。这些N+1邻居中没有一个相互连接。根据鸽子洞原理,v有一个具有N+1项的公共邻居,仅使用N个传出边。两个公共邻居必须共享其中一个输出边,这将在G中连接它们,但这不是真的。如果你加上G的最大度数N的限制,那么你的证明是有效的。我认为,如果最大度为1或2,则最大独立集不是NP难的,因此您的证明仅适用于N>=3。但在构造问题实例时,您可以自由选择N。只要选择N=|V(G)|。我的第一个想法与他们的想法相似,但考虑到N的额外限制,证明似乎是可靠的。您需要选择N,以便N>=D(G),其中D(G)是G的最大程度。一个小错误是,减少的是“最大独立集问题”,而不是“最大”,因为后者是一个不同的问题,更容易。非常感谢你的回答,它帮助了很多。(只要我有足够的声誉,我就会给它打分。)