并行多机调度遗传算法调参记录---变异和淘汰哪个更重要?

遗传算法主要有3个参数,变异率,淘汰率和染色体数量。本文通过一个并行多机调度问题,通过交叉验证的实验的方法找到这几个参数可能的最优值。


有3台机器要完成30个工件,计算完成所有工件的最短时间。

首先优化变异率

将淘汰率固定在25%,染色体数量固定在50条,每组参数运行100次,取平均。





在淘汰率和染色体数量不变的情况下变异率很显然在2-4之间有一个最优值,这里取3.很有趣的是在变异率为0的时候只靠25%的淘汰平均时间为48,变异率为100%的时候相当于完全随机,只靠淘汰平均时间为56.65.

然后将变异率固定在3%染色体数量固定在50,优化淘汰率。每组参数运行100次,取平均。





如果淘汰率提高,每次只把排在前几名的染色体留下来交叉,是不是得到的平均时间更短,这个实验部分的验证了这个观点。当淘汰率达到90的时候,对于50条染色体意味着只留下5条来进行交叉,但仍然可以达到42.42.但是很明显的随着淘汰率提高因为交叉样本数量少了,成绩变的不稳定。所以淘汰率取25%。

另一个很有趣的数据是当淘汰率是0的时候,也就意味着完全靠3%变异,可以得到平均之间45.53.相比0变异率完全靠25%的淘汰的48,也就表明对于遗传算法,变异率的重要性要大于淘汰。只变异不淘汰的效果要好于只淘汰不变异。特别是只淘汰不变异的情况下得到的最优时间是一个没有变化的值(从1-100都是48,完全僵化),像是过拟合的效果。

第三步,将变异率固定在3%,将淘汰率固定在25%,调节染色体数。每组参数运行200次,取平均。


这组数据非常明确的是,染色体数量翻一倍,平均迭代需要时间要翻三倍,比如


从平均时间看来染色体数量超过60以后就差不多都是42左右,




从整体上看染色体数量60和200的值都比较优越,60 的迭代速度更快。但是200的平均时间最少。

这道题的最优时间可能是40小时。由染色体60和染色体200分别计算5次看看达到最优值40分别用多少时间




所以染色体60的平均迭代次数虽然是染色体200的7.46倍,但是因为迭代速度更快,染色体60达到40的平均时间只有染色体200达到40的平均时间的83%。

所以综合起来看,

变异率可能至少有1个不大的最优值,

淘汰率在整个[0,0.95)的区间上可能有多个最优值,但是随着淘汰率的增加性能变的不稳定

染色体数量增加一倍消耗时间变成原来的3倍左右,所以在保证性能和收敛速度的前提下染色体数量也不是越多越好。

所以选择的最优参数是变异率3%,淘汰率25%,染色体数量60.

如果变异和淘汰只能选择一样,应该选择变异,因为3%变异的性能是45.53,而25%淘汰的性能是48,变异比淘汰性能优5%。

一组40小时的解



具体数据

















优化淘汰率数据

















优化染色体数量数据








  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑榆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值