Chức năng thưa thớt chức năng với hiệu suất tốt?


8

Trong khi viết chương trình Petri Net, tôi đã phải đối mặt với sự lựa chọn về cấu trúc dữ liệu để biểu diễn biểu đồ. Danh sách điều chỉnh (tức là liệt kê liệt kê các cung vào và ra khỏi các vị trí hoặc chuyển tiếp riêng lẻ) rất dễ thực hiện, nhưng trong khi tôi đang nghiên cứu lý thuyết về lưới petri, tôi đã thực hiện theo cách tiếp cận phương trình trạng thái dựa trên ma trận - có lẽ sẽ yêu cầu tôi sử dụng ma trận thưa thớt.

Điều đó khiến tôi tự hỏi - có bất kỳ triển khai ma trận thưa thớt nào cung cấp phép liệt kê nhanh ở cả hàng cột không? Nếu không, có những lựa chọn thay thế nào cho phép tôi xây dựng và di chuyển hiệu quả một đồ thị lưỡng cực trong một ngôn ngữ chức năng như Erlang không?

FWIW - Theo "hiệu quả", trong trường hợp này, tôi có nghĩa là nhanh chóng liệt kê sự cố vòng cung trên một chuyển tiếp hoặc địa điểm nhất định. Tôi sẽ hạnh phúc hơn khi đánh đổi không gian để có thời gian nếu có sự đánh đổi được thực hiện. Vì biểu đồ sẽ không được sửa đổi sau khi xây dựng, nên nó không cần phải đặc biệt hiệu quả cho việc chèn hoặc cập nhật.

TIA

Câu trả lời:


5

Buluç et al. (2009) đề xuất một định dạng lưu trữ được gọi là các khối thưa được nén không ưu tiên các hàng hoặc cột. Một -matrix được chia thành các khối và danh sách các phần tử khác không trong mỗi khối được lưu theo thứ tự Z-Morton. Để liệt kê các số khác trong một hàng hoặc cột, bạn có thể xử lý các khối có chứa nó, tìm đệ quy các số khác trong mỗi khối trong .n×nβ×βn/βO(β)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.