admin 管理员组

文章数量: 1184232


2024年1月24日发(作者:ppt模版免费下载网站)

基于MATLAB的遗传算法工具箱徐瑛任雪梅(北京理工大学北京100081)摘要文中综合了各种遗传算法的改进,实现了一个基于MATLAB的遗传算法工具箱与现有的MATLAB遗传算法工具箱相比,它建立了一个遗传算法的通用框架,集成了现有的大多数重要的改进算法,使用方便,具有高度的可扩展性.该工具箱引人了一种以任务文件为核心的运行机制,提出了一种新的Pareto多目标进化算法,支持自适应算法,同时还提供了图形化的界面。实验证明了该工具箱的通用性和灵话性关键词遗传算法,MATLAB,工具箱A Genetic Algorithm Toolbox for MATLABXU Ymg  REN Xue-mei(Beijing fnsrimte fTechnolagy. Beijing, 100081)Abstract  Genetic algorithm is an important ifeld of artificial intelilgence. A powerful and lfexible genetic algorithmtoolbox for matlab is developed in this paper. This toolbox integrates major important improvements of geneticalgorithm. Compared with exist toolbox, this toolbox is more universal, and easy to use. My toolbox construct aframework of genetic algorithm, propose anew mechanism of running, give a new algorithm for Pareto Optimization,and provide graphic interface. Simulation and experiments validate our methods.Keywords  Genetic algorithm, MATLAB, toolbox1引言    遗传算法是模拟生物在自然环境中的遗传和进化来形成的一种自适应全局优化概率搜索算法。它的出发点是遵循自然界“适者生存”的进化法则,模拟基因的遗传和变异,在解空间中寻找最优解。其优点是全局搜索,不需要知道解空间的“导数”,高效,因而具有广泛的适用性。遗传算法及进化计算已经成为人工智能的最重要研究领域之一。一nlMATLAB是国内外最流行的科学计算软件,具有开放,高效,资源丰富等诸多优点。目前已经成    为科学计算领域事实上的标准[[121。如果能在MATLAB环境中提供遗传算法的工具箱,就可以使用户在无需深人了解遗传算法的情况下运用遗传算法工具箱来求解各种问题,大大拓展了遗传算法的应用,降低了用户的使用难度。然而,遗憾的是MATLAB环境没有自带的遗传算法工具箱,用户只能使用第三方的工具箱。而MATLAB的第三方遗传算法工具箱并不多见,现有的大多是商业化的,学生无力购买:另一方面,工具箱的源代码不开放,功能不强,不能自已进行二次开发或修改扩展,满足自己特定的需求本文介绍了一个我自行开发的基于MATLAB的遗传算法工具箱,与目前常见的类似工具箱相比,    它建立了一个遗传算法的通用框架,容纳了更多的遗传算法的重要改讲,提供了丰富的U法洗项,环

自动化理论、技术与应用带有一个非常友好的用户界面并巨,它的源码对外开放,易于扩充,具有良好的应用前景2遗传算法工具箱的设计思想及其具体实现2.1遗传算法工具箱的设计思想工具箱归纳了遗传算法及其各种改进算法的相同之处,建立了一个统一的遗传算法基本流程框架,    如下图所示:图1遗传算法的基本流程框架图                                       遗传算法中最重要的有三个基本操作,我们也称为算子:选择用来决定重组或者交叉的个体,以及被选的个体新产生的个体的个数。首先要计算所有个体的适应函数值,然后得到适应度。适应度可以按适应函数值的比例计算,也可以根据适应函数值排序来得到。交叉将群体内的各个个体随机搭配成对,以某个概率交换它们之间的部分染色体。变异对群体内的每一个个体,以某一概率改变某一个或某一些基因值为其它的基因值。另外,还有编解码运算和个体评价操作。每一个算子,都可能有多种的具体算法及其实现,组合在一起从而形成了各种各样的遗传算法的    改进算法。具体实现时,工具箱将每个算子的不同实现做成标准化的模块,彼此之间可以相互替换,以搭积木的方式组成了遗传算法及其各种改进。图z工具箱的模块结构和运行方式

基于MATLAB的遗传算法工具箱    _}几具箱总体上采用模块式设计,各个模块之间是相互独立的。它包括以下几个模块:命令模块、编解码模块、算子模块、结果显示模块、参数输人模块、监督和参数调整模块。其中命令模块是总控模块,从用户那里得到命令,根据这些命令调度其它模块的运行和停止。编解码是一个互逆的过程,作为一个统一的模块。算子模块由选择、重组或交叉、变异三个子模块组成,是工具箱的核心计算部分。结果显示模块以多种方式如图形、图表等,直观、快捷地显示算法运算的结果,要求做到一边计算、一边显示。参数输人模块负责输人和调整遗传算法的各种选项和参数。为了减少人工干预,工具箱设有基于经验的默认的选项和参数。监督和参数调整模块用于监督算法的运行情况,动态调整参数,使算法始终高效运行。整个工具箱的模块结构和运行过程可以用图2来表示。我设计的工具箱既具有相当的通用性,又具有相当的灵活性。通用性体现在工具箱基本实现了遗    传算法的各种算子的改进及其大多数重要的改进算法。用户不用编程就可以方便地使用工具箱来解决自己特定的问题。灵活性一方面体现在用户可以在多种改进算法中自如地选择,加以组合;另一方面体现在用户还可以很容易地添加自已编写的新算法。因此,我称之为通用遗传算法工具箱。2.2遗传算法工具箱的具体实现-一任务文件和子任务的设计在系统结构的具体实现上,我借鉴了s    cirpt的思想,设计了一套以任务文件为核心的运行机制运行遗传算法,首先要定义任务文件。任务文件具有特定的格式,可以使用工具箱的用户界面方便地生成,也可以手工编写。任务文件记录了问题的定义,变量的搜索域,每个算子选用的具体算法及参数,以及其它一些选项。它包括了遗传算法运行所需要的全部信息,指定了一个任务文件,实际上也就指定了一次遗传算法的运行。相应的,执行程序负责读人任务文件的内容,对于用户没有指定的信息,则执行默认的选项或参数,运行这个任务文件所指定的算法来求解问题,并返回所得的结果。运行中还会产生一些动态信息,这些动态信息被记录下来,一方面用于显示给用户,供用户查看和分析:另一方面用于算法的动态调整。随后,在工具箱中又引人了子任务的概念。具体来说,就是在运行一个任务文件的过程中,可以再插人其它的若干个任务文件,称为子任务。甚至子任务还可以再插人下一级的任务文件。这样就形成了任务文件的嵌套。如图3所示。图3任务文件的嵌套                                   通过进一步引人子任务的设计,可以实现两类算法。一类是多种群的算法,每个子任务都代表一个种群;另一类则是分层遗传算法,父任务代表高层的遗传算法,子任务代表低层的遗传算法。随着工具箱的发展,甚至可以考虑把不同的任务放到不同的机器上运行,从而实现并行的遗传算法。下面给出一个使用子任务的任务文件例子,其内容及解释如下:    Popu: init (50]表示种群需要初始化,种群的规模为50Bounds    : [-1, 2]表示单变量优化,变量范围为[-1, 2]Co    ding: Binayr表示编码方式为二进制方式EvalFun: x*sin(10*pi*x)+2.0 []表示目标函数为f (x) = x sin(IOrz x)  + 2.0

自动化理论、技术与应用    CycleBegin: maxGenTerm  40表示循环开始,循环的结束函数及其参数Se      lect:      RouletteSelect[]表示选择函数及其参数Cr      ossover:   SimpleXover [0.8]表示交叉函数及其参数Mu      tation:    BinaryMutadon (0.051表示变异函数及其参数        Subtask:     one.Task     60%表示某一子任务的任务文件和个体所占比例Subt        ask:     two.Task     40%表示某一子任务的任务文件和个体所占比例El        itistReserve: on表示使用最优保留策略End    表示循环结束I    nformCollect: on表示打开运行信息收集选项2.3工具箱对自适应性的支持在工具箱中,把自适应的特性加以规范,把自适应性总结为对主要算法参数的调整,即所谓动态    参数,并且把对参数的调整与主要算法相分离,使整个程序更为模块化,便于替换和扩充。在工具箱中,可以对选择、交叉和变异这三种主要算子的参数进行自适应调整,方法是选定三个    自适应调整函数,在任务文件中分别指定。在程序运行时,如果存在这三个自适应调整函数,则运行这些函数,并将其结果分别作为选择、交叉和变异算子的参数,代人到选择、交叉和变异的算法中运行;否则将使用选择、交叉和变异算子默认的参数。    以Srinvivs等提出的自适应遗传算法为例。遗传算法的参数中,交叉概率P和变异概率凡的选a择是影响遗传算法行为和性能的关键参数,直接影响算法的收敛性,P越大,新个体产生的速度就越快。然而,P过大时遗传模式被破坏的可能性就越大,使得具有高适应度的个体结构很快就被破坏;但是如果P过小,会使搜索过程缓慢,以至停滞不前。对于变异概率P,如果P的过小,就不易产生新结构;如果P的取值过大,那么遗传算法就趋向于随机搜索了。为了避免选择合适P和P的麻烦,Srinvivas提出了自适应遗传算法,让几和凡的值能随适应度自动改变。当种群个体适应值趋于一致或者趋于局部最优时,使P和凡的值增加,当群体适应度比较分散时,使P和凡的值减少。同时,对于适应值高于群体平均适应值的个体,对应于较低的P和凡的值,使该解得以保护进人下一代,而低于群体平均适应度的个体,相对于较高的典和凡,使该解被淘汰掉。因此,自适应的P和凡能够提供相对某个问题的最佳的P和凡。自适应遗传算法在保持种群多样性的同时,保证遗传算法的收敛性。在自适应遗传算法中,P和P按如下公式进行自适应调整:    r月1(P,一P2 )(.f’一f-,)  凡PO

本文标签: 工具箱 遗传算法 算法 任务 模块

更多相关文章

android 拦截qq消息,[Android] QNotified_v0.7.1-beta_QQ辅助增强XP模块【可屏蔽下拉小程序屏蔽@全体消息防撤回】...

3月前

QNotified(以下简称本模块)是一款依赖 Xposed太极框架运行的辅助性QQ功能增强模块, 本模块无毒无害, 免费开源, 指在:接手部分停更模块的部分功能提供被删好友通知功能移除部分臃肿功能, 增加部分实用功能**功能介绍**1.

《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究

3月前

(还在更新中…) 这篇博客花费了我的大量时间和精力,从创作到维护;若认可本篇博客,希望给一个点赞、收藏 并且&#xff0

【配电网重构】基于遗传算法求解实现配电网故障恢复和故障重构问题附Matlab代码

3月前

1 简介随着我国社会经济的发展和人民的生活质量日益提高,用户对电能质量的要求也在不断的提高。作为配电系统,其直接面向用户,所以配电系统的安全可靠性问题已经影响到用户的需求,越来越受到电力部门的关注和重视。而其中的配电网供电恢复是系统恢复中的

SAP SD 模块自学笔记(第一篇) - Contract 与 Schedule Agreement 的区别

3月前

SAP SD 模块自学笔记(第一篇) - Contract 与 Schedule Agreement 的区别 【下载地址】SAPSD模块自学笔记第一篇-Contract与ScheduleAgreement的区别 这篇自学笔记深入解析了SAP

Comprehensive Rust集成测试:跨模块功能验证

3月前

Comprehensive Rust集成测试:跨模块功能验证 【免费下载链接】comprehensive-rust 这是谷歌Android团队采用的Rust语言课程,它为你提供了快速学习Rust所

量化投资与算法交易

3月前

作者:禅与计算机程序设计艺术 1.简介 量化投资(Quantitative investment)和算法交易(Algorithmic Trading),两者是近几年兴起的两个热门词汇。市场对这两个词汇的认识也是逐渐加深。 在过去几年里,

【办公必备神器】打印机工具箱重磅发布!一键智能装驱动,彻底告别安装烦恼![特殊字符]️✨

2月前

【办公必备神器】打印机工具箱V1.0重磅发布!一键智能装驱动,彻底告别安装烦恼!🖨️✨ 📌 Part 0&#xff1

windows系统python查看已安装模块pip命令

2月前

描述:windows系统python查看已安装模块pip命令命令:pip list

任务管理器在哪里?从焦急寻找到得心应手的完整历程

2月前

body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.7; color: #333; background

笔记本右下角WiFi符号消失?一步指引找回网络信号!

1月前

解决思路:设备管理器--先禁用wifi6硬件-再启用wifi6硬件(20秒搞定) 笔记本电脑右下角的wifi经常莫名其妙的不显示,连不上网,感觉应该是与什么程序不兼容,导致wifi模块被办掉了,怎么这种情况出现的原因比较复杂,

解锁Qt中的MD5密码:简便操作技巧详解

1月前

MD5在QT4中已有实现:MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息

CSND高手谈:高效实现文件加密与存储的实用技巧

1月前

最近开发一个手机上的类似于保险箱的功能,就是把选择某个文件然后这个文件就加密起来了,在普通的文件管理器中无法显示。 下面简单介绍下思路,在做这个功能之前,参考很多Android市场上的成熟产品,( 不过话说起来,如果不

解读GPT系列:解锁高级文本处理的未来秘籍

1月前

NLP系列模型解析:Transformer:GPT系列:BERT: 最近看了GPT系列模型,这里特此做一下学习记录和个人思考,先附上三个模型的论文:下面逐一进行介绍: G

GPT演进之旅:由GPT-1到GPT-3,看AI如何掌握语言之秘

1月前

GPT-1 2018 年 6 月,OpenAI发布了第一版GPT(Generative Pre-trained Transformer) 模型,即GPT-1。[论文:]模型原理与结构OpenAI

小白也能变身安装高手:无光驱系统安装指南!

26天前

没有光驱,那拆一个过去不就行了吗?如果不行一定要无光驱装系统,那也不是不可以。但很麻烦。要无光驱装系统,我认为要下载两个东西。1.矮人dos工具箱 2.系统安装光盘文件(最好是破解免激活的)1.下载的系统一般是.

一键安装系统,无需光驱,Adobe Flash中心教你如何

26天前

没有光驱,那拆一个过去不就行了吗?如果不行一定要无光驱装系统,那也不是不可以。但很麻烦。要无光驱装系统,我认为要下载两个东西。1.矮人dos工具箱 2.系统安装光盘文件(最好是破解免激活的)1.下载的系统一般是.

SWF背后的Dota1:4.1源代码解读及项目报告

24天前

C语言程序设计实践的课程设计我们写了个游戏,差点拿满分,先将代码与项目报告与大家分享^_^ 先上截图: 游戏名称:DotA圣战 类型:回合制

Flash开发必备:设置自动清理临时文件,保持系统高效

23天前

如何定时清空临时文件夹中的文件 开发工具与关键技术:Visual Studio 作者:胡宁淇撰写时间:2019年4月14日在我们上传文件到HTML页面的时候,在没有正式保存之前,我们一般会把这些文件暂时存放到一个临时文

揭秘加密Flash文件的秘密:Python破解与压缩技巧分享

22天前

实验目的 应用Python程序设计语言的相关知识, 对加密的压缩文件进行破解。 实验所用仪器(或实验环境) Python3.8 实验基本原理及步骤(或方案设计及理论计算)

基于springboot+vue多功能音乐播放系统

10天前

收藏关注不迷路!!

发表评论

全部评论 0
暂无评论