การแสดงกราฟลิงค์ขนาดใหญ่มาก


25

ฉันกำลังมองหาเครื่องมือในการมองเห็นกราฟลิงค์ทิศทางที่มีขนาดใหญ่มาก ขณะนี้ฉันมี ~ 2million nodes ที่มี ~ 10million edge ฉันได้ลองทำสิ่งที่แตกต่างกันเล็กน้อย แต่ส่วนใหญ่ใช้เวลาเป็นชั่วโมงในการทำกราฟโหนดขนาด 100k

สิ่งที่ฉันได้ลอง:
ฉันใช้เวลาหนึ่งวันกับ gephi แต่ 80K nodes ใช้เวลาประมาณหนึ่งชั่วโมงในการเพิ่มและแอปพลิเคชันส่วนใหญ่จะไร้ประโยชน์

ข้อเสนอแนะใด ๆ

การสร้างภาพข้อมูลเชิงโต้ตอบจะเป็นประโยชน์


มันจะช่วยถ้าคุณระบุสิ่งที่คุณได้ลองไปแล้ว คุณให้กราฟวิซยิงไหม?
Wolfgang Bangerth

1
Graphviz คือสิ่งที่ฉันจะลองก่อน ไม่มีความคิดว่ามันจะทำงานกับบางสิ่งที่มีขนาดนั้น เห็นได้ชัดว่าคุณจะต้องมีบางสิ่งบางอย่างที่ใช้การแสดงแบบกระจัดกระจายสำหรับเมทริกซ์ adjacency แต่ดูเหมือนว่าเป็นไปไม่ได้ที่แพคเกจซอฟต์แวร์จะไม่
David Ketcheson

ฉันให้ Graphviz ยิงตอนนี้มันดูมีแนวโน้มมากขึ้น แต่ฉันไม่คิดว่ามันจะช่วยให้มีปฏิสัมพันธ์
madmaze

2
คุณเคยลองตีความกราฟเป็นเมทริกซ์แบบเบาบางและแสดงภาพด้วยฟังก์ชัน 'สอดแนม' ของ MATLAB หรือ Octave หรือไม่? รายการที่ไม่เป็นศูนย์จำนวน 10 ล้านรายการอยู่ในระยะการเข้าถึงเดสก์ท็อปที่มีประสิทธิภาพปานกลาง นี่จะเป็นการตั้งค่าให้คุณสำหรับการแบ่งสเปกตรัมทางสเปกตรัมด้วย (การค้นหาพาร์ติชันของกราฟอาจทำให้คุณเห็นภาพได้ง่ายขึ้น)
Jack Poulson

1
คุณเคยเข้าชมไหม
pyCthon

คำตอบ:


13

Graphviz ควรทำงาน ฉันเชื่อว่าภาพที่เกี่ยวข้องกับเมทริกซ์ในคอลเล็กชั่นเมทริกซ์กระจัดกระจายของมหาวิทยาลัยฟลอริด้าได้รับการมองเห็นโดยใช้ sfdp ซึ่งเป็นอัลกอรึทึมการสร้างภาพกราฟกำกับทิศทางโดย Yifan Hu เมทริกซ์ส่วนใหญ่ในคอลเลกชันมีเวลาคำนวณที่เกี่ยวข้องกับการสร้างภาพข้อมูลที่สอดคล้องกันดังนั้นคุณอาจค้นหาเมทริกซ์ที่กราฟมีลักษณะคล้ายกับที่คุณต้องการให้เห็นภาพ ตัวอย่างเช่นกราฟที่มี ~ 2.1 ล้านโหนดและ ~ 3 ล้าน edge ใช้เวลา Hu ~ 36000 วินาทีในการสร้างหรือ 10 ชั่วโมง. ในขณะที่ยังไม่ชัดเจนว่าฮาร์ดแวร์ใดที่ใช้ในการสร้างกราฟ แต่อาจเป็นการเดาที่สมเหตุสมผลว่ามีการใช้เดสก์ท็อปหรือแล็ปท็อปและอย่างน้อยที่สุดก็เป็นเวลาที่ทำให้คุณมีความคิดคร่าวๆว่ากราฟจะใช้เวลาเท่าใด อัลกอริทึมของ Hu ดูเหมือนจะเป็นหนึ่งในอัลกอริทึมการสร้างภาพที่ล้ำสมัย (เขาตีพิมพ์ในปี 2548) แต่ไม่ใช่ผู้เชี่ยวชาญในสาขานี้ฉันไม่สามารถพูดได้ว่าอัลกอริทึมที่ดีกว่าอยู่หรือไม่ อัลกอริทึมนี้มาพร้อมกับ Graphviz เป็นตัวเลือกและได้รับการออกแบบมาเพื่อใช้กับกราฟขนาดใหญ่เช่นที่คุณอธิบาย


เรียบร้อยมาก ดูเหมือนว่า Barnes-Hut กำลังถูกใช้เพื่อจำลองแรงระหว่างโหนดของกราฟดังนั้นฉันจะสมมติว่าการใช้ FMM แบบขนานอาจให้ความเร็วที่รวดเร็ว ในทางกลับกันวิธีการของหูดูเหมือนว่าจะมีโครงสร้างหลายระดับคล้ายกับ MeTiS ซึ่งมีแนวโน้มที่จะยากที่จะขนานกัน
Jack Poulson

ใช่เมื่อฉันดูที่กระดาษฉันก็คิดว่าการใช้ FMM แบบขนานอาจน่าสนใจ แต่ฉันก็ไม่แน่ใจว่ามันจะใช้งานได้จริงเพราะฉันไม่มีประสบการณ์มากกับอัลกอริธึมแบบขนาน
Geoff Oxberry

3
@JackPoulson - กระแอม
Aron Ahmadia

@GeoffOxberry - ดูลิงก์ด้านบน
Aron Ahmadia

1
@JackPoulson - คุณจะพบว่าอัลกอริธึมเลย์เอาต์แบบบังคับนั้นค่อนข้างอ่อนไหวต่อการเริ่มต้นครั้งแรกมีบางกลุ่มที่ทำงานดีมากเพื่อสร้างปัญหาสำหรับเลย์เอาต์ความงามที่มากขึ้น
Aron Ahmadia

7

JavaScript InfoVis Toolkitมีอินเตอร์เฟซแบบโต้ตอบเรียบร้อยสำหรับข้อเขียนท้องถิ่นมองเห็นวิวของกราฟ การสาธิตเหล่านี้อาจเกี่ยวข้องกับคุณ:


5

ดู Graphinsight 1.2 สามารถจัดการกับโหนดนับล้านได้อย่างง่ายดายและเป็นแบบโต้ตอบและใน 3D

นอกจากนี้คุณยังสามารถจัดเค้าโครงกราฟด้วยโหนดและขอบนับล้านด้วยวิธีพีชคณิตที่มีประสิทธิภาพสูงหรือวิธีบังคับทิศทาง มีให้ในรุ่นทดลองสำหรับการประเมินผล ( ข้อจำกัดความรับผิดชอบ: ฉันเป็นหนึ่งในผู้เขียนโปรแกรม )

www.graphinsight.com


1
@linelio - ขอบคุณสำหรับคำตอบของคุณและยินดีต้อนรับสู่ scicomp! โปรดดูกฎเกี่ยวกับการส่งเสริมการขายและให้แน่ใจว่าคุณเปิดเผยการเชื่อมต่อส่วนบุคคลใด ๆ อย่างชัดเจนเมื่อทำการแนะนำ
Aron Ahmadia

5

นี่คือคำแนะนำและลิงก์ที่รวบรวมได้เมื่อเวลาผ่านไป:

  • สำหรับโหนด 2M นั้นยากที่จะแนะนำอะไรที่ไม่รู้ว่าฮาร์ดแวร์ของคุณและอาจมีการลดข้อมูลบางอย่างตามลำดับ แต่การเอาสิ่งที่มีอยู่อย่างอิสระzGrViewerอาจเหมาะกับความต้องการของคุณในการสร้างภาพ (ต้องใช้ GraphViz)
  • ทำตามความคิดของ @pyCthon ขอแนะนำให้คุณดูVisItสำหรับการโต้ตอบในการวางแผน
  • ฉันกำลังเยี่ยมชมigraphแพคเกจใหม่สำหรับภาษาทางสถิติRซึ่งรวมถึงอัลกอริธึมเลย์เอาต์ที่ประณีต ( Fruchterman-Reingold และ Kamada-Kawai ) และกลุ่มอื่น ๆ
  • ขณะนี้ไลบรารีเค้าโครงกราฟขนาดใหญ่อยู่บน SourceForge

0

เราได้สร้างhttp://www.github.com/graphistry/pygraphistryเพื่อให้สามารถทำสิ่งนี้จากเบราว์เซอร์และโน้ตบุ๊กส่วนใหญ่ แนวคิดคือการใช้ WebGL เพื่อแสดงกราฟขนาดใหญ่ (เลื่อน / ซูม / ฯลฯ ) และถ่ายการคำนวณแบบเรียลไทม์เกือบทั้งหมด (เค้าโครงตัวกรองและอื่น ๆ ) ไปยังคลาวด์ GPU มันคล้ายกับ Gephi หรือ Cytoscape แต่เน้นไปที่กราฟขนาดใหญ่และการวิเคราะห์ข้อมูลและรวมเข้ากับเว็บและโน้ตบุ๊ก


0

คุณอาจลองใช้ "ทิวลิป" [1] ฉันคิดว่ามันสามารถจัดการกับกราฟที่ค่อนข้างใหญ่ได้ (อย่างน้อยฉันก็ลองกับโหนด 10K ถึง 100K และทำงานได้ดี)

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.