知识卡片
遗传算法用模拟自然选择演化出解
内容
当问题的搜索空间大到连启发式搜索也无力应对时,遗传算法提供了另一条路:先随机生成一批试探解(每个称为染色体,其组成部分称为基因),然后模拟”适者生存”——从当前这批解里挑出表现较好的两个作为”双亲”,随机组合它们的基因产生”后代”,偶尔再引入随机”变异”,反复迭代出新一代解。经过足够多代的演化,解的质量往往会逐渐逼近(但不保证达到)最优。这个思路还能反过来用于训练人工神经网络——把一组网络权重当作一条染色体,用测试误差最小的染色体作为下一代的父母,让权重本身也经历一轮”进化”。发散:遗传算法放弃了”精确计算出最优解”这个目标,换成了”用大量随机试探和优胜劣汰去逼近一个足够好的解”——这个取舍在问题规模超出精确算法可承受范围时格外有价值,代价是失去了任何关于解的质量保证,这也是为什么遗传算法更常被用在传统方法束手无策的复杂优化问题上,而不是那些已有高效精确算法的场景。
参考来源
《计算机科学概论》第11章《人工智能》