遗传算法优化没有结果??

各位老师,我是用遗传算法进行函数优化,最后结果只显示Optimization terminated: average change in the fitness value less than options.TolFun
and constraint violation is less than options.TolCon.是什么原因??

函数如下:

主函数
function f=mhs(x)
f=0;
st=[0 22 44 66 88 129 221 314];
Sx=[100 96 92 88 84 80 100 103];
Sy=[45 47 47 47 47 40 37 40];
for i=1:8
sti=x(8)+x(6)+st(i); %单位为’°’,sti中间变量
ksi=atan((x(2)sind(sti-x(6)))/(x(1)-x(2)cosd(sti-x(6)))); %ksi为中间变量,单位弧度
ita=acos((x(1)2+x(2)2+x(3)2-x(4)2-2
x(2)x(1)cosd(sti-x(6)))/(2x(3)(x(1)2+x(2)2-2
x(2)*x(1)*cosd(sti-x(6)))^(1/2))); %ita中间变量,单位弧度
fi=x(7)*pi/180+ita-(ksi-x(6)*pi/180);%fi中间变量,单位弧度
mx=(x(2)*cosd(sti)+x(5)*cos(fi));
my=(x(2)*sind(sti)+x(5)sin(fi));
f=f+(mx-Sx(i))

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
遗传算法和粒子群算法是两种常用的优化算法,它们在实际问题中具有广泛的应用。但是在解决大规模问题时,单独使用其中一种算法效果可能并不理想。因此,将两种算法结合起来,可以得到更好的优化结果。在MATLAB中,我们可以通过以下几个步骤来优化粒子群算法的代码: 第一步,初始化种群: 通过遗传算法的初始化过程,可以产生具有良好多样性的初始粒子集合。然后,将这些粒子作为粒子群算法的初始种群,从而避免陷入局部最优解。 第二步,适应值计算: 对初始种群和粒子群算法迭代过程中产生的新粒子,分别计算其适应值。适应值反映了解决问题的程度,是优化算法评价性能的主要指标。 第三步,选择操作: 利用遗传算法的选择操作,根据粒子的适应值选择出最优的粒子,作为下一代种群的父母代。 第四步,交叉操作: 在选择出的父母粒子之间执行遗传算法的交叉操作,生成新一代粒子。为了提高算法收敛速度,可以采用多种不同的交叉方式。 第五步,变异操作: 使用遗传算法的变异操作,对新一代粒子进行微调,以增加种群的多样性,避免早熟和局部最优解。 第六步,迭代终止: 根据设定的终止条件(如迭代次数、适应值阈值等),判断优化算法是否终止。如果没有满足终止条件,则返回第二步。如果满足终止条件,则返回最优解。 综上所述,通过将遗传算法和粒子群算法相结合,可以得到更加优秀的优化结果。在实际应用中,我们需要根据具体问题的性质和特点,选择合适的算法参数和操作方式,以获取最优解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值