【问题标题】:What's the graph concept behind this?这背后的图形概念是什么?
【发布时间】:2022-01-10 03:08:12
【问题描述】:

需要从一个组中随机分配一个人到另一个人。每个人都应该被分配给某人。这背后的图形概念是什么?我需要为此编写一个算法。

例如: -A分配给B,B分配给C,C分配给A(有向图) 要么 -A分配给C,B分配给A,C分配给B

  1. A、B、C 三者都应分配给某人。
  2. A、B、C 三个都应该有一个作为作业。
  3. 没有重复的分配。
  4. 一个人应该只分配给一个人。
  5. 一个人可以分配给至少一个人。

【问题讨论】:

  • 这不是图形问题。它更像是一种组合学。虽然,您没有提供足够的信息来确定它。如果您只想将每个元素与另一个元素配对,那么您正在寻找 n/2 不相交的组件。这是我能想到的最接近图的问题。
  • 首先要澄清的是:如果我们将A分配给B,那么B是否也分配给A?如果是这样,它是一个无向图。不管怎样,你要做的就是找到一个匹配的,你可以在维基百科中查找它。
  • 似乎您可以按照自己的意愿对人员进行排序,然后将每个人分配给他们之前的人(第一个人分配给最后一个人)。在任何有用的意义上,这背后并没有真正的概念,因为所述问题本质上是微不足道的,尽管如果有额外的局部约束,人们可以或不能分配给其他人,它可能会找到图的分解进入循环。
  • @Meera 如果没有其他约束,您描述的是一个链表,它将其最后一个条目指向第一个条目。
  • @ThomasJungblut 它应该被洗牌。不按顺序。但你所说的引出了另一个想法。它可以被洗牌。并添加为循环

标签: algorithm graph-algorithm


【解决方案1】:

如果你这样说,它可以表示为一个图形问题: 有源S 从 S 到您的每个 A、B、C .... 点都有一个成本为 N 的管道 只要选择 X => Y 是可以接受的,A,B,C 到 A',B',C' 的每一个都有一个成本为 N 的管道 每个 A',B',C' ... 到水槽 K 的管道成本为 N

然后在 A,B,C ... 和 A',B',C' ... 之间找到可接受的匹配意味着以最小成本 O(N3) 问题从 S 到 K 最大化。 通过改变管道的成本,您可以引入偏好并找到最小化“不满之和”的最佳选择。

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 2012-09-25
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多