Рассмотрим следующую проблему:
Входные данные : гиперплоскость , задается вектором и в стандартном двоичном представлении.
Выход :
Словом, нам дана гиперплоскость, и мы ищем точку в целочисленной решетке, которая является ближайшей к гиперплоскости.
Вопрос в том:
В чем сложность этой проблемы?
Обратите внимание, что полиномиальное время здесь будет означать полиномиальное значение в битах на входе. Насколько я вижу, проблема интересна даже в двух измерениях. Тогда нетрудно понять, что достаточно рассмотреть только те решения с но это суперполиномиально много вариантов.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
Для меня эта проблема немного напоминает проблему ближайших векторов в решетках, но я не вижу очевидного перехода от одной проблемы к другой.