【摘要】:遗传算法模拟生物进化中的遗传与变异过程实现对问题求解,可以用来求解函数的最优解。遗传算法通过变异操作求解函数最优的过程为:①针对给定的一个初值x0,计算y0。 用遗传算法优化求解y=2的极小值。程序:遗传算法函数优化按上面所述逻辑,求解过程的Python代码如下:运行程序,迭代10次,得到的结果如下所示:请输入起始值:2.0第0次迭代,x=2.0 y=0.25第1次迭代,x=2.0 y=0.25第2次迭代,x=2.0055347791796505 y=0.244495854600917……
遗传算法模拟生物进化中的遗传与变异过程实现对问题求解,可以用来求解函数的最优解。如对于函数y=(x-2.5)2,在x=2.5时,y的值是0,是最优点。遗传算法通过变异操作求解函数最优的过程为:
①针对给定的一个初值x0,计算y0。
②产生一个随机小数delta,并再产生一个随机整数sign,如果sign是偶数,则x0增加delta,否则x0减少delta,x0值增加或减少后,记录到x1中。
③计算x1的函数值y1,如果y1比y0小,则说明x1比x0优秀,保留它,再转步骤②,通过优化的次数决定最终的结果。
【例4.2.7】 用遗传算法优化求解y=(x-2.5)2的极小值。
程序:遗传算法函数优化
按上面所述逻辑,求解过程的Python代码如下:
运行程序,迭代10次,得到的结果如下所示:(www.daowen.com)
请输入起始值:2.0
第0次迭代,x=2.0 y=0.25
第1次迭代,x=2.0 y=0.25
第2次迭代,x=2.0055347791796505 y=0.244495854600917
……
第7次迭代,x=2.230941146655998 y=0.07239266656278913
可见,随着迭代次数的增加,x逐步向2.5靠近。读者可以将迭代次数增加到1 000次,再运行程序,看是否能找到最优点。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Python计算思维与问题求解的文章