อัลกอริทึมพันธุกรรมเป็นตัวเลือกที่ดีสำหรับการเพิ่มประสิทธิภาพเมื่อใด


20

อัลกอริทึมทางพันธุกรรมเป็นรูปแบบหนึ่งของวิธีการเพิ่มประสิทธิภาพ บ่อยครั้งที่การไล่ระดับสีแบบสุ่มและอนุพันธ์เป็นทางเลือกที่ดีที่สุดสำหรับการปรับฟังก์ชั่นให้ดีที่สุด แต่บางครั้งก็ยังใช้อัลกอริทึมทางพันธุกรรม ตัวอย่างเช่นเสาอากาศของยานอวกาศ ST5 ของนาซาสร้างขึ้นด้วยอัลกอริธึมทางพันธุกรรม:

เสาอากาศ ST5

เมื่อใดที่การเพิ่มประสิทธิภาพทางพันธุกรรมเป็นทางเลือกที่ดีกว่าวิธีการไล่ระดับสีแบบลาดชันทั่วไป


7
+1 สำหรับตัวอย่างฉันพบกระดาษต้นฉบับ: alglobus.net/NASAwork/papers/Space2006Antenna.pdf
Tim

คำตอบ:


19

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

คุณพูดถึงอัลกอริธึมจากอนุพันธ์ แต่ถึงแม้จะไม่มีอนุพันธ์ก็มีอัลกอริธึมการเพิ่มประสิทธิภาพที่ปราศจากอนุพันธ์มากมายที่ทำงานได้ดีกว่า GA ดูนี่และคำตอบนี้สำหรับความคิดบางอย่าง

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

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

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

แน่นอนว่าในอนาคตอาจนำไปสู่การลืม GAs ไปพร้อม ๆ กันและพัฒนาวิธีการแมปช่องว่างแบบแยกไปยังพื้นที่ต่อเนื่องและใช้เครื่องมือเพิ่มประสิทธิภาพที่เรามีในการแสดงอย่างต่อเนื่อง


2

วิธีการทางพันธุกรรมนั้นเหมาะสำหรับการเพิ่มประสิทธิภาพหลายเกณฑ์เมื่อการไล่ระดับสีมีไว้สำหรับการเพิ่มประสิทธิภาพ monocriteria การไล่ระดับสีช่วยให้สามารถค้นหาฟังก์ชั่นขั้นต่ำเมื่อมีอนุพันธ์อยู่และมีทางออกที่ดีที่สุดเพียงทางเดียว (ถ้าเรายกเว้นมินิบาร์ในท้องถิ่น) อัลกอริทึมพันธุศาสตร์สามารถใช้ในปัญหาหลายเกณฑ์และนำไปสู่ความต่อเนื่องของการแก้ปัญหาแต่ละคน beeing ของประชากรที่มีวิวัฒนาการมาจากประชากรเริ่มต้น ค่าที่เหมาะสมที่สุดคือฟีโนไทป์ของแต่ละบุคคลและอาจมีฟีโนไทป์หลายอย่าง Generaly ไม่มีบุคคลใดมีคุณค่าที่ดีกว่าของฟีโนไทป์แต่ละคนพร้อมกันดังนั้นจึงไม่มีทางออกเดียว บุคคลในกลุ่มประชากรสุดท้ายซึ่งเป็นคำตอบทั้งหมดของการปรับให้เหมาะสมเป็นส่วนหนึ่งของ "หน้า Pareto" และทำเครื่องหมายว่าเป็น "อันดับ Pareto" บุคคล นี่หมายความว่าเมื่อเปรียบเทียบกับบุคคลอื่นที่มีประสิทธิภาพการทำงานเหมือนกันสำหรับฟีโนไทป์แต่ละครั้งพวกเขาจะดีกว่าฟีโนไทป์หนึ่งอย่างน้อยหนึ่งฟีเจอร์หนึ่ง


ตกลงสำหรับการลงคะแนน แต่คุณสามารถอธิบายได้ไหมว่าฉันผิดที่ไหน?
manu190466

5
ไซต์นี้ให้คุณค่าคำตอบที่ให้บริบทและพื้นหลัง ดูหน้าความช่วยเหลือนี้เพื่อหาคำตอบที่จะเพิ่มในคลังเก็บของคำตอบที่เป็นประโยชน์สำหรับคำถามที่น่าสนใจ การอธิบายคำตอบของคุณเป็นวิธีที่ดีในการทดสอบความเข้าใจของคุณเอง ตัวอย่างเช่นในกรณีนี้คุณอาจต้องการขยายว่าอัลกอริธึมทางพันธุกรรม "เหมาะสำหรับการเพิ่มประสิทธิภาพหลายเกณฑ์หรือไม่" เนื่องจากหน้า Wikipediaดูเหมือนจะบ่งบอกถึงฟังก์ชั่นการออกกำลังกายที่มีคุณค่าเดียวเป็นวัตถุประสงค์สำหรับอัลกอริทึมทางพันธุกรรม
EdM

0

ดีที่สุดในแง่ใด

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

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

แนวคิด, อัลกอริทึมทางพันธุกรรมสามารถถูกแสดงด้วย hashmap ของฟังก์ชั่นและเหมาะสมกับภาษาของฟังก์ชัน function เช่น Clojure ซึ่งเป็นภาษาที่คุณสามารถบรรลุผลลัพธ์ที่ยิ่งใหญ่ได้อย่างรวดเร็ว

อัลกอริทึมทางพันธุกรรมสามารถซ้อนกันได้: ฟังก์ชันต้นทุนของหนึ่ง GA สามารถเป็น GA ได้! อัลกอริธึมเหล่านี้ใช้ประโยชน์จากฮาร์ดแวร์และโครงสร้างพื้นฐานที่ทันสมัยซึ่งช่วยให้พวกเขาสามารถคำนวณประชากรจำนวนมากดังนั้น - แม้จะมีการกลายพันธุ์ / การเลือกอย่างง่าย - คุณยังสามารถบรรลุผลลัพธ์ที่ดีได้

แม้แต่ปัญหาง่ายๆเช่นการค้นหาฟังก์ชันคลื่นขั้นต่ำ GAs ก็ไม่ได้เลวร้ายและสามารถบรรลุความแม่นยำที่เหมาะสมในเวลาที่ยอมรับได้

ดังนั้นการแก้ปัญหาเชิงวิเคราะห์อาจมีเวลาดำเนินการและความแม่นยำที่รวดเร็วกว่า แต่เวลาที่ใช้ในการสร้างผลลัพธ์ที่เกินความคาดหมายมักเป็นประโยชน์! ดังนั้นเมื่อ ? เกือบทุกครั้งที่ฉันอย่างน้อยก็สำหรับ meta-optimization


แรงผลักดันหลักของการโต้แย้งนี้น่าจะเป็นว่าอัลกอริทึมทางพันธุกรรมเป็นเครื่องมือเพิ่มประสิทธิภาพกล่องดำ แต่มีตัวเพิ่มประสิทธิภาพกล่องดำมากมาย ทำไมสิ่งนี้ถึงดีกว่าตัวเลือกอื่น ๆ นอกจากนี้ฉันไม่คิดว่าเป็นกรณีที่ GA สามารถจัดการข้อ จำกัด ได้อย่างง่ายดาย ตัวอย่างเช่นถ้าฟังก์ชั่นไม่ได้กำหนดยกเว้นพื้นที่ย่อย 3D ในโลก 4D แน่นอนวานิลลา GA จะล้มเหลว
หน้าผา AB

@Cliffab จริง ๆ แล้วฉันไม่ได้พูดอะไรเกี่ยวกับเรื่องนั้น ใน GA คุณสามารถควบคุมการคำนวณหลักได้มาก GA ในตัวเองเป็นลำดับขั้นตอนและการจัดลำดับแสง เมื่อคุณกำหนดฟังก์ชั่นต้นทุนคุณสามารถจัดการกับสิ่งใดก็ได้ในฟังก์ชั่นแม้กระทั่งข้อ จำกัด ภายนอกที่คุณสามารถสืบค้นได้ ข้อโต้แย้งหลักของฉันคือ: จัดการกับปัญหามากมายคุณไม่ต้องกังวลเกี่ยวกับความเข้ากันได้กับกรอบงาน (คุณเพียงแค่ส่งคืนค่าใช้จ่าย) มาพร้อมกับโซลูชันที่เหมาะสมในชีวิตจริงในกรณีธุรกิจส่วนใหญ่แม้ว่ามันจะไม่เสมอไป ที่ดีที่สุด
Joseph Yourine
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.