Test asociativity - kontrola asociativnosti binární operace . Naivní verifikační procedura, která spočívá ve výčtu všech možných trojic argumentů operace, zabere čas, kde je velikost množiny, nad kterou je operace definována. Časné testy asociativity neposkytly asymptotická zlepšení oproti naivnímu algoritmu, ale v některých speciálních případech zlepšily dobu běhu. Například Robert Tarjan v roce 1972 zjistil, že Lightův test, navržený v roce 1949, umožňuje ověřit, zda je studovaná binární operace vratná (dává kvazigrupu). První pravděpodobnostní test, který zlepšuje provozní dobu z do byl navržen v roce 1996 Sridharem Rajagopalanem a Leonardem Shulmanem . V roce 2015 byl navržen kvantový algoritmus , který kontroluje asociativitu operace v čase , což je vylepšení oproti Groverovu vyhledávání , které běží v [1] .
Je dána tabulka velikostí popisující uzavřenou operaci na množině velikostí , to znamená, že operace je dána její Cayleyovou tabulkou a spolu s touto operací tvoří magma . Je nutné zkontrolovat, zda je u libovolného splněno (jinými slovy operace je asociativní ). Jakýkoli deterministický algoritmus, který řeší tento problém, nebude vyžadovat méně času, protože každou buňku Cayleyovy tabulky je nutné přečíst alespoň jednou. Iterativní výčet všech trojic a kontrola, zda platí rovnost pro každou trojici, zabere čas [2] .
Kontrola asociativity je jedním z přirozených problémů, které vznikají při práci s Cayleyho tabulkami různých operací [3] . Zejména je taková kontrola implementována v systémech počítačové algebry GAP [4] a Maple [5] . V nejobecnějším případě existují operace, pro které jsou všechny trojice kromě jedné asociativní - příkladem takové operace s prvky je operace typu , a pro všechny ostatní prvky . Jeho jediná neasociativní trojice je , protože [6] . Vzhledem k existenci takových operací může člověk nabýt dojmu, že kontrola asociativity bude vyžadovat zpracování všech možných trojic, a proto není možné asymptotické zlepšení doby běhu algoritmu [7] . Ze stejného důvodu bude naivní pravděpodobnostní algoritmus, který kontroluje asociativitu náhodně vybraných trojic, vyžadovat kontroly zaručující dostatečně nízkou pravděpodobnost chyby [8] . Algoritmus navržený Rajagopalanem a Shulmanem však ukazuje, že tento odhad lze zlepšit, a slouží jako jasný příklad toho, jak se pravděpodobnostní algoritmy dokážou vypořádat s problémy, které pro deterministické algoritmy vypadají obtížně – od roku 2020 deterministické algoritmy řeší daný problém v subkubickém čas , neznámý [9] .
V roce 1961 Alfred Clifford a Gordon Preston publikovali v knize Algebraic Semigroup Theory test asociativnosti, který jednomu z autorů oznámil Dr. Light v roce 1949. Algoritmus spočívá v uvažování pro každou operaci a . Podle definice je operace asociativní právě tehdy, když (Cayleyovy tabulky operací jsou stejné) pro všechny [10] . Light si všiml, že pokud má , tedy y generující množinu , stačí zkontrolovat pouze [11] [12] .
Pokud ve výše uvedených definicích a , pak . |
Ať je to pro všechny . Pak . ■
V nejhorším případě (například pro maximální provoz ) se může nejmenší sada generátorů magmatu skládat z prvků, takže test bude muset být proveden pro všechny prvky , což zabere čas. V roce 1972 si Robert Tarjan všiml, že Lightův test může být účinný pro testování, zda daná operace definuje skupinu [2] . Je to dáno tím, že pro některé speciální typy operací, včetně operací splňujících grupový axiom přítomnosti inverzního prvku , je vždy možné zvolit generující množinu malé velikosti [12] .
Nechť jakákoli rovnice tohoto tvaru má jedinečné řešení (tj . kvazigrupu ). Pak je možné vyčlenit generující sadu velikosti maximálně . |
Dovolit být nějaká podmnožina taková, že a . Potom, vzhledem k tomu, že se jedná o kvazigrupu, , protože všechny prvky tvaru for jsou různé a nejsou obsaženy v . Sekvenční přidávání prvků pohledu tedy nelze provést více než jednou. ■
Podle definice je kvazigrupa právě tehdy, když její Cayleyovo tablo je latinský čtverec , což lze ověřit v čase . Použití výše popsaného postupu na kvazigrupu zase umožňuje deterministicky ověřit, zda , je grupa , pro [13] .
Prvním subkubickým testem byl algoritmus typu Monte Carlo navržený v roce 1996 [14] Rajagopalanem z Princetonské univerzity a Leonardem Shulmanem z Georgia Institute of Technology . Jimi navrhovaný postup vyžaduje čas, kde je maximální dovolená pravděpodobnost chyby [3] [7] .
Algoritmus používá grupoidní algebru — lineární prostor ( algebra ) nad dvouprvkovým polem dimenze , jehož základní vektory odpovídají všem různým prvkům magmatu . Vektory takového prostoru mají tvar
, kdeMají operaci součtu
, kde označuje přidání a instejně jako provoz produktu
, kde označuje produkt a inSoučin vektorů v takové algebře se stává intuitivnějším, pokud uvážíme, že pro jakoukoli dvojici základních vektorů je definován jako , a součin jakékoli jiné dvojice vektorů se získá „otevřením závorek“ a přeskupením podmínek. Například pro produkt má tvar
a substituce vede k výrazu odpovídajícímu obecné definici [8] . Pro takto definovanou algebru platí následující lemma [15] :
Počáteční operace magmatu je asociativní tehdy a jen tehdy, pokud pro nějakou . Pokud operace není asociativní, pak pravděpodobnost, že zadaná rovnost bude splněna pro náhodně rovnoměrně vybranou trojici , nepřekročí . |
Pro kontrolu asociativnosti jsou vybrány náhodné , pro které . Takovou kontrolu lze provést v čase a k dosažení pravděpodobnosti chyby nepřesahující , stačí provést kontroly, které udají celkovou dobu běhu [15] .
Přístup Rajagopalana a Shulmana lze zobecnit pro testování obecných identit za předpokladu, že se každá proměnná vyskytuje přesně jednou na levé a pravé straně identity [16] .
Můžeme například uvažovat množinu , na jejíchž prvcích jsou specifikovány tři operace: "union" , "intersection" a "addition" . Je potřeba to zkontrolovat . K tomu můžeme uvažovat vyvolané operace
a _a zkontrolujte, že pro tyto operace v je pravda . V nejobecnější podobě lze proceduru charakterizovat následující větou [16] :
Dovolit být konečné množiny a být množinou operací definovaných na konečných kartézských součinech těchto množin tak, že operace je definována na množině , kde je arita operace . Pak lze ověření pravdivosti identity složené z těchto operací tak, že se každá proměnná vyskytuje ve své levé a pravé části právě jednou, provést v čase , kde je největší možná velikost definičního oboru , je celkový počet operací použitých v identitě, je celkový počet proměnných, je největší přípustná pravděpodobnost chyby. |
V případě má operace velikostní doménu , a proto výpočetní složitost procedury nabývá tvaru , zatímco naivní kontrola by vyžadovala operace [16] .
Tento výsledek lze zlepšit, pokud místo toho vezmeme v úvahu algebru pro prvočíslo . V tomto případě lze podle Schwarz-Zippelova lemmatu pravděpodobnost vyvrácení nesprávné identity v jedné iteraci zlepšit z na , což odpovídá konstantní pravděpodobnosti pro a umožňuje nám zlepšit průběžnou dobu na [6] .
Algoritmus lze upravit tak, aby našel konkrétní sadu proměnných, u kterých identita selhává. Zvažte například hledání neasociativního trojnásobku v čase . Ať je to u některých znát . Tyto prvky mohou být spojeny s triple , takže if , then je také rovno , a if , then je vybráno náhodně mezi a (podobně pro a ). Pro pravděpodobnost, že , odhad zdola bude stále pravdivý , lze tedy postup opakovat, dokud každý z prvků nebude mít jednotku pouze v jedné z pozic, která bude odpovídat požadovanému neasociativnímu trojici v [17] .