Кіріспе
Фрейвальдс алгоритмі (Rūsiņš Mārtiņš Freivalds) - матрица көбейтуін тексеру үшін қолданылатын ықтималдықпен рандомизацияланған алгоритм. Үш n × n матрицаны , , және , жалпы мәселе - A наив алгоритмінің көбейтіндісін анық есептеп, термин бойынша салыстыратынын және бұл көбейтінді тең екенін тексеру. Алайда, ең танымал матрица көбейту алгоритмі уақытында орындалады. Фрейвальдс алгоритмі жоғары ықтималдықпен байланысты осы уақытты азайту үшін кездейсоқ пайдалануды қолданады. Уақыт өте келе алгоритм қателік ықтималдығы кем матрицалық көбейтіндіге тексеруге болады .
with high probability. In time the algorithm can verify a matrix product with probability of failure less than .
Кірісі
Үш n × n матрица , , және .
Шығысы
Иә, егер; Жоқ, әйтпесе.
Процедура
n × 1 кездейсоқ 0/1 векторды құру Есептеу шығысы "Иә" егер; "Жоқ", басқа жағдайда.
Қате
Егер , онда алгоритм әрқашан "Иә" деп қайтарады. Егер , онда алгоритмнің "Иә" деп қайтару ықтималдығы жартыдан кем немесе тең. Бұл бір жақты қателік деп аталады. Алгоритмді k рет қайталап, "Иә" қайталау арқылы, егер барлық қайталаулар "Иә" қайталаса ғана, "иә" дегеннің орындалу уақыты мен қателік ықтималдығы қол жеткізіледі.
Қателерді талдау
P қателік ықтималдығына тең болсын. Біз егер A × B = C болса, онда p = 0, ал егер A × B ≠ C болса, онда p ≤ 1/2 деп айтамыз.
А × Б = С жағдайы
Бұл , тек қана , осыған байланысты , қателік ықтималдығы:
Жаңғақтар
Қарапайым алгоритмдік талдау осы алгоритмнің жұмыс істеу уақыты (үлкен O белгісімен) екенін көрсетеді. Бұл классикалық детерминистік алгоритмнің орындалу уақытын (немесе жылдам матрицалық көбейтуді пайдаланса) жеңеді. Қателерді талдау, егер алгоритм бірнеше рет орындалса, қателік шектілігі аз, экспоненциалды түрде аз мөлшерде қол жеткізілуі мүмкін екенін көрсетеді. Алгоритм сондай-ақ матрицалық векторлық өнімдерге арналған жылдам іске асырулардың кеңінен қол жетімділігімен тәжірибеде жылдам. Сондықтан кездейсоқ алгоритмдерді пайдалану өте баяу детерминистік алгоритмді жылдамдатуы мүмкін. Фрейвальдс алгоритмі оның қарапайымдылығы және кейбір проблемалар бойынша тәжірибеде ықтималдық алгоритмдердің артықшылығын қалай көрсететіндігі үшін ықтималдық алгоритмдерге кіріспеде жиі пайда болады.