ผลต่างระหว่างรุ่นของ "ขั้นตอนวิธีเชิงพันธุกรรม"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
SeeleTH (คุย | ส่วนร่วม)
SeeleTH (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
บรรทัด 21:
ขั้นตอนวิธีเชิงพันธุกรรมเป็นการจำลองทางคอมพิวเตอร์ เพื่อแก้[[ปัญหาหาค่าเหมาะที่สุด]](optimal solution) โดยการแทนคำตอบที่มีอยู่ให้อยู่ในลักษณะ [[โครโมโซม]] (chromosomes) แล้วปรับปรุงคำตอบแต่ละชุด (เรียกว่า individual) ด้วยวิธีการต่าง ๆ ซึ่งเกี่ยวข้องกับ[[การวิวัฒนาการ]] (evolutionary operation) การเปลี่ยนแปลงยีนแบบสุ่ม ด้วย[[ตัวปฏิบัติการทางพันธุกรรม]] (evolutionary operator) เพื่อให้ได้คำตอบที่ดีขึ้น โดยทั่วไปจะแทนคำตอบด้วย[[เลขฐานสอง]] (สายอักขระของเลข 0 และ 1)
[[การวิวัฒน์]] (evolution) เพื่อหา[[คำตอบที่เหมาะสมที่สุด]] (the fitness solution) จะเริ่มจากประชากรที่ได้จากการสุ่มทั้งหมดและจะทำเป็นรุ่น ๆ ในแต่ละรุ่นคำตอบหลายชุดจะถูกสุ่มเลือกขึ้นมาเปลี่ยนแปลง ซึ่งอาจจะทำให้เกิดการกลายพันธุ์ หรือสับเปลี่ยนยีนระหว่างกัน จนได้ประชากรรุ่นใหม่ ที่มี[[ค่าความเหมาะสม]] (fitness) มากขึ้น การวิวัฒน์นี้จะทำไปเรื่อย ๆ จนกระทั่งพบคำตอบที่มีค่าความเหมาะสมตามต้องการ
 
==ที่มา==
ส่วนที่ถูกค้นพบมาในช่วงแรกสุดของสื่งที่เราเรียกในทุกวันนี้ว่าขั้นตอนวิธีเชิงพันธุกรรม<ref>{{cite web|last=Marczyk|first=Adam|title=Genetic Algorithms and Evolutionary Computation|url=http://www.talkorigins.org/faqs/genalg/genalg.html|format=HTML|year=2011}} </ref> นั้นเกิดในช่วงปลายปี 1950 เขียนโดยนักชีววิทยาด้านการวิวัฒนาการโดยที่ต้องการหารูปแบบของการวิวัฒนาการตามธรรมชาติ แต่มันก็ไม่ได้ถูกมองว่าสามารถนำไปใช้สำหรับการแก้ปัญหาในด้านอื่นๆได้ แต่ก็ไม่นานนักในปี 1962 นักวิจัยเช่น G.E.P. Box, G.J. Friedman, W.W. Bledsoe และ H.J. Bremermann ทั้งหมดได้ทำการพัฒนา[[ขั้นตอนวิธี]] ต่างๆ ในการการเพิ่มประสิทธิภาพของฟังชั่น และ ปัญหา[[การเรียนรู้ของเครื่อง]]เช่นเดียวกัน แต่งานวิจัยของพวกเค้าก็ได้รับการติดตามที่น้อย งานวิจัยที่ประสบความสำเร็จกว่าคืองานวิจัยในปี 1965 เมื่อ Ingo Rechenberg นำเสนอเทคนิคที่เค้าเรียกว่า[[:en:evolution strategy|กลยุทธ์การวิวัฒนาการ]]ถึงแม้ว่ามันจะคล้ายกับ[[ขั้นตอนวิธีของนักปีนเขา]]มากกว่าวิธีเชิงพันธุกรรมก็ตาม โดยจะคล้ายคลึงกันแต่จะไม่มีการพลิตจำนวนประชากรออกมามากๆและไม่มี[[การไขว้เปลี่ยน]] (cross over) โดยที่รุ่นบรรพบุรุษจะทำ[[การกลายพันธ์ุ]] (mutation) ออกมาหนึ่งตัวแล้วจากนั้นจะเลือกตัวที่ดีกว่านำไปเป็นบรรพบุรุษของการ[[การกลายพันธ์ุ]] (mutation) ครั่งต่อไป และมีการพัฒนาจนมีการนำวิธีคิดแบบจำนวนประชากรมากๆ นำมาใช้เพื่อให้มีประสิืทธิภาพที่ดียิ่งขึ้น
 
== หลักการออกแบบขั้นตอนวิธี==
ขั้นตอนวิธีเชิงพันธุกรรมนั้นจะเป็นการปรับเปลี่ยนยีนของโครโมโซมนั้นไปสู่ยีนของโครโมโซมที่ดีกว่าเดิม โดยหลักการทำงานนั้นเริ่มต้นมักจะเป็นการสุ่มยีนแต่ละตัวออกมาเป็นโครโมโซมเริ่มต้นในแต่ละรุ่นและจะทำการตรวจสอบค่าคุณภาพของโครโมโซมแต่ละตัวและทำการคัดเลือกตัวที่เหมาะสมออกมาโดยใช้ค่า[[ความเหมาะสม]] (fitness) และทำให้เกิด[[การกลายพันธ์ุ]] (mutation) และ[[การไขว้เปลี่ยน]] (cross over) ของโครโมโซมในโครโมโซมที่ได้เลือกออกมาโดยจะเป็นการสุ่มหลังจากที่เสร็จเรียบร้อยแล้วก็จะนำพันธุกรรมที่ได้ไปวนเข้ากระบวนการเดิมต่อไปเพื่อให้ได้โครโมโซมที่มีคุณภาพที่ดีที่สุดออกมา
เส้น 55 ⟶ 59:
## คำนวณค่าความเหมาะสมของยีนที่จะเป็นรุ่นถัดไป
## แทนค่าของยีนรุ่นถัดไปกับรุ่นเดิม
 
==ขั้นตอนวิธีที่เกี่ยวข้อง==
===[[ขั้นตอนวิธีเชิงวิวัฒนาการ]]===
({{lang-en|Evolutionary algorithm}}) เป็นส่วนหนึ่งของ[[:en:http://en.wikipedia.org/wiki/Evolutionary_computation|การคำนวณโดยการวิวัฒนาการ]] และมีขั้นตอนวิธีเชิงพันธุกรรมเป็นส่วนย่อย
===[[ความฉลาดแบบกลุ่ม]]===
({{lang-en|Swarm intelligent}}) เป็นส่วนหนึ่งของ[[:en:http://en.wikipedia.org/wiki/Evolutionary_computation|การคำนวณโดยการวิวัฒนาการ]] จะเป็นการสังเกตจากสิ่งมีชิวิตที่ดำรงชีวิตเป็นฝูงหรือกลุ่ม ตัวอย่างเช่น ระบบอาณาจักรมด (Ant colony system) ซึ่งได้รับการดลใจจากการหาอาหารของมด, หน้าที่ต่างๆ ของมัน โดยใช้สารเคมีในตัวมันที่ทิ้งไว้, การทำให้เหมาะสมแบบกลุ่มอนุภาค (Particle Swarm Optimization) ซึ่งได้รับการดลใจจาก การหาอาหารของฝูงนก หรือ ฝูงปลา
 
== อ้างอิง ==