数学建模社区-数学中国
标题:
急求高手指点!!!
[打印本页]
作者:
侠客雪飞
时间:
2011-2-13 23:27
标题:
急求高手指点!!!
想要用遗传工具箱解优化问题,从网上找到的方法,目标函数是:
! H% O$ z, @8 D" @) G8 T+ B
3 A& G+ V2 ~! [+ B* c$ p
function z=dd(x);
8 W9 s! \ K9 r. w* P
f=842*x(1)*x(6)+588*x(2)*x(7)+498*x(3)*x(8)+62.2*x(4)*x(9)
8 E: f: F' Q+ d) p
+190.2*x(5)*x(10);
/ h& Q( C5 ?; G
g(1)=-x(1)+x(6);
. p- W2 w9 [$ r9 k1 L
g(2)=-x(2)+x(7);
0 @" K! N& ]2 G1 g; J$ |2 h
g(3)=-x(3)+x(8);
0 q2 ^/ e$ b" ?7 @
g(4)=-x(4)+x(9);
! |& S7 u1 b: D
g(5)=-x(5)+x(10);
) T7 [; @" A5 I! f, I: S& f
g(6)=x(1)-0.73;
. M7 w) |) c# K2 Q/ i
g(7)=x(2)-0.33;
! h. i4 o; d1 w) k& S9 `
g(8)=x(3)-0.93;
; Q/ @" f5 |* `0 A. {/ [* j
g(9)=x(4)-0.85;
+ C# `' q7 @) F: m; S9 b
g(10)=x(5)-1;
' I- G7 l( I5 n2 p$ R$ K
g(11)=842*x(1)+588*x(2)+498*x(3)+62.2*x(4)+190.2*x(5)-835.706;
9 v- g6 W+ t; x& t2 O
if(g(1)<0) &(g(2)<0) &(g(3)<0) &(g(4)<0) &(g(5)<0) &(g(6)<0) &(g(7)<0) &(g(8)<0) &(g(9)<0) &(g(10)<0) &(g(11)>0) &(g(12)>0) & (x>=0) z=f;
( G: X1 j* k# Y% L2 Q6 v
else z=-100;
! `7 ^1 L( i N9 Q
end
( M, g3 Y% E5 l# i
z=-z;
) Y. o# a" ~, g2 q, u
$ Z& d" b2 |/ T) u
主程序里是:
1 Q I P- Q3 _) V. ^- O4 B' n
options=gaoptimset
$ Y! O+ ~) y% K, ~
('populationsize',20,'generations',100,'plotfcns',@gaplotbestf);
4 s) q0 X0 Z) ^# c+ x$ f2 N
[x,z,reason]=ga(@dd,10,options)
, s7 j; _, B! L
但结果每算一次都不一样,而且z值就是输进去的那个值,此时是100.不知道为什么?用网上所给的例子就可以算出结果。
! X4 n4 } p" O
; ?, y" a& j- z% c4 V$ D) Z
跪求指点!
8 P) ^8 Y2 N& ^ K! d* ]! Y
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5