การค้นหาแบบบีม

การค้นแบบบีม (อังกฤษ: Beam Search) เป็นขั้นตอนวิธีในการค้นหาโดยใช้หลักการศึกษาสำนึก โดยแทนที่จะขยายทุกปมในกราฟ การค้นแบบบีมจะเลือกขยายเฉพาะปมจำนวนหนึ่งที่มีโอกาสนำไปสู่คำตอบมากที่สุด

ความแตกต่างระหว่างการค้นแบบบีมกับการค้นตามแนวกว้างคือ ถึงแม้ว่าการค้นตามแนวกว้าง รับรองว่าการค้นจะเจอเส้นวิธีที่สั้นที่สุด (shortest path) จากจุดเริ่มต้นไปยังจุดเป้าหมาย แต่การเลือกใช้การค้นตามแนวกว้างกับปริภูมิการค้น (search space) ที่ใหญ่นั้นไม่สะดวก เพราะว่า หน่วยความจำที่ใช้มีอัตราการเติบโดแบบอัตราก้าวหน้า (exponential growth) ดังนั้นการค้นแบบแนวกว้างมักจะใช้หน่วยความจำจนหมดก่อนที่จะเจอคำตอบ ด้วยเหตุผลนี้การค้นแบบบีมจึงถูกสร้างขึ้นมาเพื่อพยายามหาคำตอบที่ดีที่สุดที่ได้จากการค้นตามแนวกว้างโดยไม่ใช้หน่วยความจำมากเกินไป

การค้นแบบบีมใช้การค้นตามแนวกว้างในการสร้างต้นไม้ค้นหา ในแต่ละสถานะของการค้น มันจะสร้างปมลูกของปมปัจจุบัน ซึ่งแทนที่จะเก็บทุกปมลูกที่พบ มันจะเรียงลำดับปมลูกจากน้อยไปมากตามจากค่าศึกษาสำนึก (heuristic cost) และเลือกเก็บเฉพาะปมลูกไว้จำนวนหนึ่งตามค่าที่กำหนดไว้ก่อนหน้า ที่เรียกว่าความกว้างของบีม (beam width) ยิ่งค่าความกว้างของบีมมากเท่าไหร่ ปมลูกหรือสถานะ (partial solution state) ก็จะถูกตัดทิ้งน้อยลงเท่านั้น หากค่าความกว้างของบีมมีไม่จำกัด การค้นมีลักษณะเหมือนกับการค้นตามแนวกว้าง กล่าวคือความกว้างของบีมเป็นตัวกำหนดขอบเขตของหน่วยความจำที่ใช้ในการค้นหานั่นเอง

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

ชื่อ

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

การใช้งาน

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

รหัสเทียม

ขั้นตอนวิธี การค้นแบบบีมข้อมูลรับเข้า:กราฟ G,โหนด s คือ โหนดที่ต้องการเริ่มต้นการค้น,โหนด g คือ โหนดเป้าหลายที่ต้องการค้น,ค่าความกว้างของบีม 'w'สร้างแถวคอย Q โดยเริ่มต้นให้แถวคอยว่างสร้างรายการ Visited สำหรับบอกว่าปมไหนเคยเจอแล้ว โดยเริ่มค้นให้รายการ Visited ว่างเพิ่มปมเริ่มต้น s เข้าที่ Qจนกว่า Q จะว่าง หรือ เจอ gให้ u เป็น ปมหน้าสุดในแถวคอย เอาปม u ออกจากแถวคอยถ้า v เป็นปมที่ไม่อยู่ในรายการ Visitedสำหรับทุกปม v ที่เชื่อมกับ u ให้เลือกเพิ่มปม v ที่มีค่าศึกษาสำนึกดีที่สุดจำนวน w ปมต่อที่แถวคอย Qเพิ่ม u เข้าในรายการ Visitedถ้า เจอปม gการค้นหาสำเร็จถ้า ไม่เจอปม gค้นหาไม่สำเร็จ

ตัวอย่างการทำงาน

แบบที่ 1

ให้หาปม H โดยเริ่มจาก A และกำหนดให้ค่าความกว้างของบีม = 2

รอบที่ปมหน้าสุดของแถวคอย(u)ปมที่มีเส้นเชื่อมต่อกับ u เรียงตามค่าศึกษาสำนึกปมที่ในแถวคอย Q หลังจากเพิ่มปมลูกใหม่เข้าไปแล้วปมในรายการ Visitedหมายเหตุ
0--{A}{}-
1AC,D,B{C,D}{A}ปม B ถูกตัดออกเนื่องจากค่าความกว้างของบีม = 2 จึงเลือกเก็บได้ 2 ปมคือปม C,D
2CG{D,G}{A,C}-
3DH{G,H}{A,C,D}-
4GI{G,H,I}{A,C,D,G}-
5Hเจอปมเป้าหมายจบการทำงานเจอปมเป้าหมายจบการทำงานเจอปมเป้าหมายจบการทำงาน-

คำตอบ คือ เจอปม H

แบบที่ 2

ให้หาปม H โดยเริ่มจาก A และกำหนดให้ค่าความกว้างของบีม = 1

รอบที่ปมหน้าสุดของแถวคอย(u)ปมที่มีเส้นเชื่อมต่อกับ u เรียงตามค่าศึกษาสำนึกปมที่ในแถวคอย Q หลังจากเพิ่มปมลูกใหม่เข้าไปแล้วปมในรายการ Visitedหมายเหตุ
0--{A}{}-
1AC,D,B{C}{A}ปม D,B ถูกตัดออกเพราะค่าความกว้างของบีม = 1 ซึ่งเลือกเก็บได้ปมเดียวซึ่งก็คือ C
2CG{G}{A,C}-
3GI{}{A,C,G}-
4ไม่มีปมเหลือใน Q จบการทำงานไม่มีปมเหลือใน Q จบการทำงานไม่มีปมเหลือใน Q จบการทำงานไม่มีปมเหลือใน Q จบการทำงาน-

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

วิเคราะห์การทำงาน

ความสมบูรณ์ของขั้นตอนวิธี (Completeness)

โดยทั่วไปการค้นแบบบีมจะไม่มีความสมบูรณ์ คือ ขั้นตอนวิธีนี้มีจะไม่เจอปมที่ค้นหาถึงแม้ว่าจะมีวิธี(path)จากปมเริ่มต้นไปยังปมทีต้องการค้นหาก็ตาม เพราะปมที่นำไปสู่ปมเป้าหมายอาจโดนตัดทิ้งระหว่างการค้นเนื่องจากค่าความกว้างของบีมน้อยเกินไป การขาดความสมบูรณ์ของขั้นตอนวิธีเป็นข้อเสียหนึ่งของการค้นแบบบีม

ซึ่งเราสามารถเพิ่มโอกาสให้เจอปมเป้าหมายได้โดยการ ขยายความกว้างของบีมหรือปรับฟังก์ชันศึกษาสำนึกให้แม่นยำมากขึ้นซึ่งทั่วไปที่นิยมทำกันคือเวลาค้นจะไม่จำหนดความกว้างของบีมตายตัวแต่กำหนดเป็นช่วงแทน โดยจะกำหนดค่าเริ่มค้นให้ เมื่อการค้นครั้งแรกไม่สำเร็จก็จะขยายความกว้างให้มากขึ้น

ความตอบที่ดีที่สุดที่ได้จากขั้นตอนวิธี (Optimality)

เนื่องจากการค้นไม่มีความสมบูรณ์ของขั้นตอนวิธี จึงไม่ยืนยันว่าจะได้คำตอบที่ดีที่สุด เนื่องจากวิถีย่อยของวิถีที่ดีที่สุดอาจโดนตัดออกไปจากการค้นเนื่องจากค่าความกว้างของบีมน้อยเกินไปเช่นกัน

ประสิทธิภาพเชิงเวลา (Time Complexity)

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

ประสิทธิภาพเชิงหน่วยความจำ (Space Complexity)

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

อ้างอิง

ศึกษาเพิ่มเติม

🔥 Top keywords: พระวรวงศ์เธอ พระองค์เจ้าเฉลิมศึกยุคลหน้าหลักพระสุนทรโวหาร (ภู่)องค์การกระจายเสียงและแพร่ภาพสาธารณะแห่งประเทศไทยพิเศษ:ค้นหาพระบาทสมเด็จพระวชิรเกล้าเจ้าอยู่หัวพระเจ้าวรวงศ์เธอ พระองค์เจ้าเฉลิมพลฑิฆัมพรอสมทวอลเลย์บอลหญิงเนชันส์ลีก 2024สไปร์ท (แร็ปเปอร์)ฟุตบอลชิงแชมป์แห่งชาติยุโรปฟุตบอลชิงแชมป์แห่งชาติยุโรป 2024พุ่มพวง ดวงจันทร์ดวงใจเทวพรหม (ละครโทรทัศน์)อีดิลอัฎฮาสมเด็จพระเจ้าบรมวงศ์เธอ เจ้าฟ้ายุคลทิฆัมพร กรมหลวงลพบุรีราเมศวร์ดอกเตอร์ไคลแมกซ์ ปุจฉาพาเสียวราชวงศ์จักรีลำดับโปเจียมแห่งราชอาณาจักรไทยรายชื่อตัวละครในพระอภัยมณีหม่อมเจ้านวพรรษ์ ยุคลทุติยจุลจอมเกล้าวิเศษพระเจ้าวรวงศ์เธอ พระองค์เจ้าภาณุพันธุ์ยุคลพระอภัยมณีหม่อมเจ้ามงคลเฉลิม ยุคลหม่อมเจ้าฑิฆัมพร ยุคลพระบาทสมเด็จพระจุลจอมเกล้าเจ้าอยู่หัวพระบาทสมเด็จพระมหาภูมิพลอดุลยเดชมหาราช บรมนาถบพิตรหลานม่าอริยสัจ 4ตารางธาตุนิราศภูเขาทองรายชื่อเครื่องดนตรีเฌอมาวีร์ สุวรรณภาณุโชคประเทศไทยอาณาจักรอยุธยาปิติ ภิรมย์ภักดีวอลเลย์บอลวอลเลย์บอลหญิงทีมชาติไทย