【世界时快讯】遗传算法实例有哪些?函数的最大值怎么解?
求下列函数的最大值% f(x)=10sin(5x)+7cos(4x) x∈[0,10] % % 将 x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为 (10-0)/(2^10-1)≈0.01 。 % % 将变量域 [0,10] 离散化为二值域 [0,1023], x=0+10*b/1023, 其中 b 是 [0,1023] 中的一个二值数。 % % % %--------------------------------------------------------------------------------------------------------------% %--------------------------------------------------------------------------------------------------------------%
(资料图片)
% 编程 %----------------------------------------------- % 2.8 主程序 %遗传算法主程序 %Name:genmain05.m function genmain() tic; clear clf popsize=20; %群体大小,种群规模50倍的样子 chromlength=10; %字符串长度(个体长度) pc=0.6; %交叉概率 pm=0.001; %变异概率
pop=initpop(popsize,chromlength); %随机产生初始群体 for i=1:200 %20为迭代次数 [objvalue]=calobjvalue(pop); %计算目标函数 fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度 [newpop]=selection(pop,fitvalue); %复制或者叫做选择 [newpop]=crossover(pop,pc); %交叉 [newpop]=mutation(pop,pc); %变异 [bestindividual,bestfit]=best(pop,fitvalue); %求出群体中适应值最大的个体及其适应值 y(i)=max(bestfit); n(i)=i; pop5=bestindividual; x(i)=decodechrom(pop5,1,chromlength)*10/1023; pop=newpop; end
fplot(‘10sin(5x)+7cos(4x)’,[0 10]) hold on plot(x,y,‘r*’) hold off
[z index]=max(y); %计算最大值及其位置 x5=x(index)%计算最大值对应的x值 y=z toc
% 2.1初始化(编码) % initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度), % 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: initpop.m %初始化
function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)) % rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。
% 2.2 计算目标函数值 % 2.2.1 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: decodebinary.m %产生 [2^n 2^(n-1) … 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop) [px,py]=size(pop); %求pop行和列数 for i=1:py pop1(:,i)=2.^(py-i).*pop(:,i); end pop2=sum(pop1,2); %求pop1的每行之和
% 2.2.2 将二进制编码转化为十进制数(2) % decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置 % (对于多个变量而言,如有两个变量,采用20为表示,每个变量10为,则第一个变量从1开始,另一个变量从11开始。本例为1), % 参数1ength表示所截取的长度(本例为10)。 %遗传算法子程序 %Name: decodechrom.m %将二进制编码转换成十进制 function pop2=decodechrom(pop,spoint,length) pop1=pop(:,spoint:spoint+length-1); pop2=decodebinary(pop1);
% 2.2.3 计算目标函数值 % calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。 %遗传算法子程序 %Name: calobjvalue.m %实现目标函数的计算 function [objvalue]=calobjvalue(pop) temp1=decodechrom(pop,1,10); %将pop每行转化成十进制数 x=temp110/1023; %将二值域 中的数转化为变量域 的数 objvalue=10sin(5x)+7cos(4*x); %计算目标函数值
% 2.3 计算个体的适应值 %遗传算法子程序 %Name:calfitvalue.m %计算个体的适应值 function fitvalue=calfitvalue(objvalue) global Cmin; Cmin=0; [px,py]=size(objvalue); for i=1:px if objvalue(i)+Cmin>0 temp=Cmin+objvalue(i); else temp=0.0; end fitvalue(i)=temp; end fitvalue=fitvalue’;
% 2.4 选择复制 % 选择或复制操作是决定哪些个体可以进入下一代。程序中采用赌轮盘选择法选择,这种方法较易实现。 % 根据方程 pi=fi/∑fi=fi/fsum ,选择步骤: % 1) 在第 t 代,由(1)式计算 fsum 和 pi % 2) 产生 {0,1} 的随机数 rand( .),求 s=rand( .)*fsum % 3) 求 ∑fi≥s 中最小的 k ,则第 k 个个体被选中 % 4) 进行 N 次2)、3)操作,得到 N 个个体,成为第 t=t+1 代种群 %遗传算法子程序 %Name: selection.m %选择复制 function [newpop]=selection(pop,fitvalue) totalfit=sum(fitvalue); %求适应值之和 fitvalue=fitvalue/totalfit; %单个个体被选择的概率 fitvalue=cumsum(fitvalue); %如 fitvalue=[1 2 3 4],则 cumsum(fitvalue)=[1 3 6 10] [px,py]=size(pop); ms=sort(rand(px,1)); %从小到大排列 fitin=1; newin=1; while newin<=px if(ms(newin))<FITVALUE(FITIN) newpop(newin)="pop(fitin);" newin="newin+1;" else="" fitin="fitin+1;" end="" end<="" p="">
% 2.5 交叉 % 交叉(crossover),群体中的每个个体之间都以一定的概率 pc 交叉,即两个个体从各自字符串的某一位置 % (一般是随机确定)开始互相交换,这类似生物进化过程中的基因分裂与重组。例如,假设2个父代个体x1,x2为: % x1=0100110 % x2=1010001 % 从每个个体的第3位开始交叉,交又后得到2个新的子代个体y1,y2分别为: % y1=0100001 % y2=1010110 % 这样2个子代个体就分别具有了2个父代个体的某些特征。利用交又我们有可能由父代个体在子代组合成具有更高适合度的个体。 % 事实上交又是遗传算法区别于其它传统优化方法的主要特点之一。 %遗传算法子程序 %Name: crossover.m %交叉 function [newpop]=crossover(pop,pc) [px,py]=size(pop); newpop=ones(size(pop)); for i=1:2:px-1 if(rand<PC) else="" end="" end<="" p="" cpoint="round(rand*py);">
% 2.6 变异 % 变异(mutation),基因的突变普遍存在于生物的进化过程中。变异是指父代中的每个个体的每一位都以概率 pm 翻转,即由“1”变为“0”, % 或由“0”变为“1”。遗传算法的变异特性可以使求解过程随机地搜索到解可能存在的整个空间,因此可以在一定程度上求得全局最优解。 %遗传算法子程序 %Name: mutation.m %变异 function [newpop]=mutation(pop,pm) [px,py]=size(pop); newpop=ones(size(pop)); for i=1:px if(rand<PM) else="" end="" end<="" p="" mpoint<="0" mpoint="round(rand*py);" if="">
% 2.7 求出群体中最大得适应值及其个体 %遗传算法子程序 %Name: best.m %求出群体中适应值最大的值 function [bestindividual,bestfit]=best(pop,fitvalue) [px,py]=size(pop); bestindividual=pop(1,:); bestfit=fitvalue(1); for i=2:px if fitvalue(i)>bestfit bestindividual=pop(i,:); bestfit=fitvalue(i); end end
标签:
相关推荐:
最新新闻:
- “红兔大展”演绎生肖酒文化,五粮浓香借创意快闪传递C端情深
- 【世界时快讯】遗传算法实例有哪些?函数的最大值怎么解?
- FBI的WARNING是什么?简单的静态代码检测规则_当前快看
- 如何解决电脑文件夹打不开的情况?电脑文件夹打不开怎么解决?
- Excel表格中的VALUE函数公式如何使用?VALUE函数使用教程
- bmp是什么格式?bmp文件怎么打开?
- macfee怎么用?macfee使用教程
- torrent是什么文件?torrent文件介绍?
- Tencent Files文件夹在哪?tencent files文件夹能删除吗?
- 什么是子网掩码?如何划分子网?
- windows无法完成格式化怎么办?windows无法完成格式化2种解决方案
- Facetime怎么用?Facetime详细使用指南
- 网线应该怎么接?网线水晶头做法标准
- pdf是什么格式?pdf格式介绍
- 怎么将U盘制作成DOS启动盘?U盘制作成DOS启动盘方法
- 三星P7500怎么刷机?三星P7500刷机教程
- 系统光盘怎么刻录?系统光盘刻录步骤
- 如何快速制作flash banner?制作flash banner步骤
- Win8每次开机gwx.exe进程都会自动启动怎么解决?解决方法
- KB2565063更新补丁是什么?KB2565063可以卸载吗?
- 百度云登陆失败总是显示网络连接失败该怎么办?解决方法
- 临时文件夹在哪?Win10临时文件夹的路径在哪?
- 怎么查看惠普电脑保修截止日期?惠普电脑保修截止日期查看方法
- 药企组团出国“抢单”,投资人“疯狂”加码低估的biotech,牛市启动了?
- TGA 2022:《猎天使魔女起源:Cereza and the Lost Demon》正式公布!明年3.17发售
- TGA 2022:《生化奇兵》之父新作《Judas》公布-全球最资讯
- TGA 2022:解谜游戏《Viewfinder》预告 支持简中 当前信息
- TGA 2022:《Among Us》捉迷藏新模式公布 12月9日发布_世界热资讯
- 抑郁症患者“阳了”之后,慎用这几种常见感冒药
- Windows 11即将支持原生录屏功能 全球速读
- 焦点速看:TGA 2022:生存恐怖游戏《创伤后》公布
- 世界即时看!TGA2022:《猎天使魔女:起源》公开 2023年3月17日发售
- TGA 2022:《自杀小队:杀死正义联盟》新预告:蝙蝠侠亮相!明年5.26发售
- TGA 2022:《Replaced》新预告 2023年正式发售 全球今亮点
- 接连减持!豪取11连板的天鹅股份,股东、高管要 “套现”了?
- TGA 2022:《死亡细胞》×《恶魔城》DLC预告:明年Q1推出
- 热门看点:《战地4》制作人回归DICE 领导开发该系列
- 《侏罗纪世界:进化2》资料片宣传片:前往地中海!-天天最新
- 《英雄联盟》《云顶之弈》将于12月12日登陆Game Pass
- 英特尔56核112线程CPU王者归来 明年春季上市
- TGA 2022:VR《地平线山之召唤》新预告 明年2月22日推出_世界热门
- 两大浏览器也放弃支持Win7了 其中就包括Edge
- 即时:微软多爱搜索栏?下一版Windows 11可选4种方案
- 抖音攻陷美团?-快资讯
- 每日低价硬货:12代i9+RTX3050Ti游戏本6199元秒杀_快看
- 除了地产基金,黑石的信贷基金可能也有大麻烦
- 全球微资讯!狠狠打脸拜登!埃克森美孚推出500亿美元回购计划
- 新固件更新惹祸:AirPods Pro 2出现严重掉电问题
- MD时代经典动作游戏《水浒风云传》现已登录PS-世界报资讯
- 千呼万唤始出来:Win11原生录屏功能即将上线 今日精选
- 今日观点!1滴血验癌骗子公司又一高管被判11年
- 改造后,厨房使用大变样!集成灶果然是神器:每日资讯
- 人民币6600以上!戴森降噪耳机净化面罩上市了
- 环球即时看!法兴:政府开支问题不解决 央行加息将难以为继
- 标普有望止步五日连跌,纳斯达克中国金龙指数涨超5%,美油一度涨4%:每日动态
- 【天天新视野】码头工人的“失落”叙事与基隆港的兴衰史
- 《暗黑破坏神4》公布新过场截图:仍为开发中画面|今日视点
- 世界今热点:制片人证实:《阿凡达5》将会前往地球
- 欧盟统一接口确定:苹果iPhone必须换USB-C 天天热资讯
- 视讯!《勇者斗恶龙宝藏》概述预告公开 12月9日登陆Switch
- Epic喜加一:《黑道圣徒4:改选》《暴走枪姬》免费、下周神秘游戏|焦点播报
- 天天看点:EA狩猎游戏《狂野之心》官方PC配置需求公布
- 单车旅行游戏《寄梦远方》明年1/31日发售:天天日报
- 世界观速讯丨《全境封锁》系列编剧将离职 转入《猎杀:对决》团队
- “智商税”造富,保健品生意的“红与黑”
- Fami通新一周销量榜 《宝可梦:朱紫》三连冠_快看
- 百事通!突突突的爽快感 外媒推荐PC上优秀FPS
- 全球快资讯丨人民日报评论:球星卡买了就涨?别让市场泡沫迷了眼
- 《最终幻想16》预购奖励曝光 包括武器及功能配件
- 环球视讯!从中国最好的中学出发,他们的人生十年经历了什么?
- 育碧汤姆克兰西系列核心编剧离开 曾任职23年
- 实时焦点:《暗黑破坏神4》曝全新过场动画截图 水平很高
- 快消息!多地气温断崖式下跌 分期乐商城冬暖专场成交额同比增长1.5倍
- 新消息丨官方泄露?曝《Forspoken》12月10日推出试玩Demo
- 日本政府敲定:航空自卫队改名为航空宇宙自卫队!-全球最资讯