Jakie są najbardziej efektywne algorytmy mnożenia dwóch bardzo rzadkich macierzy boolowskich (powiedzmy, N = 200, a jest tylko około 100-200 niezerowych elementów)?
W rzeczywistości mam tę zaletę, że kiedy mnożę A przez B, B są predefiniowane i mogę na nich dowolnie skomplikowane przetwarzanie wstępne. Wiem też, że wyniki produktów są zawsze tak rzadkie jak oryginalne matryce.
Algorytm „raczej naiwny” (skanowanie A po wierszach; dla każdego 1 bitu rzędu A LUB wynik z odpowiednim rzędem B) okazuje się bardzo wydajny i wymaga tylko kilku tysięcy instrukcji CPU do obliczenia pojedynczego produktu , więc nie będzie łatwo go przekroczyć, a da się go pokonać tylko przez stały współczynnik (ponieważ w wyniku są setki jednych bitów). Ale nie tracę nadziei i proszę społeczność o pomoc :)