遗传算法进化 Hello World

从一堆随机乱码出发,通过选择、交叉、变异,让字符串自己「长」成 hello world。调参数,看它进化多快。

选择目标

点击预设卡片快速开始,或自定义任意字符串作为进化目标。

hello world
入门11字符
to be or not to be
中等18字符
I think therefore I am
中等22字符
42
趣味极简
当前目标
hello world

进化参数

拖动滑块调整参数,观察对进化速度的影响。

种群大小200
变异率1.0%
交叉率70%
精英保留2

进化过程

0
代数
0%
最优适应度
0%
平均适应度
0%
种群多样性
点击「开始进化」启动
查看种群前 10 名

为什么这算「高端」

01

不写答案,写规则

程序员从不告诉程序「hello world 长什么样」。只给适应度函数(离目标多远),让群体自己摸索出答案。

02

盲目搜索 → 定向进化

每一代的选择压力淘汰差的,变异产生新可能,交叉组合优势基因。全局最优从混沌中涌现。

03

搜索空间多大?

11个字符,每位95种可能(可打印ASCII),总共 95¹¹ ≈ 5.7 × 10²¹ 种组合。穷举要跑到宇宙热寂,遗传算法几百代搞定。

关键观察

注意适应度曲线的形状:开头进步飞快(容易找到「大方向对」的个体),越到后面越慢(最后几个字符最难对齐)。这就是进化中的「收益递减」——和现实中学习新技能的曲线一模一样。

参数对比实验

点击按钮批量运行不同参数,对比收敛速度。每组跑 10 次取平均。