เมื่อไม่นานมานี้ฉันได้รับประสบการณ์ที่สนุกสนานอย่างเจ็บปวดจากการอธิบายแนวคิดของความซับซ้อนในการคำนวณให้กับโปรแกรมเมอร์ที่สอนด้วยตนเองที่มีความสามารถอายุน้อยซึ่งไม่เคยเรียนหลักสูตรทางการในอัลกอริธึมหรือความซับซ้อนมาก่อน ไม่น่าแปลกใจมากของความคิดที่ดูเหมือนแปลกในตอนแรก แต่ทำให้ความรู้สึกกับบางตัวอย่าง(PTIME, intractability, uncomputability)ขณะที่คนอื่นดูเหมือนจะมาเป็นธรรมชาติมากขึ้น(การจัดหมวดหมู่ปัญหาผ่านการลดเวลาและพื้นที่ที่เป็นแหล่งข้อมูลการวิเคราะห์เชิง) ทุกอย่างกำลังดีจนกระทั่งฉันยอมรับSATโดยไม่ตั้งใจสามารถแก้ไขได้อย่างมีประสิทธิภาพ * ในทางปฏิบัติ ... และเช่นเดียวกับที่ฉันทำมันหายไป มันไม่สำคัญว่าฉันจะพยายามโต้เถียงในทางทฤษฎีอย่างไรเด็กคนนั้นเชื่อว่ามันเป็นคณิตศาสตร์อึที่เขาไม่ควรสนใจ ดี...
¯ \ _ (ツ) _ / ¯
ไม่ฉันไม่ได้ใจสลายหรือฉันไม่สนใจจริงๆเกี่ยวกับสิ่งที่เขาคิดนั่นไม่ใช่ประเด็นของคำถามนี้ การสนทนาของเราทำให้ฉันคิดคำถามอื่น
ฉันรู้มากแค่ไหนเกี่ยวกับปัญหาที่ยากลำบากในทางทฤษฎี (ความซับซ้อนของเวลาแบบโพลิโพโนเมียลชั้นสูง) แต่สามารถแก้ไขได้จริง (ผ่านทางฮิวริสติก, การประมาณค่า, ตัวแก้ SAT ฯลฯ )?
ฉันรู้ไม่มาก ฉันรู้ว่ามีตัวแก้ SAT ที่มีประสิทธิภาพมากที่สามารถแก้ไขอินสแตนซ์ขนาดใหญ่ได้อย่างมีประสิทธิภาพนั่นคือ Simplex ทำงานได้ดีในทางปฏิบัติและอาจมีปัญหาหรืออัลกอริธึมอีกเล็กน้อย คุณช่วยฉันวาดภาพที่สมบูรณ์มากขึ้นได้ไหม? ปัญหาใดที่เป็นที่รู้จักกันดีหรือแม้กระทั่งคลาสของปัญหาที่อยู่ในหมวดหมู่นี้
TL: DR: ปัญหาอะไรบ้างที่สามารถแก้ไขได้ในทางปฏิบัติโดยวิธีตอบโต้ มีทรัพยากร (อัพเดท) เพื่ออ่านเพิ่มเติมหรือไม่ เรามีลักษณะเฉพาะของพวกเขาหรือไม่? และในที่สุดตามคำถามการอภิปรายทั่วไปเราควรหรือไม่
แก้ไข # 1:ในความพยายามที่จะตอบคำถามการอภิปรายครั้งสุดท้ายของฉันเกี่ยวกับการดังกล่าวเป็นตัวละครที่ผมถูกนำไปวิเคราะห์เรียบของขั้นตอนวิธีแนวคิดนำโดยแดเนียล Spielman และแชงฮัวเทงใน [1] อย่างต่อเนื่องสอดแทรกระหว่างเลวร้ายที่สุดกรณีและ การวิเคราะห์กรณีอัลกอริธึมโดยเฉลี่ย มันไม่ได้เป็นลักษณะที่กล่าวถึงข้างต้น แต่มันจับแนวคิดเดียวกันและฉันพบว่ามันน่าสนใจ
[1] Spielman, Daniel A. และ Shang-Hua Teng "การวิเคราะห์อัลกอริธึมราบรื่น: ทำไมอัลกอริธึมเริมมักใช้เวลาพหุนาม" วารสาร ACM (JACM) 51 หมายเลข 3 (2004): 385-463