Рассмотрим следующую проблему:
Входные данные : гиперплоскость , задается вектором и в стандартном двоичном представлении.
Выход :
Словом, нам дана гиперплоскость, и мы ищем точку в целочисленной решетке, которая является ближайшей к гиперплоскости.
Вопрос в том:
В чем сложность этой проблемы?
Обратите внимание, что полиномиальное время здесь будет означать полиномиальное значение в битах на входе. Насколько я вижу, проблема интересна даже в двух измерениях. Тогда нетрудно понять, что достаточно рассмотреть только те решения с но это суперполиномиально много вариантов.0 ≤ x 1 ≤ | 1 | / g c d ( a 1 , a 2 )
Тесно связанной проблемой является решение линейного диофантового уравнения, то есть нахождение такого, что или определение, что такого не существует существует Таким образом, решение линейного диофантового уравнения эквивалентно определению, существует ли решение со значением 0 для задачи I, определенной выше. Линейное диофантово уравнение может быть решено за полиномиальное время; фактически даже системы линейных диофантовых уравнений могут быть решены за полиномиальное время путем вычисления нормальной формы матрицы Смита дающей систему. Существуют алгоритмы полиномиального времени, которые вычисляют нормальную форму Смита целочисленной матрицы, первый из которых определяетсяa T x = b xКаннан и Бачем .
Чтобы получить представление о линейных диофантовых уравнениях, мы можем снова рассмотреть двумерный случай. Ясно, что нет точного решения, если не делит . Если он делит , то вы можете запустить расширенный алгоритм GCD, чтобы получить два числа и такие что и установить и . Теперь вы можете увидеть, как приблизительная версия отличается: когда не делит , как мы можем найти целые числа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 ,g c d ( a 1 , a 2 ) b x 1 , x 2такое, чтобы расстояние между и линией минимизировано?a 1 x 1 + a 2 x 2 = b
Для меня эта проблема немного напоминает проблему ближайших векторов в решетках, но я не вижу очевидного перехода от одной проблемы к другой.
Ответы:
Хорошо, подумав об этом больше, я считаю, что у меня есть явное сокращение от этой проблемы до расширенного GCD; Я объясню это в случае , но я считаю, что оно распространяется на произвольное . Обратите внимание , что это находит свое , что сводит к минимуму расстояние до гиперплоскости, но не обязательно самого маленького (есть на самом деле бесконечно много значений , которые получают такое же минимальное расстояние) - Я считаю , что последняя задача также выполнимо, но еще не задумывался об этом. Алгоритм основан на нескольких простых принципах:n x xn=2 n x x
Это предполагает следующую процедуру:
Насколько я знаю, точно такая же процедура должна работать правильно в произвольных измерениях; ключ в том, что мерный GCD все еще удовлетворяет тождеству Безу, и поэтому, чтобы найти минимальное расстояние до точки решетки, вам нужно только найти ближайшее кратное от до .г бn g b
источник