อ่าน 14 นาที
อัลกอริทึมวิวัฒนาการ
อัลกอริทึมเชิงวิวัฒนาการ ( EA ) จำลององค์ประกอบสำคัญของวิวัฒนาการ ทางชีววิทยา ในอัลกอริทึมคอมพิวเตอร์เพื่อแก้ปัญหาที่ "ยาก"...
อัลกอริทึมวิวัฒนาการ
| ส่วนหนึ่งของชุดบทความเกี่ยวกับ |
| อัลกอริทึมวิวัฒนาการ |
|---|
| อัลกอริทึมทางพันธุกรรม (GA) |
| การเขียนโปรแกรมเชิงพันธุกรรม (GP) |
| วิวัฒนาการเชิงอนุพันธ์ |
| กลยุทธ์วิวัฒนาการ |
| การเขียนโปรแกรมเชิงวิวัฒนาการ |
| หัวข้อที่เกี่ยวข้อง |
| ส่วนหนึ่งของชุดบทความเกี่ยวกับ |
| ปัญญาประดิษฐ์ (AI) |
|---|
อัลกอริทึมเชิงวิวัฒนาการ ( EA ) จำลององค์ประกอบสำคัญของวิวัฒนาการ ทางชีววิทยา ในอัลกอริทึมคอมพิวเตอร์เพื่อแก้ปัญหาที่ "ยาก" อย่างน้อยก็โดยประมาณซึ่งไม่มีวิธีการแก้ปัญหาที่แน่นอนหรือน่าพอใจเป็นที่รู้จัก อัลกอริทึมเหล่านี้ได้แก่เมตาฮิวริสติกส์และ อัลกอริ ทึมที่ได้รับแรงบันดาลใจจากชีววิทยาแบบอิงประชากร[ 1 ]และการคำนวณเชิงวิวัฒนาการซึ่งเป็นส่วนหนึ่งของสาขาปัญญาประดิษฐ์เชิงคำนวณ [ 2 ] กลไกของวิวัฒนาการทางชีววิทยาที่ EA เลียนแบบเป็นหลัก ได้แก่การสืบพันธุ์การกลายพันธุ์ การผสมพันธุ์และการคัดเลือก โซลูชันที่เป็นไปได้สำหรับปัญหาการเพิ่มประสิทธิภาพทำหน้าที่เป็นแต่ละบุคคลในประชากร และฟังก์ชันความเหมาะสมจะกำหนดคุณภาพของโซลูชัน (ดูฟังก์ชันการสูญเสีย ด้วย ) จากนั้นวิวัฒนาการของประชากรจะเกิดขึ้นหลังจากการประยุกต์ใช้ตัวดำเนินการข้างต้นซ้ำๆ
อัลกอริทึมเชิงวิวัฒนาการมักทำงานได้ดีในการประมาณค่าคำตอบสำหรับปัญหาทุกประเภท เนื่องจากโดยหลักการแล้วจะไม่ตั้งสมมติฐานใดๆ เกี่ยวกับภูมิทัศน์ความ เหมาะสมพื้นฐาน เทคนิคจากอัลกอริทึมเชิงวิวัฒนาการที่นำมาใช้ในการสร้างแบบจำลองวิวัฒนาการทางชีววิทยาโดยทั่วไปจะจำกัดอยู่เพียงการสำรวจวิวัฒนาการระดับจุลภาค (กระบวนการวิวัฒนาการระดับจุลภาค) และแบบจำลองการวางแผนตามกระบวนการของเซลล์ ในการใช้งานจริงส่วนใหญ่ของ EA ความซับซ้อนในการคำนวณเป็นปัจจัยที่ขัดขวาง[ 3 ]อันที่จริง ความซับซ้อนในการคำนวณนี้เกิดจากการประเมินฟังก์ชันความเหมาะสมการประมาณค่าความเหมาะสมเป็นหนึ่งในวิธีแก้ปัญหาเพื่อเอาชนะความยากลำบากนี้ อย่างไรก็ตาม EA ที่ดูเหมือนเรียบง่ายสามารถแก้ปัญหาที่ซับซ้อนได้บ่อยครั้ง[ 4 ] [ 5 ] [ 6 ]ดังนั้น อาจไม่มีความเชื่อมโยงโดยตรงระหว่างความซับซ้อนของอัลกอริทึมและความซับซ้อนของปัญหา
คำจำกัดความทั่วไป
ต่อไปนี้เป็นตัวอย่างของอัลกอริทึมวิวัฒนาการทั่วไป: [ 7 ] [ 8 ] [ 9 ]
- สร้างประชากร เริ่มต้น ของบุคคลรุ่นแรก แบบสุ่ม
- ประเมินสมรรถภาพทางกายของแต่ละบุคคลในประชากร
- ตรวจสอบว่าบรรลุเป้าหมายแล้วและสามารถยุติการทำงานของอัลกอริทึมได้หรือไม่
- ควรคัดเลือกบุคคลที่มีคุณสมบัติเหมาะสมเป็นพ่อแม่ โดยควรเป็นผู้ที่มีสุขภาพแข็งแรงสมบูรณ์
- สร้างลูกหลานโดยมีการไขว้กัน แบบเลือกได้ (เลียนแบบการสืบพันธุ์ )
- ใช้ การดำเนินการ กลายพันธุ์กับลูกหลาน
- ควรคัดเลือกสิ่งมีชีวิตที่มีความเหมาะสมทางชีวภาพต่ำกว่ามาแทนที่ด้วยสิ่งมีชีวิตใหม่ (เลียนแบบการคัดเลือกโดยธรรมชาติ )
- กลับไปที่ 2
ประเภท
เทคนิคที่คล้ายคลึงกันนั้นแตกต่างกันในด้านการแสดงผลทางพันธุกรรมและรายละเอียดการนำไปใช้ด้านอื่นๆ รวมถึงลักษณะของปัญหาที่นำมาประยุกต์ใช้โดยเฉพาะ
- อัลกอริทึมทางพันธุกรรม – นี่คือ EA ประเภทที่ได้รับความนิยมมากที่สุด โดยจะค้นหาวิธีแก้ปัญหาในรูปแบบของสตริงตัวเลข (โดยทั่วไปคือเลขฐานสอง แม้ว่าการแสดงผลที่ดีที่สุดมักจะเป็นตัวเลขที่สะท้อนถึงบางสิ่งบางอย่างเกี่ยวกับปัญหาที่กำลังแก้ไข) [ 3 ]โดยการใช้ตัวดำเนินการ เช่น การรวมและการกลายพันธุ์ (บางครั้งใช้หนึ่งอย่าง บางครั้งใช้ทั้งสองอย่าง) EA ประเภทนี้มักใช้ในปัญหาการเพิ่มประสิทธิภาพ
- การเขียนโปรแกรมเชิงพันธุกรรม – ในที่นี้ วิธีแก้ปัญหาจะอยู่ในรูปแบบของโปรแกรมคอมพิวเตอร์ และความเหมาะสมของโปรแกรมจะถูกกำหนดโดยความสามารถในการแก้ปัญหาทางคอมพิวเตอร์ การเขียนโปรแกรมเชิงพันธุกรรมมีหลายรูปแบบ:
- การเขียนโปรแกรมเชิงวิวัฒนาการ – คล้ายกับกลยุทธ์เชิงวิวัฒนาการ แต่เป็นการเลือกพ่อแม่ทั้งหมดอย่างเป็นระบบ
- กลยุทธ์วิวัฒนาการ (ES) – ทำงานกับเวกเตอร์ของจำนวนจริงเป็นตัวแทนของโซลูชัน และโดยทั่วไปจะใช้อัตราการกลายพันธุ์แบบปรับตัวเอง วิธีนี้ส่วนใหญ่ใช้สำหรับการเพิ่มประสิทธิภาพเชิงตัวเลข แม้ว่าจะมีรูปแบบต่างๆ สำหรับงานเชิงการจัดเรียงด้วย[ 10 ] [ 11 ] [ 12 ]
- วิวัฒนาการเชิงอนุพันธ์ – อิงตามความแตกต่างของเวกเตอร์ ดังนั้นจึงเหมาะสำหรับปัญหาการหาค่าเหมาะสมที่สุดเชิงตัวเลข เป็นหลัก
- อัลกอริทึมวิวัฒนาการร่วม – คล้ายกับอัลกอริทึมทางพันธุกรรมและกลยุทธ์วิวัฒนาการ แต่โซลูชันที่สร้างขึ้นจะถูกเปรียบเทียบบนพื้นฐานของผลลัพธ์จากการโต้ตอบกับโซลูชันอื่นๆ โซลูชันสามารถแข่งขันหรือร่วมมือกันได้ในระหว่างกระบวนการค้นหา อัลกอริทึมวิวัฒนาการร่วมมักใช้ในสถานการณ์ที่ภูมิทัศน์ความเหมาะสมมีความเปลี่ยนแปลง ซับซ้อน หรือเกี่ยวข้องกับการโต้ตอบแบบแข่งขัน[ 13 ] [ 14 ]
- วิวัฒนาการทางประสาท – คล้ายกับการเขียนโปรแกรมทางพันธุกรรม แต่จีโนมเป็นตัวแทนของเครือข่ายประสาทเทียมโดยการอธิบายโครงสร้างและน้ำหนักการเชื่อมต่อ การเข้ารหัสจีโนมอาจเป็นแบบตรงหรือแบบอ้อม
- ระบบจำแนกประเภทแบบเรียนรู้ – ในที่นี้ วิธีแก้ปัญหาคือชุดของตัวจำแนกประเภท (กฎหรือเงื่อนไข) ระบบจำแนกประเภทแบบมิชิแกน (Michigan-LCS) พัฒนาในระดับของตัวจำแนกประเภทแต่ละตัว ในขณะที่ระบบจำแนกประเภทแบบพิตต์สเบิร์ก (Pittsburgh-LCS) ใช้กลุ่มของชุดตัวจำแนกประเภท ในตอนแรก ตัวจำแนกประเภทมีเพียงแบบไบนารี แต่ปัจจุบันรวมถึงประเภทข้อมูลจริง โครงข่ายประสาทเทียม หรือนิพจน์ S ด้วย โดยทั่วไปแล้ว การหาค่าความเหมาะสมจะใช้ การเรียนรู้แบบเสริม แรง หรือ การเรียนรู้ แบบมีผู้กำกับดูแลโดยพิจารณาจากความแข็งแกร่งหรือความแม่นยำ
- อัลกอริทึมคุณภาพ-ความหลากหลาย – อัลกอริทึม QD มุ่งเป้าไปที่โซลูชันที่มีคุณภาพสูงและหลากหลายไปพร้อมกัน แตกต่างจากอัลกอริทึมการเพิ่มประสิทธิภาพแบบดั้งเดิมที่เน้นเฉพาะการค้นหาโซลูชันที่ดีที่สุดสำหรับปัญหา อัลกอริทึม QD จะสำรวจโซลูชันที่หลากหลายในพื้นที่ปัญหาและเก็บเฉพาะโซลูชันที่ไม่เพียงแต่มีประสิทธิภาพสูง แต่ยังมีความหลากหลายและเป็นเอกลักษณ์อีกด้วย[ 15 ] [ 16 ] [ 17 ]
พื้นฐานทางทฤษฎี
หลักการทางทฤษฎีต่อไปนี้ใช้ได้กับ EA ทั้งหมดหรือเกือบทั้งหมด
ทฤษฎีไม่มีอะไรได้มาฟรีๆ
ทฤษฎีบทไม่มีอาหารกลางวันฟรีของการเพิ่มประสิทธิภาพระบุว่ากลยุทธ์การเพิ่มประสิทธิภาพทั้งหมดมีประสิทธิภาพเท่าเทียมกันเมื่อพิจารณาชุดของปัญหาการเพิ่มประสิทธิภาพทั้งหมด ภายใต้เงื่อนไขเดียวกันนี้ ไม่มีอัลกอริทึมวิวัฒนาการใดที่ดีกว่าอัลกอริทึมอื่นโดยพื้นฐาน นี่จะเป็นไปได้ก็ต่อเมื่อชุดของปัญหาทั้งหมดถูกจำกัด ซึ่งเป็นสิ่งที่หลีกเลี่ยงไม่ได้ในทางปฏิบัติ ดังนั้น เพื่อปรับปรุง EA จะต้องใช้ประโยชน์จากความรู้เกี่ยวกับปัญหาในรูปแบบใดรูปแบบหนึ่ง (เช่น โดยการเลือกความแรงของการกลายพันธุ์ที่แน่นอนหรือการเข้ารหัสที่ปรับให้เข้ากับปัญหา ) ดังนั้น หากเปรียบเทียบ EA สองตัว ข้อจำกัดนี้จึงเป็นสิ่งที่แฝงอยู่ นอกจากนี้ EA ยังสามารถใช้ความรู้เฉพาะของปัญหาได้ เช่น ไม่สร้างประชากรเริ่มต้นทั้งหมดแบบสุ่ม แต่สร้างบุคคลบางส่วนผ่านฮิวริสติกหรือขั้นตอนอื่นๆ[ 18 ] [ 19 ]ความเป็นไปได้อีกประการหนึ่งในการปรับแต่ง EA ให้เข้ากับโดเมนปัญหาที่กำหนดคือการใช้ฮิวริสติกที่เหมาะสมขั้นตอนการค้นหาในพื้นที่หรือขั้นตอนอื่นๆ ที่เกี่ยวข้องกับปัญหาในกระบวนการสร้างลูกหลาน รูปแบบการขยายของ EA นี้ยังเป็นที่รู้จักกันในชื่ออัลกอริทึมเมเมติก ส่วนขยายทั้งสองมีบทบาทสำคัญในการใช้งานจริง เนื่องจากสามารถเร่งกระบวนการค้นหาและทำให้มีประสิทธิภาพมากขึ้น[ 18 ] [ 20 ]
การบรรจบกัน
สำหรับอัลกอริทึมวิวัฒนาการ (EA) ที่นอกจากจะใช้ลูกหลานแล้ว ยังใช้ตัวที่ดีที่สุดอย่างน้อยหนึ่งตัวจากรุ่นพ่อแม่ในการสร้างรุ่นถัดไป (เรียกว่า EA แบบคัดเลือกยอดเยี่ยม) นั้น มีการพิสูจน์การลู่เข้า โดยทั่วไป ภายใต้เงื่อนไขที่ว่ามีค่าที่เหมาะสมที่สุดอยู่โดยไม่เสียความเป็นทั่วไปจะถือว่าการค้นหาค่าสูงสุดเป็นเกณฑ์ในการพิสูจน์:
จากคุณสมบัติของการยอมรับลูกหลานชั้นยอดและการมีอยู่ของจุดที่เหมาะสมที่สุด จึงสรุปได้ว่าในแต่ละรุ่นการพัฒนาความเหมาะสมของแต่ละบุคคลที่ดีที่สุดจะเกิดขึ้นด้วยความน่าจะเป็นดังนั้น:
กล่าวคือ ค่าความเหมาะสมแสดงถึงลำดับที่ไม่ลดลงอย่างต่อเนื่องซึ่งมีขอบเขตเนื่องจากการมีอยู่ของค่าที่เหมาะสมที่สุด จากนั้นจึงสรุปได้ว่าลำดับดังกล่าวลู่เข้าสู่ค่าที่เหมาะสมที่สุด
เนื่องจากหลักฐานไม่ได้ระบุถึงความเร็วของการบรรจบกัน จึงแทบไม่มีประโยชน์ในการประยุกต์ใช้ EA ในทางปฏิบัติ แต่ก็เป็นการพิสูจน์คำแนะนำให้ใช้ EA แบบเลือกคู่ครอง อย่างไรก็ตาม เมื่อใช้แบบจำลองประชากรแบบผสมพันธุ์ ทั่วไป EA แบบเลือกคู่ครองมักจะบรรจบกันก่อนกำหนดมากกว่า EA แบบไม่เลือกคู่ครอง[ 21 ]ในแบบจำลองประชากรแบบผสมพันธุ์ การเลือกคู่ครอง (ดูขั้นตอนที่ 4 ของคำจำกัดความทั่วไป ) เป็นเช่นนั้นที่แต่ละบุคคลในประชากรทั้งหมดมีสิทธิ์เป็นคู่ครอง ในประชากรแบบไม่ผสมพันธุ์การเลือกจะถูกจำกัดอย่างเหมาะสม เพื่อให้ความเร็วในการกระจายตัวของบุคคลที่ดีกว่าลดลงเมื่อเทียบกับประชากรแบบผสมพันธุ์ ดังนั้น ความเสี่ยงทั่วไปของการบรรจบกันก่อนกำหนดของ EA แบบเลือกคู่ครองสามารถลดลงได้อย่างมีนัยสำคัญโดยใช้แบบจำลองประชากรที่เหมาะสมซึ่งจำกัดการเลือกคู่ครอง[ 22 ] [ 23 ]
อักษรเสมือนจริง
ด้วยทฤษฎีของตัวอักษรเสมือนDavid E. Goldbergแสดงให้เห็นในปี 1990 ว่าการใช้การแสดงแทนด้วยจำนวนจริงทำให้ EA ที่ใช้ตัวดำเนินการการรวม แบบคลาสสิก (เช่น การผสมข้ามแบบสม่ำเสมอหรือแบบ n จุด) ไม่สามารถเข้าถึงบางพื้นที่ของพื้นที่การค้นหาได้ ซึ่งแตกต่างจากการเข้ารหัสด้วยเลขฐานสอง[ 24 ]ส่งผลให้มีการแนะนำให้ EA ที่มีการแสดงแทนด้วยจำนวนจริงใช้ตัวดำเนินการทางคณิตศาสตร์สำหรับการรวม (เช่น ค่าเฉลี่ยเลขคณิตหรือการรวมแบบกลาง) ด้วยตัวดำเนินการที่เหมาะสม การแสดงแทนด้วยค่าจริงจะมีประสิทธิภาพมากกว่าการแสดงแทนด้วยเลขฐานสอง ซึ่งขัดแย้งกับความคิดเห็นก่อนหน้านี้[ 25 ] [ 26 ]
การเปรียบเทียบกับแนวคิดอื่นๆ
กระบวนการทางชีวภาพ
ข้อจำกัดที่เป็นไปได้ของอัลกอริทึมวิวัฒนาการหลายอย่างคือการขาดความแตกต่างที่ชัดเจนระหว่างจีโนไทป์และฟีโนไทป์ในธรรมชาติ เซลล์ไข่ที่ได้รับการปฏิสนธิจะผ่านกระบวนการที่ซับซ้อนที่เรียกว่าเอ็มบริโอเจเนซิสเพื่อพัฒนาเป็นฟีโนไทป์ ที่สมบูรณ์ การเข้ารหัสทางอ้อมนี้เชื่อว่าจะทำให้การค้นหาทางพันธุกรรมมีความแข็งแกร่งมากขึ้น (เช่น ลดโอกาสของการกลายพันธุ์ที่ร้ายแรง) และอาจปรับปรุงความ สามารถใน การวิวัฒนาการของสิ่งมีชีวิตได้[ 27 ] [ 28 ]การเข้ารหัสทางอ้อมดังกล่าว (เรียกอีกอย่างว่าการเข้ารหัสแบบสร้างหรือแบบพัฒนาการ) ยังช่วยให้วิวัฒนาการสามารถใช้ประโยชน์จากความสม่ำเสมอในสภาพแวดล้อมได้[ 29 ]งานวิจัยล่าสุดในสาขาการสร้างเอ็มบริโอเทียมหรือระบบพัฒนาการเทียม พยายามที่จะแก้ไขข้อกังวลเหล่านี้ และการเขียนโปรแกรมการแสดงออกของยีนประสบความสำเร็จในการสำรวจระบบจีโนไทป์-ฟีโนไทป์ โดยที่จีโนไทป์ประกอบด้วยโครโมโซมหลายยีนเชิงเส้นที่มีความยาวคงที่ และฟีโนไทป์ประกอบด้วยต้นไม้การแสดงออกหลายต้นหรือโปรแกรมคอมพิวเตอร์ที่มีขนาดและรูปร่างแตกต่างกัน[ 30 ]
วิธีการมอนเตคาร์โล
EA และวิธีการมอนเตคาร์โลมีจุดร่วมกันคือขั้นตอนการค้นหาแต่ละขั้นตอนถูกกำหนดโดยโอกาส อย่างไรก็ตาม ความแตกต่างหลักคือ EA เช่นเดียวกับเมตาฮิวริสติกอื่นๆ อีกมากมาย เรียนรู้จากขั้นตอนการค้นหาในอดีตและนำประสบการณ์นี้ไปใช้ในการดำเนินการขั้นตอนการค้นหาถัดไปในรูปแบบเฉพาะของวิธีการ ใน EA จะทำสิ่งนี้เป็นอันดับแรกผ่านตัวดำเนินการเลือกตามความเหมาะสมสำหรับการเลือกคู่และการสร้างรุ่นต่อไป และประการที่สอง ในประเภทของขั้นตอนการค้นหา: ใน EA ขั้นตอนจะเริ่มต้นจากโซลูชันปัจจุบันและเปลี่ยนแปลง หรือผสมข้อมูลของสองโซลูชัน ในทางตรงกันข้าม เมื่อแยกโซลูชันใหม่ในวิธีการมอนเตคาร์โล มักจะไม่มีการเชื่อมโยงกับโซลูชันที่มีอยู่[ 31 ] [ 32 ]
ในทางกลับกัน หากพื้นที่การค้นหาของงานนั้นมีลักษณะที่ไม่มีอะไรให้เรียนรู้ วิธีการมอนเตคาร์โลก็เป็นเครื่องมือที่เหมาะสม เนื่องจากไม่มีค่าใช้จ่ายทางอัลกอริทึมใดๆ ที่พยายามสรุปผลที่เหมาะสมจากการค้นหาก่อนหน้านี้ ตัวอย่างของงานดังกล่าวคือการค้นหาเข็มในกองฟางเช่น ในรูปของระนาบแบน (ไฮเปอร์เพลน) ที่มีจุดยอดแคบเพียงจุดเดียว
แอปพลิเคชัน
พื้นที่ที่อัลกอริทึมเชิงวิวัฒนาการถูกนำไปใช้ในทางปฏิบัตินั้นแทบจะไม่มีขีดจำกัด[ 6 ]และครอบคลุมตั้งแต่ภาคอุตสาหกรรม[ 33 ] [ 34 ]วิศวกรรม[ 3 ] [ 4 ] [ 35 ]การจัดตารางเวลาที่ซับซ้อน[ 5 ] [ 36 ] [ 37 ]เกษตรกรรม[ 38 ]การวางแผนการเคลื่อนที่ของหุ่นยนต์[ 39 ]และการเงิน[ 40 ] [ 41 ]ไปจนถึงการวิจัย[ 42 ] [ 43 ]และศิลปะการประยุกต์ใช้อัลกอริทึมเชิงวิวัฒนาการจำเป็นต้องมีการคิดใหม่จากผู้ใช้ที่ไม่มีประสบการณ์ เนื่องจากวิธีการทำงานโดยใช้ EA นั้นแตกต่างจากวิธีการที่แม่นยำแบบดั้งเดิม และโดยปกติแล้วสิ่งนี้ไม่ได้เป็นส่วนหนึ่งของหลักสูตรของวิศวกรหรือสาขาวิชาอื่นๆ ตัวอย่างเช่น การคำนวณความเหมาะสมไม่เพียงแต่ต้องกำหนดเป้าหมายเท่านั้น แต่ยังต้องสนับสนุนกระบวนการค้นหาเชิงวิวัฒนาการไปสู่เป้าหมายนั้นด้วย เช่น โดยการให้รางวัลแก่การปรับปรุงที่ยังไม่นำไปสู่การประเมินเกณฑ์คุณภาพดั้งเดิมที่ดีขึ้น ตัวอย่างเช่น หากต้องการหลีกเลี่ยงการใช้ทรัพยากรสูงสุด เช่น การจัดสรรบุคลากรหรือการใช้พลังงานในงานกำหนดตารางเวลา การประเมินการใช้สูงสุดเพียงอย่างเดียวไม่เพียงพอ แต่ควรบันทึกจำนวนและระยะเวลาของการเกินระดับที่ยังคงยอมรับได้ด้วย เพื่อให้รางวัลแก่การลดลงต่ำกว่าค่าสูงสุดที่แท้จริง[ 44 ]ดังนั้นจึงมีเอกสารเผยแพร่บางฉบับที่มุ่งเป้าไปที่ผู้เริ่มต้นและต้องการช่วยหลีกเลี่ยงข้อผิดพลาดของผู้เริ่มต้น ตลอดจนนำโครงการแอปพลิเคชันไปสู่ความสำเร็จ[ 44 ] [ 45 ] [ 46 ]ซึ่งรวมถึงการชี้แจงคำถามพื้นฐานว่าเมื่อใดควรใช้ EA เพื่อแก้ปัญหา และเมื่อใดไม่ควรใช้
เทคนิคที่เกี่ยวข้องและวิธีการค้นหาทั่วโลกอื่นๆ
ยังมีวิธีการอื่นๆ ที่ได้รับการพิสูจน์แล้วและใช้กันอย่างแพร่หลายของเทคนิคการค้นหาทั่วโลกที่ได้รับแรงบันดาลใจจากธรรมชาติ[ 47 ]เช่น
- อัลกอริทึมแบบมีเมติก – วิธีการแบบผสมผสานที่ได้รับแรงบันดาลใจจาก แนวคิดเรื่องมีมของ ริชาร์ด ดอว์กินส์ โดยทั่วไปจะอยู่ในรูปแบบของอัลกอริทึมแบบอิงประชากร (มักจะเป็น EA) ควบคู่กับขั้นตอนการเรียนรู้ส่วนบุคคลที่สามารถทำการปรับปรุงในระดับท้องถิ่นได้ เน้นการใช้ประโยชน์จากความรู้เฉพาะปัญหาและพยายามประสานการค้นหาในระดับท้องถิ่นและระดับโลกในลักษณะที่เสริมกัน[ 48 ] [ 49 ] [ 50 ]
- อัลกอริทึมวิวัฒนาการเซลล์หรือเมเมติกใช้ความสัมพันธ์ของเพื่อนบ้านเชิงโทโพโลยีระหว่างบุคคลในประชากรเพื่อจำกัดการเลือกคู่ครองและลดความเร็วในการแพร่กระจายของบุคคลที่มีค่าเฉลี่ยสูงกว่าปกติ แนวคิดคือการรักษาความหลากหลายทางพันธุกรรมในประชากรในช่วงระยะเวลาที่ยาวนานขึ้นเพื่อลดความเสี่ยงของการบรรจบกันก่อนกำหนด[ 51 ] [ 52 ] [ 53 ]
- การเพิ่มประสิทธิภาพอาณานิคมมดนั้นอิงตามแนวคิดของมดในการหาอาหารโดยการสื่อสารฟีโรโมนเพื่อสร้างเส้นทาง เหมาะอย่างยิ่งสำหรับการเพิ่มประสิทธิภาพเชิงการจัดเรียงและปัญหาเกี่ยวกับกราฟ[ 54 ] [ 55 ]
- การเพิ่มประสิทธิภาพฝูงอนุภาคมีพื้นฐานมาจากแนวคิดของพฤติกรรมการรวมฝูงของสัตว์ และยังเหมาะสำหรับปัญหาการเพิ่มประสิทธิภาพเชิงตัวเลข เป็นหลักอีกด้วย [ 56 ] [ 57 ]
- การปรับตัวแบบเกาส์เซียน – อิงตามทฤษฎีสารสนเทศ ใช้เพื่อเพิ่มผลผลิตการผลิตความเหมาะสมโดยเฉลี่ยหรือข้อมูลโดยเฉลี่ยให้สูงสุด [ 58 ] [ 59 ] ดูตัวอย่างเช่นเอนโทรปีในอุณหพลศาสตร์และทฤษฎีสารสนเทศ
นอกจากนี้ ตั้งแต่ต้นศตวรรษที่ 21 เป็นต้นมา มีการเสนออัลกอริทึมใหม่ๆ ที่ได้รับแรงบันดาลใจจากธรรมชาติหรือใช้การเปรียบเทียบเป็นแนวทางมากมาย สำหรับข้อวิจารณ์เกี่ยวกับงานตีพิมพ์ส่วนใหญ่ในเรื่องเหล่านี้ โปรดดูหมายเหตุในตอนท้ายของบทนำในบทความเกี่ยวกับเมตาฮิวริสติกส์
ตัวอย่าง
ในปี 2020 Googleระบุว่า AutoML-Zero ของพวกเขาสามารถค้นพบอัลกอริธึมคลาสสิกได้สำเร็จ เช่น แนวคิดของเครือข่ายประสาทเทียม[ 60 ]
โปรแกรมจำลองคอมพิวเตอร์TierraและAvidaพยายามจำลองพลวัตของการวิวัฒนาการ ระดับมหภาค
แกลเลอรี่
- การค้นหาแบบ EA สองประชากรบนฟังก์ชัน Rosenbrock ที่มีข้อจำกัด โดยมีค่าเหมาะสมที่สุดทั่วโลกที่จำกัด
- การค้นหาแบบ EA สองประชากรบนฟังก์ชัน Rosenbrock ที่มีข้อจำกัด ค่าเหมาะสมที่สุดทั่วโลกไม่มีขอบเขตจำกัด
- การค้นหาค่าเหมาะสมที่สุดแบบมีขอบเขตของ ฟังก์ชันของ Simionescuโดยใช้ EA สองประชากร
บรรณานุกรม
- Ashlock, D. (2006), การคำนวณเชิงวิวัฒนาการสำหรับการสร้างแบบจำลองและการเพิ่มประสิทธิภาพ , Springer, นิวยอร์ก, doi:10.1007/0-387-31909-3 ISBN 0-387-22196-4.
- Bäck, T. (1996), อัลกอริทึมเชิงวิวัฒนาการในทฤษฎีและการปฏิบัติ: กลยุทธ์เชิงวิวัฒนาการ การเขียนโปรแกรมเชิงวิวัฒนาการ อัลกอริทึมทางพันธุกรรมสำนักพิมพ์มหาวิทยาลัยออกซ์ฟอร์ด นิวยอร์กISBN 978-0-19-509971-3.
- Bäck, T., Fogel, D., Michalewicz, Z. (1999), การคำนวณเชิงวิวัฒนาการ 1: อัลกอริทึมและตัวดำเนินการพื้นฐาน , CRC Press, Boca Raton, สหรัฐอเมริกา, ISBN 978-0-7503-0664-5.
- Bäck, T., Fogel, D., Michalewicz, Z. (2000), การคำนวณเชิงวิวัฒนาการ 2: อัลกอริทึมและตัวดำเนินการขั้นสูง , CRC Press, Boca Raton, สหรัฐอเมริกา, doi:10.1201/9781420034349 ISBN 978-0-3678-0637-8.
- Banzhaf, W., Nordin, P., Keller, R., Francone, F. (1998), Genetic Programming - An Introduction , Morgan Kaufmann, ซานฟรานซิสโก, ISBN 978-1-55860-510-7.
- Eiben, AE, Smith, JE (2003), Introduction to Evolutionary Computing , Springer, Heidelberg, New York, doi:10.1007/978-3-662-44874-8 ISBN 978-3-662-44873-1.
- Holland, JH (1992), การปรับตัวในระบบธรรมชาติและระบบประดิษฐ์ , MIT Press, Cambridge, MA, ISBN 978-0-262-08213-6.
- Michalewicz, Z.; Fogel, DB (2004), วิธีแก้ปัญหา: ฮิวริสติกส์สมัยใหม่ . Springer, Berlin, Heidelberg, ISBN 978-3-642-06134-9doi : 10.1007/978-3-662-07807-5
- เบนโก, อัตติลา; โดซา, จอร์จี; ทูซา, ซอลต์ (2010). "การบรรจุ/ปิดกล่องด้วยการส่งมอบ แก้ไขด้วยวิวัฒนาการของอัลกอริทึม" การประชุมวิชาการนานาชาติครั้งที่ 5 ของ IEEE ว่าด้วยการคำนวณที่ได้รับแรงบันดาลใจจากชีววิทยา: ทฤษฎีและการประยุกต์ใช้ (BIC-TA)ปี 2010 หน้า 298–302 . doi : 10.1109/BICTA.2010.5645312 . ISBN 978-1-4244-6437-1S2CID 16875144
- Price, K., Storn, RM, Lampinen, JA, (2005). Differential Evolution: A Practical Approach to Global Optimization , Springer, Berlin, Heidelberg, ISBN 978-3-642-42416-8doi :10.1007/3-540-31306-0 .
- Ingo Rechenberg (1971), Evolutionsstrategie - Optimierung technischer Systeme nach Prinzipien der biologischen Evolution (วิทยานิพนธ์ระดับปริญญาเอก) พิมพ์ซ้ำโดย Fromman-Holzboog (1973) ไอเอสบีเอ็น 3-7728-1642-8
- Hans-Paul Schwefel (1974), Numerische Optimierung von Computer-Modellen (วิทยานิพนธ์ระดับปริญญาเอก) พิมพ์ซ้ำโดย Birkhäuser (1977)
- Hans-Paul Schwefel (1995), วิวัฒนาการและการแสวงหาสิ่งที่ดีที่สุด Wiley & Sons, นิวยอร์ก. ISBN 0-471-57148-2
- Simon, D. (2013), Evolutionary Optimization Algorithmsเก็บถาวรเมื่อ 2014-03-10 ที่Wayback Machine , Wiley & Sons, ISBN 978-0-470-93741-9
- ครูซ, รูดอล์ฟ; บอร์เกลต์, คริสเตียน; คลอวอนน์, แฟรงค์; โมเวส, คริสเตียน; สไตน์เบรเชอร์, แมทเธียส; จัดขึ้น, Pascal (2013), Computational Intelligence: A Methodological Introduction . สปริงเกอร์, ลอนดอน. ไอเอสบีเอ็น 978-1-4471-5012-1doi : 10.1007/978-1-4471-5013-8
- Rahman, Rosshairy Abd.; Kendall, Graham; Ramli, Razamin; Jamari, Zainoddin; Ku-Mahamud, Ku Ruhana (2017). "การกำหนดสูตรอาหารกุ้งโดยใช้อัลกอริธึมเชิงวิวัฒนาการด้วยฮิวริสติกส์กำลังสูงสำหรับการจัดการข้อจำกัด" . Complexity . 2017 : 1– 12. doi : 10.1155/2017/7053710 .
ลิงก์ภายนอก
- ภาพรวมประวัติศาสตร์และลักษณะเฉพาะของอัลกอริทึมเชิงวิวัฒนาการ
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อัลกอริทึมวิวัฒนาการ
อัลกอริทึมเชิงวิวัฒนาการ ( EA ) จำลององค์ประกอบสำคัญของวิวัฒนาการ ทางชีววิทยา ในอัลกอริทึมคอมพิวเตอร์เพื่อแก้ปัญหาที่ "ยาก"...
คำจำกัดความทั่วไป
ต่อไปนี้เป็นตัวอย่างของอัลกอริทึมวิวัฒนาการทั่วไป: [ 7 ] [ 8 ] [ 9 ]
ประเภท
เทคนิคที่คล้ายคลึงกันนั้นแตกต่างกันในด้าน การแสดงผลทางพันธุกรรม และรายละเอียดการนำไปใช้ด้านอื่นๆ รวมถึงลักษณะของปัญหาที่นำมาประยุกต์ใช้โดยเฉพาะ
พื้นฐานทางทฤษฎี
หลักการทางทฤษฎีต่อไปนี้ใช้ได้กับ EA ทั้งหมดหรือเกือบทั้งหมด
