Tôi miễn cưỡng trả lời điều này, bởi vì kết quả lý thuyết duy nhất tôi biết dọc theo những dòng này có tên của tôi trên giấy ...
Về mặt lý thuyết, có thể xử lý trước một ma trận Boolean n × dày đặc A để các phép nhân vectơ ma trận thưa thớt với A (trong quá trình tạo nửa của OR và AND) có thể được thực hiện nhanh hơn thời gian chạy ngây thơ. Có lẽ cần một lượng hack đáng kể để thực hiện nó trong thực tế, nhưng tôi nghĩ nó sẽ có giá trị tốt trong thực tế cho n đủ lớn và thực hiện đúng.n×nAAn
. so với ma trận kề kề ban đầu.)
Tờ báo là
Guy E. Blelloch, Virginia Vassilevska, Ryan Williams: Cách tiếp cận kết hợp mới cho các vấn đề đồ thị thưa thớt. ICALP (1) 2008: 108-120
và kết quả có liên quan từ giấy là đối với mỗi , có một O ( n 2 + ε ) thuật toán thời điểm đó, đưa ra bất kỳ n × n 0-1 ma trận A , các hoạt động sau đây được hỗ trợ:ε>0O(n2+ε)n×nA
- Đối với bất kỳ vector chỉ với t nonzeroes, Một câu có thể được tính trong O ( n ( t / k + n / ℓ ) / log n ) thời gian, nơi ℓ , k là tham số tự do thỏa mãn ( ℓvtAvO(n(t/k+n/ℓ)/logn)ℓk. (Một khung cảnh đẹp làℓ=logcnvàk=ε(logn)/loglogn, do đó thời gian chạy khoảngnt/logn+n2/logcnđối với bất kỳ hằng mong muốnc.(ℓk)≤nεℓ=logcnk=ε(logn)/loglognnt/logn+n2/logcnc
- Row và cột cập nhật có thể được tính trong O ( n 1 + ε ) thời gian.AO(n1+ε)
Chúng tôi đã sử dụng cấu trúc dữ liệu này để đưa ra các thuật toán lý thuyết nhanh hơn cho APSP trong các biểu đồ không có trọng số thưa thớt.