ข้อ จำกัด ของอัลกอริทึมการปีนเขาคืออะไรและจะเอาชนะได้อย่างไร


คำตอบ:


6

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

  • Maxima ท้องถิ่น: อัลกอริทึมฮิลล์ปีนเขาถึงในบริเวณใกล้เคียงค่าสูงสุดในท้องถิ่นได้รับการวาดต่อยอดและได้รับการติดนั้นไม่มีสถานที่อื่นที่จะไป
  • สันเขา: นี่คือลำดับของ maxima ท้องถิ่นทำให้ยากสำหรับอัลกอริธึมในการนำทาง
  • Plateaux: นี่คือภูมิภาครัฐพื้นที่แบน เนื่องจากไม่มีทางขึ้นเขาอัลกอริทึมมักจะหลงทางในที่ราบสูง

เพื่อแก้ไขปัญหาเหล่านี้มีการพัฒนาอัลกอริทึมการปีนเขาหลายรูปแบบ ใช้บ่อยที่สุด:

  • Stochastic Hill Climbingเลือกโดยการสุ่มจากการขึ้นเขา ความน่าจะเป็นของการเลือกจะแตกต่างกันไปตามความชันของการขึ้นเนิน
  • การปีนเขาแบบเลือกครั้งแรกดำเนินการอย่างใดอย่างหนึ่งโดยการสร้างผู้สืบทอดแบบสุ่มจนกระทั่งพบผู้ที่ดีกว่า
  • การค้นหาเริ่มต้นการไต่เขาแบบสุ่มเริ่มต้นจากการเคลื่อนย้ายเริ่มต้นที่สร้างแบบสุ่มจนกระทั่งถึงเป้าหมาย

ความสำเร็จของอัลกอริธึมการปีนเขาขึ้นอยู่กับสถาปัตยกรรมของภูมิประเทศของรัฐ เมื่อใดก็ตามที่มี maxima และ plateaux ไม่กี่ตัวอัลกอริธึมการปีนเขาจะทำงานได้ดีมาก แต่ปัญหาในโลกแห่งความจริงนั้นมีภูมิทัศน์ที่ดูเหมือนว่าครอบครัวเม่นหัวล้านที่กระจัดกระจายอยู่บนพื้นราบมีเม่นขนาดเล็กที่อาศัยอยู่ที่ปลายเข็มเม่นแต่ละอัน (ดังอธิบายในบทที่ 4 ของหนังสือปัญญาประดิษฐ์: A วิธีการสมัยใหม่) โดยทั่วไปแล้วปัญหา NP-Hard จะมีจำนวนสูงสุดของโลคัลสูงสุดที่จะติดอยู่
อัลกอริทึมที่กำหนดได้รับการพัฒนาเพื่อเอาชนะปัญหาประเภทนี้

  • กระตุ้นการหลอม
  • การค้นหา Beam ท้องถิ่น
  • อัลกอริทึมทางพันธุกรรม

หนังสืออ้างอิง- ปัญญาประดิษฐ์: แนวทางที่ทันสมัย


มีทางเลือกมากขึ้นสำหรับแก้ไขปัญหาการปีนเขา คือกลุ่มเรียงสับเปลี่ยนฐานข้อมูลรูปแบบและการค้นหาตามหลักไวยากรณ์ พวกเขาใช้ความรู้เฉพาะโดเมนเพื่อการค้นหาที่เร็วขึ้นในพื้นที่ของรัฐ
Manuel Rodriguez

ใช่ @ManuelRodriguez อัลกอริทึมขึ้นอยู่กับความรู้เฉพาะโดเมนให้ผลลัพธ์ที่ยอดเยี่ยม แต่ฉันพยายามที่จะรักษาคำตอบของปัญหาทั่วไปโดยกล่าวถึงวิธีการบางอย่างที่สามารถเอาชนะข้อ จำกัด ของ Hill Climb Search ได้
Ugnes

5

การปีนเขาไม่ใช่ขั้นตอนวิธี แต่เป็นตระกูลของอัลกอริทึม "การค้นหาในท้องถิ่น" อัลกอริธึมเฉพาะที่จัดอยู่ในหมวดหมู่ของอัลกอริธึม "ปีนเขา" คือ 2-opt, 3-opt, 2.5-opt, 4-opt หรือโดยทั่วไปแล้ว N-opt ใด ๆ ดูบทที่ 3 ของบทความ " ปัญหาพนักงานขายเดินทาง: กรณีศึกษาการเพิ่มประสิทธิภาพท้องถิ่น " (โดย David S. Johnson และ Lyle A. McGeoch) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับอัลกอริทึมการค้นหาในท้องถิ่นเหล่านี้ (นำไปใช้กับ TSP)

สิ่งที่แตกต่างหนึ่งอัลกอริทึมในหมวดหมู่นี้จากที่อื่นคือ "ฟังก์ชั่นย่าน" ที่พวกเขาใช้ (ในคำง่ายๆวิธีที่พวกเขาหาวิธีแก้ปัญหาที่ใกล้เคียงกับโซลูชั่นที่กำหนด) โปรดทราบว่าในทางปฏิบัติกรณีนี้ไม่ได้เกิดขึ้นบ่อยครั้ง: อัลกอริทึมเหล่านี้มีการใช้งานที่แตกต่างกันหลายอย่าง

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

อัลกอริทึมการค้นหาในท้องถิ่นมักจะไม่ใช้คนเดียว พวกมันถูกใช้เป็นรูทีนย่อยของอัลกอริทึม meta-heuristic อื่น ๆ เช่นการจำลองการอบการค้นหาในท้องถิ่นซ้ำหรือในอัลกอริทึม ant-colony ดังนั้นเพื่อเอาชนะข้อ จำกัด เรามักจะไม่ใช้เพียงอย่างเดียว แต่เราใช้ร่วมกับอัลกอริธึมอื่นซึ่งมีลักษณะน่าจะเป็น


คำตอบที่ดี (+1)! คุณสามารถแนะนำทรัพยากร (YouTube, โพสต์ในบล็อก, กระดาษ arxive, หนังสือ) เพื่อเรียนรู้เกี่ยวกับอัลกอริทึมของฝูงมดได้หรือไม่? ฉันไม่เคยได้ยินเกี่ยวกับเรื่องนี้และต้องการที่จะได้รับความคิดคร่าว ๆ ของพวกเขา
Martin Thoma

1
@MartinThoma ฉันกลัวจริงๆฉันไม่รู้เกี่ยวกับการสอนที่ดีมากใน ACS บางทีคุณอาจจะเริ่มต้นด้วยสั้น ๆ ต่อไปกวดวิชาและการดำเนินงานที่สอดคล้องกัน: cleveralgorithms.com/nature-inspired/swarm/... หากคุณสนใจที่จะใช้งานอย่างจริงจังยิ่งขึ้นนำไปใช้กับ TSP แล้วดูที่: aco-metaheuristic.org/aco-codeนำไปใช้โดยStützle (และอื่น ๆ ) ซึ่งเป็นหนึ่งในผู้พัฒนา ของเทคนิคเหล่านี้
nbro

ผู้ถามรู้ว่าคำจำกัดความที่เป็นทางการของการปีนเขาคืออะไรเพราะเขาได้อ่านบทความ Wikipedia แล้ว คำถามจะไปในทิศทางของวิธีการใช้สำหรับปัญญาประดิษฐ์ เป็นที่ทราบกันดีว่าการปีนเขาสามารถค้นหาได้ในพื้นที่ท้องถิ่นเท่านั้นซึ่งทำให้ยากขึ้นสำหรับปัญหาที่เกี่ยวข้องกับ AI โดยปกติการค้นหาจะติดอยู่ใน Optima ท้องถิ่นซึ่งหมายความว่าไม่พบเส้นทางที่สั้นที่สุดในปัญหาพนักงานขายที่เดินทาง
Manuel Rodriguez

1
@MartinThoma อย่างไรก็ตามคุณยังสามารถดูเอกสารการวิจัย ฉันบอกคุณได้เพียงไม่กี่นักวิจัยที่สำคัญ: Dorigo (คนแรกที่แนะนำเทคนิคเหล่านี้ AFAIK), Gambardella และStützle ดูเอกสารของพวกเขา ฉันไม่แน่ใจว่าจะแนะนำแบบใด นอกจากนี้ยังมีหนังสือที่จัดทำขึ้นเพื่อหน่วยสืบราชการลับ (โดย Bonabeau) หากคุณต้องการที่จะลงรายละเอียด
nbro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.