use*_*905 5 algorithm artificial-intelligence selection genetic-algorithm crossover
我一直在为我ai班上的一个项目做遗传算法研究,但我对传统算法看起来有点困惑.
基本上,我想知道为什么他们使用不同的选择,如轮盘赌选择父母重现.为什么不选择健康评分最高的父母并称之为一天?
交叉也让我感到困惑.它每次随机选择点来拼接父信息.但是,基于以前的信息,交叉变换似乎更有意义.如果已知染色体串达到某一点,则交叉仍然可以是随机的,但不在字符串中良好部分的范围内.
有什么想法吗?
Dat*_*ith 10
如果你只选择最好的父母,你得到的就是爬山.爬山很好,但问题越困难,一般来说,你越有可能陷入困境,你就无法取得进一步的进展.
一般来说,问题越难,这种局部最优就越多.除了最好的人之外,选择其他个体可以保持人口的多样性:解决方案在搜索空间中进一步扩展,如果一部分人口陷入局部最优,那么人口的不同部分仍然可以进展.
现代遗传算法通常花费大量精力来维持种群的多样性以防止早熟收敛.一种技术是健身共享.另一种简单的方法是将种群划分为不同的物种,以便不同物种的个体不能(或者很少能够)相互繁殖.
Crossover试图在由于突变而出现的个体中分布基因组的好部分.如果一个人可以交换基因组的好部分确实很好,并且已经尝试过; 例如,您可以查看每个基因并测量拥有该基因的个体的平均适合度.
但是有两个主要问题:
它的计算成本很高.
基因组中可能存在相互依赖关系.也许基因A看起来非常好,根据你的指标,但基因B没有,所以你把它留下来.但实际上,如果没有基因B存在,基因A可能实际上不起作用.