algorithm - 二分图中边不同路径的数量

标签 algorithm graph-theory bipartite

我们有一个二分图,其中集合 A 有 n 个顶点,集合 B 有 n 个顶点。

此外,集合 A 中的每个顶点都有 k 条边来集合 B,集合 B 中的每个顶点都有 k 条边来集合 A。

有一个特殊的顶点s,它的边到集合A中的所有顶点,还有一个特殊的顶点t,它的边到B中的所有顶点。

如何证明从 s 到 t 有 k 条不同的边路径?

enter image description here

我面临的问题是它要求给定上面提到的图(减去顶点 s 和 t),我需要证明如果在每一轮我都以我可以的方式删除从 A 到 B 的所有边'从相同的顶点移除超过 1 条边,有一种方法可以执行此移除操作,这样 A 和 B 将在 k 轮中断开连接。

最佳答案

Also each vertices in set A have k edges to set B and each vertices in set B have k edges to set A.

=> 至少存在k A 中的顶点并且至少存在 k B. (I) 中的顶点

现在我们使用:

There is a special vertex s that has edges to all vertices to set A, and a special vertex t that has edges to all vertices in B.

(我们将其称为 (II))以表明必须至少有 k来自 s 的边缘不相交路径至 t .

考虑以下删除过程:

  1. s 开始到顶点 v_a在 A.

  2. v_a 开始到顶点 v_b在 B.

  3. v_b 开始至 t .

  4. 移除这条路径上的所有边(以确保我们以后不会重复使用它们)

注意:一个这样的移除回合恰好对应于来自 s 的路径至 t .

现在:我们至少可以重复这个删除过程 k次。为什么?

因为在k-1之后一轮,必须至少保留一个顶点v_a_last在 A 中,因为 (I)。这个顶点可以从s到达因为(二)。这个顶点 v_a_last必须至少有一个相邻顶点 v_b_last在 B 中,我们还没有出现(v_a_lastk 中有 B 个邻居,但到目前为止我们最多遇到了 k-1 个,因为到目前为止我们只进行了 k-1 移除回合) .因为我们还没有一起来v_b_last到目前为止,边缘来自 v_b_lastt必须仍然在图中。因此在一轮k我们可以从s开始至 v_a_lastv_b_lastt这是 k-th来自 s 的边不相交路径至 t .

关于algorithm - 二分图中边不同路径的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33992244/

相关文章:

algorithm - 如何在图中找到两条顶点不相交的路径,并且两条路径具有相同的源但不同的目的地?

algorithm - N位整数匹配算法

python - 如何使用 python networkX 包显示二分图?

python - 重命名节点时 NetworkX 中的 Bipartite 无法正常工作

r - 添加基于另一个网络的边缘属性

c - 哪些数据结构和算法不能用 C 实现?

c++ - 如何以对数时间访问 C++ std::set 中的第 k 个元素?

c# - Vigenere Square Lookup(使用字符串数组)

mysql - 在 MySQL 数据库中的输入字符串中搜索值

algorithm - 边算法的最小权重连通子集 T