빠른 희소 부울 매트릭스 체인 제품


13

그래서, 나는 길이가 수십 ~ 수십 인 약 100-200 개의 매우 희박한 정사각형 부울 행렬을 얻었고 그들의 제품을 계산해야합니다. 나는 그것들을 연속적으로 곱하면 제품은 일반적으로 각 단계에서 스파 스로 유지됩니다.

이 경우 특히 빠르게 작동하는 매트릭스 체인 제품 알고리즘이 있습니까?

높은 수준에서 문제는 대부분의 요소가 0-3 이하로 매핑되는 상당히 작은 그래프 (NFA의 전이 함수)에서 일련의 일대 다 매핑 구성을 계산하는 것입니다.

(제발이 유의 하지 모든 행렬이 같은 크기이며 I는 최적의 parenthesizing을 선택하지 않기 때문에 보통 "매트릭스 체인 제품"문제는)


5
실제로 곱하는 순서가 중간 결과의 희소성에 영향을 줄 수 있으므로 이러한 빠른 알고리즘에서 여전히 중요한 문제가 될 수 있습니다.
Joshua Grochow

다른 질문에서 당신은 0/1를 사용하는 것 semiring AND / OR 운영, (문제가 상태로 보인다) 추가 / 곱셈, 질문이 명확 해 주시기 바랍니다 없습니다
vzn

답변:


10

이것은 설명하기에 너무 길었습니다. 매트릭스에 랜덤 매트릭스와 다르게 동작하는 구조가 있는지 궁금합니다. 랜덤 희소 행렬의 곱은 0이되거나 희소되지 않습니다.

다음은 간단한 실험입니다. 200 개의 임의의 이진 50x50 행렬을 취하고 행렬의 수를 곱한 함수로 0이 아닌 숫자를 플로팅합니다. 아래 그림은 2000 회 이상의 표준 편차를 보여줍니다. 첫 번째 줄거리는 2 % 희소성, 두 번째 줄거리는 3 %


(출처 : yaroslavvb.com ) (출처 : yaroslavvb.com )

표준 매트릭스 곱셈을 사용하는 랩톱에서 3 분이 걸렸습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.