Algorithm 将列表等分为两部分的算法
相关问题:Algorithm 将列表等分为两部分的算法,algorithm,np-complete,computation-theory,partition-problem,data-partitioning,Algorithm,Np Complete,Computation Theory,Partition Problem,Data Partitioning,相关问题: 假设我有一个列表,其中正好包含2k元素。现在,我想把它分成两部分,每个部分的长度为k,同时尽量使各部分的总和相等。 快速示例: [3,4,4,1,2,1]可能被拆分为[1,4,3]和[1,2,4],并且总和差将为1 现在-如果零件可以有任意长度,这是的一个变体,我们知道它是弱NP完全的。 但是,将列表分成相等部分的限制(假设它总是k和2k)是否可以在多项式时间内解决这个问题?对此有何证明(或证明它仍然是NP的证明方案) 它仍然是NP完成的。通过将PP(您的分区问题的全部变体)
2k
元素。现在,我想把它分成两部分,每个部分的长度为k
,同时尽量使各部分的总和相等。
快速示例:
[3,4,4,1,2,1]
可能被拆分为[1,4,3]和[1,2,4]
,并且总和差将为1
现在-如果零件可以有任意长度,这是的一个变体,我们知道它是弱NP完全的。
但是,将列表分成相等部分的限制(假设它总是k
和2k
)是否可以在多项式时间内解决这个问题?对此有何证明(或证明它仍然是NP的证明方案)
它仍然是
NP
完成的。通过将PP
(您的分区问题的全部变体)简化为QPP
(等分分区问题)来证明:
取任意长度k
加上附加k
元素的列表,所有元素的值均为零
我们需要在
PP
方面找到性能最好的分区。让我们使用QPP
的算法找到一个,并忘记所有额外的k
零元素。四处移动零不会影响此分区或任何竞争分区,因此这仍然是任意长度列表k
中性能最好的无限制分区之一,它仍然是NP
完整的。通过将PP
(您的分区问题的全部变体)简化为QPP
(等分分区问题)来证明:
取任意长度k
加上附加k
元素的列表,所有元素的值均为零
我们需要在PP
方面找到性能最好的分区。让我们使用QPP
的算法找到一个,并忘记所有额外的k
零元素。四处移动零不会影响此分区或任何竞争分区,因此这仍然是任意长度k
列表中性能最好的无限制分区之一