ฉันต้องการที่จะระบุกราฟไม่มีทิศทางทั้งหมดของขนาดแต่ฉันต้องการเพียงหนึ่งตัวอย่างของแต่ละชั้นเรียนมอร์ฟ กล่าวอีกนัยหนึ่งฉันต้องการระบุกราฟที่ไม่ใช่ isomorphic (undirected) ทั้งหมดในn vertices ฉันจะทำสิ่งนี้ได้อย่างไร
แม่นยำมากขึ้นฉันต้องการขั้นตอนวิธีการที่จะสร้างลำดับของกราฟไม่มีทิศทางมีคุณสมบัติดังต่อไปสำหรับทุกกราฟไม่มีทิศทางGบนnจุดมีอยู่ดัชนีฉันเช่นที่Gคือ isomorphic เพื่อGฉัน ฉันต้องการอัลกอริทึมให้มีประสิทธิภาพมากที่สุด กล่าวอีกนัยหนึ่งตัวชี้วัดที่ฉันสนใจคือเวลาที่ใช้ในการสร้างและทำซ้ำผ่านรายการของกราฟนี้ เป้าหมายรองคือจะดีถ้าอัลกอริทึมไม่ซับซ้อนเกินกว่าที่จะนำมาใช้
โปรดสังเกตว่าฉันต้องมีกราฟอย่างน้อยหนึ่งกราฟจากแต่ละคลาส isomorphism แต่มันก็โอเคถ้าอัลกอริทึมสร้างมากกว่าหนึ่งอินสแตนซ์ โดยเฉพาะอย่างยิ่งมันก็โอเคถ้าลำดับเอาต์พุตประกอบด้วยกราฟ isomorphic สองกราฟถ้าสิ่งนี้ช่วยให้ค้นหาอัลกอริทึมดังกล่าวได้ง่ายขึ้นหรือทำให้อัลกอริทึมมีประสิทธิภาพมากขึ้นตราบใดที่กราฟนั้นครอบคลุมกราฟที่เป็นไปได้ทั้งหมด
ใบสมัครของฉันจะเป็นดังนี้: ฉันมีโปรแกรมที่ฉันต้องการที่จะทดสอบกราฟทั้งหมดของขนาดnฉันรู้ว่าถ้าสองกราฟ isomorphic โปรแกรมของฉันจะทำงานเหมือนกันทั้งคู่ (มันอาจจะถูกต้องทั้งบนหรือไม่ถูกต้องทั้งสองอย่าง) ดังนั้นมันจะพอเพียงที่จะระบุตัวแทนอย่างน้อยหนึ่งตัวแทนจากแต่ละชั้น isomorphism แล้วทดสอบ โปรแกรมในอินพุตเหล่านั้น ในใบสมัครของฉันnค่อนข้างเล็ก
อัลกอริทึมผู้สมัครบางส่วนที่ฉันได้พิจารณา:
ฉันสามารถระบุเมทริกซ์ adjacency ที่เป็นไปได้ทั้งหมดเช่นเมทริกซ์สมมาตร 0-or-1 ทั้งหมดที่มี 0 ทั้งหมดบน diagonals อย่างไรก็ตามจำเป็นต้องมีเมทริกซ์2 n ( n - 1 ) / 2 เมทริกซ์เหล่านั้นจำนวนมากจะแสดงกราฟไอโซมอร์ฟิคดังนั้นดูเหมือนว่ามันจะต้องใช้ความพยายามอย่างมาก
ฉันสามารถแจกแจงเมทริกซ์ adjacency ที่เป็นไปได้ทั้งหมดและสำหรับแต่ละรายการทดสอบว่า isomorphic กับกราฟใด ๆ ที่ฉันเคยเอาท์พุทมาก่อนหรือไม่ ถ้ามันไม่ได้เป็นมอร์ฟิคไปยังเอาท์พุทอะไรมาก่อนก็เอาท์พุทมัน นี่จะทำให้รายการผลลัพธ์สั้นลงอย่างมาก แต่ก็ยังต้องการขั้นตอนการคำนวณอย่างน้อยขั้นตอน (แม้ว่าเราจะถือว่าการตรวจสอบ isomorphism กราฟนั้นเร็วมาก) ดังนั้นมันจึงไม่ได้ดีไปกว่านี้
เป็นไปได้ที่จะระบุชุดย่อยของเมทริกซ์คำคุณศัพท์ โดยเฉพาะอย่างยิ่งถ้าเป็นกราฟnจุดV = { โวลต์1 , ... , V n }โดยไม่สูญเสียของทั่วไปผมสามารถสรุปได้ว่าจุดที่มีการจัดเพื่อให้องศาวี1 ≤ องศาวี2 ≤ ⋯ ≤ องศาV n. กล่าวอีกนัยหนึ่งกราฟทุกตัวคือ isomorphic ไปยังที่ซึ่งจุดยอดถูกจัดเรียงตามลำดับที่ไม่ลดลง ดังนั้นจึงพอเพียงที่จะระบุเมทริกซ์ adjacency ที่มีคุณสมบัตินี้ ฉันไม่รู้แน่ชัดว่ามีเมทริกซ์ adjacency กี่ตัว แต่มีน้อยกว่าและพวกมันสามารถระบุได้น้อยกว่า2 n ( n - 1 ) / 2ขั้นของ การคำนวณ อย่างไรก็ตามสิ่งนี้ยังคงทิ้งความซ้ำซ้อนไว้มากมาย: คลาสมอร์ฟิซึ่มหลายชั้นจะยังคงถูกปกคลุมอยู่หลายครั้งดังนั้นฉันสงสัยว่ามันดีที่สุด
เราทำได้ดีกว่านี้ไหม ถ้าฉันเข้าใจถูกต้องมีประมาณคลาสที่เท่าเทียมกันของกราฟที่ไม่ใช่ isomorphic เราสามารถหาอัลกอริทึมที่เวลาทำงานดีกว่าอัลกอริทึมด้านบนได้หรือไม่? วิธีการปิดเราสามารถได้รับการ~ 2 n ( n - 1 ) / 2 / n ! ขอบเขตที่ต่ำกว่า? ฉันสนใจหลักเกี่ยวกับความสามารถในการจัดการได้สำหรับn ตัวเล็ก ๆ(เช่น, n = 5หรือn = 8หรือไม่ก็; พอขนาดเล็กที่หนึ่งฟังสามารถเรียกใช้อัลกอริทึมดังกล่าวจะเสร็จสิ้นเป็นพิเศษ), ไม่มากเกี่ยวกับ asymptotics สำหรับขนาดใหญ่n
ที่เกี่ยวข้อง: การสร้างเมทริกซ์ไบนารีไม่เท่ากัน (แต่น่าเสียดายที่ดูเหมือนว่าจะไม่ได้รับคำตอบที่ถูกต้อง)