理论教育 Python遗传算法寻找函数极值

Python遗传算法寻找函数极值

时间:2023-11-22 理论教育 版权反馈
【摘要】:遗传算法模拟生物进化中的遗传与变异过程实现对问题求解,可以用来求解函数的最优解。遗传算法通过变异操作求解函数最优的过程为:①针对给定的一个初值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……

Python遗传算法寻找函数极值

遗传算法模拟生物进化中的遗传与变异过程实现对问题求解,可以用来求解函数的最优解。如对于函数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次,再运行程序,看是否能找到最优点。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈