为何采用遗传算法
遗传算法是机器学习的子集。在实践中,遗传算法通常不是用来解决单一的、特定问题的最好算法。对任何一个问题,几乎总有更好的、更有针对性的解决方案!那么何必麻烦呢?
遗传算法是一个极好的多用途工具,可以应用于许多不同类型的问题。这是瑞士军刀与合适的螺丝刀之间的差异。如果任务是拧紧300颗螺丝,你会跳起来找螺丝刀。但如果任务是拧几颗螺丝、割开一些布、在皮革上打一个孔,然后打开一瓶冰苏打水奖励自己的努力工作,那么瑞士军刀是更好的选择。
此外,遗传算法是整体研究机器学习的不错入门。如果机器学习是一座冰山,遗传算法就是尖端的一部分。遗传算法有趣、令人兴奋且充满创新。遗传算法的模型基于自然生物过程,建立了计算世界和自然世界之间的连接。编写第一个遗传算法,观看从混乱和随机中出现的惊人结果,让人叹为观止。
机器学习冰山顶端的其他研究领域也同样令人兴奋,但它们往往关注的问题更狭窄,更难以理解。遗传算法则不然,它很容易理解,是有趣的实现,它们引入了所有机器学习技术都会使用的许多概念。
哪些问题适合用遗传算法解决
下面是一个问题特征列表,这类问题是采用遗传算法的良好候选者:
- 如果问题足够困难,难以写代码来解决;
- 如果人不知道如何解决这个问题;
- 如果问题是不断变化的;
- 如果搜索每个可能解是不可行的;
- 如果可以接受“足够好”的解。
遗传算法基本术语
遗传算法建立在生物进化的概念上的。