《Java遗传算法编程》—— 2.3 关于本书的代码示例

2.3 关于本书的代码示例

本书中的每一章都作为一个包,放在附带的Eclipse项目中。每个包都至少有4个类。

  • GeneticAlgorithm类,它抽象了遗传算法本身,为接口方法提供了针对问题的实现,如交叉、变异、适应度评估和终止条件检查。
  • Individual类,它表示单个候选解及其染色体。
  • Population类,它表示一个种群或个体的一个世代,并对它们应用群组级别的操作。
  • 包含main方法的类,包括一些引导代码,前面伪代码的具体版本,以及具体问题可能需要的任何辅助工作。这些类根据它解决的问题来命名,如AllOnesGA、RobotController等。

在本章开始时写下的GeneticAlgorithm、Population和Individual类,需要针对本书后面的各章进行修改。

你可以认为这些类实际上都是接口的具体实现,如Genetic Algorithm Interface、PopulationInterface和IndividualInterface,但是为了让Eclipse项目的布局保持简单,我们没有使用接口。

本书中的GeneticAlgorithm类总是实现了一些重要的方法,如calcFitness、evalPopulation、isTerminationConditionMet、crossoverPopulation和mutatePopulation。但是,根据手上问题的要求,这些方法的内容在每章中略有不同。

在尝试本书中的例子时,我们建议针对每个新问题复制GeneticAlgorithm、Population和Individual类,因为一些方法的实现在各章中保持不变,但另一些方法会有所不同。

此外,请务必阅读附带Eclipse项目源代码中的注释!为了在本书中节省篇幅,我们已经省略了较长的注释和文档注释块,但非常认真地在可供下载的Eclipse文件中提供了充分的源代码注释。对你来说,这就像读第二本书一样!

在许多情况下,本书的章节会要求你在一个类中添加或修改一个方法。一般情况下,在文件的什么位置添加新方法并不重要,所以在这些情况下,我们要么在例子中省略类的其余部分,要么只显示函数签名,仅仅是帮助你保持正确的方向。

时间: 2024-11-05 10:53:45

《Java遗传算法编程》—— 2.3 关于本书的代码示例的相关文章

《Java遗传算法编程》—— 第2章 实现一个基本遗传算法 2.1 实现之前

第2章 实现一个基本遗传算法 Java遗传算法编程 在本章中,我们将开始探索实现基本遗传算法的技术.本章开发的程序,将在后面的章节中进行修改,加入功能.同时,我们也将探讨基于遗传算法的参数和配置,以及它的性能会如何变化. 要尝试运行本节中的代码,需要先在计算机上安装Java JDK.你可以从Oracle的网站上免费下载并安装Java JDK: oracle.com/technetwork/java/javase/downloads/index.html 除了安装Java JDK,你也可以选择安装

《Java遗传算法编程》—— 第1章 简介 1.1 什么是人工智能

第1章 简介 Java遗传算法编程 数字计算机和信息时代的崛起,已经彻底改变了现代的生活方式.数字计算机的发明,使我们能够让生活的许多领域数字化.这种数字化让我们将许多繁琐的日常任务外包给计算机,而这些任务以前可能需要人来完成.这方面的一个日常例子是字处理应用程序,它们内置拼写检查功能,可以自动检查文档的拼写和语法错误. 随着计算机变得越来越快,计算能力越来越强,我们已经能够用它们来执行越来越复杂的任务,如理解人类语言,甚至比较准确地预测天气.这种不断的创新,让我们能够将越来越多的任务外包给计算

《Java遗传算法编程》—— 导读

目录 第1章 简介1.1 什么是人工智能1.2 生物学类比1.3 进化计算的历史1.4 进化计算的优势1.5 生物进化1.6 基本术语1.7 搜索空间1.8 参数1.9 基因表示1.10 终止1.11 搜索过程1.12 参考文献 第2章 实现一个基本遗传算法2.1 实现之前2.2 基本遗传算法的伪代码2.3 关于本书的代码示例2.4 基本实现2.5 轮盘赌选择2.6 交叉方法2.7 交叉伪代码2.8 交叉实现2.9 小结2.10 练习 第3章 机器人控制器 第4章 旅行商 第5章 排课 第6章

《PostgreSQL服务器编程》一一1.2 关于本书的代码示例

1.2 关于本书的代码示例 这里输出显示的示例都是使用PostgreSQL的psql工具创建的,psql工具通常是在Linux系统上运行的.如果你使用一个GUI工具(比如pgAdmin3)去访问服务器,绝大多数的代码同样是生效的.当你看见以下的代码行时: postgres=#部分是psql命令显示的提示.本书中的例子已经在PostgreSQL 9.2中测试通过,它们应该可以在PostgreSQL 8.3或更高版本中运行.相比PostgreSQL最近几个版本上的服务器程序设计,其实并没有发生多少根

Java设计模式编程中的责任链模式使用示例_java

责任链模式:多个对象由其对象对应下家的引用连成一条链,请求在这个链上传递,直到 链上的某一个接收对象处理此请求.因为请求的客户端并不知道链上最终是谁来处理这个请求,使得系统可以在不影响客户端的情况下动态地重新组织和分配责任, 从而避免了请求发送者与请求处理者之间的耦合. 责任链械中涉及到三种角色: 1,抽象处理者角色 2,具体处理者角色 3,请求发送者 小例子:假设去买房子,买房子就需要砍价, 卖房的人职位不同,可以优惠的价格也不同,不同职位就可以形成一个处理请求的链.我们暂定: * 基层销售员

《Java遗传算法编程》—— 2.4 基本实现

2.4 基本实现 为了消除所有不必要的细节,保持最初的实现容易尝试,本书中介绍的第一个遗传算法将是简单的二进制遗传算法. 二进制遗传算法比较容易实现,对于解决许多种优化问题,它可能是非常有效的工具.你可能还记得第1章提到,二进制遗传算法是由Holland(1975)提出的原创的遗传算法. 2.4.1 问题 首先,让我们回顾一下"全一"问题,它是可以用二进制遗传算法来解决的一个非常基本的问题. 该问题不是很有趣,但作为一个简单的问题,它的作用是强调所涉及的基本技术.顾名思义,该问题就是发

《Java遗传算法编程》—— 1.3 进化计算的历史

1.3 进化计算的历史 20世纪50年代,进化计算首次作为一种优化工具被尝试,当时的计算机科学家将达尔文的生物进化论思想应用于候选解构成的种群.他们建立理论,认为有可能应用进化算子,如交叉(它是生物繁殖的模拟)和变异(这是新的遗传信息添加到基因组中的过程).这些算子和选择压力共同作用,让遗传算法在一段时间后,能够"进化"出新的解. 在20世纪60年代,"进化策略"(应用自然选择和进化思想的一种优化技术)最初由Rechenberg(1965,1973)提出,他的想法后

《Java遗传算法编程》—— 2.9 小结

2.9 小结 在本章中,你已经学会了实现遗传算法的基本知识.本章开头的伪代码提供了一个通用的概念模型,针对本书其余部分所有要实现的遗传算法:每个遗传算法将初始化并评估种群,然后进入一个循环,进行交叉.变异和再评估.仅当终止条件满足时,才退出循环. 在本章中,你建立了遗传算法的支持组件,尤其是Individual和Population类,在后面的章节中基本上会复用它们.然后你专门建立了GeneticAlgorithm类,具体解决"全一"问题,并成功地运行了它. 你还了解了以下内容:虽然每

《Java遗传算法编程》—— 1.6 基本术语

1.6 基本术语 遗传算法建立在生物进化的概念上,因此,如果你熟悉进化的术语,可能在学习遗传算法时会发现术语有所重叠.这种领域间的相似性是当然的,因为进化算法,确切来说是遗传算法,类似于自然界中发现的过程. 术语 在更深入遗传算法领域之前,我们先了解一些基本的语言和术语,这很重要.随着本书的推进,我们会根据需要引入更复杂的术语.下面是一些较常见的术语的列表,可供参考. 种群:这就是一个候选解集合,可以有变异和交叉这样的遗传操作应用于它们. 候选解:给定问题的一个可能的解. 基因:组成染色体的不可