전처리가 가능한 빠른 희소 부울 매트릭스 제품


12

두 개의 매우 희소 한 부울 행렬을 곱하기위한 가장 실질적으로 효율적인 알고리즘은 무엇입니까 (예 : N = 200이고 0이 아닌 100-200 개의 요소 만 있음)?

실제로 A에 B를 곱하면 B가 미리 정의되어 있고 임의로 복잡한 전처리를 수행 할 수 있다는 이점이 있습니다. 또한 제품 결과가 항상 원래 행렬만큼 희박하다는 것을 알고 있습니다.

"보다 순진한"알고리즘 (A 행으로 스캔; A 행의 각 1 비트 또는 해당 B 행의 결과에 대해)은 매우 효율적이며 단일 제품을 계산하는 데 수천 개의 CPU 명령 만 필요합니다. 따라서 그것을 능가하는 것은 쉽지 않으며 결과에 수백 개의 비트가 있기 때문에 일정한 요인으로 만 능가합니다. 그러나 나는 희망을 잃지 않고 지역 사회에 도움을 요청하지 않습니다 :)


1
출력 워드 당 10 개의 기계 명령어를 상당히 능가 할 수 있을지 의문입니다. 암시 적 형태의 출력이 허용 될 수 있습니까?
워렌 슈디

B를 더 곱할 수 있다면 가능합니다.
jkff

행렬 곱셈이 기반으로하는 덧셈과 곱셈 연산 (비트)은 무엇입니까? 순진한 알고리즘은 대답이 각각 "또는"과 "and"라고 제안하지만 필드를 정의하지 않기 때문에 다소 이상한 행렬 곱셈입니다. "또는"대신 "xor"를 의미합니까?
워렌 슈디

아니요, "또는"과 "and"를 의미합니다. 필자는 필드를 정의하기 위해 연산이 필요하지 않습니다. 실제로 그래프 도달 가능성과 같은 문제입니다 (일대 다 함수의 구성을 계산하고 있습니다).
jkff

답변:


11

이 선을 따라 내가 아는 유일한 이론적 결과는 종이에 내 이름이 있기 때문에 나는 이것에 대답하기를 꺼려했다 ...

n×nAAn

(참고 :이 알고리즘은 하나의 행렬이 밀도가 높고 다른 행렬이 희박한 경우에만 유용합니다. 예를 들어, 희소 그래프의 전이 폐쇄를 계산할 때 전이 폐쇄 행렬은 결국 밀도가 높아집니다. 원래 인접 매트릭스와 비교)

종이는

Guy E. Blelloch, Virginia Vassilevska, Ryan Williams : 희소 그래프 문제에 대한 새로운 조합 접근법. ICALP (1) 2008 : 108-120

ε>0O(n2+ε)n×nA

vtAvO(n(t/k+n/)/logn)k(k)nε=logcnk=ε(logn)/loglognnt/logn+n2/logcnc

AO(n1+ε)

이 데이터 구조를 사용하여 희소 비가 중 그래프에서 APSP에 대한 더 빠른 이론적 알고리즘을 제공했습니다.


3
방금 행렬 곱셈 의 출력 도 희박 하다고 가정합니다 . 이 경우 더 빠른 알고리즘이 있습니다. "출력 감지 매트릭스 곱셈"에 대한 웹 검색을 수행하십시오.
Ryan Williams

{1,0,1}

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