Skip to content

teckyio/ga-class

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Genetic Algorithm (GA) — Tecky Open Class

Presentation Slides: https://paper.dropbox.com/doc/present/R1Tx0G8JWpFP8H5WO4C9H

About Me


Beeno Tung Technical Instructor / Fullstack Developer / Technical Consultant

Working in Tecky Academy

FB/Twitter: @beenotung

ZeroMe/ZeroMail: beenotung@zeroid.bit

遺傳算法的背景

又名「基因演算法」(Genetic Algorithm)

  • 是一種「進化演算法」 (Evolutionary Algorithm)
  • 在 1960 年由 University of Michigan 的 John Holland 帶領的研究團隊制定
  • 適用於解決確定性算法過於耗時的問題
    • 如「旅行商問題」(Travelling salesman problem)
    • 和「背包問題」(knapsack problem)

主流「疊代優化算法」(Iterative Optimization Algorithm) 的例子

「優化算法」的腦圖 [Detail]

  • 人工神經網絡 (Artificial Neural Network)
  • 遺傳算法 (Genetic Algorithm)
  • 群體智能 (Swarm Intelligent)
    • 蟻群演算法 (Ant Colony Optimization)
    • 粒子群最佳化算法 (Particle Swarm Optimization)

人工神經網絡的數學模型 [Source] 一般遺傳算法的生命週期 [Source]

蟻群演算法的圖示 [Source] 粒子群最佳化算法的圖示  [Source]

遺傳算法的實際應用

NASA 的 2006 年太空任務 ST5 所用的航天器天線是由是進化演算法自動設計的。[圖片來源]

遺傳算法的基本原理

1. (隨機)初始化族群(的基因)

擲骰子插圖 [Source] 多樣化的種子插圖 [Source]

2. 評估個體表現

拳擊手的卡通插圖 [Source] 填寫調查表插圖 [Source]

3. 汰弱留強

消除人口的插圖 [Source]

4. (隨機)交叉基因 (交配、繁殖下代❤️)

染色體交叉的插圖 [Source]

5. (隨機)基因突變 🕷️

基因突變插圖 [Source] 綠巨人、超人、蜘蛛俠的模型 [Source]

6. 檢查結束條件 → 結束 / 重覆第 2-6 步

編程循環插圖 [Source]

編程示範

👩‍💻 👨‍💻 😎

青蛙島示範: https://ga-island-demo.surge.sh

火箭軌跡示範: https://ga-rocket.surge.sh

程式庫 (Library)
github: https://github.com/beenotung/ga-island
npm: https://www.npmjs.com/package/ga-island

公開課課堂回饋

簡短問卷: https://docs.google.com/forms/d/1NFaBTogHouDE8ZiIlmlVhHWIMEP4BEIDhcrtBW9sLGU/viewform

課堂編號: INT002

參考資料

使用的工具