基于MATLAB 的遗传算法工具箱
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A sat eec rh ia iprnfloai i ie gneA euad ie ec rh bt c r Gnt a ot s m oat f ia n l ec. wr l fx lgnt a o t i l im n t i d rf l l g e tc ti p f n l b e i l im o e g t l x m tb dvl e i ts e Tit l x g t mj iprn ip vm n o gnt o b f aa i ee pd h ppr h o b iere a r oat r e et f ec o o o l s o n a . s o n a s o m t m o r i o t s e i a ot . pr wtei t l x ts l x m r ui rlad y ueMy l x sut l r m C m a d h s o b , t b i o n e a n es t s gi h o e i x t o h o o s e vs , a o . t b cnr a o i o o o o tc o fm w rognt a ot , oe w cai orni , a a ot f Pro t i tn r e o f ec rh p psa e m hn m un gg e w r m a tO i z i , a k e i l im r g o n e s f n i n l i o e pm ao v e g h r ad v e h iea . u tn epr etvla or hd. n p i g pi n rc S li ad em n adt um t s r d r c f e i ao n x i s e e o o a t m i
Sb s a k 6% utk a : oe s n. T 0 表示某一子任务的 任务文件和个体所占比 例 Sb s: to a k 4% utk a s w. T 0 表示某一子任务的任务文件和个体所占比 例 E t Rs v o ls e r : it e e n i 表示使用最优保留 策略 Ed n 表示循环结束 I o C lc o l t n n r oe : fm 表示打开运行信息收集选项 23工具箱对自 . 适应性的支持 在工具箱中, 把自 适应的特性加以 规范, 把自 适应性总结为对主要算法参数的 调整, 即所谓动态 参数, 并且把对参数的调整与主要算法相分离, 使整个程序更为模块化, 便于替换和扩充。 在工具箱中,可以 对选择、 交叉和变异这三种主要算子的 参数进行自 适应调整, 方法是选定三个 自 适应调整函数, 在任务文件中 分别指定。 在程序运行时, 如果存在这三个自 适应调整函数, 则运行 这些函 数, 并将其结果分别作为选择、 交叉和变异算子的参数, 代人到选择、 交叉和变异的算法中 运 行;否则将使用选择、 交叉和变异算子默认的参数。
自动化理论 、技术与应用
带有一个非常友好的 用户界面 并巨 它的源码对外开放, , 易于扩充, 具有良 应用前景 好的
2遗传算法工具箱的设计思想及其具体实现
21遗传算法工具箱的设计思想 . 工具箱归纳了 遗传算法及其各种改进算法的相同 之处, 建立了 一个统一的 遗传算法基本流程框架,
如下图所示:
基于MTA 的遗传算法工具箱 ALB
徐 瑛 任雪梅
( 理工大学 北京 1 01 北京 0 8) 0
摘 要 文中 综合了 各种遗传算法的 改进, 实现了一个基于MAL B的 T A 遗传算法工具箱 与现有的M T A AL B 遗传算法工具箱相比, 它建立了一个遗传算法的通用框架, 集成了现有的大多数重要的改进算法, 使用方便, 具有高度的可扩展性.该工具箱引人了一种以任务文件为核心的运行机制,提出了 一种新的 Pro a t多目 e 标进 化算法,支持自 适应算法, 同时还提供了图形化的界面。实验证明了该工具箱的通用性和灵话性
Pp: 5] 0 ouit n( i Bud [ 2 , ons - ] : 1 Cdg ir a on: y iB n
表示种群 需要初始 种群的 化, 规模为5 0 表示单变量优化, 变量范围为[, - 2 1 ] 表 编 方 二 制 式 示 码 式为 进 方
Ea u: n 0p x 2 [ 表示目 数为 f = i I x + v Fnxs( *i ) . ] l * 1 * + 0 i 标函 () s( r ) . x x O n z 2 0
图3任 务文件的 嵌套
通过进一步引人子任务的设计, 可以实现两类算法。 一类是多种群的 算法, 每个子任务都代表一 个种群; 另一类则是分层遗传算法, 父任务代表高层的遗传算法, 子任务代表低层的遗传算法。随着 工具箱的 发展, 甚至可以 考虑把不同的任务放到不同的机器上运行, 从而实现并行的遗传算法。下面 给出 一个使用子任务的任务文件例子, 其内容及解释如下:
图 1遗传算法的基本流程框架图
遗传算法中 最重要的有三个基本操作, 我们也称为算子: 选择用来决定重组或者交叉的个体,以 及被选的个体新产生的个体的 个数。 首先要计算所有个体的 适应函 数值, 然后得到适应度。 适应度可 以 按适应函 数值的比 例计算, 也可以 根据适应函数值排序来得到。 交叉将群体内的 各个个体随机搭配 成对,以 某个概率交换它们之间的部分染色体。 变异对群体内的 每一个个体,以 某一概率改变某一个 或某一些基因值为其它的 基因 值。 另外, 还有编解码运算和个体评价操作。 每一个算子, 都可能有多种的 具体算法及其实现, 组合在一起从而形成了各种各样的 遗传算法的 改进算法。 具体实现时, 工具箱将每个算子的 不同 实现做成 标准化的 模块, 彼此之间 可以 相互替换,
在 结构的 具体实 系统 现上, 借鉴了 s p 的 我 c t 思想, i r 设计了 一套以 任务文 件为核心的 运行机制
运行遗传算法, 首先要定义任务文件。 任务文件具有特定的格式, 使用工具箱的 可以 用户界面方便地 生成, 也可以 手工编写。 任务文件记录了问题的 定义, 变量的 搜索域, 每个算子选用的 具体算法及参 数,以 及其它一些选项。 它包括了遗传算法运行所需要的 全部信息, 指定了 一个任务文件, 实际上也 就指定了 一次遗传算法的 运行。 相应的, 执行程序负责读人任务文件的内 容, 对于用户没有指定的 信 息, 则执行默认的选项或参数, 运行这个任务文件所指定的 算法来求解问 题, 并返回 所得的结果。 运 行中 还会产生一些动态信息, 这些动态信息被记录下来, 一方面用于显示给用户, 供用户查看和分析: 另一方面 用于 算法的 动态调整。随后, 在工具箱中又引人了子任务的概念。 具体来说, 就是在运行一 个任务文件的过程中, 可以 再插人其它的若干个任务文件, 称为子任务。 甚至子任务还可以再插人下 一级的 任务文件。 这样就形成了任务文件的 嵌套。 如图3 所示。
K y od G nt a o t e w rs eec rh MA L B, l x i l i m, T A t b g o o o
1引
言
遗传算法是模拟生物在自 然环境中的 遗传和进化来形成的 一种自 适应全局优化概率搜索算法。 它 的出 发点是遵循自 然界 “ 适者生存”的 进化法则, 模拟基因的 遗传和变异, 在解空间中寻找最优解。 其优点是全局搜索, 不需要知道解空间的 “ 导数” 高效,因而 , 具有广泛的 适用性。 遗传算法及进化计 算已 经成为人工智能的 最重要研究领域之一。 l 一 n M TA A L B是国内 外最流 行的 科学计算软件, 具有开放, 高效, 资源丰富等诸多优点。目 经成 前已 为科学计算领域事实上的标准[。 [ 如果能在 M T A 1 2 1 A L B环境中提供 遗传算法的 工具箱, 就可以使用户 在无需深人了 解遗传算法的 情况下运用遗传算法工具箱来求解各种问 题, 大大拓展了 遗传算法的应用, 降低了 用户的使用难度。 然而, 遗憾的是 M T A A L B环境没有自 带的遗传算法工具箱, 用户只能使用 第三方的工具箱。 M T A 而 A L B的 第三方遗传算法工具箱并不多见, 现有的大多是商业化的, 学生无 力购买:另一方面, 工具箱的源代码不开放, 功能不强, 不能自 进行二次开发或修改扩展, 已 满足自 己特定的需求 本文介绍了 一个我自 行开发的基于 M T A A L B的 遗传算法工具箱, 与目 前常见的 类似工具箱相比, 它建立了一个遗传算法的通用框架, 容纳了 更多的遗传算法的重要改讲, 提供了 丰富的U法洗项, 环
自动化理论、技术与应用
CcBg : n r 4 mxe e 0 yeen a T m l i G 表 循 始, 环的 束函 及 参 示 环开 循 结 数 其 数 Se: Ru t lt t ec] ec lt Se [ oe le 表 选 数 其 数 示 择函 及 参 C sv: m e v [ ] l o r rs e S pX e 0 oo r i . 8 表 交 数 其 数 示 叉函 及 参 M to y to 0 1 r ud ( 5 ut : i M a n a n Ba i n . 0 表 变 数及 数 示 异函 其参
关键词 遗传算法,MA L B 工具箱 TA ,
A nt Agrh T o o fr T A G ec oi m l x MA L B e i l t ob o
X Y g E X e e U R N - i m um
(ei fsme eho g. i g 108) Bi g r tfTcnl y B j , 0 1 j ni n a ei n 0
以搭积木的方式组成了遗传算法及其各种改进。
图z 工具箱的模块结构和运行方式
基于 M TA ALB的遗传算法工具箱
_具箱总体上采用模块式设计,各个模块之间是相互独立的。它包括以下几个模块:命令模块、 } 几 编解码模块、 算子模块、 结果显示模块、 参数输人模块、 监督和参数调整模块。 命令模块是总控 其中 模块, 从用户那里得到命令, 根据这些命令调度其它模块的运行和停止。编解码是一个互逆的过程, 作为一个统一的模块。算子模块由选择、重组或交叉、变异三个子模块组成,是工具箱的核心计算部 分。 结果显示模块以多种方式如图 形、图表等, 直观、 快捷地显示算法运算的结果, 要求做到一边计 算、 一边显示。 参数输人模块负责输人和调整遗传算法的各种选项和参数。为了 减少人工干预, 工具 箱设有基于经验的默认的 选项和参数。 监督和参数调整模块用于监督算法的 运行情况, 动态调整参数, 使算法始终高效运行。 整个工具箱的 模块结构和运行过程可以 用图2 来表示。 我设计的工具箱既具有相当的 通用性, 又具有相当的 灵活性。 通用性体现在工具箱基本实现了遗 传算法的各种算子的改进及其大多数重要的改进算法。 用户不用编程就可以方便地使用工具箱来解决 自 特定的问 己 题。 灵活性一方面体现在用户可以 在多种改进算法中自 如地选择, 加以 组合; 另一方面 体现在用户还可以 很容易地添加自 已编写的新算法。因 此, 我称之为通用遗传算法工具箱。 22 遗传算法工具箱的 . 具体实现- 任务文件和子任务的设计 一