matlab遗传算法程序

2025-05-22 04:40:14
推荐回答(3个)
回答1:

在matlab里没有
for
i
=
1
to
80
...
endfor
这样的语法的
在matlab里应该是:
for
i
=
1:
1:
80
...
end
1:1:80
第一个1是初始值,第二个是每次+1的意思
当然如果是我古若寡闻那也请见谅~~哈哈~~

回答2:

遗传算法通过迭代进行全局寻优,有很多原因导致程序变慢,程序编写是否正确,个体的位串太长,等等
你的种群规模是20个个体,迭代100次,交叉概率是0.8,应该还有一个变异概率,不过你没写,不知道是否有,如果没有的话结果是不会正确的,因为变异才能保证种群的完整性。

回答3:

MaxGenerations,是迭代次数,是用循环语句实现的,如果求解空间不大,改小点就好,population 是每次迭代的并行运算数量。我个人在求解中发现,该值对结果影响较大,一般不要改变。crossoverfraction,变异系数,与运算复杂度无关。
如果程序运行时间很长,检查一下是不是你把遗传算法又放入另一层循环了,一般这样运算时间就会呈现指数级增长。如果这样,就修改算法。