本节书摘来异步社区《Java遗传算法编程》一书中的第2章,第2.1节,作者: 【英】Lee Jacobson(雅各布森) , 【美】Burak Kanber(坎贝尔),更多章节内容可以访问云栖社区“异步社区”公众号查看。
第2章 实现一个基本遗传算法
Java遗传算法编程
在本章中,我们将开始探索实现基本遗传算法的技术。本章开发的程序,将在后面的章节中进行修改,加入功能。同时,我们也将探讨基于遗传算法的参数和配置,以及它的性能会如何变化。
要尝试运行本节中的代码,需要先在计算机上安装Java JDK。你可以从Oracle的网站上免费下载并安装Java JDK:
oracle.com/technetwork/java/javase/downloads/index.html
除了安装Java JDK,你也可以选择安装支持Java的IDE,比如Eclipse或NetBeans,虽然这不是必需的。
2.1 实现之前
实现遗传算法之前,最好是先考虑遗传算法是不是完成手上任务的正确途径。往往有更好的技术来解决具体的优化问题,通常是利用一些基于领域的启发式搜索。遗传算法是与领域无关的,或称为“弱方法”,能够应用该方法的问题,不需要任何特定的先验知识来协助其搜索过程。由于这个原因,如果没有任何已知的领域特定的知识可用于帮助引导搜索过程,遗传算法仍然可以用来发现潜在的解。
如果已经确定弱搜索方法是合适的,还应该考虑采用的弱方法的类型。这可能只是因为替代方法提供了更好的平均结果,也可能是因为替代方法更容易实现,需要的计算资源较少,或可以在较短的时间内找到足够好的结果。