Тест асоціативності
Тест асоціативності — перевірка бінарної операції на асоціативність. Наївна процедура перевірки, яка полягає у переборі всіх можливих трійок аргументів операції, вимагає часу, де — розмір множини, над яким визначено операцію. Ранні тести асоціативності не давали асимптотичних покращень порівняно з наївним алгоритмом, проте дозволяли покращити час роботи в окремих випадках. Наприклад, Роберт Тарджан 1972 року виявив, що запропонований 1949 року тест Лайта дозволяє виконати перевірку за , якщо досліджувана бінарна операція оборотна (задає квазігрупу). Перший імовірнісний тест, що покращує час роботи з до , був запропонований 1996 року Шрідхаром Раджаґопаланом і Леонардом Шульманом[en]. 2015 року було запропоновано квантовий алгоритм, що перевіряє операцію на асоціативність за час , що є поліпшенням у порівнянні з пошуком Ґровера, що працює за [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].
- ↑ Lee, Magniez, Santha, 2015
- ↑ а б Tarjan, 1972, p. 120
- ↑ а б Lipton, Regan, 2013
- ↑ IsAssociative. GAP - Reference Manual (англ.). The GAP Group. Архів оригіналу за 17 квітня 2021. Процитовано 1 вересня 2021.
- ↑ IsAssociative. Maple Help (англ.). Maplesoft. Архів оригіналу за 14 квітня 2021. Процитовано 14 серпня 2022.
- ↑ а б Rajagopalan, Schulman, 2000, p. 1162
- ↑ а б Sinclair, 2020
- ↑ а б Matoušek, Nešetřil, 2008
- ↑ Schulman, 2020
- ↑ Premchand, 1984, p. 257
- ↑ Clifford, Preston, 1961, pp. 7—8
- ↑ а б Rajagopalan, Schulman, 2000, pp. 1155—1156
- ↑ Rajagopalan, Schulman, 2000, pp. 1160—1161
- ↑ Rajagopalan, Schulman, 1996
- ↑ а б Rajagopalan, Schulman, 2000, pp. 1156—1157
- ↑ а б в Rajagopalan, Schulman, 2000, pp. 1158—1159
- ↑ Rajagopalan, Schulman, 2000, pp. 1159—1160
- A. Clifford, G. Preston Light's associativity test // The Algebraic Theory of Semigroups — USA: AMS, 1961. — Vol. 1. — P. 7–8. — 224 p. — ISBN 0-8218-0271-2 — doi:10.1090/SURV/007.1
- Lee T., Magniez F., Santha M. Improved Quantum Query Algorithms for Triangle Detection and Associativity Testing // Algorithmica — Springer Science+Business Media, 2015. — Vol. 77, Iss. 2. — P. 459–486. — 1302 p. — ISSN 0178-4617; 1432-0541 — doi:10.1007/S00453-015-0084-9 — arXiv:1210.1014
- Lipton R. J. Leonard Schulman: Associativity // People, Problems, and Proofs: Essays from Gödel's Lost Letter: 2010 — 2013. — P. 297–299. — 333 p. — doi:10.1007/978-3-642-41422-0_57
- Matoušek J., Nešetřil J. Probabilistic associativity testing // Invitation to Discrete Mathematics — 2 — NYC: OUP, 2008. — P. 388–392. — 443 p. — ISBN 978-0-19-857043-1
- S. Premchand Independence of axioms for biordered sets // Semigroup Forum — Springer Science+Business Media, 1984. — Vol. 28, Iss. 1. — P. 249–263. — 397 p. — ISSN 0037-1912; 1432-2137 — doi:10.1007/BF02572487
- Rajagopalan S., Schulman L. J. Verification of Identities // SIAM J. Comput. / M. Sudan — SIAM, 2000. — Vol. 29, Iss. 4. — P. 1155–1163. — 2097 p. — ISSN 0097-5397; 1095-7111 — doi:10.1137/S0097539797325387
- S. Rajagopalan, Schulman L. J. Verifying identities // Proceedings of 37th Conference on Foundations of Computer Science — 1996. — 638 p. — ISBN 0-8186-7594-2 — ISSN 0272-5428 — doi:10.1109/SFCS.1996.548520
- Schulman L. Verifying Associativity // Probability and Algorithms — California Institute of Technology, 2020. — P. 35–37. — 108 p.
- Sinclair A. Checking associativity // Randomness & Computation — UC Berkeley, 2020. — P. 5–6. — 7 p.
- Tarjan R. E. Determining whether a groupoid is a group // Inform. Process. Lett. — Elsevier BV, 1972. — Vol. 1, Iss. 3. — P. 120–124. — ISSN 0020-0190; 1872-6119 — doi:10.1016/0020-0190(72)90012-9