Freivaldův algoritmus

Freivaldsův algoritmus (pojmenovaný po Rusins ​​​​Martins Freivalds ) je pravděpodobnostní randomizovaný algoritmus používaný k ověření maticového produktu . Pro tři matice a velikost je nutné to zkontrolovat . Naivním algoritmem pro řešení tohoto problému je explicitně vypočítat a porovnat prvek po prvku výslednou matici s . Nejznámější algoritmus pro násobení matic však běží v čase [1] . Freivaldův algoritmus používá randomizaci ke snížení daného odhadu na [2] s vysokou pravděpodobností . Během algoritmus může kontrolovat maticový součin s pravděpodobností chyby nepřesahující .

Algoritmus

Vstup

Tři matice a velikosti . _

Závěr

"Ano", pokud ; "Ne" jinak.

Postup

  1. Vygenerujte náhodný vektor velikosti nul a jedniček .
  2. Vypočítejte .
  3. Výstup "Ano" pokud ; "Ne" jinak.

Pravděpodobnost chyby

Pokud , pak algoritmus vždy vrátí "Ano". Pokud , pak pravděpodobnost, že algoritmus vrátí "Ano", není větší než .

Pokud provedeme algoritmus jednou a vrátíme "Ano" pouze v případě, že při každé iteraci byla přijata odpověď "Ano", dostaneme algoritmus s dobou běhu a pravděpodobností chyby .

Příklad

Zkontrolujeme, že:

Vybere se například náhodný vektor nul a jedniček, poté se použije pro výpočty:

Skutečnost, že je získán nulový vektor, znamená, že . Pokud je však vektor použit ve druhé iteraci , získá se následující výsledek:

Výsledný vektor není nula, což dokazuje, že .

V uvažovaném případě existují pouze čtyři dvouprvkové vektory nul a jedniček a na polovině z nich je získán nulový vektor ( a ), takže pravděpodobnost, že bude v obou případech zvolen jeden z těchto vektorů (což povede k falešný závěr, že ) se rovná nebo . Obecně platí, že zlomek vektorů , který implikuje nulový vektor, může být menší než a použití více iterací (například 20) způsobí, že pravděpodobnost chyby bude zanedbatelná.

Analýza algoritmů

Nechť pravděpodobnost chyby je . Když , tak , když , tak .

Případ A  ×  B = C

Získaný výsledek nezávisí na , protože pouze na skutečnosti , že . Pravděpodobnost chyby v tomto případě je tedy:

Případ A  ×  B ≠ C

Nechť je matice taková, že

Kde

.

Protože některé prvky matice nejsou rovny nule. Nechte _ Podle definice maticového produktu :

.

Pro nějakou stálou . Pomocí Bayesova teorému lze rozšířit pravděpodobnost z hlediska :

.

Tyto pravděpodobnosti lze odhadnout následovně:

Dosazením těchto výrazů do původní rovnosti lze dospět k:

Takto,

Viz také

Odkazy

  1. Virginia Vassilevska Williamsová. Prolomení Coppersmith-Winogradské bariéry . Získáno 11. listopadu 2019. Archivováno z originálu 30. dubna 2013.
  2. Raghavan, Prabhakar. Randomizované algoritmy //  ACM Computing Surveys   : deník. - 1997. - Sv. 28 . — S. 33 . - doi : 10.1145/234313.234327 .