การวิเคราะห์เวลาทำงานประเภทอื่นนอกเหนือจากกรณีเลวร้ายที่สุดกรณีเฉลี่ยหรือไม่?


22

นี่คือวิธีในการวิเคราะห์เวลาทำงานของอัลกอริทึม:

1) การวิเคราะห์ที่แย่ที่สุด: ใช้เวลากับอินสแตนซ์ที่เลวร้ายที่สุด

2) การวิเคราะห์กรณีเฉลี่ย: เวลาทำงานที่คาดหวังในอินสแตนซ์แบบสุ่ม

3) การวิเคราะห์ค่าตัดจำหน่าย: เวลาทำงานเฉลี่ยในลำดับที่แย่ที่สุดของอินสแตนซ์

4) การวิเคราะห์ที่ราบรื่น: เวลาทำงานที่คาดหวังจากอินสแตนซ์ที่รบกวนแบบสุ่มที่เลวร้ายที่สุด

5) การวิเคราะห์กรณีทั่วไป: ใช้เวลาในการที่เลวร้ายที่สุดของทั้งหมด แต่ส่วนย่อยเล็ก ๆ ของอินสแตนซ์

คำถามของฉัน: นี่เป็นรายการที่สมบูรณ์หรือไม่


2
ฉันเดาว่ารายการประเภทนี้จะไม่มีวันหมดสิ้น
Tsuyoshi Ito

คำตอบ:


8

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

แม้ว่ามันจะไม่ได้ตกอยู่ภายใต้ขอบเขตของการวิเคราะห์อัลกอริทึมแบบดั้งเดิม แต่ก็น่าสนใจในสิทธิของตนเอง ความคิดในบทความโดย Afshani-Barbay-Chan (FOCS '09) ที่กล่าวถึงอัลกอริทึมทางเรขาคณิตพิจารณาประสิทธิภาพของอัลกอริทึมที่คำนึงถึงการป้อนข้อมูลตามลำดับ (ซึ่งเกี่ยวข้องกับปัญหาเฉพาะ)

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

การวิเคราะห์กรณีที่เลวร้ายที่สุดเพียงดูที่อินพุตเป็นคลาสเทียบเท่าแต่ละตัวและคำนวณเวลาทำงานสูงสุด การวิเคราะห์กรณีโดยเฉลี่ยดูที่คลาสความเท่าเทียมกันเล็กน้อยซึ่งเป็นหนึ่งเดียวที่ประกอบด้วยอินพุตทั้งหมด ในกระดาษ Afshani-Barbay-Chan อัลกอริทึมของพวกเขาจะดีที่สุดถ้ามีการแบ่งพาร์ติชันลงในคลาสของการเรียงสับเปลี่ยน (กล่าวคือเพื่อประสิทธิภาพหลงลืม)

ไม่ชัดเจนว่าสิ่งนี้นำไปสู่กระบวนทัศน์ใหม่ของการวิเคราะห์อัลกอริทึม หลักสูตรของ Tim Roughgardenมีตัวอย่างที่ยอดเยี่ยมที่สร้างแรงบันดาลใจและครอบคลุมวิธีการที่แตกต่างกันในการวิเคราะห์อัลกอริทึม


ขอบคุณมากสำหรับลิงค์ไปสู่เส้นทางของทิม นั่นคือสิ่งที่ฉันกำลังมองหา
umar

14

ฉันมีอีกสองรายการซึ่งค่อนข้างคล้ายกัน

  1. O(nnO(1))1<<2kO(2knO(1))kn

  2. O(nเข้าสู่ระบบn+k)k


8

O(nเข้าสู่ระบบn)

ดูเหมือนว่าการวิเคราะห์พารามิเตอร์สำหรับอัลกอริทึมเวลาพหุนามและดูเหมือนว่าการวิเคราะห์ที่ไวต่อการส่งออกตกอยู่ในหมวดหมู่นี้


เสิร์จขอบคุณสำหรับลิงค์ไปยังโพสต์บล็อกของ Glencora ความคิดเห็นที่น่าสนใจมากมายที่นั่น
umar

7

นอกจากนี้ยังมีการวิเคราะห์ " ความน่าจะเป็นสูง " (สำหรับอัลกอริธึมแบบสุ่ม) ซึ่งในกรณีใดก็ตามที่คุณกังวลว่าอัลกอริทึมของคุณจะทำงานได้ดีเพียงใด แต่จะเสียเวลาเพียงเล็กน้อยเท่านั้น นี่เป็นเรื่องธรรมดาในทฤษฎีการเรียนรู้


4

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


3

การวิเคราะห์ Bijectiveเป็นวิธีการเปรียบเทียบสองอัลกอริทึม (Spyros Angelopoulos, Pascal Schweitzer: Paging และรายการ update ภายใต้การวิเคราะห์ bijective J. ACM 60, 2013): ประมาณ, อัลกอริทึม A จะดีกว่าอัลกอริทึม B ในอินพุตของ n ความยาว bijection f ของอินพุตของความยาว n ซึ่ง A ดำเนินการกับอินพุต x อย่างน้อยเท่ากับ B บน f (x)


1

การวิเคราะห์การแข่งขัน

ใช้เพื่อเปรียบเทียบอัลกอริทึมออนไลน์กับอัลกอริทึมออฟไลน์ของประสิทธิภาพ ดูหน้าวิกิพีเดีย ปัญหาการอัพเดทรายการเป็นตัวอย่างคลาสสิก


1
แต่ก็ไม่ได้ใช้ในการวิเคราะห์"เวลาทำงานของอัลกอริทึม"
Jukka Suomela

0

การวิเคราะห์เชิงแข่งขันในอัลกอริธึมการแทนที่หน้าวิธีหนึ่งมีน้ำหนักเกินอีกวิธีโดยลดจำนวนหน้าน้อยลง หน้าน้อยที่หายไปแสดงให้เห็นถึง "เวลาทำงานน้อยลง" นอกจากนี้การวิเคราะห์การแข่งขันเป็นวิธีเปรียบเทียบสองวิธี หนังสืออ้างอิงที่ดีคือ "การคำนวณออนไลน์และการวิเคราะห์เชิงแข่งขัน" จากอัลลันโบโรดิน

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