Matlab 利用遗传算法和粒子群求函数f(x1,x2,x3)的极小值 超详细过程及解析

遗传算法求解

① 确定决策变量和约束条件;

② 建立优化模型;

③ 确定编码方法: 用长度为10位的二进制编码串来分别表示两个决策变量 x1.,x2,x3。10位二进制编码串可以表示从0~1023之间的1024个不同的数,故将 x1,x2,x3的定义域离散化为1023个均等的区域,包括两个端点在内共有1024个不同的离散点。从离散点-5.12 到离散点5.12, 依次让它们分别对应于从 0000000000(O)~1111111111(1023)之间的二进制编码。再将分别表示x1.,x2,x3的三个10位长的二进制编码串连接在一起,组成一个30位长的二进制编码串,它就构成了这个函数优化问题的染色体编码方法。使用这种编码方法,解空间和遗传算法的搜索空间就具有一一对应的关系。例如 ,  x:0000110111 11011100011001100011就表示一个个体的基因型,其中前10位表示x1.,中间10位表示x2,后10位表示x3。

④ 确定解码方法:解码时需要将30位长的二进制编码串切断为三个10位长的二进制编

码串,然后分别将它们转换为对应的十进制整数代码,分别记为y1.,y2,y3。.依据个体编码方法和对定义域的离散化方法可知,将代码yi转换为实数变量xi的解码公式为

⑤ 确定个体评价方法:由于函数的值域总是非负的,并且优化目标是求函数的最大值,故可将个体的适应度直接取为对应的函数值,即:

⑥ 设计遗传算子:选择运算使用比例选择算子,交叉运算使用单点交叉算子,变异运算使用基本位变异算子。

⑦ 确定遗传算法的运行参数:群体大小M=80,终止进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值