Метод квадратичных форм Шенкса
Метод квадратичных форм Шенкса — метод факторизации целых чисел, основанный на применении квадратичных форм, разработанный Даниелем Шенксом[1] в 1975 году, как развитие метода факторизации Ферма.
Для 32-разрядных компьютеров алгоритмы, основанные на данном методе, являются безусловными лидерами среди алгоритмов факторизации для чисел от до и, вероятно, таковыми останутся.Шаблон:Sfn Данный алгоритм может разделить практически любое составное 18-значное число менее чем за миллисекунду. Алгоритм является чрезвычайно простым, красивым и эффективным. Кроме того, методы, базирующиеся на данном алгоритме, используются как вспомогательные при разложении делителей больших чисел типа чисел Ферма.
История
Другое название алгоритма — SQUFOF (акроним от английского — SQUare FOrm Factorization), что означает факторизация методом квадратичных форм. Данный подход был достаточно успешным на протяжении многих лет и, как следствие, довольно много различных модификаций и реализаций можно найти на эту тему в литературе.Шаблон:Sfn Большинство методов являются сложными и запутанными, особенно в том случае, когда необходима реализация метода на компьютере. В результате чего, многие варианты алгоритмов не пригодны для реализации. Однако в 1975 году Даниель Шенкс предложил создать алгоритм, который можно реализовать и использовать не только на компьютере, но и на простом мобильном телефоне.
Хотя Шенкс описал другие алгоритмы для факторизации целых чисел, по SQUFOF он ничего не опубликовал. Он предоставил лекции по данной теме и объяснил основную суть своего метода довольно небольшому кругу людей. Некоторые работы других ученых Шаблон:SfnШаблон:SfnШаблон:SfnШаблон:Sfn обсуждали алгоритм, но ни одна не содержит подробный анализ. Также в своем методе Шенкс делает довольно большое количество предположений[2], которые остались без доказательства. В работеШаблон:Sfn представлены результаты некоторых экспериментов, которые свидетельствуют, что многие предположения справедливы. В итоге, основываясь на этих упрощающих предположениях, Шенксу удалось создать SQUFOF.
Вспомогательные определения
Для того чтобы понять, как реализован этот алгоритм, необходимо узнать минимальные сведения о математических объектах, используемых в данном методе, а именно о квадратичных формах. Бинарной квадратичной формой называется полином от двух переменных и :
В методе Шенкса используются только неопределенные формы. Под будем понимать дискриминант квадратичной формы. Будем говорить, что квадратичная форма представляет целое число , если существуют такие целые числа , что выполнено равенство: . В случае если выполнено равенство , то представление называется примитивным.
Для любой неопределенной квадратичной формы можно определить оператор редукции как:
- ,где — определено, как целое число , однозначно определяемое условиями: Шаблон:Sfn
Результат применения оператора к форме раз записывается в виде . Также определен оператор как:
- , где определен так же как и в прошлом случае. Заметим, что в результате применения операторов и к квадратичной форме с дискриминантом , полученные квадратичные формы так же будут иметь дискриминант .
Метод получения редуцированной формы, эквивалентной данной, был найден еще Карлом Гауссом и состоит в последовательном применении оператора редукции , пока не станет редуцированной.
Теорема.
Так же для ясности понимания всех операций с квадратичными формами нам понадобится понятия квадратных, смежных и неоднозначных квадратичных форм
Варианты
Идея метода Шенкса состоит в сопоставлении числу , которое надо разложить, квадратичной бинарной формы с дискриминантом , с которой потом выполняется серия эквивалентных преобразований и переход от формы к неоднозначной форме . Тогда, будет являться делителем .
Первый вариант работает с положительно определёнными бинарными квадратичными формами заданного отрицательного дискриминанта и в группе классов форм он находит амбигову форму, которая даёт разложение дискриминанта на множители. Сложность первого варианта составляет при условии истинности расширенной гипотезы Римана.Шаблон:Sfn
Второй вариант это SQUFOF, он использует группу классов бинарных квадратичных форм с положительным дискриминантом. В нём также происходит нахождение амбиговой формы и разложение дискриминанта на множители. Сложность SQUFOF составляет арифметических операций; при этом алгоритм работает с целыми числами, не превосходящими . Среди алгоритмов факторизации с экспоненциальной сложностью SQUFOF считается одним из самых эффективных.Шаблон:Sfn
Оценка сходимости
Согласно расчетам, выполненным самим Шенксом, число итераций первого и второго циклов алгоритма определяется числом сомножителей числа и равна примерно:
где — константа, равная примерно 2,4 для первого цикла итераций.Шаблон:Sfn
Описание алгоритма
Более подробно алгоритм может быть записан в следующем виде:Шаблон:Sfn
Вход: Нечетное составное число , которое требуется факторизовать. Если заменим на Теперь Последнее свойство нужно, чтобы определитель квадратичной формы был фундаментальным, что обеспечивает сходимость метода.
Выход: Нетривиальный делитель .
- 1. Определим исходную квадратичную форму , с дискриминантом , где .
- 2. Выполним цикл редуцирований , пока форма не станет квадратной.
- 3. Вычислим квадратный корень из
- 4. Выполним цикл редуцирований , пока значение второго коэффициента не стабилизируется . Число итераций этого цикла должно быть примерно равно половине от числа итераций первого цикла. Последнее значение даст делитель числа (возможно тривиальный).
Реализация алгоритма
Теперь опишем алгоритм для реализации на компьютере.Шаблон:Sfn Отметим, что хотя теоретическая часть алгоритма связана с эквивалентными преобразованиями квадратичных форм, практическая часть алгоритма выполняется на основе вычисления коэффициентов метода непрерывных дробей без обращения к формам. Каждая итерация цикла соответствует одной операции применения оператора редукции к соответствующей форме. При необходимости можно восстановить соответствующие формы по формулам:
Вход: Составное число
Выход: Нетривиальный делитель
- Инициализация алгоритма.
- Проверим, является ли полным квадратом. Если да, то вычислим и завершим вычисление. Иначе, перейдем к следующему пункту.
- Если тогда заменим на Определим
- Определим исходные значения параметров
- Первый цикл
- Продолжаем вычисления коэффициентов до тех пор, пока не найдем Q_k, являющееся полным квадратом. Это должно произойти при некотором Пусть для целого Перейдем к следующему циклу.
- Второй цикл.
- начнем цикл вычислений новых параметров Формулы для реализации второго цикла останутся такими же, как раньше. Изменятся только начальные значения параметров
- Вычисление следует продолжать, пока два подряд идущих значения не окажутся равными. Тогда, значение даст искомый делитель числа Описание алгоритма Шенкса закончено.
Как уже было упомянуто, это не единственная реализация этого алгоритма. Так же реализации алгоритма можно найти здесьШаблон:Sfn
Пример факторизации числа
Применим данный метод для факторизации числа Шаблон:Sfn
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Теперь можно увидеть во втором цикле, что Следовательно число
Применения
Данный алгоритм используется во многих реализациях NFS и QS для факторизации небольших вспомогательных чисел, возникающих при факторизации большого целого числа. В любом случае, SQUFOF используется в основном как вспомогательный алгоритм в более мощных алгоритмах факторизации и, следовательно, SQUFOF как правило, будет использоваться для факторизации чисел скромных размеров, не имеющих малых простых делителей. Такие числа, как правило, являются произведением небольшого числа различных простых чисел.Шаблон:Sfn.
Примечания
Литература
- Шаблон:Книга Шаблон:Wayback
- Шаблон:Книга
- Шаблон:Книга
- Шаблон:Книга
- Шаблон:Книга
- Шаблон:Книга
- Шаблон:Книга
- Шаблон:Книга
См. также
Шаблон:Теоретико-числовые алгоритмы
- ↑ Подробнее об истории этого метода и о его связи с методом непрерывных дробей можно узнать из статьи Говера и Вагстаффа (J. Gover, S.S. Wagstaff).
- ↑ Например в работе SQUARE FORM FACTORIZATION JASON E. GOWER AND SAMUEL S. WAGSTAFF, JR. Assumption 4.12. на странице 20, Assumption 4.5 на стр 16, также при доказательстве теорем о сложности алгоритма и т. д.