Block Korkin-Zolotarev algorithm generalization and their practical implementation (Russian)
ЭЭКСПЕРИМЕНТАЛЬНАЯ ОЦЕНКА ТОЧНОСТИ ПРЕДСТАВЛЕНИЯ ПЛАВАЮЩИХ ЧИСЕЛ И ВРЕМЕНИ ВЫПОЛНЕНИЯ БЛОЧНОГО МЕТОДА КОРКИНА-ЗОЛОТАРЕВА ДЛЯ ПРИВЕДЕНИЯ БАЗИСА ЦЕЛОЧИСЛЕННЫХ РЕШЕТОК СЛОЖНЫХ ПО ГОЛЬДШТЕЙНУ-МАЙЕРУ
B. C. Усатюк Научный руководитель: д.ф.-м.н., проф. О.В. Кузьмин Братский государственный университет, г. Братск, [email protected]
Целями работы является профилировка с целью увеличения скорости работы и подтверждение достоверности результатов полученных комплексом программ LRT [1] осуществляющим приведение базиса целочисленных решеток блочным методом Коркина-Золотарев, BKZ [2].
В работе на основе приведения базиса целочисленных решеток с целью получения базиса, кратчайший вектор в котором отклоняется Ряд необходимых положений теории решеток представлен в статье «Обзор методов приведения базиса решеток и некоторых их приложений» находящейся в этом сборнике.
Определение 1:
Решетка является целочисленной, если скалярное произведение любой пары векторов принадлежащих ей является целым числом: , : , , i j i j b b L b b Z i j . Иными словами, такая решетка является дискретной абелевой подгруппой, заданной на множестве n Z . Задача приближенного поиска кратчайшего вектора ( -approximate hortest vector problem, )(SVP p n ): Пусть дана m -мерная решетка L , ранга n и вещественный . Найти ненулевой вектор в раз больший кратчайшего вектора )(:{0}\ LbLZb ppn . Для решения p S ( )
VP n с эспоненциальной точностью n , достаточно привести базис к приведенному по Ловасу базису, применив полиномиальный по временной сложности алгоритм Ленстра-Ленстра-Ловаса(LLL) [6]. Для решения p S ( )
VP n с точностью ,12 n , достаточно привести подмножество базиса решетки, состоящее из n -векторов, к базису Коркина-Золотарева, применив BKZ, чья временная сложность зависит от размера блока, изменяясь от полиномиальной до экспоненциальной [2], однако растет значительно медленнее алгоритма Финке-Поста, полного перебора в сфере [3]. В соответсвии верхней оценкой константы Эрмита Блихфельдта [7] и первой теоремой Минковского: первый соответствующий минимум (кратчайший вектор) любой n мерной решетки ограничен сверху: nnp LnL )det()21(2)( . Нами решалась задача: n n nn L . LLL-алгоритм приведения базиса решетки [7]: Вход: Базис решетки n ZLBL ),( и (0.25,1] , . Выход: Приведённый LLL-базис. 1. QR -разложение базиса решетки. 2. Приведение векторов базиса по длине: , , i j i i r r i j n
3. Перестановка векторов , i i r ,
1, 1 i i r , и соответствующих им i b и i b , возврат к шагу 1, если: ,1 , (0.25,1] i i i i i i r r r i n . BKZ-алгоритм приведения базиса решетки [2]: Вход: Базис решетки n ZLBL ),( и n ( )( BL образованный -векторами из )( BL ), . Выход: Приведённый BKZ-базис решетки. 1. Применение LLL-алгоритма для предварительного приведения азиса решетки; 2. Выполнять в цикле = 1 1 k n : Методом Финке-Поста [3] решаем SVP ( ) n -задачу для квадратных подматриц размера образованных верхнетреугольной матрицей R в QR-разложении исходного базиса, ( ) L R : ' ( )1 ( [ ] ), . p ii j j i r L b i n . -если ( ), ii i j r b : вставка найденного вектора в начало текущего блока и удаление линейной зависимости векторов в нем; -иначе, LLL-приведение следующего блока векторов. 3. Вывод базиса, если после нескольких проходов по всему базису его длина не меняется. В приложение LRT были реализованы LLL и BKZ алгоритмы приведения базиса решеток. Для QR -разложения применяется блочный метод Хаусхолдера[9], эффективный при использовании длинной арифметики [8], реализованный при помощи библиотеки AMD Core Math Library 4.4.0. Приложение написано на языке Си с применением глубокой оптимизации в среде MVS 2010 Professional. Ввод-вывод данных осуществляется на основе работы с текстовыми файлами базиса решетки в формате библиотеки NTL. В приложении доступно изменение параметров: точности промежуточных результатов, для LLL и для BKZ. Для реализации произвольной точности вычислений применяется библиотека MIRACL переданная автору статьи Майклом Скоттом для не коммерческого применения в 2006 г .. Применение этой библиотеки позволяет изменять - точность промежуточных результатов от однократной (float), двукратной (double), четырехкратной и до десятичных знаков. С целью повышения устойчивости работы приложения при высокой точности вычислений, а так же большой размерности приводимых целочисленных решеток был реализован собственный планировщик памяти, уменьшающий число обращений к менеджеру памяти ОС. Повышение точности представления чисел с плавающей запятой требуется именно на этапе QR -разложения, для последующих этапов достаточной является двойная точность. Последнее обстоятельство не позволяет получить заметный выигрыш в производительности за счет применения видеокарт для QR -разложения. Время перебора точек в сфере методом Финке-Поста с ростом размерности, растет быстрее QR -разложения. Дальнейшая работа направлена на реализацию метода Финке-Поста на видеокартах с поддержкой стандарта OpenCL, так как особенность работы алгоритма позволяет предположить возможность ускорения этого метода. Рис. 1 Зависимость времени приведения базиса целочисленной решетки от ее размерности. Литература