Test de asociativitate

Test de asociativitate  - verificarea unei operații binare pentru asociativitate . Procedura de verificare naivă, care constă în enumerarea tuturor tripletelor posibile ale argumentelor operației, durează , unde  este dimensiunea mulțimii peste care este definită operația. Testele de asociativitate timpurii nu au oferit îmbunătățiri asimptotice față de algoritmul naiv, dar au îmbunătățit timpul de rulare în unele cazuri speciale. De exemplu, Robert Tarjan a descoperit în 1972 că testul lui Light, propus în 1949, permite testarea dacă operația binară studiată este reversibilă (specifică cvasigrupul). Primul test probabilistic care îmbunătățește timpul de rulare de la până la a fost propus în 1996 de Sridhar Rajagopalan și Leonard Shulman . În 2015, a fost propus un algoritm cuantic care verifică o operație pentru asociativitate în timp , ceea ce reprezintă o îmbunătățire față de căutarea lui Grover , care rulează în [1] .

Enunțul problemei

Având în vedere un tabel de mărime care descrie o operație închisă pe un set de dimensiuni , adică operația este dată de tabelul său Cayley și împreună cu această operație formează o magmă . Este necesar să se verifice dacă pentru oricare este satisfăcut (cu alte cuvinte, operația este asociativă ). Orice algoritm determinist care rezolvă această problemă va necesita nu mai puțin timp, deoarece fiecare celulă a tabelului Cayley trebuie citită cel puțin o dată. Enumerarea iterativă a tuturor triplelor , verificând dacă egalitatea este valabilă pentru fiecare triplă, durează [ 2] .

Motivație

Verificarea asociativității este una dintre problemele naturale care apar atunci când se lucrează cu tabele Cayley ale diferitelor operații [3] . În special, o astfel de verificare este implementată în sistemele de algebră computerizată GAP [4] și Maple [5] . În cel mai general caz, există operații pentru care toate triplele, cu excepția unuia, sunt asociative - un exemplu de astfel de operație pe elemente este operația astfel încât , și pentru toate celelalte elemente . Singurul său triplu neasociativ este , deoarece [6] . Datorită existenței unor astfel de operații, se poate avea impresia că verificarea asociativității va necesita prelucrarea tuturor triplelor posibile și, prin urmare, o îmbunătățire asimptotică a timpului de rulare a algoritmului este imposibilă [7] . Din același motiv, un algoritm probabilistic naiv care verifică asociativitatea triplelor selectate aleatoriu va necesita verificări pentru a garanta o probabilitate de eroare suficient de mică [8] . Cu toate acestea, algoritmul propus de Rajagopalan și Shulman arată că această estimare poate fi îmbunătățită și servește ca un exemplu clar al modului în care algoritmii probabilistici pot face față problemelor care par dificile pentru algoritmii determiniști - din 2020, algoritmii determiniști rezolvă o anumită problemă în subcubic. timp , necunoscut [9] .

Testul luminii

În 1961, Alfred Clifford și Gordon Preston au publicat în cartea Algebraic Semigroup Theory un test de asociativitate raportat unuia dintre autori de Dr. Light în 1949. Algoritmul constă în a lua în considerare pentru fiecare operație și . Prin definiție, o operație este asociativă dacă și numai dacă (tabelele de operații Cayley sunt aceleași) pentru toate [10] . Light a observat că dacă , adică y are un grup generator , atunci este suficient să se verifice numai pentru [11] [12] .

Dacă în definițiile de mai sus și , atunci .

Dovada

Să fie pentru toată lumea . Apoi .

În cel mai rău caz (de exemplu, pentru funcționarea maximă ), cel mai mic set generator de magmă poate fi format din elemente, astfel încât testul va trebui să fie efectuat pentru toate elementele , ceea ce va dura timp. În 1972 , Robert Tarjan a observat că testul lui Light poate fi eficient pentru a testa dacă o anumită operație definește un grup [2] . Acest lucru se datorează faptului că pentru unele tipuri speciale de operații, inclusiv operații care satisfac axioma de grup a prezenței unui element invers , este întotdeauna posibil să se selecteze un set generator de dimensiune mică [12] .

Fie ca orice ecuație de formă să aibă o soluție unică (adică un cvasigrup ). Apoi , este posibil să se evidențieze cel mult un set generator de dimensiune .

Dovada

Să fie un subset astfel încât și . Apoi, datorită faptului că este un cvasigrup, , deoarece toate elementele formei for sunt diferite și nu sunt conținute în . Astfel, adăugarea secvențială la elementele vederii poate fi făcută nu mai mult de o dată.

Prin definiție, este un cvasigrup dacă și numai dacă tabloul său Cayley este un pătrat latin , care poate fi verificat în timp . Aplicarea procedurii descrise mai sus la un cvasigrup permite, la rândul său , să se verifice determinist dacă , este un grup , pentru [13] .

Testul Rajagopalan-Schulman

Primul test subcubic a fost algoritmul de tip Monte Carlo propus în 1996 [14] Sridhar Rajagopalan de la Universitatea Princeton și Leonard Shulman de la Institutul de Tehnologie din Georgia . Procedura propusă de aceștia necesită timp, unde  este probabilitatea de eroare maximă admisă [3] [7] .

Algoritm

Algoritmul folosește o algebră de grupă  — un spațiu liniar ( algebră ) peste un câmp de dimensiune cu două elemente , ai cărui vectori de bază corespund tuturor elementelor diferite ale magmei . Vectorii unui astfel de spațiu au forma

, Unde

Au operația de sumă

, unde denotă adăugare și în

precum și funcționarea produsului

, unde denotă produsul și în

Produsul vectorilor într-o astfel de algebră devine mai intuitiv dacă ne gândim că pentru orice pereche de vectori de bază este definit ca , iar produsul oricărei alte perechi de vectori se obține prin „deschiderea parantezelor” și rearanjarea termenilor. De exemplu, pentru produsul are forma

iar substituția are ca rezultat o expresie corespunzătoare definiției generale [8] . Pentru algebra definită în acest fel, următoarea lemă este valabilă [15] :

Operația inițială de magmă este asociativă dacă și numai dacă pentru orice . Dacă operația nu este asociativă, atunci probabilitatea ca egalitatea specificată să fie satisfăcută pentru o triplă aleasă uniform aleatoriu nu depășește .

Pentru a verifica asociativitatea se aleg aleatoriu , pentru care . O astfel de verificare poate fi efectuată în timp , iar pentru a obține o probabilitate de eroare care să nu depășească , este suficient să se efectueze verificări, care dă timpul total de rulare [15] .

Operațiuni arbitrare

Abordarea lui Rajagopalan și Shulman poate fi generalizată pentru a testa identitățile generale, cu condiția ca fiecare variabilă să apară exact o dată în partea stângă și dreaptă a identității [16] .

De exemplu, putem considera o mulțime pe elementele căreia sunt specificate trei operații: „unire” , „intersecție” și „adăugare” . Este necesar să se verifice că . Pentru a face acest lucru, putem lua în considerare operațiile induse

, și

și verificați dacă pentru aceste operații în este adevărat . În forma cea mai generală, procedura poate fi caracterizată prin următoarea teoremă [16] :

Fie mulțimi finite și o mulțime de operații definite pe produse carteziene finite ale acestor mulțimi astfel încât operația să fie definită pe mulțime , unde este aritatea operației . Apoi verificarea adevărului identității compuse din aceste operații, astfel încât fiecare variabilă să apară în părțile sale din stânga și din dreapta exact o dată, poate fi efectuată în timp , unde este cea mai mare dimensiune posibilă a domeniului de definiție , este numărul total. de operațiuni utilizate în identitate, este numărul total de variabile, este cea mai mare probabilitate de eroare admisă.

În cazul , operația are un domeniu de dimensiune , și de aceea complexitatea de calcul a procedurii ia forma , în timp ce o verificare naivă ar necesita operații [16] .

Acest rezultat poate fi îmbunătățit dacă luăm în considerare algebra pentru un număr prim . În acest caz, conform lemei Schwarz-Zippel , probabilitatea de a respinge o identitate incorectă într-o singură iterație poate fi îmbunătățită de la la , ceea ce corespunde unei probabilități constante pentru și ne permite să îmbunătățim timpul de rulare la [6] .

Caută un martor non-identic

Algoritmul poate fi modificat pentru a găsi un anumit set de variabile pe care identitatea eșuează. De exemplu, luați în considerare căutarea unui triplu non-asociativ în timp . Să se știe pentru unii că . Aceste elemente pot fi asociate cu un triplu , astfel încât dacă , atunci este de asemenea egal cu , iar dacă , atunci este ales aleatoriu între și (în mod similar pentru și ). Pentru probabilitatea ca , estimarea de jos va fi în continuare adevărată , deci procedura se poate repeta până când fiecare dintre elemente are o unitate în doar una dintre poziții, care va corespunde triplu-ului neasociativ dorit în [17] .

Note

  1. Lee, Magniez, Santha, 2015
  2. ↑ 12 Tarjan , 1972 , p. 120
  3. ↑ 1 2 Lipton, Regan, 2013
  4. IsAssociative  . _ GAP-Manual de referință . Grupul GAP. Preluat la 1 septembrie 2021. Arhivat din original la 17 aprilie 2021.
  5. IsAssociative  . _ Maple Ajutor . maplesoft. Preluat la 14 august 2022. Arhivat din original la 14 aprilie 2021.
  6. ↑ 1 2 Rajagopalan, Schulman, 2000 , p. 1162
  7. ↑ 12 Sinclair , 2020
  8. ↑ 1 2 Matousek, Nešetřil, 2008
  9. Schulman, 2020
  10. Premchand, 1984 , p. 257
  11. Clifford, Preston, 1961 , pp. 7-8
  12. ↑ 1 2 Rajagopalan, Schulman, 2000 , pp. 1155-1156
  13. Rajagopalan, Schulman, 2000 , pp. 1160-1161
  14. Rajagopalan, Schulman, 1996
  15. ↑ 1 2 Rajagopalan, Schulman, 2000 , pp. 1156-1157
  16. ↑ 1 2 3 Rajagopalan, Schulman, 2000 , pp. 1158-1159
  17. Rajagopalan, Schulman, 2000 , pp. 1159-1160

Literatură