การแจกแจงประเภททอพอโลยีของ DAG ที่ติดป้ายจุดสุดยอด


11

ให้เป็นผู้กำกับวัฏจักรกราฟและให้จะเป็นฟังก์ชั่นการติดฉลากการทำแผนที่จุดสุดยอดแต่ละป้ายกำกับในบาง จำกัด ตัวอักษรLกำลังเขียนการเรียงลำดับทอพอโลยีของเป็น bijectionจากเพื่อ (เช่นการสั่งซื้อของในลำดับ) เช่นว่าเมื่อใดก็ตามแล้ว (เช่นถ้ามีขอบจากถึงG=(V,E)λvVλ(v)Ln:=|V|Gσ{1,,n}VV(v,v)Eσ1(v)<σ1(v)vvจากนั้นเกิดขึ้นก่อนตามลำดับ) ฉลากของเป็นคำที่ใน nvvσσ(1)σ(n)Ln

ให้ฉันต้องการแจกแจงฉลากของประเภททอพอโลยีของอย่างมีประสิทธิภาพ ความซับซ้อนของการระบุฉลากของทอพอโลยีแปลก ๆ คืออะไร? แน่นอนว่าอาจมีจำนวนมากแทนฉันต้องการศึกษาความซับซ้อนเป็นหน้าที่ของขนาดของผลลัพธ์หรือในแง่ของความล่าช้า โดยเฉพาะอย่างยิ่งการแจงนับสามารถดำเนินการได้ด้วยความล่าช้าแบบพหุนาม (หรือแม้กระทั่งความล่าช้าคงที่?)(G,λ)G

ในกรณีที่จุดทั้งหมดของดำเนินการป้ายชื่อที่แตกต่างกัน (หรือเท่ากันจุดที่มีป้ายกำกับด้วยตัวเอง) ผมรู้ว่าป้ายที่สามารถแจกแจงคงตัดจำหน่ายเวลาโดยผลนี้บน การแจกแจงการขยายเชิงเส้นของ posets (ซึ่งเป็นสิ่งเดียวกันกับการแจกแจงการจัดเรียงทอพอโลยีประเภทของ DAG) อย่างไรก็ตามเมื่อจุดยอดถูกติดป้ายกำกับโดยพลการมันอาจเป็นกรณีที่จำนวนทอพอโลยีจำนวนมากมีป้ายชื่อเดียวกันดังนั้นคุณจึงไม่สามารถระบุประเภททอพอโลยีและคำนวณฉลากเพื่อรับวิธีที่มีประสิทธิภาพในการระบุฉลาก . ในคำศัพท์ poset, ป้าย DAGสามารถมองเห็นเป็นป้ายG{1,,n}G(G,λ) poset และฉันไม่สามารถหาผลลัพธ์การแจงนับเกี่ยวกับสิ่งเหล่านั้นได้

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

โปรดทราบว่ามันเป็นเรื่องง่ายที่จะเห็นได้ชัดระบุแรกฉลาก (ใช้เวลาเพียงแค่การจัดเรียง topological ใด ๆ ) เพื่อระบุอีกฉลากกว่าคุณสามารถดำเนินการโดยการจัดเก็บภาษีว่าบางองค์ประกอบของได้รับการแจกแจงที่ตำแหน่งบางที่ : ลองทุกและและตรวจสอบว่ามีการเรียงโทโพโลยีที่อยู่ที่ตำแหน่งซึ่งสามารถทำได้อย่างชัดเจนใน PTIME แต่เมื่อคุณแสดงป้ายกำกับมากขึ้นเรื่อย ๆ ฉันไม่แน่ใจว่าจะทำแนวทางนี้ได้อย่างไรssvVi{1,,n}siλ(v)viGvi

คำตอบ:


-1

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

ตอนนี้เพื่อ จำกัด การทำซ้ำการสำรวจเส้นทางเดียวกันเนื่องจากป้ายกำกับที่คล้ายกันเราสามารถเปรียบเทียบเพื่อนบ้านที่ไม่ได้เข้าชมของมีป้ายกำกับที่คล้ายกัน พิจารณาสองจุดและที่มีเพื่อนบ้าน unvisited เดียวกันเมื่อถึงสำรวจเส้นทางยูการเลือกอย่างใดอย่างหนึ่งก่อนจะสร้างทรี DFS เดียวกันดังนั้นจึงสามารถหลีกเลี่ยงได้v1,v2,...,vkuvivju

ตอนนี้การเปรียบเทียบเพื่อนบ้านของทั้งหมดจะนำไปสู่ค่าใช้จ่ายของในเวลาทั้งหมด แต่สามารถทำได้อย่างมีประสิทธิภาพมากขึ้นในโดยใช้ข้อมูลที่เหมาะสม โครงสร้างv1,...,vkO(n2)O~(n)


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

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

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

ขอบคุณสำหรับคำอธิบาย อย่างไรก็ตามฉันกำลังมองหาพหุนามผูกพันกับความซับซ้อนที่ใช้กับทุกกรณีไม่ใช่สำหรับฮิวริสติกที่ไม่มีการรับรองทางทฤษฎี! :)
a3nm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.