Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Тест Агравала — Каяла — Саксены

Из Википедии — свободной энциклопедии

Тест Аграва́ла — Кая́ла — Саксе́ны (тест AKS) — единственный известный на данный момент универсальный (то есть применимый ко всем числам) полиномиальный, детерминированный и безусловный (то есть не зависящий от недоказанных гипотез) тест простоты чисел, основанный на обобщении малой теоремы Ферма на многочлены.

Формулировка

Если существует такое, что и для любого от 1 до выполняется сравнение ,
то — либо простое число, либо степень простого числа.

Здесь и далее обозначает показатель числа  по модулю ,  — двоичный логарифм и  — функция Эйлера[1].

Сравнение по двум модулям вида

для многочленов означает, что существует такой, что все коэффициенты многочлена кратны , где  — кольцо многочленов от над целыми числами[1].

История

Тест AKS был предложен индийским учёным Мани́ндрой Аграва́лом[en] и его двумя студентами Ни́раджем Кая́лом[en] и Нити́ном Саксе́ной[en] Индийского технического института Канпура[en] и впервые опубликован 6 августа 2002 года[2]. До этой публикации принадлежность задачи распознавания простоты классу P являлась открытой проблемой.

Вычислительная сложность изначального алгоритма оценивается как . В предположении верности гипотезы Артина, время выполнения улучшается до . В предположении верности гипотезы Софи Жермен время также стремится к [2].

В 2005 году Ленстра и Померанс опубликовали улучшенный вариант алгоритма с вычислительной сложностью , где  — проверяемое тестом число[3][4].

Согласно гипотезе Агравала существует вариант алгоритма с временем выполнения , но Ленстра и Померанс привели эвристический аргумент, подтверждающий ложность этой гипотезы[2].

Данный алгоритм имеет важное теоретическое значение, но на практике не применяется, так как его вычислительная сложность значительно выше, чем у лучших вероятностных алгоритмов[5]. За своё открытие авторы получили премию Гёделя и премию Фалкерсона в 2006 году[6].

Основные свойства

Основное свойство алгоритма заключается в том, что он одновременно универсален, полиномиален, детерминирован и безусловен[5], предыдущие алгоритмы обладали максимум лишь тремя из этих четырёх свойств.

Универсальность теста означает, что он может использоваться для проверки простоты любых чисел. Многие быстрые тесты предназначены для проверки чисел из ограниченного множества. Например, тест Люка — Лемера работает только для чисел Мерсенна, а тест Пепина применим лишь к числам Ферма[6].

Полиномиальность означает, что наибольшее время работы алгоритма ограничено многочленом от количества цифр в проверяемом числе. При этом такие тесты, как тест эллиптических кривых (ECPP) и тест Адлемана — Померанса — Румели (APR), могут доказать или опровергнуть простоту числа, но для них не доказано, что время работы будет полиномиальным для любого входного числа[6].

Детерминизм гарантирует получение уникального предопределённого результата. Вероятностные тесты, такие, как тест Миллера — Рабина и тест Бейли — Померанца — Селфриджа — Уогстаффа, могут проверить простоту числа за полиномиальное время, но при этом дают лишь вероятностный ответ[6].

Безусловность — свойство, заключающееся в том, что корректность алгоритма не зависит от каких-либо недоказанных гипотез. Этим свойством не обладает, например, Тест Миллера, который хоть и детерминирован и работает за полиномиальное время для любого входного числа, но его корректность зависит от недоказанной обобщённой гипотезы Римана[6].

Основная идея

Основной идеей алгоритма является обобщение малой теоремы Ферма на многочлены, утверждающее, что для всех (где кольцо  взято без обратных элементов по умножению и нулевого элемента) и ,  — простое тогда и только тогда, когда[2][7][8]:

 

 

 

 

1

Иными словами, если , , и НОД, то простое тогда и только тогда, когда выполнено условие (1).

На проверку этого выражения требуется время, оцениваемое в , поскольку в худшем случае следует оценить коэффициентов в левой части. Для сокращения числа коэффициентов и сложности вычислений было выбрано такое , чтобы использовать в качестве теста на простоту выражение[2]:

которое получается делением обеих частей исходного выражения на [7].

Здесь количество подлежащих проверке значений и значение уже ограничены многочленом от [8].

В этом случае вместо факторкольца рассматривается поле , где  — неприводимый делитель над конечным полем , отличный от . Оценивается число многочленов этого поля, для которых выполняется сравнение:

Алгоритм и его модификация

Ввод: целое число .
  1. Если для целых чисел и , вернуть «составное».
  2. Найдем наименьшее , такое что .
  3. Если НОД для некоторого , вернуть «составное».
  4. Если , вернуть «простое».
  5. Если для всех от 1 до верно, что , вернуть «простое».
  6. Иначе вернуть «составное».

Агравалом, Каялом и Саксеной доказано, что алгоритм вернёт «простое» тогда и только тогда, когда  — простое число.

Ленстра и Померанс опубликовали улучшенный вариант алгоритма[8][4]:

Ввод: ,
  1. Если для и целого , вернуть «составное».
  2. Найдем наименьшее такое что .
  3. Если НОД для любого , вернуть «составное».
  4. Если для всех от 1 до верно, что , вернуть «простое».
  5. Иначе вернуть «составное».

Здесь функция  — та же,  — многочлен степени, большей , такой, что при некоторых дополнительных условиях[1][8].

Вычислительная сложность этого алгоритма — .

Обоснование

В обосновании используется группа  — группа всех чисел, которые являются вычетами по модулю для чисел из набора[9]:

Данная подгруппа, назовём её группой , уже содержит . Группа порождена по модулю , и так как , то .

Вторая группа, используемая в доказательстве, , является множеством всех вычетов многочленов в (пространстве простых чисел) по модулю и . Эта группа порождена элементами в поле и является подгруппой мультипликативной группы поля [9].

Основные промежуточные леммы и определения, используемые в обосновании алгоритма[2]:

  • Пусть , , и НОД. Тогда является простым тогда и только тогда, когда
  • Пусть НОК обозначает наименьшее общее кратное первых чисел. Тогда для справедливо неравенство:
    НОК
  • Существует такое, что , такое что .
  • Определение. Для многочлена и числа , говорится что включено в , если .
  • Если числа и включены в , то их произведение также включено.
  • Если число включено в и , то так же включено в .
  • Лемма Ленстры. .
  • Если не является степенью , то .

Практическое применение

При оценке параметра алгоритм требует 1 000 000 000 Гб (гигабайт) памяти для чисел из 1024 бит. Для современных операционных систем это слишком большой объём информации. В предположении верности гипотезы Артина и гипотезы Софи Жермен о плотности множества простых чисел для алгоритма будет достаточно значения параметра , оцениваемого в . В этом случае будет достаточно 1 Гб памяти. Но пока верность этих гипотез не доказана, алгоритм не применяется ввиду сложного исполнения. Дональд Кнут, поместивший алгоритм во второй том Искусства программирования (издание 3), в частной переписке отметил его чисто теоретический характер[6].

Примечания

  1. 1 2 3 Агафонова, 2009.
  2. 1 2 3 4 5 6 Agrawal, Kayal, Saxena, 2004.
  3. H. W. Lenstra Jr. and Carl Pomerance, «Primality Testing with Gaussian Periods Архивная копия от 28 апреля 2021 на Wayback Machine», preliminary version July 20, 2005.
  4. 1 2 H. W. Lenstra Jr. and Carl Pomerance, «Primality testing with Gaussian periods Архивная копия от 25 февраля 2012 на Wayback Machine», version of April 12, 2011.
  5. 1 2 Бараш, 2005.
  6. 1 2 3 4 5 6 Cao, Liu, 2014.
  7. 1 2 Menon, 2007, pp. 10—11.
  8. 1 2 3 4 Salembier, Southerington, 2005.
  9. 1 2 Agrawal, Kayal, Saxena, 2004, p. 5.

Литература

на английском языке

Ссылки



Эта страница в последний раз была отредактирована 14 августа 2022 в 19:22.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).