ข้ามไปที่เนื้อหา

การเพิ่มประสิทธิภาพ

กำหนดขั้นตอนวิธีเชิงพันธุกรรม

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

วิธีขั้นตอนเชิงพันธุกรรมอยู่บนพื้นฐานของทฤษฎีการคัดเลือกตามธรรมชาติ ทฤษฎีนี้ระบุว่าเฉพาะปัจเจกที่แข็งแกร่งที่สุดเท่านั้นที่จะอยู่รอดเพื่อการสืบพันธุ์ในรุ่นต่อไป

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

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

ขั้นตอนของขั้นตอนวิธีเชิงพันธุกรรม

ขั้นตอนวิธีเชิงพันธุกรรมใดๆ มีขั้นตอนดังต่อไปนี้

graph TB
  B([การคัดเลือก]) ==> C([การผสมข้าม]);
  C ==> D([การกลายพันธุ์]);
  D ==> B;

ขั้นตอนต่างๆ มีคำอธิบายดังนี้

การคัดเลือก

ในขั้นตอนนี้ ขั้นตอนวิธีจะค้นหาการผ่านการปรับค่าที่เหมาะสมที่สุดสองอันโดยใช้คะแนนความเหมาะสมของแต่ละอัน

การข้ามสายพันธุ์

หลังจากค้นพบการผ่านการปรับค่าที่เหมาะสมที่สุดสองอัน ขั้นตอนวิธีจะใช้สิ่งเหล่านี้เพื่อสร้างการผ่านรุ่นลูก (หรือรุ่นสืบทอด) ใหม่โดยใช้การผสมผสานค่าพารามิเตอร์ของการผ่านรุ่นพ่อแม่ทั้งสอง

ตัวอย่าง

หาก cBot ของคุณมีพารามิเตอร์สี่ตัวสำหรับการปรับค่าที่เหมาะสม ขั้นตอนวิธีจะได้รับค่าของพารามิเตอร์ตัวแรกและตัวที่สองของการผ่านรุ่นลูกจากพ่อแม่คนหนึ่ง และพารามิเตอร์ตัวที่สามและสี่จากพ่อแม่คนที่สอง

การกลายพันธุ์

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

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

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

พารามิเตอร์ของขั้นตอนวิธีเชิงพันธุกรรม

ขั้นตอนวิธีเชิงพันธุกรรมมีพารามิเตอร์หลายตัวที่ใช้ในระหว่างช่วงชีวิตของมัน พารามิเตอร์เหล่านี้ไม่สามารถเปลี่ยนแปลงได้

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