อัลกอริทึมทางพันธุกรรมต้องการวิธีการตอบแทนยีนที่ดีด้วยการเผยแพร่ที่มากขึ้น ถ้าคุณไม่มีวิธีบอกยีนที่ดีจากยีนที่ไม่ดีคุณไม่สามารถใช้อัลกอริทึมทางพันธุกรรมได้เลย
เพื่อให้อัลกอริทึมทางพันธุกรรมทำงานได้คุณจะต้องอนุญาตให้ใช้โซลูชันที่เหมาะสมยิ่งขึ้นเพื่อทำซ้ำตามความต้องการของโซลูชันที่ไม่พอดี มิฉะนั้นคุณจะลองใช้วิธีแก้ปัญหาแบบสุ่ม
นี่เป็นตัวอย่างทั่วไปจากประสบการณ์ของฉัน: การพัฒนาหนึ่งในระบบโทรออกด้วยเสียงแรกเรามีเวลาหาอัลกอริทึมเพื่อจับคู่ชื่อพูดกับสำเนาที่เก็บไว้ของชื่อเดียวกันนั้นได้ยาก เราได้รับแจ้งว่าความถูกต้อง 95% การเลือกชื่อหนึ่งจาก 25 นั้นเพียงพอ เรามีคลังเก็บของคนที่บอกว่า 25 ชื่อ 10 ครั้งในแต่ละครั้ง
ก่อนอื่นเราพัฒนาระบบอินพุตที่วัดความยาวของคำพูดและพลังงานความถี่ในชิ้นส่วนต่างๆ จากนั้นเราพัฒนาอัลกอริทึมที่กำหนดน้ำหนักให้กับการจับคู่ของพารามิเตอร์เหล่านั้นและเปรียบเทียบพารามิเตอร์สองชุดผ่านน้ำหนักเหล่านั้น
ตอนนี้เรามีขั้นตอนสุดท้ายแล้ว - คุณค่าของน้ำหนักเหล่านั้นควรเป็นอย่างไร
เราสร้างตุ้มน้ำหนัก 1,000 ชุดและทดสอบกับคลังข้อมูล เราโยน 500 รายการที่แย่ที่สุดออกไป สำหรับส่วนที่เหลืออีก 500 เราได้ทำซ้ำแต่ละรายการและหนึ่งในนั้นทำการสุ่มยกหรือลดน้ำหนักอย่างใดอย่างหนึ่ง
เราทำซ้ำกระบวนการนี้บนคอมพิวเตอร์เป็นเวลาประมาณสองสัปดาห์จนกระทั่งในที่สุดมันก็มีชุดน้ำหนักที่ตรงตามเกณฑ์ความแม่นยำ 95% จากนั้นเราทำการทดสอบกับข้อมูลที่ไม่ได้อยู่ในคลังข้อมูล มันแม่นยำประมาณ 92% ดังนั้นเราจึงวิ่งไปอีกนานเพื่อให้ได้ความแม่นยำ 98% ในคลังข้อมูลและชุดของน้ำหนักนั้นสร้างความแม่นยำ 95% สำหรับข้อมูลที่ไม่ได้อยู่ในคลังข้อมูล
ดังนั้นประเด็นคือคุณต้องมีฟังก์ชั่นการออกกำลังกายเพื่อใช้อัลกอริทึมทางพันธุกรรม หากคุณไม่มีวิธีที่จะบอกยีนที่ดีจากยีนที่ไม่ดีคุณจะแน่ใจได้อย่างไรว่ายีนที่ดีนั้นจะผลิตซ้ำและยีนที่ไม่ดีจะทำไม่ได้?