ปัญหามอร์ฟิซึมกราฟสำหรับกราฟที่มีป้ายกำกับ


11

ในกรณีของกราฟที่ไม่มีป้ายกำกับปัญหากราฟ isomorphism สามารถแก้ไขได้ด้วยอัลกอริธึมจำนวนมากซึ่งทำงานได้ดีในทางปฏิบัติ นั่นคือแม้ว่าเวลาในการรันกรณีที่เลวร้ายที่สุดคือเอ็กซ์โพเนนเชียล แต่ก็มักจะมีเวลาที่ใช้พหุนาม

ฉันหวังว่าสถานการณ์จะคล้ายกันในกรณีของกราฟที่มีป้ายกำกับ อย่างไรก็ตามฉันมีเวลายากมากที่จะค้นหาการอ้างอิงใด ๆ ที่เสนออัลกอริทึม "มีประสิทธิภาพจริง"

หมายเหตุ: ที่นี่เราต้องการให้ isomorphism รักษาฉลาก นั่นคือ isomorphism ระหว่างสองข้อ จำกัด พีชคณิตออโตมาตากระบวนการ / กระบวนการจะหมายความว่าออโตมาตะ / ข้อตกลงเป็นหลัก "เท่ากับการเปลี่ยนชื่อของโหนด"

การอ้างอิงเดียวที่ฉันพบคือหนึ่งในวิกิพีเดียที่ระบุว่าปัญหามอร์ฟิซึ่มของกราฟที่มีป้ายกำกับนั้นสามารถลดลงในเชิงพหุนามของกราฟทั่วไปได้ อย่างไรก็ตามกระดาษอ้างอิงมีความเกี่ยวกับทฤษฎีความซับซ้อนมากกว่าขั้นตอนวิธีปฏิบัติ

ฉันขาดอะไรบางอย่างหรือเป็นกรณีที่ไม่มีอัลกอริทึม "ฮิวริสติก" ที่มีประสิทธิภาพในการตัดสินใจว่ากราฟที่มีป้ายกำกับสองรายการนั้นมีลักษณะผิดปกติหรือไม่?

คำใบ้หรือการอ้างอิงใด ๆ จะดีมาก


3
มันจะเป็นการดีที่จะให้การอ้างอิงถึงบทความวิกิพีเดียและบทความที่คุณพบเพื่อช่วยให้เรามีปัญหา
Babou

1
คุณหมายถึงอะไรโดยมอร์ฟิซึ่มส์ที่ "คงไว้ซึ่งฉลาก"? ในบริบทของหุ่นยนต์ป้ายชื่อจุดยอดจะแตกต่างกัน ดังนั้นมอร์ฟิซึ่มใด ๆ จะ "รักษาป้ายกำกับ" ในแง่ที่ว่าจุดยอดสองจุดในแหล่งที่มีป้ายกำกับที่แตกต่างกันจะต้องมีป้ายกำกับที่แตกต่างกันในภาพด้วย ปัญหานั้นก็เหมือนกับปัญหากราฟมอร์ฟิซึมธรรมดา หากคุณหมายถึงว่ามอร์ฟิซึ่มจะต้องแมปจุดยอดกับอันที่มีป้ายชื่อเดียวกันอัลกอริทึมจะไม่สำคัญเมื่อเลเบลจุดยอดแตกต่างเสมอ: เพียงตรวจสอบว่าแผนที่ตัวตนบนฉลากนั้นเป็นมอร์ฟิซึ่มส์
David Richerby

ถ้าคุณหมายถึงการพิจารณากรณีที่หลายจุดอาจจะมีป้ายกำกับเดียวกันและภาพลักษณ์ของจุดสุดยอดจะต้องมีฉลากเช่นเดียวกับต้นฉบับหนึ่งที่มักจะถูกเรียกว่าถอดแบบระหว่างกราฟสี ในกรณีนี้มีการลดลงของ GI ทั่วไปอย่างง่ายโดยการแทนที่สีด้วยแกดเจ็ต คุณอาจจะได้อัลกอริธึมที่เหมาะสมโดยการใช้แกดเจ็ตที่เลือกอย่างระมัดระวังแล้วใช้อัลกอริทึม GI มาตรฐาน
David Richerby

SSac,bd

4
g:a1,2,3,...)sg(s)Kก.(s)) บวกโหนดเพิ่มเติมที่ด้านข้างลูกศรของขอบ กราฟผลลัพธ์คือ isomorphic ถ้าออโตมาตาดั้งเดิมเป็น isomorphic
Vor

คำตอบ:


5

คุณอาจสนใจในเอกสารนี้:

ไอดานโฮแกน: Skolemising โหนดว่างเปล่าในขณะที่รักษา Isomorphism WWW 2558: 430-440

มันมีอัลกอริทึม (ขึ้นอยู่กับ Nauty) สำหรับการทดสอบ isomorphism ของกราฟ RDF ซึ่งเป็นกราฟกำกับป้ายกำกับหลักซึ่งอาจมีป้ายกำกับคงที่ อัลกอริทึมคำนึงถึงฉลากเพื่อ จำกัด พื้นที่การค้นหา

หากคุณสามารถแสดงกราฟที่มีป้ายกำกับข้อมูลเข้าของคุณเป็นกราฟ RDF คุณสามารถลองใช้ชุดซอฟต์แวร์ที่เกี่ยวข้องblabelเพื่อทดสอบมอร์ฟ


4

ฉันพบว่าอัลกอริทึมอยู่ในหมวดหมู่ของอัลกอริทึม Weisfeiler-Lehman k-dimension และมันล้มเหลวด้วยกราฟปกติ สำหรับข้อมูลเพิ่มเติมที่นี่:

http://dabacon.org/pontiff/?p=4148

โพสต์ต้นฉบับดังต่อไปนี้:

หลายปีที่ผ่านมาฉันสร้างอัลกอริทึมที่ง่ายและยืดหยุ่นสำหรับปัญหานี้อย่างแน่นอน (กราฟ isomorphism พร้อมป้ายกำกับ)

ฉันตั้งชื่อมันว่า "Powerhash" และเพื่อสร้างอัลกอริทึมมันต้องใช้ข้อมูลเชิงลึกสองประการ อย่างแรกคืออัลกอริธึมกราฟการวนซ้ำพลังซึ่งใช้ใน PageRank อย่างที่สองคือความสามารถในการแทนที่ฟังก์ชั่นขั้นตอนการวนซ้ำของพลังงานด้วยสิ่งที่เราต้องการ ฉันแทนที่ด้วยฟังก์ชันที่ทำสิ่งต่อไปนี้ในแต่ละการวนซ้ำและสำหรับแต่ละโหนด:

  • เรียงลำดับแฮช (จากการวนซ้ำก่อนหน้านี้) ของเพื่อนบ้านของโหนด
  • แฮชที่เรียงลำดับแบบเรียงต่อกัน
  • แทนที่แฮชของโหนดด้วยแฮชที่คำนวณใหม่

ในขั้นตอนแรกแฮชของโหนดจะได้รับผลกระทบจากเพื่อนบ้านโดยตรง ในขั้นตอนที่สองแฮชของโหนดจะได้รับผลกระทบจากพื้นที่ใกล้เคียง 2-hops จากนั้น ในขั้นตอนที่ N แฮชของโหนดจะได้รับผลกระทบจาก N-hops ที่อยู่ใกล้เคียง ดังนั้นคุณจะต้องเรียกใช้ Powerhash ต่อไปสำหรับขั้นตอน N = graph_radius ในท้ายที่สุดการแฮชของโหนดศูนย์กราฟจะได้รับผลกระทบจากกราฟทั้งหมด

ในการสร้างแฮชสุดท้ายให้เรียงลำดับโหนดของขั้นตอนสุดท้ายและต่อเชื่อมเข้าด้วยกัน หลังจากนั้นคุณสามารถเปรียบเทียบแฮชสุดท้ายเพื่อค้นหาว่ากราฟสองกราฟนั้นมีรูปแบบ isomorphic หรือไม่ หากคุณมีป้ายกำกับให้เพิ่มป้ายกำกับ (ในการทำซ้ำครั้งแรก) ในแฮชภายในที่คุณคำนวณสำหรับแต่ละโหนด

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้คุณสามารถดูโพสต์ของฉันที่นี่:

https://plus.google.com/114866592715069940152/posts/fmBFhjhQcZF

อัลกอริทึมข้างต้นถูกนำไปใช้ในฐานข้อมูลเชิงสัมพันธ์เชิงฟังก์ชัน "madIS" คุณสามารถค้นหาซอร์สโค้ดของอัลกอริทึมได้ที่นี่:

https://github.com/madgik/madis/blob/master/src/functions/aggregate/graph.py


เพียงคำเตือนว่าอัลกอริทึมของคุณคือพหุนามและดังนั้นถ้ามันเสร็จสมบูรณ์คุณเพิ่งแก้ไขปัญหา open-long ที่ยาวนานใน CS เกี่ยวกับ GI ที่อยู่ใน P :) (มีหลายกรณีที่อัลกอริทึมที่คุณอธิบายจะให้ผลบวกผิด ๆ .)
badroit

อัลกอริทึมเป็นค่าประมาณและไม่สมบูรณ์แน่นอน (ฉันพูดอย่างนั้นในบล็อกโพสต์ด้วย) เหตุผลที่ใช้งานได้ก็คือแฮชที่สร้างขึ้นนั้นมีขนาดใหญ่มากดังนั้นในฐานข้อมูลของกราฟจำนวนนับล้าน ๆ ตัวความเป็นไปได้ของการชนแฮ็กบวกที่ผิดพลาดนั้นจะน้อยมาก หากคุณจัดการเพื่อหากรณีของการชนกันของแฮชบวกที่เป็นเท็จฉันจะสนใจมากที่จะรู้เกี่ยวกับมัน เหตุผล (เมื่อใช้แฮชการเข้ารหัส) คือคุณจะต้องจัดการ "หยุด" ฟังก์ชันแฮชการเข้ารหัส
estama

เพื่ออธิบายอย่างละเอียดถึงความเป็นไปได้ที่จะเกิดการชนกันของแฮ็กน้อยที่สุด ฉันจะพิจารณาแฮชการเข้ารหัสที่ 256 บิตมากกว่าเพียงพอเพื่อให้แน่ใจว่าไฟล์ที่แตกต่างกันทั้งหมดของโลกจะไม่แฮชเป็นค่าเดียวกัน แฮชจาก Powerhash จะเป็น 128bits * graph_node_count (โดยใช้แฮช MD5) ดังนั้นในทางปฏิบัติคุณจะไม่สามารถสร้างกราฟมากพอ (ในจักรวาลนี้) เพื่อค้นหาการชนกันระหว่างแฮช
estama

1
ฉันหมายถึงอัลกอริทึมของคุณจะให้ผลบวกที่เป็นเท็จแม้จะไม่มีการชนกันของแฮช มีการเสนออัลกอริธึมเวลาพหุนามจำนวนมากสำหรับกราฟมอร์ฟิซึมในวรรณคดีและทั้งหมดนั้นให้ผลบวกผิด ๆ คำถามที่เกี่ยวข้องที่นี่: cs.stackexchange.com/questions/50939/...
badroit

1
ขอบคุณสำหรับการสนทนา จากการวิจัยเพิ่มเติมฉันพบว่าอัลกอริทึมข้างต้นอยู่ในหมวดหมู่ของอัลกอริทึม Weisfeiler-Lehman k- มิติและมันล้มเหลวด้วยกราฟปกติ สำหรับข้อมูลเพิ่มเติมได้ที่นี่: dabacon.org/pontiff/?p=4148
estama
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.