В 1979 году Фрейвалдс показал, что верификация матричных произведений по любому полю может быть выполнена за рандомизированное время . Более формально, учитывая три матрицы A, B и C, с записями из поля F, проблема проверки, имеет ли AB = C случайный O ( n 2 ) алгоритм времени.
Это интересно, потому что самый быстрый известный алгоритм для умножения матриц медленнее, чем этот, поэтому проверка, если AB = C быстрее, чем вычисление C.
Я хочу знать, что является наиболее общей алгебраической структурой, для которой верификация матричного произведения все еще имеет алгоритм времени (рандомизированный). Поскольку оригинальный алгоритм работает над всеми полями, я думаю, что он работает и над всеми интегральными областями.
Наилучший ответ, который я смог найти на этот вопрос, был в « Субкубических эквивалентностях между задачами пути, матрицы и треугольника» , где говорится, что «проверка матричного произведения по кольцам может быть выполнена за рандомизированное время [BK95]». ([BK95]: М. Блюм и С. Каннан. Разработка программ, которые проверяют их работу. J. ACM, 42 (1): 269–291, 1995.)
Во-первых, являются ли кольца самой общей структурой, в которой эта задача имеет рандомизированный алгоритм? Во-вторых, я не мог видеть, как результаты [BK95] показывают алгоритм времени O ( n 2 ) для всех колец. Может кто-нибудь объяснить, как это работает?
источник
Ответы:
Вот быстрый аргумент, почему он работает над кольцами. Для заданных матриц , B , C мы проверяем A B = C , выбирая случайный битовый вектор v , а затем проверяя, если A B v = C v . Это явно проходит , если A B = C .A B C AB=C v ABv=Cv AB=C
Предположим, что и A B v = C v . Пусть D = A B - C . D ненулевая матрица, для которой D v = 0 . Какова вероятность того, что это произойдет? Пусть D [ i ′ , j ′ ] ненулевая запись. По предположению, ∑ j D [ i ′ , j ] v [ j ] = 0AB≠C ABv=Cv D=AB−C D Dv=0 D[i′,j′] ∑jD[i′,j]v[j]=0 , С вероятностью , об [ J ' ] = 1 , так что мы имеем1/2 v[j′]=1
.D[i′,j′]+∑j≠j′D[i′,j]v[j]=0
Любое кольцо при его операции сложения является аддитивной группой, поэтому существует единственное обратное к , т. Е. - D [ i ′ , j ′ ] . Теперь вероятность плохого события - D [ я ' , J ' ] = Σ J ≠ J ' D [ я ' , J ] v [ J ] не более 1 / 2D[i′,j′] −D[i′,j′] −D[i′,j′]=∑j≠j′D[i′,j]v[j] 1/2 , (Одним из способов убедиться в этом является «принцип отсроченных решений»: для того, чтобы сумма была равна , по крайней мере еще один D [ i ′ , j ] должен быть ненулевым. Поэтому рассмотрим v [ j ] соответствует этим другим ненулевым элементам. Даже если мы установим все эти v [ j ] за исключением одного из них оптимальным образом , вероятность того, что последний из них равен 0 или 1, остается равной.−D[i′,j′] D[i′,j] v[j] v[j] 0 1 , Но до сих пор только один из этих значений может внести окончательную сумму , равную .) Таким образом , с вероятностью по крайней мере 1 / 4 , мы успешно находим , что D V ≠ 0 , когда D равно нулю. (Примечание: v [ j ] и v [ j ′ ] независимо выбраны для j ≠ j ′ .)−D[i′,j′] 1/4 Dv≠0 D v[j] v[j′] j≠j′
Как видите, приведенный выше аргумент зависит от вычитания. Так что он не будет работать (например) на произвольных коммутативных полуколец. Возможно, вы могли бы ослабить мультипликативные свойства алгебраической структуры и все же получить результат?
источник