【发布时间】:2024-01-17 14:50:01
【问题描述】:
我正在准备期末考试,过去考试给我们的练习题之一如下:
我的直觉告诉我要把这个问题简化为子集和问题。
我最初的解决方案是:
设“A”为子集和 NP-完全问题。
让“B”成为我们试图证明是 NP-Complete 的分区问题
'A' 采用一个实例 alpha,即:集合 S 和值 'b'
'B' 采用一个实例 beta,即:一个集合 S' 和一个用于决策的 k 值
我们希望以多项式方式将 alpha 减少到实例 beta
我会从 alpha 中取出 b,将其放入集合 S 中生成 S',然后设置 k = 0 生成 beta 等于:S'=S union 'b', K = 0
让我们假设“B”可以解决这种情况。因为它可以,所以它使用由 alpha 形成的 beta 生成输出。
由于“B”可以解决该实例,这意味着“A”在多项式时间内是可解决的,但是我们知道这不是真的,因为“A”是 NP 完全的。我们有矛盾。由于这个矛盾,我们知道“B”至少和“A”一样“难”,因此它也是NP完全的。
请让我知道我的解决方案有什么问题或者它是否有效。
谢谢
【问题讨论】:
标签: algorithm reduce reduction np-complete subset-sum