【问题标题】:NP-Complete Reduction for Subset Sum子集和的 NP 完全约简
【发布时间】: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


    【解决方案1】:

    实际上这个问题(最小化差异)是 NP-hard。决策版本(不要与决策问题混淆)是是否存在分区的解决方案,使得差异为零,这是一个 NP 完全问题。

    http://en.wikipedia.org/wiki/Partition_problem

    维基页面的摘录: 划分问题有一个优化版本,即将多重集 S 划分为两个子集 S1、S2,使得 S1 中的元素之和与 S2 中的元素之和之间的差异最小化。优化版本是 NP-hard。

    【讨论】:

    • 嗨,这个问题要求证明决策版本是 NP 完全的。我应该改变我的解决方案来做到这一点?这个问题的框架好像我们不应该知道分区问题是 NP 难的,其决策版本是 NP 完全的,它希望我们通过约简来证明它。
    • @KrispyK 好吧..这被称为分区问题,将其证明提到NP完成就足够了。在 google 上查找“partition problem np complete proof”。
    最近更新 更多