Skip to content

TonaliNoHitsuzi/genetic-algorithm-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

遗传算法学习笔记

从"为什么要向自然学习"到"用 GA 调神经网络超参数"——25 章带你走完理解进化计算的完整心路历程。

一套面向初学者的遗传算法(GA)系统学习笔记,包含 25 章中文讲解和一个纯 JS 交互式可视化工具。不是使用手册,而是一个思考者逐渐理解进化计算的完整旅程——先建直觉,再拆机制,然后建模、证数学、看家族、动手做。

亮点

  • 6 阶段认知弧线:奠基 → 拆解核心机制 → 建模实操 → 数学原理 → 同类算法扩展 → 实践收尾
  • 直觉优先:数学公式只点到结论,用故事和比喻建立理解
  • Mermaid + ASCII 双轨图示:流程图与文字示意图并行
  • 交互式可视化:浏览器中实时操控 GA,拖参数、看动画、回溯任意代
  • 从经典 GA 到整个家族:ES / EP / GP / DE / PSO / ACO / 神经进化(NEAT)

目录

第一部分 · 思想的萌芽(奠基)

标题 核心内容
01 引言:为什么要向自然学习 优化的困惑、试错 vs 计算、进化计算哲学起源
02 遗传算法的直觉故事 "草原上的兔子"故事讲完整个 GA 流程
03 核心概念与术语映射 基因/染色体/种群/适应度/代,生物学术语 → 算法语言

第二部分 · 拆解进化机器(核心机制)

标题 核心内容
04 编码:把问题翻译成生物语言 二进制/实数/排列/树编码,Hamming 悬崖
05 选择:谁有资格繁衍 轮盘赌/锦标赛/排序选择,选择压力的直觉
06 交叉:信息的重组艺术 单点/多点/均匀/算术交叉
07 变异:保持多样性的火种 变异为何是"保险"而非主力
08 算法流程的全景图 完整 SGA 流程,终止条件

第三部分 · 建模实操的关键步骤

标题 核心内容
09 什么问题适合进化算法 适用场景判断、与其他方法的取舍
10 参数化与编码设计 决策变量怎么选、搜索空间怎么定
11 适应度函数的设计艺术 多目标、惩罚、缩放的权衡
12 约束处理方法 罚函数法/修复法/约束优先
13 参数调优与早熟问题 种群规模/代数/概率怎么定(预防篇)
14 收敛、多样性与评估 如何判断算法"跑好了"
15 常见陷阱与诊断 早熟/景观误判/编码灾难/调参策略(诊断篇)

第四部分 · 背后的数学原理

标题 核心内容
16 模式定理与积木块假说 模式、阶、定义长度,积木块为何被保留
17 收敛性与马尔可夫链视角 精英保留为何保证收敛

第五部分 · 同类算法扩展(GA 之外的世界)

标题 核心内容
18 遗传算法 GA 与它的变体 岛屿模型/CHC/Messy GA/稳态/Cellular
19 进化策略 ES 与进化编程 EP (μ,λ) 策略、自适应变异、CMA-ES
20 遗传编程 GP:让程序自己进化 语法树编码、子树交叉、程序膨胀
21 差分进化 DE "用差分当方向"的现代方法
22 群体智能:PSO 与 ACO 粒子群/蚁群,与进化算法的异同
23 当进化遇见神经网络与机器学习 NEAT、NAS、进化 + LLM 前沿

第六部分 · 实践与收尾

标题 核心内容
24 项目实践:函数优化(含交互式可视化) Python 参考实现 + JS 交互工具 + 引导式实验
25 总结与进阶学习路线 NFL 定理收束、书籍/库/方向推荐

交互式可视化

ga_interactive.html 是一个纯 vanilla JS + Canvas 的单文件交互工具,零依赖,浏览器打开即用。

  • 随机生成多峰函数,暴力扫描标记全局最优
  • 实时调控 N / Pc / Pm,观察种群逐代演化
  • 收敛曲线 + 多样性曲线实时绘制,自动诊断收敛/停滞
  • 历史回溯:每代保存种群快照,拖拽时间轴查看任意代,或从某代截断改参数重跑

技术栈

组件 技术
笔记 Markdown + Mermaid 流程图
参考实现 Python + NumPy(第 24 章)
交互可视化 原生 JS + Canvas API(单 HTML 文件,零依赖)

如何阅读

  1. 按序号顺序读:每章末尾有"上一篇/下一篇"导航链接
  2. 第一遍快速过:重点看每章的故事和 ASCII 图,跳过数学
  3. 第二遍动手做:打开 ga_interactive.html,跟着第 24 章的 4 个实验操作
  4. 按需查阅:把目录当索引,遇到具体问题再翻对应章节

许可

MIT

About

一套面向初学者的遗传算法(GA)系统学习笔记,共 25 章、6 大阶段,从"为什么要向自然学习"的哲学起源,一路走到模式定理、收敛性证明,再横向扩展至进化策略(ES)、遗传编程(GP)、差分进化(DE)、群体智能(PSO/ACO)与神经进化(NEAT)等整个进化计算家族。叙事以直觉和比喻为先,数学点到为止,每章配有 Mermaid 流程图与 ASCII 示意图。第 24 章提供 Python 参考实现及纯 JS 交互式可视化工具——浏览器中实时调控参数、观察种群逐代演化、回溯任意代快照,附带 4 个引导式实验。适合零基础入门进化计算、或已有经验想系统补课的开发者。

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages