24小时热门版块排行榜    

查看: 3531  |  回复: 6

不变的擎

新虫 (初入文坛)

[求助] 刚开始接触遗传算法,求大牛解答一下非线性约束的问题。

我使用的是matlab内置的gatool,在不加非线性约束的时候的最优求解时没有问题的,但是加了非线性约束后,不知道为什么每次优化,遗传算法只会走到第五代就结束,结果如图中所示,所得到的结果并不是最优的,因为我用fmincon函数得到了更优的解,跟遗传算法这个相比要相差很多。不知道遗传算法这里是不是需要设置什么参数?还是要怎样,才能得到最优解。我的非线性约束稍微有点复杂,中间调用了其他一些函数,但是我觉得约束应该没有问题,毕竟同样用fmincon在这个约束下得出了最优。只不过fmincon通常是求局部最优的,虽然在这里是一个约束内的全局最优,但是我还是想用遗传算法来求这个最优解。希望大神们可以帮我看看,一下是我的非线性约束的程序,问题的背景是关于轨道机动求速度增量的,这个约束就是速度增量的约束:
function [c,ceq]=Copy_of_constraints(x)
f1 = x(1);
f2 = x(2);
t = x(3);
ceq = [];
DeltaV_Limit=2800;
% *******************************输入参数******************************** %
% 初始轨道参数
a1=6771004; % 单位:m
e1=0.02;
i1=30; % 单位:度
Om1=30;
Omega1=100;
Root1=[a1 e1 i1 Om1 Omega1 f1];% 行向量
% 目标轨道参数
a2=15000000;
e2=0.01;
i2=30;
Om2=30;
Omega2=20;
Root2=[a2 e2 i2 Om2 Omega2 f2];
% ****************************计算位置速度矢量**************************** %
% 初始轨道位置速度矢量  R1=R1(f1);Vi=Vi(f1)
[R1,Vi]=Orbit_Vector(Root1);
% 目标轨道位置速度矢量  R2=R2(f2);Vf=Vf(f2)
[R2,Vf]=Orbit_Vector(Root2);
% **********************J2摄动下的实际目标位置与速度*********************** %
R=R2;
for k=1:5 % 迭代五次
v = Lambert_test(R1,R,t,Vi);
v1 = v(:,1);
Rootp = Vector_Orbit(R1,v1);
Rootq = solveJ2(Rootp,t);
[r2,v2]=Orbit_Vector(Rootq);% 实际的位置速度
dr = r2-R2;
R = R-dr;
end;
% 转移轨道在J2摄动下的实际速度增量
DeltaV=norm(v1-Vi)+norm(v2-Vf);
c=DeltaV-DeltaV_Limit;

所以我想不是约束的问题,那应该就是遗传算法参数选择的问题了吧。在这个ga工具箱中,我查看了帮助中的说明,在非线性约束的条件下,不能选择bit string的编码,于是只能选择了double vector的编码,相应的选择交叉变异等都是使用内置的函数,所以这些参数也就是概率什么的都是没有设置的。那么怎么样去让遗传算法求出最优解呢?其实我最核心的问题还是,为什么每次都是第五代就停止?这个norm of the step is less than......是不是表明有些参数设置的不对?如果没有非线性约束的时候,结果如第二张图所示。

刚开始接触遗传算法,求大牛解答一下非线性约束的问题。
filehelper_1489638505460_90.png


刚开始接触遗传算法,求大牛解答一下非线性约束的问题。-1
filehelper_1489987834719_66.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fxf142

金虫 (小有名气)

请问这个constraint是如何设置的呢
2楼2017-04-10 20:51:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
3楼2017-08-18 06:48:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
4楼2017-08-18 23:54:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
5楼2017-08-19 13:20:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
6楼2017-08-20 03:14:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

好哦咯不公哦

新虫 (初入文坛)

引用回帖:
1楼: Originally posted by 不变的擎 at 2017-03-20 13:32:30
我使用的是matlab内置的gatool,在不加非线性约束的时候的最优求解时没有问题的,但是加了非线性约束后,不知道为什么每次优化,遗传算法只会走到第五代就结束,结果如图中所示,所得到的结果并不是最优的,因为我用 ...

请问楼主你解决了吗?能分享一下吗?非常感谢!

发自小木虫Android客户端
7楼2017-11-16 20:25:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 不变的擎 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 好奇怪的filecode +3 布布和一二 2026-08-08 4/200 2026-08-08 17:46 by zhanghaozhu
[论文投稿] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 qTvzQBRAHjCi 2026-08-07 4/200 2026-08-08 16:47 by oEVWOejN9taj
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 qTvzQBRAHjCi 2026-08-07 5/250 2026-08-08 16:47 by oEVWOejN9taj
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 16:19 by oEVWOejN9taj
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 WQyTGMbfH7Cx 2026-08-07 4/200 2026-08-08 15:02 by oEVWOejN9taj
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 HEQlVqMTIA7d 2026-08-07 6/300 2026-08-08 14:39 by oEVWOejN9taj
[基金申请] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 4/200 2026-08-08 14:27 by oEVWOejN9taj
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 KXLV3nuBVBY7 2026-08-07 5/250 2026-08-08 14:07 by oEVWOejN9taj
[论文投稿] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 KXLV3nuBVBY7 2026-08-07 6/300 2026-08-08 14:01 by oEVWOejN9taj
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 6/300 2026-08-08 10:19 by 3OOjAIS77qg2
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 3/150 2026-08-08 03:47 by 6vVgjDL4CnGu
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] filecode与中标关系的预测 +3 布布和一二 2026-08-07 3/150 2026-08-07 15:09 by gltch
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
信息提示
请填处理意见