Algorithm 婚礼策划人

Algorithm 婚礼策划人,algorithm,Algorithm,我为6.006 MIT OpenCorseWare做了一个问题,这就是下面链接中的问题#6: 这个问题本身很简单,但如果我稍微调整一下问题,我想知道如何解决这个问题 鉴于: 客人名单 查找表T,其中T[u]表示u∈ V是你知道的客人名单 (如果你知道v,那么v就知道你) 问题: 安排座位时,任何一位坐在一张桌子上的客人都可以直接或通过坐在同一张桌子上的另一位客人认识坐在同一张桌子上的每一位客人 找到满足此要求所需的最小表数 在最初的问题中,您可以通过坐在同一张桌子上的任意数量的客人来了解

我为6.006 MIT OpenCorseWare做了一个问题,这就是下面链接中的问题#6:

这个问题本身很简单,但如果我稍微调整一下问题,我想知道如何解决这个问题

鉴于:

  • 客人名单
  • 查找表T,其中T[u]表示u∈ V是你知道的客人名单 (如果你知道v,那么v就知道你)
问题:

  • 安排座位时,任何一位坐在一张桌子上的客人都可以直接或通过坐在同一张桌子上的另一位客人认识坐在同一张桌子上的每一位客人
  • 找到满足此要求所需的最小表数
在最初的问题中,您可以通过坐在同一张桌子上的任意数量的客人来了解其他客人。但我想知道如何解决这个问题,如果你只能通过坐在桌旁的另一位客人了解其他客人


这方面的最佳算法是什么?谢谢你的帮助

创建一个顶点代表来宾的图形。如果每个顶点相互认识,则在它们之间创建边(基于表T)

现在,您只需找到连接组件的数量。 连接组件是一组顶点,其中集合中的任意两个顶点之间存在路径


连接组件的数量等于您需要的表的数量。

这是NP难的。这是一个NP难问题的多项式时间缩减,是Karp最初的21个问题之一,它包括通过细分每一条边并连接每一对新顶点来转换作为团覆盖输入的图形,这样每个新顶点都在远处≤每个顶点有2个,两个不同的旧顶点在距离处≤2当且仅当它们在输入中相邻时


有一个简单的从这个问题到小团体封面的简化,所以我建议的最好的算法是按照这个简化,为小团体封面设计一个指数时间动态程序。

大家好,欢迎来到StackOverflow。不幸的是,这不是一个讨论一般编程的网站,你的问题有点太广泛了。你应该试着自己做一些事情,如果你的代码有特殊的问题,就回来。按[算法]标准来说,不要太宽泛。投票重新开始。那么,如果问题被搁置,会发生什么呢?我不想写代码。我只是想在算法课上解决一个问题。如果这个线程()是有效的,我的线程应该可以,对吧?谢谢你的回答!这是原始问题的答案,而不是经过调整的问题。但是谢谢!我的错是,我只是阅读了问题的给定/问题部分。我应该把整件事都读了。该死的注意力持续时间太短了。