Розв’язування рівняння лінійного діофантіна приблизно


15

Розглянемо наступну проблему:

Вхід : гіперплощина H = { yR n : a T y = b }H={yRn:aTy=b} , задана векторами aZ naZn і b ZbZ у стандартному бінарному поданні.

xZ n = arg min d ( x , H )xZn=argmind(x,H)

У наведених позначеннях d ( x , S )d(x,S) для xR nxRn а S R nSRn визначається як d ( x , S ) = min ySx - y2d(x,S)=minySxy2 , тобто це природна евклідова відстань між набором точок і однією точкою .

Словом, нам дають гіперплан і шукаємо точку в цілій граті, яка є найближчою до гіперплани.

Питання:

У чому полягає складність цієї проблеми?

Зверніть увагу, що час полінома тут буде означати поліном у бітовому розмірі вхідного сигналу. Наскільки я бачу, проблема цікава навіть у двох вимірах. Тоді не важко зрозуміти, що досить розглянути лише ті рішення ( х 1 , х 2 )(x1,x2) з 0 x 1| a 1 | / g c d ( a 1 , a 2 )0x1|a1|/gcd(a1,a2) але це суперполіномічно багато варіантів.

Пов'язана проблема - це вирішення лінійного рівняння діофантіна, тобто пошук таким, що або визначення того, що такого немає існує. Отже, розв’язання лінійного рівняння діофантину еквівалентне визначенню, чи існує рішення значення 0 задачі, визначеній нами вище. Лінійне діофантинове рівняння можна розв’язати в поліноміальний час; насправді навіть системи лінійних діофантинових рівнянь можна вирішити в поліноміальний час шляхом обчислення нормальної форми Сміта матриці дає систему. Існують поліноміальні алгоритми часу, які обчислюють нормальну форму Сміта з цілочисельної матриці, першу задану функцієюxZ n a T x = b xxZnaTx=bx AAКаннан і Бахем .

Для отримання інтуїції щодо лінійних рівнянь діофантину ми можемо розглянути ще раз двовимірний випадок. Зрозуміло, що немає точного рішення, якщо не розділяє . Якщо це розділить , ви можете запустити розширений алгоритм GCD, щоб отримати два числа і таким чином, що і встановити і . Тепер ви можете бачити, чим відрізняється приблизна версія: коли не ділить , як ми знаходимо цілі числаg c d ( a 1 , a 2 ) b b s t a 1 s + a 2 t = g c d ( a 1 , a 2 ) x 1 = s b / g c d ( a 1 , a 2 ) x 2 = t b / g c d ( a 1 ,gcd(a1,a2)bbsta1s+a2t=gcd(a1,a2)x1=sb/gcd(a1,a2) a 2 ) g cx2=tb/gcd(a1,a2) d ( a 1 ,a 2 ) b x 1 , x 2 ( x 1 , x 2 ) a 1 x 1 + a 2 x 2 = bgcd(a1,a2)bx1,x2такий, що відстань між та лінією мінімізоване?(x1,x2)a1x1+a2x2=b

Проблема для мене трохи схожа на найближчу проблему з векторними гратами, але я не бачу очевидного скорочення від будь-якої проблеми до іншої.



ні, це не так: діофантинове наближення - це інша проблема, ніж рішення діофантинового рівняння. у задачі наближення діофантину вам задано дійсних чисел, і ви хочете помножити їх на одне ціле число щоб усі вони в межах від деякого цілого числа. Проблема там полягає у знаходженні оптимального компромісу між розміром та . Я не бачу зв'язку між моєю проблемою і цією. n Q ϵ Q ϵnQϵQϵ
Сашо Ніколов

Який ваш формат введення? Здається, що якщо будь-які два значення координат є невідповідними, то мінімум, про який йдеться, дорівнює нулю (перетинаються з відповідною двовимірною площиною, щоб отримати рівняння вигляду з і невідмінними , тобто ірраціональний, а потім використовуйте стандартні результати на щоб показати, що рядок проходить довільно близько до точок решітки.a s x + t y = w sasx+ty=ws t α stтαst { n α }( мод1 ){nα}(mod1)
Стівен Стадницький

Зокрема, це означає, що ваш "min" повинен бути "inf" (тому, що ви приймаєте його на безмежно багато очок), і проблема, чи відрізняється від питання, чи існує деякий з . Це означає, що коефіцієнти повинні бути раціональними числами, щоб проблема мала нетривіальне рішення, і тоді проблема, здається, приймає дуже евклідову форму, тісно поєднану з багатовимірними алгоритмами GCD. Я щось пропускаю? inf d(x,H)=0inf d(x,H)=0xxd(x,H)=0d(x,H)=0aa
Стівен Стадницький

@StevenStadnicki справа. ви можете припустити, що і (додам це питання, я, мабуть, його пропустив). вхід подається у стандартному бінарному поданні. питання цікаве навіть тоді, коли . тоді достатньо розглянути всі можливі рішення з , але брутальний пошук буде надполіноміальним у бінарному поданні . aZnaZnbZbZn=2n=2(x1,x2)(x1,x2)x1|a1|/gcd(a1,a2)x1|a1|/gcd(a1,a2)a1,a2a1,a2
Сашо Ніколов

Відповіді:


5

Гаразд, подумавши над цим більше, я вважаю, що я маю явне скорочення від цієї проблеми до розширеного GCD; Я поясню це у випадку , але я вважаю, що він поширюється на довільну . Зверніть увагу , що це знаходить своє , що зводить до мінімуму відстань до гіперплощини, але не обов'язково самого маленького (є насправді нескінченно багато значень , які отримують таке ж мінімальна відстань) - Я вважаю , що останнє завдання також здійсненна, але поки що не задумалась про неї. Алгоритм заснований на кількох простих принципах:n=2n=2nn xxxx

  • Якщо , то набір значень, прийнятих є точно ; крім того, значення і з можна знайти ефективно (саме такий розширений алгоритм Евкліда).g=GCD(a1,a2)g=GCD(a1,a2)ax=a1x1+a2x2ax=a1x1+a2x2{0,±g,±2g,±3g,}{0,±g,±2g,±3g,}x1x1x2x2a1x1+a2x2=ga1x1+a2x2=g
  • Мінімальна відстань від гіперплана до точки на решітці - це мінімальна відстань від точки на решітці до гіперплощини (очевидно, але корисна інверсія проблеми).
  • Відстань від заданої точки до гіперплани пропорційна(конкретно, це значення в але оскільки множення всіх відстаней на це значення не впливає на розташування мінімуму, ми можемо ігнорувати коефіцієнт нормування).xxay=bay=b|axb||axb|1/|a|

Це говорить про таку процедуру:

  • Обчисліть разом з таким чином, що .g=GCD(a1,a2)x01,x02a1x01+a2x02=g
  • Обчисліть та обчисліть ; - мінімальна (зменшена) мінімальна відстань від решітки до гіперплощини. Нехай буде або або ( , якщо тільки є кратним ), залежно від того, який з них досягає мінімальної відстані.r=bgd=min(brg,(r+1)gb)dsrr+1=bgbg
  • Compute і ; тоді є найближчим кратним до , і таким чиномдосягає мінімуму цієї відстані над усіма точками решітки.x1=sx01x2=sx02ax=sggb|axb|

Наскільки мені відомо, точно така ж процедура повинна коректно працювати у довільних вимірах; Ключовим моментом є те, що -вимірний GCD все ще задовольняє тотожність Безута, і тому, щоб знайти мінімальну відстань до точки решітки, потрібно лише знайти найближче кратне до .ngb

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