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


10

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

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


5
สังเกตได้ว่า α(n) เป็นสิ่งที่ตรงกันข้ามของฟังก์ชั่น Ackerman ไม่ใช่ 1/A(n,n)). นี่ "อินเวอร์ส" หมายถึงอินเวอร์สเป็นฟังก์ชันไม่ใช่ส่วนกลับ: เช่นถ้าf(n)=A(n,n), α(n)=f−1(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+(k−1)n)⌈logk⁡(n)⌉.

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

f(m,n)≤(2m+n)log⌈m/n⌉+1⁡n
.

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

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

บทที่ 9 จาก [2] สมมติm<n. ในลำดับของการดำเนินการชุดใด ๆ ที่ดำเนินการโดยใช้การบีบอัดและการลิงก์ไร้เดียงสาจำนวนโหนดทั้งหมดในพา ธ การค้นหาจะมากที่สุดn+2m⌈log⁡n⌉+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 การดำเนินงานของยูเนี่ยนได้รับการคัดเลือกอย่างมีจุดประสงค์เพื่อให้ต้นไม้แห่งความลึก n−1(เป็นเพียงเส้นทางต่อเนื่องของโหนดโดยที่แต่ละโหนดเป็นลูกของโหนดก่อนหน้า) จากนั้นดำเนินการค้นหาเดียวบนโหนดที่ลึกที่สุดΘ(n)เวลา. ดังนั้นเวลาทำงานที่เลวร้ายที่สุดต่อการดำเนินการคือΘ(n).

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

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