ขอบเขตใดที่สามารถใช้ในการนับโหนดที่สามารถเข้าถึงได้ในแบบ dag


23

รับเป็น dag คุณต้องการติดป้ายกำกับแต่ละโหนดด้วยจำนวนโหนดที่เข้าถึงได้จากโหนดนั้น เป็นขอบเขตบนเล็กน้อย เป็นขอบเขตล่าง (ฉันคิดว่า) มีอัลกอริทึมที่ดีกว่าหรือไม่ มีเหตุผลที่จะเชื่อว่าขอบเขตล่างนั้นสามารถปรับปรุงได้หรือไม่Ω ( V + E )O(V(V+E))Ω(V+E)

แรงจูงใจ: ฉันต้องทำสองสามครั้งในขณะที่แสดงสูตร fol เป็น dags

แก้ไข: โปรดทราบว่าเพียงแค่ทำนับเส้นทางที่ไม่สามารถเข้าถึงได้โหนด (ฉันเพิ่มสิ่งนี้เพราะเห็นได้ชัดว่าหลายคนคิดว่าวิธีแก้ปัญหาง่าย ๆ นี้จะทำงานโดยการโหวตที่ฉันเห็นในคำตอบที่ถูกลบตอนนี้) ในความเป็นจริงปัญหานี้จะปรากฏขึ้นอย่างแม่นยำเมื่อคุณต้องการทำบางสิ่งที่น่าสนใจ มากกว่าหนึ่งเส้นทาง นอกจากนี้ฉันพูดว่า dag เพราะถ้าพวกเขาได้รับการแก้ไขแล้วการแก้ digraphs เป็นเรื่องง่ายcx=1+xycy


นี่เป็นกรณีพิเศษ (ตั้งค่าน้ำหนักทั้งหมดเป็นหนึ่งเดียว) จากcstheory.stackexchange.com/questions/736/…
Suresh Venkat

@Suresh: น้ำหนักโดยพลการทำให้ปัญหายากขึ้นดูเหมือนว่าฉันต้องการคำถามที่น่าสนใจอีก
Radu GRIGore

คำตอบ:


10

ปิดสกรรมกริยาของกราฟกับขอบและจุดสามารถคำนวณได้เร็วขึ้นเล็กน้อยกว่าเวลา แต่ไม่มาก อัลกอริทึมเวลาถูกกล่าวถึงในเชิงอรรถของจันกระดาษ 2,005 WADS บน APSP (รุ่นในวารสาร Algorithmica 2008) การปรับปรุงเล็กน้อยสำหรับสามารถพบได้ในกระดาษของ ICALP'08 "วิธี Combinatorial ใหม่สำหรับปัญหากราฟเบาบาง" โดย Blelloch, Vassilevska และวิลเลียมส์ ที่ถูกกล่าวว่าฉันไม่ทราบว่านับเชื้อสายได้ง่ายกว่าการหาพวกเขาจริงn O ( m n ) O ( n 2 + m n / log n ) O ( n 2 + m n log ( n 2 / m ) / log 2 n )mnO(mn)O(n2+mn/logn)O(n2+mnlog(n2/m)/log2n)


4
นอกจากนี้ให้ดูที่กระดาษของ Edith Cohen "กรอบการประมาณขนาดด้วยแอปพลิเคชันเพื่อการปิดและการเข้าถึงได้ง่าย" มันให้อัลกอริทึมแบบสุ่มซึ่งประเมินจำนวนของลูกหลานได้อย่างมีประสิทธิภาพ
virgi

โปรดทราบว่าผลลัพธ์นี้ใช้กับกราฟกำกับทั้งหมดไม่ใช่เฉพาะ DAG
tonfa

ใช่. ผลลัพธ์นี้ยังใช้กับเวอร์ชันถ่วงน้ำหนักที่กล่าวถึงในcstheory.stackexchange.com/questions/736/…
virgi

7

ฉันคิดว่าคุณสามารถใช้การคูณเมทริกซ์เพื่อคำนวณการปิดสกรรมกริยาของ DAG จากนั้นใช้จำนวนนอกประเทศเป็นจำนวนที่ต้องการ ฉันไม่มีความเชี่ยวชาญในวรรณคดี แต่ฉันคิดว่าคุณสามารถคำนวณการปิด transitive ในเวลาเดียวกับการคูณเมทริกซ์เช่นเวลา: http://www.computer.org/portal/web/csdl/ ดอยnω


ขอบคุณที่น่าสนใจ! ฉันควรเพิ่ม dags ที่แสดงถึงสัญลักษณ์เชิงสัญลักษณ์มีแนวโน้มที่จะกระจัดกระจายดังนั้นฉันจึงสนใจในกรณีนี้มากขึ้น
Radu GRIGore

1

อาจไม่มีประโยชน์ในบริบทของคุณ แต่คุณสามารถได้รับการประมาณโดยใช้การกระจายแบบย่อ (http://www.cs.cmu.edu/~sknath/sd.htm) ฉันคิดว่านั่นทำให้ O (V + E) การจำลองการสรุปการแพร่กระจายบนตัวประมวลผลเดียวดูเหมือนว่าฉันจะเป็น O (V + E), (คุณต้องทำโทโพโลยีแบบเรียงลำดับก่อนซึ่งก็คือ O (V + E)

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