มีใครบ้างที่รู้ตัวว่าเป็นตัวอย่างให้กับอัลกอริทึม Isomorphism กราฟ Dharwadker-Tevet หรือไม่?


10

ที่http://www.dharwadker.org/tevet/isomorphism/มีการนำเสนออัลกอริทึมสำหรับพิจารณาว่ากราฟสองกราฟเป็น isomorphic หรือไม่ จากจำนวนที่เราจะพูดว่า "น่าสนใจ" การเรียกร้องโดย A Dharwadker ฉันไม่อยากจะเชื่อ

ในการตรวจสอบของฉันฉันพบว่าอัลกอริทึมจะสร้างคำตอบที่ถูกต้องและบอกคุณว่ากราฟสองกราฟนั้นไม่ได้เป็นมอร์ฟิคเมื่อความจริงนั้นถูกต้อง อย่างไรก็ตามยังไม่ชัดเจนว่าอัลกอริทึมจะบอกคุณอย่างต่อเนื่องว่ากราฟสองกราฟนั้น isomorphic เมื่อพวกเขาเป็นจริง "การพิสูจน์" ของผลลัพธ์ของพวกเขาเป็นสิ่งที่ต้องการ

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

มีคนขอสรุปของอัลกอริทึม ฉันจะทำสิ่งที่ฉันสามารถทำได้ที่นี่ แต่จริงๆเข้าใจว่าคุณควรไปhttp://www.dharwadker.org/tevet/isomorphism/

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

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

ขั้นตอนที่สอง - ขั้นตอนการจัดเรียง - เป็นส่วนที่น่าสงสัย โดยเฉพาะอย่างยิ่งฉันคาดหวังว่าหากกระบวนการของพวกเขาทำงานแล้วอัลกอริทึมที่พัฒนาโดย Anna Lubiw สำหรับการจัดทำ "การจัดลำดับของคำศัพท์สองเท่า" (ดู: http://dl.acm.org/citation.cfm?id=22189 ) ก็จะทำงานเพื่อกำหนดรูปแบบที่ยอมรับสำหรับกราฟ

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


คุณสามารถสรุปความคิดของอัลกอริทึมได้หรือไม่?
Mohammad Al-Turkistany

1
ดูเพิ่มเติมmath.stackexchange.com/questions/333633/... นี่เป็นเพียงการแสดงให้เห็นว่ามีโอกาสที่ดีในการหาตัวอย่างตัวอย่างของโปรแกรมที่ให้มา แต่ก็ยังต้องหาอีกหนึ่ง ...
Thomas Klimpel

กราฟปกติที่แข็งแกร่งดูเหมือนจะเป็นเดิมพันที่ดี แต่ฉันไม่เคยโชคดีกับการเรียงสับเปลี่ยนแบบสุ่มของกราฟของ Petersen กราฟของ Clebsch หรือกราฟของ 4x4 rook
Peter Taylor

ฉันลองใช้กราฟ Shrikhande แต่ฉันไม่ได้ลองพีชคณิตทั้งหมด ฉันส่งอีเมลถึง Anna Lubiw เพื่อขอให้เธอตอบโต้ตัวอย่างถึงเธอ "การจัดเรียงคำสั่งของเมทริกซ์ทวีคูณ" แต่เธอยังไม่ได้ตอบกลับ (อย่างน้อยยังไม่ได้) ฉันสงสัยว่าฉันจะต้องทำการค้นหาอย่างเป็นระบบมากขึ้น
จังหวัดบิล

1
ไม่รู้สึกว่าคุณกำลังให้บริการโดยละเว้นการเรียกร้องฟุ่มเฟือยของบทความแม้ว่ามันจะมีแนวโน้มที่จะยกธงบนเว็บไซต์ การเรียกร้องฟุ่มเฟือยของพวกเขาที่ทำให้คุณสงสัยคืออะไร? บางทีพวกเขาอ้างว่ามันทำงานได้อย่างรวดเร็ว แต่นั่นไม่สามารถพิสูจน์ได้ด้วยตัวอย่างตัวอย่างเดียว ie / eg เป็นไปได้ว่าอัลกอริทึมนั้นถูกต้อง (ดูไม่ได้) แต่การวิเคราะห์ความซับซ้อนปิดอยู่ ต่อไปขอเชิญอภิปรายเพิ่มเติม / วิเคราะห์ลึกลงไปในการแชททางทฤษฎีคอมพิวเตอร์ที่ผู้เข้าชมหลายคนแสดงความสนใจที่สำคัญใน GI ในอดีต & มีการอภิปรายขยายเมื่อเร็ว ๆ นี้
vzn

คำตอบ:


18

สำหรับgraphA.txt:

25
 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0
 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0
 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1
 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1
 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0
 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1
 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0
 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0
 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1
 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1
 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0
 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1
 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1
 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0
 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0
 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0
 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1
 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0
 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1
 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1
 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0

และgraphB.txt:

25
 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0
 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1
 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0
 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0
 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0
 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1
 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0
 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1
 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1
 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1
 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0
 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1
 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1
 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0
 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0
 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1
 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0
 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0
 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0
 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1
 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1
 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1
 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1
 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0
 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0

ซึ่งได้มาจากgraphA.txtการใช้การเปลี่ยนแปลงแบบสุ่ม

 22 9 24 11 15 8 5 18 13 14 2 10 23 0 3 17 4 16 6 19 7 21 12 1 20

โปรแกรม C ++ isororphism.cppจากรูปที่ 6.3 โปรแกรม C ++ สำหรับอัลกอริทึม isomorphism กราฟในhttp://www.dharwadker.org/tevet/isomorphism/มอบผลลัพธ์ต่อไปนี้:

The Graph Isomorphism Algorithm
by Ashay Dharwadker and John-Tagore Tevet
http://www.dharwadker.org/tevet/isomorphism/
Copyright (c) 2009
Computing the Sign Matrix of Graph A...
Computing the Sign Matrix of Graph B...
Graph A and Graph B have the same sign frequency vectors in lexicographic order but cannot be isomorphic.
See result.txt for details.

ดังนั้นเราอาจสันนิษฐานว่านี่เป็นตัวอย่างที่ตรงกันข้ามกับอัลกอริทึม Isomorphism กราฟ Dharwadker-Tevet

ตามที่แนะนำโดย Bill Province ปัญหาคือ

4.1 เรื่อง หากกราฟและเป็นแบบมอร์ฟอัลกอริธึมก็จะพบมอร์ฟG BGAGB

ข้อคัดค้านของ Bill Province คือข้อพิสูจน์ข้อเสนอ 4.1 ไม่ได้ใช้คุณสมบัติพิเศษใด ๆ ของเมทริกซ์สัญญาณที่จะไม่นำไปใช้กับเมทริกซ์ adjacency แม่นยำยิ่งขึ้นขั้นตอนต่อไปนี้ในการพิสูจน์ผิด

สำหรับสมมติฐานการเหนี่ยวนำสมมติว่าแถวของและได้รับการจับคู่อย่างสมบูรณ์แบบโดยขั้นตอนที่ 3.4 เพื่อให้ป้ายชื่อจุดยอดสำหรับแถวของคือและป้ายชื่อจุดยอดสำหรับแถวของคือตามลำดับB 1 , . . , เสื้อวี1 , . . , วีที 1 , . . , t B1,...,tAB1,...,tAv1,...,vt1,...,tBφ(v1)=v1,...,φ(vt)=vt

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

เนื่องจากมีการระบุช่องในการพิสูจน์ความถูกต้องตัวนับตัวอย่างด้านบนควรเพียงพอสำหรับการหักล้างการอ้างสิทธิ์ความถูกต้องของอัลกอริทึมที่เสนอ


กิตติกรรมประกาศ ตัวอย่างเคาน์เตอร์เป็นคู่แรกของกราฟที่ 8 คู่จาก

http://funkybee.narod.ru/graphs.htm

เพื่อจัดการกราฟฉันใช้และแก้ไขซอร์สโค้ดจาก ScrewBoxR1160.tar ที่

https://people.mpi-inf.mpg.de/~pascal/software/

เพื่อให้เข้าใจถึงหลุมในการพิสูจน์ความถูกต้องAndrás Salamon ความคิดเห็นเกี่ยวกับ Weisfeiler-Lehman เป็นประโยชน์อย่างมากเช่นเดียวกับคำอธิบายจาก

http://users.cecs.anu.edu.au/~pascal/docs/thesis_pascal_schweitzer.pdf

แรงจูงใจในการใช้คำถามนี้เป็นโอกาสที่จะได้ทำความคุ้นเคยกับความไร้สาระ / ร่องรอยและแง่มุมที่ใช้ประโยชน์ได้จริงของกราฟมอร์ฟได้จาก vzn ประโยชน์ของการเรียนรู้วิธีการใช้โปรแกรมที่ทันสมัยสำหรับกราฟมอร์ฟโมคิวริสทำให้คุ้มค่าที่จะใช้เวลาในการหาตัวอย่างแบบเคาน์เตอร์ (ซึ่งฉันเชื่อว่ามีอยู่จริง)


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

@BillProvince เกณฑ์การคัดเลือกขึ้นอยู่กับความคิดเห็นของAndrás Salamon เพราะมันระบุว่าการก่อสร้าง Cai, Fürerและ Immerman อาจจะประสบความสำเร็จ ฉันลอง n = 546 ตัวอย่างจาก Pascal Schweitzer ครั้งแรก แต่ตอนนี้โปรแกรม c ++ isororphism.cpp กำลังคำนวณตั้งแต่> 1566 นาที ฉันใช้โครงสร้างข้อมูลที่ดีขึ้นและเรียนรู้หลังจาก> 2 ชม. ที่ตัวอย่างเคาน์เตอร์ขนาดใหญ่ทำงาน ฉันรู้ว่า trg787 / funkybee มีสิ่งปลูกสร้าง Cai, Fürerและ Immerman ระหว่างคู่กราฟของเขาดังนั้นฉันจึงลองเสี่ยงโชค ฉันลองเปลี่ยนลำดับแบบสุ่มหลายครั้ง (สำหรับตัวอย่าง n = 25) อันที่สองใช้ได้
โธมัสคลิมเพล

อันไหนที่ประหยัดเวลา 1. การหาตัวนับตัวอย่าง 2. การพิสูจน์ 4.1 ผิด
จิม

ฉันหยุดโปรแกรม isoromorphism.cpp ดั้งเดิมของ C ++ สำหรับตัวอย่าง n = 546 ในตอนนี้หลังจากทำงานมานานกว่า 6200 นาทีโดยไม่มีการสิ้นสุด
Thomas Klimpel

@ThomasKlimpel ฉันวางแผนที่จะเขียนบทความที่กล่าวถึงผลลัพธ์นี้ หากคุณมีแหล่งที่มาที่เป็นมืออาชีพที่ต้องการคุณสามารถส่งอีเมลระบุที่มาที่ billprovince@gmail.com ไม่ว่าผมตั้งใจที่จะปฏิบัติตามข้อกำหนดระบุแหล่งที่มาโพสต์ที่blog.stackexchange.com/2009/06/attribution-required
จังหวัดบิล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.