Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Genetic Algorithms (อัลกอริทึมพันธุกรรม) คืออะไร?

Genetic Algorithms (GAs) เป็นโครงสร้างทางคณิตศาสตร์ที่ใช้กระบวนการ Genetic Inheritance (การสืบทอดพันธุกรรม) ได้ใช้สำเร็จกับ Analytic Problems หลากหลาย Data Mining สามารถเชื่อมโยง Human Understanding กับ Automatic Analysis ของข้อมูลเพื่อหา Pattern หรือ Key Relationships

กำหนด Large Database แสดงผ่านหลาย Variables เป้าหมายคือ Effective หา Most Interesting Patterns ใน Database Genetic Algorithms 可用于 Recognize Interesting Patterns ในบาง Software มักใช้ใน Data Mining เพื่อเพิ่มประสิทธิภาพ (Enhance Performance) ของ Algorithms อื่นๆ เช่น Decision Tree Algorithms, Association Rules อื่นๆ

Genetic Algorithms ต้องการ Specific Data Structure ทำงานบน Population ที่ Characteristics ถูกกำหนดใน Categorical Structure Analogy กับ Genetics คือ Population (Genes) มี Characteristics มีวิธี Implement GAs คือใช้ Operators (Reproduction, Crossover, Selection) พร้อม Feature ของ Mutation เพื่อปรับปรุง Generation ของ Combinations ที่น่าจะดีกว่า

กระบวนการ Genetic Algorithm

  • สุ่มเลือก Parents (Randomly Select Parents)
  • Reproduce ผ่าน Crossover (交叉/การข้ามพันธุ์)
  • Reproduction = เลือกว่า Single Entities ไหนจะ Survive (Selection Objectives/Fitness Features กำหนด Survival) Crossover = การเปลี่ยนแปลงใน Future Production ของ Entities
  • เลือก Survivors สำหรับ Next Generation ผ่าน Fitness Function
  • Mutation = Service ที่ Randomly Chosen Attributes ของ Randomly Selected Entities ใน Next Operations ถูก Transformed (Mutated)
  • ทำซ้ำจนกว่า: บรรลุ Fitness Level ที่กำหนด หรือ จำนวน Iteration ปัจจุบันถึง
  • GA Parameters: Population Size, Crossover Rate, Mutation Rate

ข้อดีของ Genetic Algorithm

  • Genetic Algorithms เข้าถึงง่าย (Accessible) สำหรับการสร้างและ Validate ทำให้ Attractive มากหากใช้
  • Algorithm เป็น Parallel หมายถึง ใช้กับ Large Populations ได้อย่างมีประสิทธิภาพ ยัง Effective เพราะถ้าเริ่มจาก Poor Initial Solution สามารถ Progress ไป Best Solutions ได้เร็ว
  • Mutation ทำให้ Method Adequate สำหรับ Recognize Global Optima แม้ใน Problem Spaces ที่ Non-linear มาก ไม่ต้องการ Knowledge เกี่ยวกับ Distribution ของ Information

ข้อเสียของ Genetic Algorithms

  • GAs ต้อง Mapping Data Sets จากที่ Attributes มี Discrete Values เพื่อให้ GA ทำงานได้ มักเป็นไปได้แต่อาจสูญเสีย Detailed Data มากเมื่อจัดการ Continuous Variables
  • การ Code Information ให้เป็น Categorical Form อาจ Involuntarily นำไปสู่ Biases ใน Record
  • มี Constraints (Checks) เกี่ยวกับ Size ของ Data Set ที่可用于 GA
  • สำหรับ Very Large Data Sets Sampling จำเป็น ซึ่งนำไปสู่ Multiple Results แตกต่างกันข้าม Several Runs บน Same Data Set