Hình dung đồ thị liên kết rất lớn


25

Tôi đang tìm kiếm một công cụ để hình dung các biểu đồ liên kết định hướng rất lớn. Tôi hiện có ~ 2 triệu nút với các cạnh ~ 10 triệu. Tôi đã thử một vài thứ khác nhau, nhưng hầu hết phải mất hàng giờ để thực hiện các biểu đồ nút 100k

Những gì tôi đã thử:
Tôi đã dành một ngày với gephi, nhưng các nút 80K mất khoảng một giờ để thêm và ứng dụng trở nên vô dụng.

Bất kỳ đề xuất?

Một hình ảnh tương tác sẽ là một lợi thế.


Nó sẽ giúp nếu bạn nói những gì bạn đã cố gắng. Bạn đã cho Graphviz một shot?
Wolfgang Bangerth

1
Graphviz là những gì tôi sẽ thử đầu tiên. Không biết liệu nó sẽ làm việc với một cái gì đó có kích thước đó. Rõ ràng là bạn sẽ cần một cái gì đó sử dụng một biểu diễn thưa thớt cho ma trận kề, nhưng dường như không thể tưởng tượng được rằng một gói phần mềm sẽ không.
David Ketcheson

Tôi đang cho Graphviz một phát bắn ngay bây giờ, nó có vẻ hứa hẹn hơn một chút, nhưng tôi không nghĩ nó cho phép tương tác
madmaze

2
Bạn đã thử diễn giải biểu đồ dưới dạng ma trận thưa thớt và trực quan hóa nó bằng hàm 'gián điệp' của MATLAB hoặc Octave chưa? 10 triệu mục nhập khác không nằm trong tầm với của máy tính để bàn mạnh mẽ vừa phải. Điều này cũng sẽ thiết lập cho bạn phân chia phổ (tìm phân vùng của biểu đồ của bạn có thể giúp bạn dễ hình dung hơn).
Jack Poulson

1
bạn đã nhìn vào thăm chưa?
pyCthon

Câu trả lời:


13

Graphviz nên hoạt động. Tôi tin rằng những hình ảnh liên quan đến ma trận trong bộ sưu tập ma trận thưa thớt của Đại học Florida đã được hình dung bằng sfdp, một thuật toán trực quan hóa đồ thị hướng lực được phát triển bởi Yifan Hu. Hầu hết các ma trận trong bộ sưu tập có thời gian tính toán liên quan đến việc tạo ra một trực quan tương ứng, do đó bạn có thể tìm kiếm các ma trận có biểu đồ có các đặc điểm tương tự như bạn muốn trực quan hóa. Chẳng hạn, một biểu đồ có ~ 2,1 triệu nút và ~ 3 triệu cạnh đã tạo ra Hu ~ 36000 giây hoặc 10 giờ. Mặc dù không rõ phần cứng nào được sử dụng để tạo biểu đồ, nhưng có lẽ dự đoán hợp lý rằng máy tính để bàn hoặc máy tính xách tay đã được sử dụng và ít nhất thời gian sẽ cho bạn ý tưởng sơ bộ về việc hiển thị biểu đồ có thể mất bao nhiêu thời gian. Thuật toán của Hu dường như là một trong những thuật toán trực quan tiên tiến nhất (ông đã xuất bản nó vào năm 2005), nhưng không phải là một chuyên gia trong lĩnh vực này, tôi không thể nói liệu có tồn tại thuật toán tốt hơn hay không. Thuật toán này được bao gồm với Graphviz như một tùy chọn và được thiết kế để được sử dụng trên các biểu đồ lớn như mô tả mà bạn mô tả.


Rât gọn gang. Có vẻ như Barnes-Hut đang được sử dụng để mô phỏng các lực giữa các nút của biểu đồ, vì vậy tôi cho rằng việc triển khai FMM song song có thể mang lại sự tăng tốc đáng kể. Mặt khác, phương pháp của Hu dường như có cấu trúc đa cấp tương tự như MeTiS, có xu hướng khó song song hóa.
Jack Poulson

Vâng, khi tôi nhìn vào bài báo, tôi cũng nghĩ rằng việc triển khai FMM song song có thể thú vị, nhưng tôi không chắc nó sẽ thực tế đến mức nào, vì tôi không có nhiều kinh nghiệm với các thuật toán song song.
Geoff Oxberry

3
@JackPoulson - ho
Aron Ahmadia

@GeoffOxberry - xem liên kết ở trên
Aron Ahmadia

1
@JackPoulson - Bạn sẽ thấy rằng các thuật toán bố cục hướng lực khá nhạy cảm với việc gieo hạt ban đầu, có một số công việc tuyệt vời được thực hiện bởi các nhóm khác để cải tổ vấn đề cho bố cục thẩm mỹ hơn.
Aron Ahmadia


5

Xem Graphinsight 1.2, có thể xử lý dễ dàng với hàng triệu nút và nó tương tác và ở dạng 3D.

Bạn cũng có thể bố trí đồ thị với hàng triệu nút và cạnh bằng các phương pháp đại số hiệu quả cao hoặc phương pháp hướng lực. Nó có sẵn trong phiên bản dùng thử để đánh giá ( Tuyên bố miễn trừ trách nhiệm: Tôi là một trong những tác giả của chương trình ).

www.graphinsight.com


1
@linelio - Cảm ơn câu trả lời của bạn và chào mừng bạn đến với scicomp! Vui lòng xem các quy tắc về quảng cáo và chắc chắn rằng bạn tiết lộ rõ ​​ràng mọi kết nối cá nhân khi đưa ra khuyến nghị.
Aron Ahmadia

5

Dưới đây là một số khuyến nghị và liên kết được thu thập theo thời gian:

  • Đối với các nút 2M, thật khó để khuyến nghị bất cứ điều gì không biết về phần cứng của bạn và có thể giảm một số dữ liệu theo thứ tự, nhưng lấy những thứ có sẵn miễn phí, zGrViewer có thể phù hợp với nhu cầu của bạn để trực quan hóa (yêu cầu GraphViz).
  • Theo ý tưởng của @pyCthon, đề nghị bạn cũng nên xem VisIt để biết một số tương tác trong âm mưu.
  • Tôi đang truy cập lại igraphgói cho ngôn ngữ thống kê R , bao gồm các thuật toán bố cục gọn gàng ( Fruchterman-Reingold và Kamada-Kawai ), trong số những người khác.
  • Thư viện Bố cục đồ thị lớn hiện có trên SourceForge.

0

Chúng tôi đã và đang xây dựng http://www.github.com/graphistry/pygraphistry để cho phép thực hiện việc này từ hầu hết các trình duyệt và sổ ghi chép. Ý tưởng là sử dụng WebGL để hiển thị các biểu đồ lớn (pan / zoom / v.v.) và giảm hầu hết tính toán thời gian thực (bố cục, bộ lọc, v.v.) cho đám mây GPU. Nó tương tự như Gephi hoặc Cytoscape, nhưng tập trung nhiều hơn vào các biểu đồ và phân tích dữ liệu lớn, và tích hợp vào web và sổ ghi chép.


0

Bạn có thể thử "Tulip" [1], tôi nghĩ rằng nó có thể xử lý các biểu đồ khá lớn (ít nhất tôi đã thử nó với các nút 10K đến 100K và nó hoạt động tốt).

[1] http://tulip.labri.fr/TulipDrupal/

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.