子集和或NPP的整数关系检测?


14

有没有一种方法可以对子集和或数字分区问题的实例进行编码,以便对整数关系的(小)解能得出答案?如果不是绝对的话,那么从某种意义上说呢?

我知道LLL(也许还有PSLQ)在解决“低密度”区域中的子集和问题方面已经取得了一定的成功,在该区域中,选择的数字范围大于,但是这些方法不能很好地扩展到当选择的数字范围远小于2 N时,实例较大且在“高密度”区域中失败。这里,低密度和高密度是指解决方案的数量。低密度区域是指很少或根本没有解决方案,而高密度区域是指具有很多解决方案的区域。2N2N

在高密度区域中,LLL在给定的实例之间发现(小的)整数关系,但是随着实例大小的增加,发现该关系成为可行的子集总和或数字分区问题解决方案的可能性变得越来越小。

整数关系检测是在最佳指数范围内的多项式,而子集Sum和NPP显然是NP-Complete,因此通常这是不可能的,但是如果随机地均匀绘制实例,这是否会使它更简单?

还是我什至不问这个问题,而是问是否有办法代替最优计算来减少最优答案的指数界限?


我没有得到任何答案,所以我交叉张贴到mathoverflow:mathoverflow.net/questions/38063/...
user834

这是一个非常有趣的问题,我也在等待答案。您基本上是在要求从子集和或NPP到整数关系的多项式时间缩减(可能是随机的)。这个怎么样,如果是你的子集和问题的目标和小号是一个正整数的集合,用小号'满足解决方案0 = Σ 小号'一个。这也正是一个线性组合的实系数等于1。如果为每个š您有Σ 一个 < 2 Ñ -t=0SS0=aSaaiS总有一个解决方案,到整数关系的映射也将为您提供解决方案。iai<2n1
Marcos Villagra

@Marcos Villagra:您的评论有点难以解析...可以将问题作为子总和/数字分区问题嵌入晶格中(请参阅此处以进行评论),问题是找到一种方法来将系数限制为所需的集合(例如0,1或-1,1)。LLL会找到整数关系,甚至是很小的关系,但仅2或3的系数就会使它无效,不能作为子集和/数分区答案。
user834 2010年

Answers:


2

令m为最大对数。如果,则可以使用动态编程在多项式时间内求解。通常,每种已知算法至少需要Ω 2 m时间。当m = ω log n m = o n 时,没有已知的多项式时间算法m=O(logn)Ω(2m)m=ω(logn)m=o(n)

但是,Flaxman和Przydatek提供了一种算法,可以解决期望多项式时间内的中等密度子集和问题。

检查此参考:

Flaxman和Przydatek,在预期多项式时间内解决中等密度子集和问题


2
该结果仅用于选择“子集和”实例中的数字明显低于我想要的数字。他们选择log(n)^ 2数量级的数字范围,而我感兴趣的是2 ^ n数量级的数字范围。当数字范围被限制得很低并且看起来他们只是稍微扩展了这个范围时,有一些众所周知的算法可以解决子集总和,这很好,这不是我想要的。谢谢你
user834 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.