无冬之夜2红龙build:遗传算法的一个问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 08:16:10
用遗传算法解决y=x的四次方在[0,5]内的极值,这道题谁一看都是625,很好算,要求用遗传算法解决似乎是多此一举,但老师要求,没办法,要c的源程序,如果能在给出一些遗传算法解决其它这类小问题的源程序就更好了
有好的答案,我会追加分的

我写过一个解决背包问题的遗传算法,稍微改一下就可以用(毕竟你的问题更简单),如果有兴趣,可以联系我,在这里贴出来太傻了。

先在0到5中任选n个数,在将着n 个数转换成二进制,然后存进一个数组A.定义一个函数f(x)(就是求x的四次方).定义循环次数为20次(可以自选).
1).计算A中每个数的函数制.(按十进制)
2).如果次数超过20,则取数组中最大的就是结果,算法结束.
3).以一定概率选 A中k个最大的复制后加入数组,在删除一些最小的,形成
数组A'
4).以一定概率选A'中若干二进制数进行交叉(既两两某些位互换),形成新
数组A''
5).以一定概率选A''中若干二进制数进行变异(即某些数的一些位发生反转),
形成新数组A'''
6).将A'''做为A,转步骤2.

先在0到5中任选n个数,在将着n 个数转换成二进制,然后存进一个数组A.定义一个函数f(x)(就是求x的四次方).定义循环次数为20次(可以自选).
1).计算A中每个数的函数制.(按十进制)
2).如果次数超过20,则取数组中最大的就是结果,算法结束.
3).以一定概率选 A中k个最大的复制后加入数组,在删除一些最小的,形成
数组A'
4).以一定概率选A'中若干二进制数进行交叉(既两两某些位互换),形成新
数组A''
5).以一定概率选A''中若干二进制数进行变异(即某些数的一些位发生反转),
形成新数组A'''
6).将A'''做为A,转步骤2.

先在0到5中任选n个数,在将着n 个数转换成二进制,然后存进一个数组A.定义一个函数f(x)(就是求x的四次方).定义循环次数为20次(可以自选).
1).计算A中每个数的函数制.(按十进制)
2).如果次数超过20,则取数组中最大的就是结果,算法结束.
3).以一定概率选 A中k个最大的复制后加入数组,在删除一些最小的,形成
数组A'
4).以一定概率选A'中若干二进制数进行交叉(既两两某些位互换),形成新
数组A''
5).以一定概率选A''中若干二进制数进行变异(即某些数的一些位发生反转),
形成新数组A'''
6).将A'''做为A,转步骤2.

嗯???
好像用二分法会简单的要死的···
干吗要用那个什么遗传???

两边逼近 或 间插法