algorithm - 在联合是整个图的图中寻找大小相等的互斥完全子图

标签 algorithm graph-theory subgraph undirected-graph

输入
具有 n 个顶点和一个整数 k 的无向图 G,使得 k 整除 n。
所有顶点的集合将由 V 表示。
输出
一组顶点的集合 S 使得:

  • S 有 k 个元素
  • S 的每个元素都是 G 中的一个完全子图(每个元素中的所有顶点在 G 中彼此共享一条边)
  • S 的所有元素都是互斥的(元素之间没有共同的顶点)
  • S 的所有元素的并集等于 V
  • S 的所有元素都具有基数 n/k

  • 背景
    我经营一个小型戏剧阅读小组,我们有时喜欢阅读较大的戏剧。我想以这样的方式为一小群人演一场大型戏剧,这样一个人就不会扮演一组彼此共享场景的角色。我意识到这个问题可以用图论来表述,我很好奇一个好的解决方案是什么样的。

    最佳答案

    这个问题基本相当于graph coloring .图形着色为我们提供了一个图形,并要求我们为每个节点指定一种颜色,以便没有边具有相同颜色的端点。在这里,我假设节点是角色,边是至少在一个场景中一起出现的角色,颜色是扮演角色的人,并且您特别想要一种使用恰好 k 种颜色(对于 k 人)的着色。
    图着色是 NP-hard,但除非图很大,否则约束规划求解器(例如,CP-SAT)应该很容易使用它,并另外处理优化目标,例如(例如)最大化最小行数每个人都有。

    关于algorithm - 在联合是整个图的图中寻找大小相等的互斥完全子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66810920/

    相关文章:

    ruby - 从 key 小于特定值的哈希中获取所有值的有效方法

    algorithm - 使用什么算法来匹配字符串的开头

    algorithm - 图算法计算不同起始顶点和一个结束顶点之间的所有可能路径

    python - 用于查找子图同构的 QuickSI 算法

    algorithm - 在一组实数中查找第 k 个元素子集(《编程珠玑》一书)

    c - 写递归算法时使用 'static'是作弊吗?

    python - 有效地枚举 networkx 中 DiGraph 的所有简单路径

    algorithm - 用于对无向图进行三角剖分的通用算法?

    r - 如何将大量 igraph 组合成一个 igraph - R

    algorithm - 通过边删除创建规则子图