Які алгоритми існують для вирішення лінійних систем натуральних чисел?


9

Я переглядаю таку проблему:

Дано n-вимірні вектори натуральних чисел v1,,vm і деякий вхідний вектор u, є u лінійна комбінація viз натуральними коефіцієнтами чисел?

тобто є якісь t1,,tmN де u=t1v1++tmvm?

Очевидно, що реальну версію цієї проблеми можна вирішити за допомогою Гауссової ліквідації. Мені цікаво, чи вивчена ціла версія цієї проблеми? Які алгоритми існують для його вирішення?

Зауважте, що для цього використовуються натуральні числа, але не модульна арифметика, тому це дещо окремо від китайської теореми залишків та подібних систем. Також, схоже, це стосується рівнянь Діофантіна, але мені цікаво, що було зроблено у випадку, коли розглядаються лише невід’ємні цілі числа? Це також нагадує багатовимірну задачу підмножини, узагальнену, щоб ми могли взяти довільну кількість копій кожного вектора. Це також здається пов'язаним із тестуванням, чи єuє елементом решітки, породженоїv1,,vm, за винятком того, що тут ми допускаємо лише лінійні комбінації з негативними коефіцієнтами.

Для всіх, хто цікавиться, це мотивується переглядом того, чи є вектор Париха в лінійному наборі, як у теоремі Паріха .

Зокрема, мене цікавить алгоритм, який міг би вирішити проблему, використовуючи лише операції з натуральним числом, уникаючи попадання в цифри реальних / плаваючих точок.


2
Так, цілу версію (та різні теоретичні версії кільця) вивчали. Ціла версія може бути вирішена шляхом усунення Гаусса. У натуральній чисельній версії - інший звір. Я відчуваю, що він повинен бути повним NP.
Томас Клімпель

Яким він може бути NP-повним, якщо це вирішиться шляхом ліквідації Гаусса? Мені все ж цікавляться алгоритми його, навіть якщо це нерозв'язна проблема.
jmite

Також зауважте, що в проблемі, яку я розглядаю, система може бути недостатньо визначеною, тобто m<n. Не впевнений, як це це змінює.
jmite

Відповіді:


9

Ваша проблема є NP-повною, зменшенням від сукупності підмножини (це в NP, оскільки факт, що все є негативним, досить добре обмежує коефіцієнти рішення). Дано екземплярS={s1,,sn},T суми підмножини (чи існує підмножина S підсумовуючи до T?), ми побудуємо екземпляр v1,,v2n,uвашої проблеми наступним чином. Для кожного1in, ми кладемо vi бути вектором з двома ненульовими записами: vi,i=1 і vi,n+1=si, і vn+i бути вектором з унікальним ненульовим записом vn+i,i=1. Цільовим вектором єu=1,,1,T. Кожне природне поєднанняv1,,v2n дорівнює 1,,1, повинен вибрати саме один із кожного vi,vn+i, і так кодує підмножину S сума яких - значення останнього компонента.


Цікаво. Ви придумали цей доказ чи у вас є посилання на нього, що я можу навести? У будь-якому випадку, дякую!
jmite

1
@jmite Я щойно придумав доказ, хоча не можу виключити, що його бачив.
Yuval Filmus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.