存在什么算法可以求解自然数线性系统?


9

我在看以下问题:

给定自然数维向量和一些输入向量,是与自然数系数的线性组合吗?v 1v m u u v inv1,,vmuuvi

即是否有一些,其中? Ù = 1 v 1 + + v t1,,tmNu=t1v1++tmvm

显然,此问题的实数版本可以使用高斯消除法解决。我想知道,是否已研究此问题的整数版本?有什么算法可以解决呢?

请注意,这是使用自然数,而不是模数,因此这与中国余数定理和类似系统有些不同。另外,它似乎与Diophantine方程有关,但是我想知道在只考虑非负整数的情况下该怎么做?这也使人联想到多维子集和问题,可以使我们对每个向量进行任意数量的复制。似乎还与测试是否是生成的晶格的元素有关,除了这里我们只允许使用非负系数的线性组合。uv1个v

对于任何感兴趣的人,这都是通过查看Parikh向量是否在线性集中来实现的,就像Parikh定理一样

特别是,我对一种可以仅使用自然数运算来解决问题的算法感兴趣,而不必使用实数/浮点数。


2
是的,已经研究了整数形式(以及各种环理论形式)。整数形式可以通过高斯消除来解决。自然数版本是另一种野兽。我的感觉是应该是NP完整的。
Thomas Klimpel

如果通过高斯消去法解决,它怎么会是NP完全的?我仍然对它的算法感兴趣,即使这是一个棘手的问题。
jmite 2014年

还要注意,在我正在研究的问题中,系统可能未完全确定,即。不知道这会如何改变。<ñ
jmite 2014年

Answers:


9

通过从子集总和中减少,您的问题是NP完全的(这是NP,因为所有非负数的事实都很好地限制了解决方案的系数)。给定一个实例子集和的(有没有的一个子集的总和为?),我们构造了一个实例你问题如下。对于每个,我们将设为具有两个非零条目的向量:和,并且是具有唯一非零项的向量。目标向量是小号Ť v 1... v 2 Ñù 1 Ñ v v = 1 v Ñ + 1 = 小号v Ñ + i v n + i = 1 u =小号={s1个sñ}Ť小号Ťv1个v2ñü1个一世ñv一世v一世一世=1个v一世ñ+1个=s一世vñ+一世vñ+一世一世=1个ü=1个1个Ť。等于每个自然组合必须精确选择的每个,因此对的子集进行编码,其总和为最后一个组件的值。v1个v2ñ1个1个v一世vñ+一世小号


有趣。您是否提出了该证明,或者我可以引用它作为参考?无论哪种方式,谢谢!
jmite 2014年

1
@jmite我只是想出了证明,尽管我不能排除已经看过它。
Yuval Filmus 2014年
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.