Эрмитова нормальная форма

Материал из testwiki
Версия от 11:53, 15 сентября 2024; imported>РобоСтася (checkwiki fixes (1, 2, 9, 17, 22, 26, 38, 48, 50, 52, 54, 64, 65, 66, 76, 81, 86, 88, 89, 101))
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Эрмитова нормальная форма — это аналог ступенчатого вида матрицы для матриц над кольцом целых чисел. В то время, как ступенчатый вид матрицы используется для решения систем линейных уравнений вида Ax=b для xn, эрмитова нормальная форма может быть использована для решения линейных систем диофантовых уравнений, в которых подразумевается, что xn. Эрмитова нормальная форма используется в решении задач целочисленного программирования[1], криптографии[2] и общей алгебры[3].

Определение

Матрица H является эрмитовой нормальной формой целочисленной матрицы A если есть унимодулярная матрица U такая что H=UA и H удовлетворяет следующим ограничениям[4][5][6]:

  1. H является верхне-треугольной, то есть, hij=0 если i>j и любая строка, целиком состоящая из нулей находится ниже всех остальных.
  2. Ведущий элемент любой ненулевой строки всегда положителен и лежит правее ведущего коэффициента строки над ней.
  3. Элементы под ведущими равны нулю, а элементы над ведущими неотрицательны и строго меньше ведущего.

Некоторые авторы в третьем условии требуют, чтобы элементы были неположительными[7][8] или вообще не накладывают на них знаковых ограничений[9].

Существование и единственность эрмитовой нормальной формы

Эрмитова нормальная форма H существует и единственна у любой целочисленной матрицы A[5][10][11].

Примеры

В примерах ниже матрица H является эрмитовой нормальной формой матрицы A, а соответствующей унимодулярной матрицей является матрица U такая что H=UA.

A=(331401000019160003)H=(30110100001910003)U=(1301010000150001)

A=(236256168311)H=(10501103282006113)U=(9515201161)

Алгоритмы

Первые алгоритмы вычисления эрмитовой нормальной формы датируются 1851 годом. При этом первый алгоритм, работающий за строго полиномиальное время был разработан лишь в 1979 году[12]. Один из широко используемых классов алгоритмов для приведения матрицы к эрмитовой нормальной форме основан на модифицированном методе Гаусса[10][13][14]. Другим распространённым методом вычисления эрмитовой нормальной формы является LLL-алгоритм[15][16].

Применения

Вычисления в решётках

Обычно решётки в n имеют вид L={α1a1+α2a2++αnan|αi}, где ain. Если рассмотреть матрицу A, чьи строки составлены из векторов ai, то её эрмитова нормальная форма будет задавать некоторый единственным образом определённый базис решётки. Данное наблюдение позволяет быстро проверять, совпадают ли решётки, порождённые строками матриц A и A, для чего достаточно проверить, что у матриц совпадают их эрмитовы нормальные формы. Аналогичным образом можно проверить, является ли решётка LA подрешёткой решётки LA, для чего достаточно рассмотреть матрицу A, полученную из объединения строк A и A. В такой постановке LA является подрешёткой LA если и только если совпадают эрмитовы нормальные формы A и A[17].

Диофантовы линейные уравнения

Система линейных уравнений Ax=b имеет целочисленное решение x если и только если система Hx=Ub имеет целочисленное решение, где H=UA — эрмитова нормальная форма матрицы A[10]Шаблон:Rp.

Реализация

Вычисление эрмитовой нормальной формы реализовано во многих системах компьютерной алгебры:

См. также

Примечания

Шаблон:Примечания