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

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
OctraBot (คุย | ส่วนร่วม)
replaceViaSearch: ชีววิทยา
Phizaz (คุย | ส่วนร่วม)
แจ้งลิงก์ข้ามภาษา +เก็บกวาดทันใจด้วยสจห.
บรรทัด 1:
{{ลิงก์ไปภาษาอื่น}}
'''ขั้นตอนวิธีเชิงพันธุกรรม''' ({{lang-en|genetic algorithm}}) <ref>{{cite web|last=Yaeger|first=Larry|title=Intro to Genetic Algorithms|url=http://informatics.indiana.edu/larryy/al4ai/lectures/03.IntroToGAs.pdf|publisher=Indiana University|accessdate=13 Sep 2011|format=PDF|year=2011}} </ref><ref>{{cite book
| first = Wolfgang
| lastfirst = BanzhafWolfgang
| last = Banzhaf
| title = Genetic programming: an introduction on the automatic evolution of computer
| publisher = The Morgan Kaufmann
| year = 1998
| year = 1998
| isbn = 978-1558605107
}}</ref><ref>{{cite journal
| first = Robert R.
| last = Bies
| coauthors = Matthew F.,Muldoon; Bruce G.,Pollock; Steven,Manuck; Gwenn,Smith;Mark E.,Sale
| title = A Genetic Algorithm-Based, Hybrid Machine Learning Approach to Model Selection
| journal = JOURNAL OF PHARMACOKINETICS AND PHARMACODYNAMICS
| issue = 2
| pages = 195–221
| year = 2006
| doi = 10.1007/s10928-006-9004-6
| volume = 33
}}</ref> เป็นเทคนิคสำหรับค้นหาผลเฉลย (solutions) หรือคำตอบโดยประมาณของปัญหา โดยอาศัยหลักการจากทฤษฎีวิวัฒนาการจากชีววิทยา และ [[การคัดเลือกตามธรรมชาติ]] (natural selection) นั่นคือ สิ่งมีชีวิตที่เหมาะสมที่สุดจึงจะอยู่รอด กระบวนการคัดเลือกได้เปลี่ยนแปลงสิ่งมีชีวิตให้เหมาะสมยิ่งขึ้น ด้วย[[ตัวปฏิบัติการทางพันธุกรรม]] (genetic operator) เช่น [[การสืบพันธุ์]] (inheritance หรือ reproduction) , [[การกลายพันธุ์]] (mutation) , [[การแลกเปลี่ยนยีน]] (recombination)
 
ขั้นตอนวิธีเชิงพันธุกรรมเป็นการจำลองทางคอมพิวเตอร์ เพื่อแก้[[ปัญหาหาค่าเหมาะที่สุด]] (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) ของโครโมโซมในโครโมโซมที่ได้เลือกออกมาโดยจะเป็นการสุ่มหลังจากที่เสร็จเรียบร้อยแล้วก็จะนำพันธุกรรมที่ได้ไปวนเข้ากระบวนการเดิมต่อไปเพื่อให้ได้โครโมโซมที่มีคุณภาพที่ดีที่สุดออกมา
โดยขั้นตอนวิธีเชิงพันธุกรรมนั้นจำเป็นต้องมี
เส้น 60 ⟶ 61:
## แทนค่าของยีนรุ่นถัดไปกับรุ่นเดิม
 
== ขั้นตอนวิธีที่เกี่ยวข้อง ==
=== [[ขั้นตอนวิธีเชิงวิวัฒนาการ]] ===
({{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) ซึ่งได้รับการดลใจจาก การหาอาหารของฝูงนก หรือ ฝูงปลา
 
เส้น 70 ⟶ 71:
 
== แหล่งข้อมูลอื่น ==
* [http://en.wikipedia.org/wiki/Genetic_algorithm En.Wikipedia]
* [http://www.obitko.com/tutorials/genetic-algorithms/ Obitko.com]
* [http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/tcw2/report.html Imperial College]
 
{{โครงคอม}}
 
[[หมวดหมู่:การเรียนรู้ของเครื่อง]]
[[หมวดหมู่:ขั้นตอนวิธี]]
{{โครงคอม}}
 
[[ar:خوارزميات وراثية]]