24小时热门版块排行榜    

查看: 978  |  回复: 5

萱萱无敌

新虫 (初入文坛)

[求助] 遗传算法解决Rosenbrock函数,求大神指教吖 已有1人参与

现在利用遗传算法解决rosenbrock函数,但是结果总是不尽理想,我解决的是多维函数,定义Dimention = 30;然后求解rosenbrock函数的最小值(0),种群的个体数量为100;以下是我的适应度值的计算过程。
            public void fitness() {
                double[] sum = new double[POP_SIZE]; //创建一个整形数组,数组的长度是dimention
        for (int j = 0; j < pop.length; j++)
        {
                sum[j] = 0; //给数组初始化
        }
                for (int i = 0; i < pop.length; i++) {//种群大小
                        for(int j = 0;j<DIMENTION-1;j++)//个体基因长度
                        {
                                double l= (pop.gene[j]-1)*(pop.gene[j]-1);
                                double k = 100*(pop.gene[j]*pop.gene[j]-pop.gene[j+1])
                                                *(pop.gene[j]*pop.gene[j]-pop.gene[j+1]);
                                sum+= l+k;
                        }
                        pop.fitness = sum ;
                        pop1.fitness =sum;
                }
        }
        为什么到最后k的值无限逼近于0;而l的值却总是接近于1;也就是说迭代上千次之后最优个体都逼近于0而不是理论上的1;所以我总是求不出来最优值,我没有定义目标函数,就是直接比较谁的适应度值最小,然后进行迭代。求大神指导,是不是我的适应度函数出了问题。

遗传算法解决Rosenbrock函数,求大神指教吖
回复此楼

» 收录本帖的淘帖专辑推荐

matlab编程绘图

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keeponlight

铜虫 (初入文坛)

你也是GA算法啊,我最近也在看这个。。。
2楼2015-08-29 19:52:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

萱萱无敌

新虫 (初入文坛)

看了好久了,遇到困难自己总也解决不了
3楼2015-08-29 21:06:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

萱萱无敌

新虫 (初入文坛)

求大神指教吖~~~~~~~~
4楼2015-08-30 10:20:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

从2015

新虫 (小有名气)

【答案】应助回帖

适应度函数没问题,可以画一个出一个rosebenk函数图形看一下。至于k,l的值可能跟你算法参数有关。遗传算法网上有代码,可以直接使用
5楼2016-03-12 17:30:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sj1314

金虫 (著名写手)

double怎么成整型了?不是双精度么

发自小木虫Android客户端
6楼2016-03-27 03:06:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 萱萱无敌 的主题更新
信息提示
请填处理意见