¿Qué algoritmos existen para resolver sistemas lineales de números naturales?


9

Estoy mirando el siguiente problema:

Dados vectores dimensionales de números naturales v 1 , ... , v my algún vector de entrada u , ¿es u una combinación lineal de v i 's con coeficientes numéricos naturales?nortev1,...,vmetrotutuvyo

es decir, ¿hay alguna donde u = t 1 v 1 + + t m v m ?t1,...,tmetronortetu=t1v1++tmetrovmetro

Obviamente, la versión en números reales de este problema se puede resolver utilizando la eliminación gaussiana. Me pregunto, ¿se ha estudiado la versión entera de este problema? ¿Qué algoritmos existen para resolverlo?

Tenga en cuenta que esto está usando números naturales, pero no aritmética modular, por lo que está algo separado del Teorema del resto chino y sistemas como ese. Además, parece estar relacionado con las ecuaciones de diofantina, pero me pregunto qué se ha hecho en el caso en que solo se consideran enteros no negativos. Esto también recuerda un problema de suma de subconjuntos multidimensional, generalizado para permitirnos tomar un número arbitrario de copias de cada vector. También parece estar relacionado con probar si es un elemento de la red generada por v 1 , ... , v m , excepto que aquí solo permitimos combinaciones lineales con coeficientes no negativos.tuv1,...,vmetro

Para cualquier persona interesada, esto se motiva al observar si un vector Parikh está en un conjunto lineal, como en el Teorema de Parikh .

En particular, estoy interesado en un algoritmo que pueda resolver el problema utilizando solo operaciones de números naturales, evitando entrar en los números reales / flotantes.


2
Sí, se ha estudiado la versión entera (y varias versiones teóricas de anillo). La versión entera se puede resolver mediante eliminación gaussiana. La versión del número natural es una bestia diferente. Mi sensación es que debería ser NP-completo.
Thomas Klimpel

¿Cómo puede ser NP-completo si se resuelve mediante eliminación gaussiana? Todavía estoy interesado en algoritmos para ello, incluso si se trata de un problema intractible.
jmite

También tenga en cuenta que en el problema que estoy viendo, el sistema puede estar subdeterminado, es decir, . No estoy seguro de cómo esto lo cambia. metro<norte
jmite

Respuestas:


9

Su problema es NP completo, mediante la reducción de Subset Sum (está en NP ya que el hecho de que todo sea no negativo limita suficientemente los coeficientes de la solución). Dada una instancia de Subset Sum (¿hay un subconjunto de S sumando a T ?), Construimos una instancia v 1 , ... , v 2 n , u de su problema como sigue. Para cada 1 i n , ponemos v iS={s1,...,snorte},TSTv1,...,v2norte,tu1yonortevyoser el vector con dos entradas distintas de cero: y v i , n + 1 = s i , y v n + i ser el vector con una única entrada distinta de cero v n + i , i = 1 . El vector objetivo es u = 1 , ... , 1 , T . Cada combinación natural de v 1 , ... , v 2 nvyo,yo=1vyo,norte+1=syovnorte+yovnorte+yo,yo=1tu=1,...,1,Tv1,...,v2norteigual a debe seleccionar exactamente uno de cada uno de v i , v n + i , y así codifica un subconjunto de S cuya suma es el valor del último componente.1,...,1,vyo,vnorte+yoS


Interesante. ¿Se te ocurrió esta prueba o tienes una referencia que podría citar? De cualquier manera, gracias!
jmite

1
@jmite Acabo de encontrar la prueba, aunque no puedo descartar haberla visto.
Yuval Filmus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.