ความซับซ้อนของการค้นหาร่วมกับเส้นทางการบีบอัดโดยไม่ต้องอันดับ


10

วิกิพีเดียกล่าวว่าสหภาพตามลำดับโดยไม่ต้องบีบอัดเส้นทางให้ซับซ้อนเวลาตัดจำหน่ายของ O(logn)และการรวมกันทั้งสองแบบโดยการจัดอันดับและการบีบอัดเส้นทางทำให้ความซับซ้อนของเวลาตัดจำหน่ายเป็น O(α(n)) (ในกรณีที่ αเป็นค่าผกผันของฟังก์ชัน Ackerman) อย่างไรก็ตามไม่ได้กล่าวถึงเวลาในการบีบอัดพา ธ ที่ไม่มีอันดับสหภาพซึ่งเป็นสิ่งที่ฉันมักจะนำไปใช้

ความซับซ้อนของเวลาที่ถูกตัดจำหน่ายของยูเนี่ยนค้นหาด้วยการเพิ่มประสิทธิภาพการบีบอัดพา ธ แต่ไม่มีสหภาพโดยการเพิ่มประสิทธิภาพอันดับคืออะไร


5
สังเกตได้ว่า α(n) เป็นสิ่งที่ตรงกันข้ามของฟังก์ชั่น Ackerman ไม่ใช่ 1/A(n,n)). นี่ "อินเวอร์ส" หมายถึงอินเวอร์สเป็นฟังก์ชันไม่ใช่ส่วนกลับ: เช่นถ้าf(n)=A(n,n), α(n)=f1(n)ไม่ใช่ 1/f(n).
DW

ผมเข้าใจว่านี่เป็นคำถามที่ค่อนข้างเก่า แต่ดูคำตอบและกระดาษที่เกี่ยวข้องของฉัน: epubs.siam.org/doi/abs/10.1137/S0097539703439088 ฉันอาจพลาดรายละเอียดหนึ่งหรือสองเมื่อคัดลอกขอบเขต ในกรณีนี้โปรดแนะนำการแก้ไข :-)
BearAqua

คำตอบ:


4

Seidel และ Sharir พิสูจน์ในปี 2005 [1] ว่าการใช้การบีบอัดพา ธ กับการเชื่อมโยงโดยพลการบน m การดำเนินงานมีความซับซ้อนประมาณ O((m+n)log(n)).

ดู [1], ส่วนที่ 3 (การเชื่อมโยงโดยพลการ): อนุญาต f(m,n) แสดงว่ารันไทม์ของ union-find ด้วย m การดำเนินงานและ nองค์ประกอบ พวกเขาพิสูจน์ต่อไปนี้:

อ้างสิทธิ์ 3.1 สำหรับจำนวนเต็มใด ๆk>1 เรามี f(m,n)(m+(k1)n)logk(n).

ตาม [1] การตั้งค่า k=m/n+1 จะช่วยให้

f(m,n)(2m+n)logm/n+1n
.

ขอบเขตที่คล้ายกันถูกกำหนดโดยใช้วิธีการที่ซับซ้อนมากขึ้นโดย Tarjan และ van Leeuwen ใน [2], ส่วนที่ 3:

เลมม่า 7 จาก [2] สมมติmn. ในลำดับของการดำเนินการชุดใด ๆ ที่ดำเนินการโดยใช้รูปแบบใด ๆ ของการบดอัดและการเชื่อมโยงไร้เดียงสาจำนวนโหนดทั้งหมดบนเส้นทางการค้นหาจะมากที่สุด(4m+n)log1+m/nn ด้วยการลิงก์แบบแบ่งครึ่งและไร้เดียงสาจำนวนโหนดทั้งหมดบนพา ธ การค้นหาจะมากที่สุด (8m+2n)log1+m/n(n).

บทที่ 9 จาก [2] สมมติm<n. ในลำดับของการดำเนินการชุดใด ๆ ที่ดำเนินการโดยใช้การบีบอัดและการลิงก์ไร้เดียงสาจำนวนโหนดทั้งหมดในพา ธ การค้นหาจะมากที่สุดn+2mlogn+m.

[1]: R. Seidel และ M. Sharir การวิเคราะห์เส้นทางจากบนลงล่าง Siam J. Computing, 2005, Vol. 34, ลำดับที่ 3, หน้า 515-525

[2]: R. Tarjan และ J. van Leeuwen การวิเคราะห์ที่แย่ที่สุดของชุดอัลกอริทึม Union J. ACM, Vol. 31, ฉบับที่ 2, เมษายน 1984, หน้า 245-281


2

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

พิจารณาลำดับของ n การดำเนินงานของยูเนี่ยนได้รับการคัดเลือกอย่างมีจุดประสงค์เพื่อให้ต้นไม้แห่งความลึก n1(เป็นเพียงเส้นทางต่อเนื่องของโหนดโดยที่แต่ละโหนดเป็นลูกของโหนดก่อนหน้า) จากนั้นดำเนินการค้นหาเดียวบนโหนดที่ลึกที่สุดΘ(n)เวลา. ดังนั้นเวลาทำงานที่เลวร้ายที่สุดต่อการดำเนินการคือΘ(n).

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

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