Если , то алгоритм всегда возвращает "Да". Если , то вероятность того, что алгоритм возвращает "Да", меньше или равна половине. Это называется односторонней ошибкой .
При повторении алгоритма k раз и возврате результата «Да» только в том случае, если все итерации дали результат «Да», достигается время выполнения и вероятность ошибки .
Пример
Предположим, что требуется определить:
Выбирается случайный двухэлементный вектор с элементами, равными, скажем, 0 или 1 , и используется для вычисления:
Это дает нулевой вектор, что предполагает возможность того, что AB = C. Однако если во втором испытании вектор будет выбран, результат станет следующим:
Результат не равен нулю, что доказывает, что на самом деле AB ≠ C.
Имеется четыре двухэлементных вектора 0/1, и половина из них дает нулевой вектор в этом случае ( и ), поэтому вероятность случайного выбора их в двух испытаниях (и ложного заключения, что AB=C) составляет 1/2 2 или 1/4. В общем случае доля r , дающая нулевой вектор, может быть меньше 1/2, и будет использоваться большее количество испытаний (например, 20), что делает вероятность ошибки очень малой.
Анализ ошибок
Пусть p равно вероятности ошибки. Мы утверждаем, что если A × B = C , то p = 0, а если A × B ≠ C , то p ≤ 1/2.
СлучайА × Б=С
Это не зависит от значения , поскольку используется только это . Следовательно, вероятность ошибки в этом случае равна:
СлучайА × Б≠С
Пусть такой, что
Где
.
Так как , то имеем, что некоторый элемент из не равен нулю. Предположим, что элемент . По определению умножения матриц имеем:
.
Для некоторой константы . Используя теорему Байеса , мы можем разбить по :
Алгоритм Фрейвальдса часто упоминается во введениях в вероятностные алгоритмы из-за его простоты и того, как он иллюстрирует превосходство вероятностных алгоритмов на практике для некоторых задач.
Фрейвальдс, Р. (1977). «Вероятностные машины могут использовать меньше времени выполнения». Обработка информации 77: труды Конгресса IFIP 77, Торонто, 8-12 августа 1977 г. Северная Голландия. стр. 839–842 . ISBN0-7204-0755-9. OCLC 878720415.
Митценмахер, Майкл ; Упфал, Эли (2005). "1.3 Приложение: Проверка умножения матриц". Вероятность и вычисления: Рандомизированные алгоритмы и вероятностный анализ . Cambridge University Press. С. 8–12 . ISBN0-521-83540-2.