遗传算法
概述
-
遗传算法是一种模拟演化的近似算法。
-
顾名思义,它模拟大量的样本,周期性地繁衍、遗传、变异、筛选。
-
“状态”有时在遗传算法中是对象的一个属性。
思路
-
周期性地将从旧有的样本中选取较优的(譬如前 \(10\%\)),以它们为基础生成大量的新样本。
- 如果想要制造更好的随机性,可以考虑从不那么优的样本中也随一些出来参与繁衍。
-
在繁衍中,首先让子样本继承母样本(可能是一个,可能是多个)的绝大部分特质。
-
然后按照一定的逻辑对其做变异,可以考虑使用概率函数,也可以比较粗暴地取一部分进行大量变异。
-
重复上述过程直到解符合需求。一般把上一代舍去。
例题
-
谁写这么大的工程啊?
-
能退的基本上都退了,不能退但是能遗传的...真的是 OI 比赛吗?