在下页P=NP问题的官方链接中:
, 提到了一个为 400 名大学生组织住宿的问题, 宿舍最多可容纳 100 人, 并且院长给出了一个“不相容”的学生对的列表, 即他们可以不能住在一起。该问题进一步表明,从头开始构建这样的列表将是困难的/困难的。但是,我做了一些思考并提出了以下解决方案:
我们通过计算可能的对的确切数量来继续,这可以如下完成:
首先,我们从 400 个可用学生中选择 100 个学生。=( 400 C 100 ) 方式。接下来,我们以100 C 2的方式
从 100 个学生的集合中选择 2 个学生。然后对于每个集合,如果该对不存在于院长的一对不兼容集中,则将其“添加”到最终结果集中。
我知道这个制作清单的过程需要很长时间,因为清单本身很长。但是,如果我们考虑第一组 400 名学生中的 100 名学生的组合,以便为少数幸运学生提供运气(我的意思是,如果这是一种幸运抽奖,最终只选择了第一组 100 名学生),那么这将是一个简单的问题!
无论如何,我们可以在这个问题中“判断”解决方案集是否存在,因为我们可以通过查看院长的不相容学生列表来直接说明是否有任何对,因为所有这些,只有所有那些不应该在结果集中所以如果有 50 个这样的配对,这意味着有 100 个不相容的学生,我们可以从这个列表中选择第一个 50 个,然后从剩下的 350 个学生中选择其他 50 个?这似乎不像 3SAT 问题那样“难”,只要告诉解决方案就足够了。(在这种情况下,组合总数为400 C 100 * [ 100 C 2 - 所选列表和院长列表中的对数]
(这也可以写成400 C 100 * [ 院长列表中的100 C 2 MINUS 对],其中 MINUS 是数据库术语中的操作。
请阐明我的研究,我是对还是错?
谢谢