杂草(野草)优化
5
处理 处理:3,随机反弹,让它在边界反弹, 不论超出多少,反弹一个区间内的 随机数。 例子中5-4.4=0.6. 超出0.6,反弹随机数0.9,为5+0.9=5.9. 也就是说,相当于重新生成一个种子。
5
处理 处理:5,不反弹,让它落在边界, 不论超出多少,都为边界值。 例子中5-4.4=0.6. 超出0.6,反弹0为5+0=5. 就算超出0.9,也反弹0. 也就是说,只要一越界,就有个不会 反弹的网,全部落回到边界上。
5
处理 处理:6,极限反弹,让它在边界反弹, 不论超出多少,反弹到另一个边界。 例子中5-4.4=0.6. 超出0.6,反弹2.5为5+3=8. 就算超出0.1,也反弹8.也就是说。 只要一越界,就反弹,落到另一个边界上。
5
界面布局 VB6.0,默认窗体大小。 Command Line。 使用直线框出输出的区域即可。
程序分析
5
杂草( 子 )
杂草( 父 )
庄稼 8
操作步骤:1、初始化入侵杂草种子 2、在父代的周围产生出子代 3、等距种上庄稼与杂草竞争 4、优选适应性好的种子进入 下一代进行繁殖。
结果分析 程序结果分析: 第一代,杂草随机侵入。 在区间里均匀分布。 经过三代竞争后,杂草 已经分布在5附近。 在十五代后已经基本 达到精度。程序结束。
If s((i - 1) * 5 + j) < 5 Then s((i - 1) * 5 + j) = 10 - s((i - 1) * 5 + j)
处理 处理:2,超量反弹,让它在边界反弹, 不论超出多少,反弹远大于半径。 例子中5-4.4=0.6. 超出0.6,反弹2.5为5+2.5=7.5. 就算超出0.1,也反弹2.5.也就是说。 只要一越界,就反弹,落到7.5这个 固定点,也可以看作是,只要一越界 就在7.5这个点中上一棵庄稼。 当然也可以反弹一个远大于半径的随机数。
越界
半径与越界分析 如图。当种子落在边界附近时,下 一代的种子就可能到了边界的外面。 如半径为1,当种子落在5.2时,如 果种子距离落点左边0.8时。就为 4.4,已经越界。
5
处理:1,一般反弹,让它在边界反弹, 超出多少,反弹多少。例子中5-4.4=0.6. 超出0.6,反弹0.6为5+0.6=5.6.
X1=3000 X2=4500 Y1=1500 Y2=1500 X1=4500 X2=4500 Y1=1000 Y2=1600
运行效果 Y=min x,x[5,8] 最小值为5
Y=min (x-1)^2+1,x[0,2] 最小值为1,X=1
程序说明
程序说明程序说明来自杂草(野草)优化 VB——小程序实例
程序分析 优化目标:Min:X, X【5,8】 说明:就是求X,在【5,8】,之间的最小值。大家都知道, 是5。因为,这个函数收敛性不好。一般算法,经过多次 迭代,都很难收敛到5,附近。 杂草优化: 模型:在5,8区间上,等距离种上庄稼,和野草进行竞争。 杂草,入侵8粒种子,进行繁殖。子代以父代1.5为区域,随 机进行繁殖竞争。每一代,选出5个适应性好的杂草或庄 稼,存活到下一代。