楼主: garfieldkai
6789 3

matlab遗传算法求解非线性规划问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
83 个
通用积分
0.0255
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
2307 点
帖子
49
精华
0
在线时间
113 小时
注册时间
2009-5-19
最后登录
2014-10-15

楼主
garfieldkai 发表于 2010-11-18 12:36:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我看到一篇文献,用gaot工具箱来做非线性规划的遗传算法,程序如下:
首先编写目标函数文件:
function[sol,eval]=rosenbrockMin(sol,options)
x1=sol(1);
x2=sol(2);
r1=0.1;
r2=0.8;
g1=x1-2*x2+1;
g2=x1.^2/4-x2.^2+1;
if(g1>=0)&(g2>=0)
    eval=(x1-2).^2+(x2-1).^2;
else
    eval=(x1-2).^2+(x2-1).^2+r1*g1+r2*g2;
end
eval=-eval;
变成调用主程序ga,m如下:
bounds=ones(2,1)*[-1,1];
[x,endPop,bestSols,trace]=ga(bounds,'rosenbrockMin');
x
bestSols
plot(trace(:,1),-trace(:,3),'b-',trace(:,1),-trace(:,2),'r-')
xlabel('Generation','fontsize',14);
ylabel('Fitness','fontsize',14);
运行出来的结果是
x =

     1     1    -1
bestSols =

    1.0000    0.8961    0.8664   -1.2364
    2.0000    0.9489    0.9557   -1.1067
    3.0000    1.0000    1.0000   -1.0000
  100.0000    1.0000    1.0000   -1.0000
可是人家得出的结果是
x=[1 1]
eval(x)=1 g1(x)=0 g2(x)=0.25
同样的程序为什么结果不同呢,求解
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB 非线性规划 matla atlab 线性规划 MATLAB 算法 遗传 求解 非线性规划

沙发
MChan 发表于 2010-11-18 17:56:27
等会跑一下看看

藤椅
garfieldkai 发表于 2010-11-20 10:37:24
2# MChan
程序跑的怎么样?

板凳
应该做的 发表于 2011-8-21 09:34:15
程序跑的怎么样?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 09:36