【发布时间】:2021-06-22 22:15:00
【问题描述】:
输入
具有 n 个顶点和一个整数 k 的无向图 G,使得 k 除以 n。
所有顶点的集合用V表示。
输出
一组 S 的顶点集,使得:
- S 有 k 个元素
- S 的每个元素都是 G 中的一个完整子图(每个元素中的所有顶点在 G 中都共享一条边)
- S 的所有元素都是互斥的(元素之间没有共同的顶点)
- S的所有元素的并集等于V
- S 的所有元素都有 n / k 基数
背景
我经营一个小型戏剧阅读小组,有时我们喜欢阅读大型戏剧。我想以这样一种方式为一个小团体投一部大戏,这样一个人就不会扮演一组彼此共享场景的角色。我意识到这个问题可以用图论来表述,我很好奇一个好的解决方案是什么样的。
【问题讨论】:
-
按照您描述的方式(包括标题),S 的任何一对元素之间(顶点)之间都不能有边。因此,只有当 G 与 k 断开连接时,才能存在解决方案或更多组件。那是你的意图吗?如果是这样,这更好地描述为装箱。
-
你有人物、人物和场景。人物到场景是一个固定的二分图。您需要一个从人到受约束的角色的二分图。正确的?你能解释一下它是如何映射到你的输入和输出定义的吗? ñ? k?
-
我怀疑这个问题是 NP 完全的(它似乎介于 clique 和 set cover 之间)。不过我没有证据。如果我能想出一个,我会把它作为一个完整的答案发布。
-
想必你也希望每个人都有尽可能多的角色,而不是让任何人没有角色?那么这会成为一个优化问题吗?
-
@IanMercer 已编辑以明确每个人应分配相同数量的角色。也可以——你可以用二分图来表述问题。问题中给出的准备好的表述是正确的原因如下:
标签: algorithm graph-theory subgraph undirected-graph