6
เมื่อใดที่อัลกอริทึมทั้งสองพูดว่า "คล้ายกัน"
ฉันไม่ได้ทำงานในทางทฤษฎี แต่งานของฉันต้องการการอ่าน (และความเข้าใจ) เอกสารทางทฤษฎีทุกครั้ง เมื่อฉันเข้าใจผลลัพธ์ (ชุด) ฉันจะพูดถึงผลลัพธ์เหล่านี้กับคนที่ฉันทำงานด้วยซึ่งส่วนใหญ่ไม่ทำงานในทางทฤษฎีเช่นกัน ในช่วงหนึ่งของการสนทนาคำถามต่อไปนี้เกิดขึ้น: เมื่อใดที่ไม่บอกว่าอัลกอริธึมที่ให้มาสองตัวนั้น "คล้ายกัน"? ฉันหมายถึงอะไร "คล้ายกัน"? ให้เราบอกว่าอัลกอริธึมทั้งสองนั้นมีความคล้ายคลึงกันถ้าคุณสามารถเรียกร้องข้อใดข้อหนึ่งต่อไปนี้ในกระดาษโดยไม่ทำให้ผู้ตรวจสอบเกิดความสับสน / น่ารำคาญ (ให้คำจำกัดความที่ดีขึ้น) การอ้างสิทธิ์ 1. "อัลกอริทึมซึ่งคล้ายกับอัลกอริทึมBก็สามารถแก้ปัญหาX ได้เช่นกัน "AAABBBXXX อ้างสิทธิ์ 2 "อัลกอริทึมของเราคล้ายกับอัลกอริทึม "CCC ขอผมเจาะจงหน่อยหน่อย สมมติว่าเรากำลังทำงานกับอัลกอริธึมกราฟ เงื่อนไขแรกที่จำเป็นบางประการสำหรับอัลกอริทึมทั้งสองจะคล้ายกัน: พวกเขาจะต้องแก้ไขปัญหาเดียวกัน พวกเขาจะต้องมีความคิดที่ใช้งานง่ายในระดับสูงเดียวกัน ตัวอย่างเช่นการพูดคุยเกี่ยวกับการสำรวจเส้นทางด้วยกราฟการสำรวจเส้นทางแบบกว้างแรกและลึกแรกตรงตามเงื่อนไขสองข้อข้างต้น สำหรับการคำนวณเส้นทางที่สั้นที่สุดอัลกอริธึมที่กว้างที่สุดและ Dijkstra เป็นไปตามเงื่อนไขสองประการข้างต้น เป็นต้น เงื่อนไขเหล่านี้เพียงพอหรือไม่ โดยเฉพาะอย่างยิ่งสมมติว่าอัลกอริธึมสองประการเป็นไปตามเงื่อนไขที่จำเป็นเพื่อให้คล้ายคลึงกัน คุณจะเรียกมันว่าคล้ายกันได้ไหมถ้า พวกมันมีประสิทธิภาพแบบซีมโทติคแตกต่างกันอย่างไร สำหรับการเรียนพิเศษของกราฟหนึ่งขั้นตอนวิธีการต้องเวลาในขณะที่คนอื่น ๆ ต้องใช้O ( n 1 / 3 )Ω (n)Ω(n)\Omega(n)โอ(n1 /3)O(n1/3)O(n^{1/3})เวลาหรือไม่ …