
- •Введение в геометрию чисел. Алгоритмы и приложения.
- •Список обозначений.
- •Решетки
- •Дискретные множества.
- •Решётка и подрешётка.
- •Конечно порожденные решётки.
- •Базис решётки
- •Эквивалентное определение решётки.
- •Гомоморфизм решёток
- •Изоморфизм решёток
- •Базисы решётки, матрица перехода.
- •Матрица гомоморфизма.
- •Изменение матрицы гомоморфизма при изменении базиса решёток.
- •Элементарные преобразования.
- •Нормальная диагональная форма Смита.
- •Существование нормальной диагональной формы Смита.
- •Единственность нормальной диагональной формы Смита.
- •Эрмитова форма матрицы.
- •Существование эрмитовой формы.
- •Единственность эрмитовой формы.
- •Базисы решётки и подрешёток.
- •Выбор базиса решётки.
- •Дополнение до базиса решётки.
- •Линейные преобразования решёток.
- •Двойственная решётка
- •Эффективные алгоритмы, связанные с построением базиса решётки.
- •Алгоритм, его трудоёмкость. Понятие эффективного алгоритма.
- •Решение системы линейных уравнений в целых числах.
- •Полностью целочисленный вариант метода Гаусса.
- •Решение системы линейных уравнений в целых числах
- •Некоторые задачи на построение базиса решётки.
- •Построение нормальной диагональной формы Смита.
- •Построение эрмитовой формы.
- •Теоремы Блихфельда и Минковского.
- •Теорема Блихфельда
- •Теорема Минковского
- •Теоремы о близости
Решение системы линейных уравнений в целых числах.
Одним из самых широко применяемых методов решения систем линейных уравнений является метод Гаусса. Однако, при бездумном применении этого метода может наблюдаться экспоненциальный рост длины коэффициентов. Ниже будет разобран вариант метода Гаусса, в котором длины промежуточных результатов ограничены полиномом от длины входной информации (в предположении целочисленности входа). Вторым достоинством предложенного подхода является сохранение целочисленности коэффициентов на протяжении всего метода.
Напомним метод
Гаусса решения системы линейных уравнений
Ах=b.
Для простоты, будем считать А
невырожденной матрицей
с
целочисленными коэффициентами, и все
ее угловые миноры отличны от нуля.
Положим
,
.
Матрицу коэффициентов при неизвестных
наk-ом
шаге обозначим через
,
правые части уравнений — через
,
матрицу
— через
.
Наk-1
шаге система уравнений имеет вид:
Из предложения о
невырожденности угловых миноров матрицы
А
следует неравенство
.
Итерация метода
Гаусса заключается в исключении из всех
уравнений, кроме k-го,
переменной
.
Для этого изi-го
уравнения, где i=1,…,n,
i≠k,
вычтем k-ое
уравнение, умноженное на величину
.
Таким образом,
,
и
,
при
.
Или, что тоже самое
,
и
.
Выразим элементы
через элементы исходной системы
.
Для этого обозначим через
минор матрицы
,
расположенный на пересечении строк
и столбцов
.
Наk-ом
шаге ко всем строкам матрицы
прибавлялисьk-ая
строка с некоторыми коэффициентами.
Следовательно, любой минор, матрицы
,
содержащийk-ую
строку, не изменяется на k-ой
итерации алгоритма. Таким образом,
каждый минор матрицы
,
содержащий первыеk-строк,
совпадает с соответствующим минором
матрицы
.
Тем самым установлены равенства
,
,
приi,j>k,
и
при
,j>k.
Матрица
- диагональная,
- верхнетреугольная,
- отличается от диагональной матрицы
толькоi-ым
столбцом. Во всех случаях, их определитель
равен произведению элементов, расположенных
на главной диагонали. Тем самым установлены
тождества
,
приi,j>k,
и
при
,j>k.
Все элементы матрицы
,
расположенные в первыхk
столбцах матрицы и не лежащие на главной
диагонали, равны нулю. Следовательно,
элементы матрицы
,
расположенные в первыхk
столбцах, на k-ой
итерации метода Гаусса не изменятся. В
частности,
,
где
,
и
.
Подставим полученное равенство в
установленные ранее тождества, выведем
равенства
,
приi,j>k,
и
при
,j>k.
Преобразуем полученные равенства к
виду
,
приi,j>k,
и
при
,j>k.
Для оценки длин
промежуточных вычислений нам понадобится
неравенство Адамара для определителя
матрицы
Заметим, что из
полученных формул следует, что все
промежуточные величины в методе Гаусса,
ограничены сверху полиномом от длины
входной информации. Пусть элементы
- целые числа, не превосходящие по
абсолютной величине α. Тогда любой минорk-го
порядка этой матрицы, по неравенству
Адамара, не превосходит
.
Таким образом, числитель и знаменатель
элементов
не превосходит
.
Отметим, эта оценка верна, если числитель
и знаменатель каждого рационального
числа, получаемого в ходе алгоритма,
сокращать на их наибольший делитель.
Полностью целочисленный вариант метода Гаусса.
В методе Гаусса
можно обойтись и без использования
рациональной арифметики, при этом
уменьшается верхняя оценка трудоёмкости
алгоритма за счёт отказа от операции
взятия наибольшего общего делителя.
Отметим, что общий знаменатель i-ой
строки матрицы
равен
при i>k
и
при i≤k.
Помножив каждую строку матрицы
на ее общий знаменатель, получим
целочисленную матрицу
.
Выведем формулы
пересчета от матрицы
к
.
Величина
равна
приi>k,
приi=k,
и
приi<k.
Отметим, что
.
По формулам пересчета от матрицы
к
выводим,
приi>k,
приi<k,
и
.
Подставим в эти формулы вместо элементов
матрицы
их выражение через элементы матрицы
получим равенства
при
,
и
.
Из вышесказанного вытекает следующий вариант метода Гаусса, приводящий систему линейных уравнений Ax=b (m-уравненийn-неизвестных) к ступенчатому виду. В приведённом алгоритме все операции над строками матрицыA понимаются как операции со строками расширенной матрицы (A,b).
Алгоритм 4.4 Целочисленный вариант метода Гаусса.
Положим d=1, k=1, i=1, j=1.
Если i>m или j>n, то конец, иначе перейдём на следующий шаг.
Если
, то перейдём на шаг 5, иначе на следующий шаг.
Если в j-ом столбце все элементы, расположенные в строчках с номерами i+1,…,m, равны 0, то увеличим j на 1 и вернёмся на шаг 2. В противном случае найдём номер s, что
(s>i). Переставим строки s и i. Перейдём на следующий шаг.
Вычтем из каждой строки s (
), умноженной на
, строку с номеромi, предварительно умноженную на
. Каждый элемент полученной строки поделим наd.
Положим
. Увеличимi,j,k на 1, вернёмся на шаг 2
Оценим трудоёмкость
алгоритма при предположении целочисленности
входной информации, причем наибольший
по абсолютной величине из элементов
матрицы (A,b)
не превосходит
.
Ранг матрицы(A,b)
положим
равным
r.
Количество
арифметических операций, совершаемых
методом Гаусса, не превосходит
. Все промежуточные величины в методе
Гаусса, суть миноры матрицы(A,b),
которые не превосходят
.
Умножив количество арифметических
операций
на максимальную трудоёмкость операции
(считаем, что трудоёмкость деления
оценивается сверху той же величиной,
что и трудоёмкость умножения, а умножение
вычисляем "столбиком"), которая не
превосходит
,
получим оценку трудоёмкости алгоритма
.
Отметим, что после работы алгоритма, в k находится ранг матрицы A, а в d будет храниться определитель какого-то ненулевого минора наибольшего размера.
Если матрица A
- квадратная
и невырожденная, и в качестве b
взять столбцы единичной матрицы, то в
качестве решения будут получаться
столбцы присоединенной матрицы. Таким
образом, трудоемкость нахождения
обратной, присоединенной матрицы и
определителя равна
.