楼主: dieme
3464 5

[求助]遗传算法求解 [推广有奖]

  • 2关注
  • 12粉丝

共和国首席经济学家

已卖:312份资源

学科带头人

14%

还不是VIP/贵宾

-

威望
0
论坛币
1216 个
通用积分
166.7519
学术水平
9 点
热心指数
15 点
信用等级
3 点
经验
12537 点
帖子
939
精华
0
在线时间
2465 小时
注册时间
2008-4-8
最后登录
2025-11-18

楼主
dieme 在职认证  发表于 2009-3-31 17:49:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

遗传算法求解

本人初学GA,绊倒在一个变量之和为1的约束条件~

附件是 目标函数、约束条件,及自己照葫芦画瓢的一段程序(缺少和为1的约束)

请各位前辈帮忙看下~

多谢多谢~~~

310256.rar (4.19 KB)
二维码

扫码加我 拉你入群

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

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

关键词:遗传算法 约束条件 目标函数 算法 遗传 求解

回帖推荐

buqinghuan 发表于3楼  查看完整内容

A = -[1 0 0 1 0 0 1 0 0 1 0 0;1 1 1 1 1 1 1 1 1 1 1 1];b = [0.48;0];Aeq = ones(1,12);beq = 1;[x fval exitflag] = ga(@myfun,12,A,b,Aeq,beq)多次计算时 计算结果有两个 0.4 和100至于取哪一个 视具体情况定 [此贴子已经被作者于2009-4-3 10:50:35编辑过]

本帖被以下文库推荐

沙发
dieme 在职认证  发表于 2009-4-1 09:47:00

十万火急~~

只能投机了~~

各位帮下吧~~

对了解的来说很容易的~~

多谢多谢~

藤椅
buqinghuan 发表于 2009-4-3 10:46:00

A = -[1 0 0 1 0 0 1 0 0 1 0 0;1 1 1 1 1 1 1 1 1 1 1 1];

b = [0.48;0];

Aeq = ones(1,12);

beq = 1;

[x fval exitflag] = ga(@myfun,12,A,b,Aeq,beq)

多次计算时 计算结果有两个 0.4 和100

至于取哪一个 视具体情况定

[此贴子已经被作者于2009-4-3 10:50:35编辑过]

已有 1 人评分经验 论坛币 收起 理由
胖胖小龟宝 + 10 + 10 热心帮助其他会员

总评分: 经验 + 10  论坛币 + 10   查看全部评分

板凳
dieme 在职认证  发表于 2009-4-3 20:21:00

多谢~~~

可是我在最后运行是出现

??? Error using ==> ga
Too many input arguments.

还望前辈再指点下~~送佛送到西~~小子多谢~~

另若用并列或混合法又当如何操作~~

----------------------------------------------------------------------------

function z=myfun(X)
f1=-(X(1)+(X(2)*1.01875+X(3)*0.932817)*0.949915+(X(4)*1.03+X(5)*1.0425+X(6)*0.968897)*1.010245+(X(7)*1.007+X(8)*1.008+X(9)*0.987951)*1.012696+(X(10)*1.0475+X(11)*1.05+X(12)*0.908637)*0.983461);
f2=0.0016*X(3)^2+0.0034*X(3)*X(6)+0.00115354*X(3)*X(9)+0.0032*X(3)*X(12)+0.0045*X(6)^2+0.002*X(6)*X(9)+0.0064*X(6)*X(9)+0.0015*X(9)^2+0.002*X(9)*X(12)+0.0045*X(12)^2;
f3=-.40614279896333138352535799517920e-4*X(9)*X(1)-.41397376849264255333517097623815e-4*X(7)*X(1)-.41438486458846444266320987492358e-4*X(8)*X(1)-.10532252726291778313313815758471e-3*X(12)*X(7)+.23051915467068295876203154097778e-2*X(8)*X(9)-.12170828793683690218403506071616e-3*X(11)*X(7)-.11940598289521941842067489798370e-3*X(11)*X(9)+.46476516547308598127796702618095e-3*X(5)*X(7)+.45597339622075547993003853176018e-3*X(5)*X(9)+.46522669989758755623454891995074e-3*X(5)*X(8)+.45919244166645425488374679804929e-3*X(4)*X(7)+.45050608931163371158555365727864e-3*X(4)*X(9)+.45964844210505053517658070748130e-3*X(4)*X(8)+.44063133949338490723274932230000e-2*X(10)*X(11)+.38130851278404836376499394853971e-2*X(10)*X(12)-.42173577665187960121020543204261e-4*X(2)*X(7)-.42215458079949815096314506007840e-4*X(2)*X(8)-.41375797644389384696645845758880e-4*X(2)*X(9)-.11315121597543324828357901515932e-3*X(2)*X(4)-.11452441034406714692779720709086e-3*X(2)*X(5)-.10643871233490227957496588063186e-3*X(2)*X(6)+.11479618008722570604048725433634e-4*X(2)*X(3)-.57705573793695132673540094904295e-4*X(2)*X(10)-.57843295926854309601161908973280e-4*X(2)*X(11)-.50055770362942018393400908079770e-4*X(2)*X(12)-.97460456759859180099416881348100e-4*X(3)*X(6)-.10360675124668045778075418521116e-3*X(3)*X(4)-.10486411473268386139459828940062e-3*X(3)*X(5)-.52838027219154171852891927075675e-4*X(3)*X(10)-.38616176880400134867445418454153e-4*X(3)*X(7)-.38654524623081763601176744589660e-4*X(3)*X(8)-.37885690730057789118597386898908e-4*X(3)*X(9)-.52964132296049527871633912581820e-4*X(3)*X(11)-.45833495501986242720664593739626e-4*X(3)*X(12)+.43195163024592478465446371008694e-3*X(6)*X(7)+.43238057923325936736017817255972e-3*X(6)*X(8)+.42378058098618831869330891444302e-3*X(6)*X(9)-.12141850629889205241693021533350e-3*X(10)*X(7)-.12153908078379661254842667036362e-3*X(10)*X(8)-.11912168293594508647205424346470e-3*X(10)*X(9)+.23496386840377482230734698559406e-2*X(7)*X(8)+.23029046503311283677913270016332e-2*X(7)*X(9)-.12182915018900853763804105382511e-3*X(11)*X(8)-.10542711765741919106077781811856e-3*X(12)*X(8)-.10333018483806046351953026407544e-3*X(12)*X(9)+.51950790092111191274345454445845e-2*X(6)*X(4)+.52581260845656230003403044912420e-2*X(6)*X(5)+.55897271506698768706586083205740e-2*X(4)*X(5)+.30570269403494631290161079708146e-2*X(10)*X(4)+.30941267818585585553391189898779e-2*X(10)*X(5)+.28756740110910425022469125869888e-2*X(10)*X(6)+.30643229473670036138108958180004e-2*X(11)*X(4)+.31015113326505837547552028060829e-2*X(11)*X(5)+.28825371948883958256412966265758e-2*X(11)*X(6)+.26517687713587733929926580413146e-2*X(12)*X(4)+.26839504312053604487328602020102e-2*X(12)*X(5)+.24944570944302926836411722313162e-2*X(12)*X(6)+.38221855696730384912004166679398e-2*X(11)*X(12)+.21979110862824794777443091195678e-2*X(10)^2+.62685718883693794189399630557305e-5*X(2)^2+.52556480157264108678070772578290e-5*X(3)^2+.11736538466398871332514802306210e-2*X(7)^2+.11759859947914847114488866011857e-2*X(8)^2+.11296707806351979156344634074432e-2*X(9)^2+.24434448867901095578708489211756e-2*X(6)^2+.27613520216738480464164827674780e-2*X(4)^2+.28287818226084206978939801816498e-2*X(5)^2+.22084148280098050243168820449402e-2*X(11)^2+.16537996330814288931089871428128e-2*X(12)^2-.56778695388323248688257088562730e-4*X(11)*X(1)-.49134498515771306398430339219404e-4*X(12)*X(1)-.56643508018351050477094571685200e-4*X(10)*X(1)-.10447971762935193087113215276748e-3*X(6)*X(1)+.60399503309216046190998176155185e-5*X(1)^2+.12306398799252769411415878391618e-4*X(1)*X(2)+.11268336695678596911949669137310e-4*X(1)*X(3)-.11106867825809398604523093512572e-3*X(4)*X(1)-.11241659911074075772053713579472e-3*X(5)*X(1)
 

z=0.4*f1+0.3*f2*50^(1/2)+0.3*f3

-----------------------------------------------------------------------------

然后 命令窗口输入:

A = -[1 0 0 1 0 0 1 0 0 1 0 0;1 1 1 1 1 1 1 1 1 1 1 1];

b = [0.48;0];

Aeq = ones(1,12);

beq = 1;

[x fval exitflag] = ga(@myfun,12,A,b,Aeq,beq)

报纸
dieme 在职认证  发表于 2009-4-3 21:35:00
怎么没见过ga(@myfun,12,A,b,Aeq,beq)这种调用法呢

地板
buqinghuan 发表于 2009-4-4 20:38:00

我怀疑你的Matlab版本有问题,可能是你的一些无意识的操作改变了ga工具箱中的函数。

你换一个版本或者重装一下试试

@fun 是匿名函数法 这个在Matlab中用的很多

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 05:52