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