基于matlab遗传算法工具箱的设计思路

基于matlab遗传算法工具箱的设计思路

ID:39474268

大小:316.50 KB

页数:8页

时间:2019-07-04

基于matlab遗传算法工具箱的设计思路_第1页
基于matlab遗传算法工具箱的设计思路_第2页
基于matlab遗传算法工具箱的设计思路_第3页
基于matlab遗传算法工具箱的设计思路_第4页
基于matlab遗传算法工具箱的设计思路_第5页
资源描述:

《基于matlab遗传算法工具箱的设计思路》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于MATLAB的遗传算法工具箱设计  本文是由北京理工大学的徐瑛和任雪梅同学所作。2.1遗传算法工具箱的设计思想工具箱归纳了遗传算法及其各种改进算法的相同之处,建立了一个统一的遗传算法基本流程框架,如下图1所示: 遗传算法中最重要的有三个基本操作,我们也称为算子:选择用来决定重组或者交叉的个体,以及被选的个体新产生的个体的个数。首先要计算所有个体的适应函数值,然后得到适应度。适应度可以按适应函数值的比例计算,也可以根据适应函数值排序来得到。交叉将群体内的各个个体随机搭配成对,以某个概率交换它们之间的部分染色体。变异对群体内的每一个个体,以某一概率改变某一个或某一些基因值为

2、其它的基因值。另外,还有编解码运算和个体评价操作。每一个算子,都可能有多种的具体算法及其实现,组合在一起从而形成了各种各样的遗传算法的改进算法。具体实现时,工具箱将每个算子的不同实现做成标准化的模块,彼此之间可以相互替换,以搭积木的方式组成了遗传算法及其各种改进。工具箱总体上采用模块式设计,各个模块之间是相互独立的。它包括以下几个模块:命令模块、编解码模块、算子模块、结果显示模块、参数输人模块、监督和参数调整模块。其中命令模块是总控模块,从用户那里得到命令,根据这些命令调度其它模块的运行和停止。编解码是一个互逆的过程,作为一个统一的模块。算子模块由选择、重组或交叉、变异三个

3、子模块组成,是工具箱的核心计算部分。结果显示模块以多种方式如图形、图表等,直观、快捷地显示算法运算的结果,要求做到一边计算、一边显示。参数输人模块负责输人和调整遗传算法的各种选项和参数。为了减少人工干预,工具箱设有基于经验的默认的选项和参数。监督和参数调整模块用于监督算法的运行情况,动态调整参数,使算法始终高效运行。整个工具箱的模块结构和运行过程可以用图2来表示。 我设计的工具箱既具有相当的通用性,又具有相当的灵活性。通用性体现在工具箱基本实现了遗传算法的各种算子的改进及其大多数重要的改进算法。用户不用编程就可以方便地使用工具箱来解决自己特定的问题。灵活性一方面体现在用户可

4、以在多种改进算法中自如地选择,加以组合;另一方面体现在用户还可以很容易地添加自已编写的新算法。因此,我称之为通用遗传算法工具箱。2.2遗传算法工具箱的具体实现——任务文件和子任务的设计在系统结构的具体实现上,我借鉴了script的思想,设计了一套以任务文件为核心的运行机制运行遗传算法,首先要定义任务文件。任务文件具有特定的格式,可以使用工具箱的用户界面方便地生成,也可以手工编写。任务文件记录了问题的定义,变量的搜索域,每个算子选用的具体算法及参数,以及其它一些选项。它包括了遗传算法运行所需要的全部信息,指定了一个任务文件,实际上也就指定了一次遗传算法的运行。相应的,执行程序

5、负责读人任务文件的内容,对于用户没有指定的信息,则执行默认的选项或参数,运行这个任务文件所指定的算法来求解问题,并返回所得的结果。运行中还会产生一些动态信息,这些动态信息被记录下来,一方面用于显示给用户,供用户查看和分析:另一方面用于算法的动态调整。随后,在工具箱中又引人了子任务的概念。具体来说,就是在运行一个任务文件的过程中,可以再插人其它的若干个任务文件,称为子任务。甚至子任务还可以再插人下一级的任务文件。这样就形成了任务文件的嵌套。如图3所示。 通过进一步引人子任务的设计,可以实现两类算法。一类是多种群的算法,每个子任务都代表一个种群;另一类则是分层遗传算法,父任务代

6、表高层的遗传算法,子任务代表低层的遗传算法。随着工具箱的发展,甚至可以考虑把不同的任务放到不同的机器上运行,从而实现并行的遗传算法。下面给出一个使用子任务的任务文件例子,其内容及解释如下:Popu:init[50]表示种群需要初始化,种群的规模为50Bounds:[-1,2]表示单变量优化,变量范围为[-1,2]Coding:Binary表示编码方式为二进制方式EvalFun:x*sin(10*pi*x)+2.0[]表示目标函数为f(x)=xsin(IOrzx)+2.0CycleBegin:maxGenTerm40表示循环开始,循环的结束函数及其参数]Select:Roul

7、etteSelect[]表示选择函数及其参数Crossover:SimpleXover[0.8]表示交叉函数及其参数Mutation:BinaryMutadon[0.05]表示变异函数及其参数Subtask:one.Task60%表示某一子任务的任务文件和个体所占比例Subtask:two.Task40%表示某一子任务的任务文件和个体所占比例ElitistReserve:on表示使用最优保留策略End表示循环结束InformCollect:on表示打开运行信息收集选项2.3工具箱对自适应性的支持在工具箱中,把自适应

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。