ข้อมูลสำหรับการทดสอบอัลกอริธึมกราฟ


36

ฉันกำลังมองหาที่มาของชุดข้อมูลขนาดใหญ่เพื่อทดสอบการใช้งานอัลกอริทึมกราฟ โปรดให้ข้อมูลเกี่ยวกับประเภท / การแจกจ่าย (เช่นกำกับ / ไม่ระบุทิศทาง, ง่าย / ไม่ง่าย, ถ่วงน้ำหนัก / ไม่ถ่วงน้ำหนัก) ของกราฟในแหล่งที่มาหากทราบ


โพสต์ที่เกี่ยวข้อง: cstheory.stackexchange.com/questions/16751/…
Neal Young

ในทางทฤษฎีเป็นอย่างไร :-)
นิลส์

คำตอบ:



17

ฉันจะพยายามให้คำตอบระดับสูงกว่าคำตอบอื่น ๆ

คลาสอินพุตต่อไปนี้มักจะมีประโยชน์ในการทดสอบประสิทธิภาพของอัลกอริทึมที่เสนอหรือความถูกต้องของการคาดเดาในทฤษฎีกราฟ:

  1. HpH

  2. nKn/2,n/2

  3. กราฟ "ไม่ใช่แบบสุ่ม" : กราฟเหล่านี้อยู่ตรงกลางระหว่างการเป็นแบบทั่วไปอย่างสมบูรณ์เช่นเดียวกับในกราฟแบบสุ่มและเฉพาะเจาะจงกับปัญหาเช่นเดียวกับในโครงสร้างที่มีโครงสร้าง ตัวอย่างเช่นครอบครัวสามารถสุ่มกราฟย่อยของกราฟที่มีโครงสร้าง ตัวอย่างดังกล่าวเกิดขึ้นบ่อยครั้งในการสร้างสายพันธุ์ที่แข็งแกร่งของSzemerédiแทรกสม่ำเสมอ วิธีหนึ่งในการสร้างตัวอย่างเหล่านี้คือการหาคำจำกัดความของ "pseudorandomness" ที่เป็นแบบสุ่มอินพุตดังนั้นสำหรับอินพุต pseudorandom คุณสามารถแสดงให้เห็นว่าอัลกอริทึมของคุณหรือการคาดเดาของคุณทำงานได้ จากนั้นคุณระบุสิ่งกีดขวางต่อการปลอมเทียมและกราฟที่มีสิ่งกีดขวางเหล่านี้สามารถสร้างกราฟที่ไม่ใช่แบบสุ่มซึ่งเป็นตัวอย่างที่มีขนาดใหญ่ การอภิปรายที่เกี่ยวข้องกับหลักการนี้มากขึ้นสามารถดูได้ที่พูดคุย ICM เทอร์รี่เต่าในปี 2006 กราฟที่ไม่สุ่มเหล่านี้ตรงกับ "ผลสืบเนื่อง" ในผลงานบางส่วนของเขากับเบ็นกรีนและคนอื่น ๆ


14

สำหรับการสร้างกราฟฉันมักจะใช้gengโปรแกรมที่มาพร้อมกับnauty:

http://cs.anu.edu.au/~bdm/nauty/

สิ่งนี้จะสร้างกราฟที่ไม่ได้บอกทิศทาง (เรียกอีกอย่างว่า "กราฟ") ในการสร้างกราฟกำกับคุณสามารถส่งออกท่อdirectgซึ่งยังมาพร้อมกับความไม่น่าสนใจ

การใช้เกิงเหมาะสำหรับสถานการณ์ที่คุณต้องการทดสอบกราฟทั้งหมดใน (พูด) จนถึงnจุดสูงสุดหรือกราฟที่เชื่อมต่อทั้งหมดที่มีmขอบหรืออะไรทำนองนั้น หากคุณมีข้อกำหนดที่เฉพาะเจาะจงมากขึ้นโปรดระบุสิ่งเหล่านี้ในคำถามของคุณ


11

Stanford GraphBase อาจช่วยคุณได้: http://www-cs-staff.stanford.edu/~knuth/sgb.html

อย่างไรก็ตามในทุกโอกาสคุณอาจต้องการสร้างกราฟด้วยตัวเองและคุณอาจต้องการให้กราฟที่สร้างขึ้นมีคุณสมบัติบางอย่าง (หรือไม่มี) กราฟสุ่มมักจะเป็นการประมาณที่ไม่ดีของกราฟที่อัลกอริทึมใช้จริง


9

ไม่ใหญ่ แต่อาจจะมีประโยชน์3054 "กราฟมาตรฐานชื่อ"จากคอลเลกชัน GraphData ของ Mathematica

รูปแบบคือหนึ่งกราฟต่อบรรทัดโดยมีชื่อและรายการของโหนดที่อยู่ติดกันเช่นนี้

{<ชื่อกราฟ>, {{1, 4}, {1, 5}, {1, 6}, {2, 5}, {2, 6}, {3, 6}}

<ชื่อกราฟ> สามารถของฟอร์ม "AGraph" หรือ {"Andrasfai", 6}


กราฟเหล่านี้หรือกราฟกำกับ
Emil


4

มีโครงการชุมชนใหม่ที่น่าสนใจและมีแนวโน้มสำหรับฐานข้อมูลกราฟ:

แนะนำกระดาษ

ที่เก็บถาวรกราฟเปิด: ความพยายามของชุมชน

หรือลิงค์โดยตรง

Graph-Archive.org

เวลาจะปรากฏขึ้นหากเป็นสถานที่ที่เหมาะสำหรับการทดสอบอินสแตนซ์


3

DIMACS 9 การดำเนิน Challenge - สั้นที่สุดเส้นทางวิ่งใน 2005-2006 โดยมีเป้าหมายในการผลิต "ชุดมาตรฐานของอินสแตนซ์มาตรฐานและเครื่องกำเนิดไฟฟ้าเช่นเดียวกับการใช้งานมาตรฐานที่รู้จักกันดีขั้นตอนวิธีการเส้นทางที่สั้นที่สุด."

หน้าดาวน์โหลดประกอบด้วยกราฟเครือข่ายถนนของสหรัฐอเมริกาที่ซิปตั้งแต่ 2MB ถึง 335MB ทั้งน้ำหนักระยะทางและเวลา

http://www.dis.uniroma1.it/challenge9/download.shtml

ฉันพบว่ามีประโยชน์ในการเปรียบเทียบการใช้งานกราฟของฉันเอง


0

คุณสามารถใช้ Musketeer ดู

https://people.cs.clemson.edu/~isafro/musketeer/index.html

นี่คือตัวสร้างกราฟแบบหลายส่วนที่รับกราฟอินพุตและสร้างกราฟอื่นที่สามารถคล้ายกับต้นฉบับโดยพลการ พารามิเตอร์มีความยืดหยุ่นเพียงพอที่จะสร้างโครงสร้างใหม่ที่ความละเอียดหยาบที่แตกต่างกัน ดูตัวอย่างในแกลเลอรี่ แพคเกจนี้เหมาะสำหรับการสร้างอินสแตนซ์ทดลองสำหรับการตรวจสอบและอัลกอริทึมการเปรียบเทียบ

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