Тест асоціативності — перевірка бінарної операції на асоціативність. Наївна процедура перевірки, яка полягає у переборі всіх можливих трійок аргументів операції, вимагає часу, де  — розмір множини, над яким визначено операцію. Ранні тести асоціативності не давали асимптотичних покращень порівняно з наївним алгоритмом, проте дозволяли покращити час роботи в окремих випадках. Наприклад, Роберт Тарджан 1972 року виявив, що запропонований 1949 року тест Лайта дозволяє виконати перевірку за , якщо досліджувана бінарна операція оборотна (задає квазігрупу). Перший імовірнісний тест, що покращує час роботи з до , був запропонований 1996 року Шрідхаром Раджаґопаланом і Леонардом Шульманом[en]. 2015 року було запропоновано квантовий алгоритм[en], що перевіряє операцію на асоціативність за час , що є поліпшенням у порівнянні з пошуком Ґровера, що працює за [1].

Постановлення задачі ред.

Наведена таблиця розміру  , що описує замкнуту операцію   на множині   розміру  , тобто операція   задана своєю таблицею Келі, а   разом з цією операцією утворює магму. Необхідно перевірити, що для будь-яких   виконано   (іншими словами, операція асоціативна). Будь-який детермінований алгоритм, який вирішує це завдання, вимагатиме не менше   часу, бо кожна чарунка таблиці Келі має бути лічена хоча б раз. Повний перебір всіх трійок   з перевіркою того, що рівність виконується для кожної трійки, потребує   часу[2].

Мотивація ред.

Перевірка асоціативності — одне з природних завдань, що виникають при роботі з таблицями Келі різних операцій[3]. Зокрема, така перевірка вбудована в системах комп'ютерної алгебри GAP[4] і Maple[5]. У найзагальнішому випадку існують операції, для яких усі трійки, крім однієї, є асоціативними — прикладом такої операції на   елементах служить операція  , така що  , а для всіх інших елементів  . Її єдиною неасоціативною трійкою є  , оскільки  [6]. Через існування таких операцій може скластися враження, що перевірка асоціативності вимагатиме обробки всіх можливих трійок і тому асимптотичне покращення часу роботи алгоритму неможливе[7]. З цієї ж причини наївний імовірнісний алгоритм, що перевіряє асоціативність випадковим чином обраних трійок, вимагатиме   перевірок, щоб убезпечити досить низьку ймовірність помилки[8]. Однак запропонований Раджаґопаланом і Шульманом алгоритм показує, що цю оцінку можна покращити, і служить наочним прикладом того, як імовірнісні алгоритми можуть справлятися із завданнями, які виглядають складними для детермінованих алгоритмів — станом на 2020 рік детерміновані алгоритми, що вирішують це завдання за субкубічний час, невідомі[9].

Тест Лайта ред.

1961 року Альфред Кліффорд[en] і Ґордон Престон[en] опублікували у книзі «Алгебраїчна теорія напівгруп» (англ. The Algebraic Theory of Semigroups) тест асоціативності, повідомлений одному з авторів доктором Лайтом 1949 року. Алгоритм полягає у розгляді для кожного   операцій   і  . За визначенням, операція   асоціативна якщо і тільки якщо   (таблиці Келі операцій збігаються) для всіх  [10]. Лайт звернув увагу, що якщо  , тобто   має породжувальну множину  , то перевірку достатньо провести лише для  [11][12].

Якщо у визначеннях вище   і  , то  .

У гіршому випадку (наприклад, для операції максимуму) найменша породжувальна множина магми може складатися з   елементів, тому тест доведеться провести для всіх елементів  , що займе   часу. 1972 року Роберт Тарджан звернув увагу на те, що тест Лайта може бути дієвим для перевірки того, чи задає задана операція групу[2]. Це пов'язано з тим, що для деяких спеціальних операцій, зокрема операцій, що задовольняють груповій аксіомі наявності зворотного елемента, завжди можна виділити породжувальну множину невеликого розміру[12].

Нехай у   будь-яке рівняння виду   має єдине рішення   (тобто  квазігрупа). Тоді в   можна виділити породжувальну множину   розміром не більше  .

За визначенням,   є квазігрупою якщо і тільки якщо її таблиця Келі є латинським квадратом, що може бути перевірено за час  . Застосування до квазігрупи описаної вище процедури дозволяє своєю чергою детерміновано перевірити, чи є   групою, за  [13].

Тест Раджаґопалана — Шульмана ред.

Першим субкубічним тестом став алгоритм типу Монте-Карло, запропонований 1996 року[14] Шрідхаром Раджагопаланом з Принстонського університету та Леонардом Шульманом[en] з Технологічного інституту Джорджії. Запропонована ними процедура вимагає   часу, де   — найбільша припустима ймовірність помилки[3][7].

Алгоритм ред.

Алгоритм використовує групоїдну алгебру[en]   — лінійний простір (алгебру) над двохелементним полем   розмірності  , базисні вектори   якого відповідають усім різним елементам магми  . Вектори такого простору мають вигляд

 , де  

Для них визначено операцію суми

 , де   позначає додавання   і   в  

а також операція добутку

 , де   позначає добуток   і   у  

Добуток векторів у такій алгебрі стає інтуїтивнішим, якщо вважати, що для будь-якої пари базисних векторів він визначений як  , а твір будь-якої іншої пари векторів виходить «розкриттям дужок» та перегрупуванням доданків. Наприклад, для   добуток має вигляд

 

а при підстановці   виходить вираз, що відповідає загальному визначенню[8]. Для визначеної таким чином алгебри має місце наступна лема[15]:

Операція вихідної магми є асоціативною якщо і тільки якщо   для будь-яких  . Якщо операція не асоціативна, то ймовірність того, що вказана рівність буде виконана для випадкової рівномірно обраної трійки  , не перевершує  .

Для перевірки асоціативності вибираються випадкові  , для котрих перевіряється  . Така перевірка може бути здійснена за час  , а для досягнення ймовірності помилки, яка не перевищує  , достатньо зробити   перевірок, що дає загальний час роботи  [15].

Довільні операції ред.

Підхід Раджаґопалана і Шульмана може бути узагальнений для перевірки тотожностей загального виду за умови, що кожна змінна зустрічається рівно один раз у лівій та правій частині тотожності[16].

Наприклад можна розглянути множину  , на елементах якого задано три операції: «об'єднання»  , «перетин»   і «доповнення»  . Необхідно перевірити, що  . Для цього можна розглянути індуковані на   операції

 ,   і  

і перевірити, що для цих операцій у   вірно  . У найзагальнішому вигляді процедуру можна охарактеризовати наступною теоремою[16]:

Нехай   — кінцеві множини, а   — набір операцій, визначених над кінцевими декартовими добутками цих множин, таких як операція   визначена на множині  , де  арність операції  . Тоді перевірка на істинність складеної з цих операцій тотожності, такої, що кожна змінна зустрічається в лівій та правій його частинах рівно один раз, може бути виконана за час  , де   — найбільший можливий розмір області визначення  ,   — сумарна кількість використаних у тотожності операцій,   — сумарна кількість змінних,   — найбільша припустима ймовірність помилки.

У випадку   операція   має область визначення розміру  , у зв'язку з чим   і обчислювальна складність процедури набуває вигляду  , тоді як наївна перевірка вимагала би   операцій[16].

Даний результат може бути поліпшено, якщо замість   розглядати алгебру   для простого числа  . У такому разі, за лемою Шварца — Зіппеля[en], ймовірність спростування невірної тотожності за одну ітерацію може бути поліпшено з   до  , що при   відповідає константній імовірності   і дозволяє покращити час роботи до  [6].

Пошук свідка нетотожності ред.

Алгоритм може бути модифікований для знаходження конкретного набору змінних, на яких не виконується тотожність. Наприклад, можна розглянути пошук неасоціативної трійки   за час  . Нехай для деяких   відомо, що  . Цим елементам можна порівняти трійку  , таку що якщо  , то   також дорівнює  , а якщо  , то   вибирається випадковим чином між   и   (так само для   и  ). Для ймовірності того, що  , буде все ще правильна оцінка знизу  , тому процедуру можна повторювати доти, доки кожен із елементів   не матиме одиницю лише в одній з позицій, що відповідатиме шуканій неасоціативній трійці в  [17].

Примітки ред.

  1. Lee, Magniez, Santha, 2015
  2. а б Tarjan, 1972, p. 120
  3. а б Lipton, Regan, 2013
  4. IsAssociative. GAP - Reference Manual (англ.). The GAP Group. Архів оригіналу за 17 квітня 2021. Процитовано 1 вересня 2021.
  5. IsAssociative. Maple Help (англ.). Maplesoft. Архів оригіналу за 14 квітня 2021. Процитовано 14 серпня 2022.
  6. а б Rajagopalan, Schulman, 2000, p. 1162
  7. а б Sinclair, 2020
  8. а б Matoušek, Nešetřil, 2008
  9. Schulman, 2020
  10. Premchand, 1984, p. 257
  11. Clifford, Preston, 1961, pp. 7—8
  12. а б Rajagopalan, Schulman, 2000, pp. 1155—1156
  13. Rajagopalan, Schulman, 2000, pp. 1160—1161
  14. Rajagopalan, Schulman, 1996
  15. а б Rajagopalan, Schulman, 2000, pp. 1156—1157
  16. а б в Rajagopalan, Schulman, 2000, pp. 1158—1159
  17. Rajagopalan, Schulman, 2000, pp. 1159—1160

Література ред.