【问题标题】:PartitionProblem variation - fixed size of subsetsPartitionProblem 变化 - 子集的固定大小
【发布时间】:2013-06-12 15:23:58
【问题描述】:

我有一个问题,它是 NP 完全分区问题的变体。这是一个优化问题,而不是决策问题。

问题:将一个数字列表分成两个子集,使它们的和之差最小,然后找到这两个子集。如果n是偶数,那么大小应该是n/2,如果是奇数,那么floor[n/2]ceil[n/2]

假设伪多项式时间 DP 算法最适合精确解,如何修改它来解决这个问题?解决这个问题的最佳近似算法是什么?

【问题讨论】:

    标签: dynamic-programming np-complete subset-sum partition-problem


    【解决方案1】:

    由于您没有指定使用哪种算法,我假设您使用此处定义的算法: http://www.cs.cornell.edu/~wdtseng/icpc/notes/dp3.pdf

    然后使用此算法添加一个变量来跟踪最佳结果,将其初始化为N(列表中所有数字的总和,因为您总是可以将一个子集作为空集)并且每次更新T(例如:T[i]=true)你做了类似bestRes = abs(i-n/2)<bestRes : abs(i-n/2) : bestRes的事情。然后你返回bestRes。这当然不会改变算法的复杂性。

    我不知道你的第二个问题。

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 2012-02-13
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      相关资源
      最近更新 更多