ข้อ จำกัด ของอัลกอริทึมการปีนเขาคืออะไร? เราจะเอาชนะข้อ จำกัด เหล่านี้ได้อย่างไร
ข้อ จำกัด ของอัลกอริทึมการปีนเขาคืออะไร? เราจะเอาชนะข้อ จำกัด เหล่านี้ได้อย่างไร
คำตอบ:
ในฐานะที่เป็น @nbro ได้กล่าวแล้วว่าฮิลล์ปีนเขาเป็นครอบครัวของอัลกอริทึมการค้นหาในท้องถิ่น ดังนั้นเมื่อคุณพูดว่าการปีนเขาในคำถามที่ฉันคิดว่าคุณกำลังพูดถึงการปีนเขามาตรฐาน เวอร์ชันมาตรฐานของการปีนเขามีข้อ จำกัด บางอย่างและมักจะติดอยู่ในสถานการณ์ต่อไปนี้:
เพื่อแก้ไขปัญหาเหล่านี้มีการพัฒนาอัลกอริทึมการปีนเขาหลายรูปแบบ ใช้บ่อยที่สุด:
ความสำเร็จของอัลกอริธึมการปีนเขาขึ้นอยู่กับสถาปัตยกรรมของภูมิประเทศของรัฐ เมื่อใดก็ตามที่มี maxima และ plateaux ไม่กี่ตัวอัลกอริธึมการปีนเขาจะทำงานได้ดีมาก แต่ปัญหาในโลกแห่งความจริงนั้นมีภูมิทัศน์ที่ดูเหมือนว่าครอบครัวเม่นหัวล้านที่กระจัดกระจายอยู่บนพื้นราบมีเม่นขนาดเล็กที่อาศัยอยู่ที่ปลายเข็มเม่นแต่ละอัน (ดังอธิบายในบทที่ 4 ของหนังสือปัญญาประดิษฐ์: A วิธีการสมัยใหม่) โดยทั่วไปแล้วปัญหา NP-Hard จะมีจำนวนสูงสุดของโลคัลสูงสุดที่จะติดอยู่
อัลกอริทึมที่กำหนดได้รับการพัฒนาเพื่อเอาชนะปัญหาประเภทนี้
การปีนเขาไม่ใช่ขั้นตอนวิธี แต่เป็นตระกูลของอัลกอริทึม "การค้นหาในท้องถิ่น" อัลกอริธึมเฉพาะที่จัดอยู่ในหมวดหมู่ของอัลกอริธึม "ปีนเขา" คือ 2-opt, 3-opt, 2.5-opt, 4-opt หรือโดยทั่วไปแล้ว N-opt ใด ๆ ดูบทที่ 3 ของบทความ " ปัญหาพนักงานขายเดินทาง: กรณีศึกษาการเพิ่มประสิทธิภาพท้องถิ่น " (โดย David S. Johnson และ Lyle A. McGeoch) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับอัลกอริทึมการค้นหาในท้องถิ่นเหล่านี้ (นำไปใช้กับ TSP)
สิ่งที่แตกต่างหนึ่งอัลกอริทึมในหมวดหมู่นี้จากที่อื่นคือ "ฟังก์ชั่นย่าน" ที่พวกเขาใช้ (ในคำง่ายๆวิธีที่พวกเขาหาวิธีแก้ปัญหาที่ใกล้เคียงกับโซลูชั่นที่กำหนด) โปรดทราบว่าในทางปฏิบัติกรณีนี้ไม่ได้เกิดขึ้นบ่อยครั้ง: อัลกอริทึมเหล่านี้มีการใช้งานที่แตกต่างกันหลายอย่าง
ข้อ จำกัด ที่ชัดเจนที่สุดของอัลกอริธึมการปีนเขานั้นเป็นเพราะธรรมชาติของพวกเขานั่นคือมันเป็นอัลกอริธึมการค้นหาในท้องถิ่น ดังนั้นพวกเขาจึงมักจะหาท้องถิ่นสูงสุด (หรือต่ำสุด) ดังนั้นหากอัลกอริธึมใด ๆ เหล่านี้ได้แปรสภาพเป็นต่ำสุดในท้องถิ่น (หรือสูงสุด) แล้วและในโซลูชันหรือพื้นที่การค้นหาใกล้กับโซลูชันที่พบนี้เป็นทางออกที่ดีกว่าอัลกอริธึมเหล่านี้จะไม่สามารถค้นหาสิ่งนี้ได้ ทางออกที่ดีกว่า พวกเขาจะถูกขังอยู่โดยทั่วไป
อัลกอริทึมการค้นหาในท้องถิ่นมักจะไม่ใช้คนเดียว พวกมันถูกใช้เป็นรูทีนย่อยของอัลกอริทึม meta-heuristic อื่น ๆ เช่นการจำลองการอบการค้นหาในท้องถิ่นซ้ำหรือในอัลกอริทึม ant-colony ดังนั้นเพื่อเอาชนะข้อ จำกัด เรามักจะไม่ใช้เพียงอย่างเดียว แต่เราใช้ร่วมกับอัลกอริธึมอื่นซึ่งมีลักษณะน่าจะเป็น