各位大神帮忙看看问题在哪边??
model:min=(1+(a2)*(a2)+(a3)*(a3)+(a4)*(a4))/((q*q)+(w*w));
a2=(@sin(v3)-a4*@sin(v4-v3))/@sin(v2-v3);
a3=(@sin(v2)-a4*@sin(v4-v2))/@sin(v3-v2);
q=1+a2*@cos(k*v2)+a3*@cos(k*v3)+a4*@cos(k*v4);
w=a2*@sin(k*v2)+a3*@sin(k*v3)+a3*@sin(k*v4);
@bnd(v2,v3,v4);@bnd(0,v2,6.283);@bnd(v3,v4,6.283);
@bnd(0,a4,5);@bnd(0,k,15);
end
这是我的程序,我要求一个最小值,未知数是v2,v3,v4,a4,k,k是整数;关系式是0<v2<v3<v4<6.283
0<a4<5,0<k<15,因为我是新手,问题不知道怎么解决,请大家帮帮忙,急啊,谢谢啦! model:
min=(1+(a2)*(a2)+(a3)*(a3)+(a4)*(a4))/((q*q)+(w*w));
a2=(@sin(v3)-a4*@sin(v4-v3))/@sin(v2-v3);
a3=(@sin(v2)-a4*@sin(v4-v2))/@sin(v3-v2);
q=1+a2*@cos(k*v2)+a3*@cos(k*v3)+a4*@cos(k*v4);
w=a2*@sin(k*v2)+a3*@sin(k*v3)+a3*@sin(k*v4);
v2<=v3;
v3<=v4;
v4<=6.283;
@bnd(0,v2,6.283);
@bnd(0,a4,5);@bnd(0,k,15);
end帮你修改了一下,@bnd函数是用来界定一个变量的界的,上下界都必须是确定的值,不能用变量,你的要求可以增加一些约束来实现的。
楼主你好!
你这个问题看起来简单,但实际用LINGO求解起来寻找全局最优解时却遇到了一些问题。
我先提出我的一些疑问,程序中q,w,a2,a3的正负性是不确定的么?如果这样,程序可以这么写吧!
model:
min=(1+a2^2+a3^2+a4^2)/(q^2+w^2);
a2=(@sin(v3)-a4*@sin(v4-v3))/@sin(v2-v3);
a3=(@sin(v2)-a4*@sin(v4-v2))/@sin(v3-v2);
q=1+a2*@cos(k*v2)+a3*@cos(k*v3)+a4*@cos(k*v4);
w=a2*@sin(k*v2)+a3*@sin(k*v3)+a3*@sin(k*v4);
v2>0;v2-v3<0;v3-v4<0;v4<6.283;a4<5;a4>0;
@bnd(1,k,14);@gin(k);@free(a2);@free(a3);@free(w);@free(q);
end
用LINGO 11求解试了下,发现找全局最优解历时较长,在较短时间内得到以下两组局部最优解。
1.
Local optimal solution found.
Objective value: 0.2134362
Objective bound: 0.2134362
Infeasibilities: 0.8881784E-15
Extended solver steps: 8
Total solver iterations: 4904
Variable Value Reduced Cost
A2 -1.812983 0.000000
A3 2.869856 0.000000
A4 0.4588451 0.3056745E-08
Q 2.579813 -0.2118007E-08
W -7.280397 0.000000
V3 2.513190 0.000000
V4 6.067192 0.000000
V2 2.073468 0.000000
K 7.000000 -0.1114744E-02
2.
Local optimal solution found.
Objective value: 0.2126711
Objective bound: 0.1538456
Infeasibilities: 0.000000
Extended solver steps: 291
Total solver iterations: 165738
Variable Value Reduced Cost
A2 -8.761328 0.2032390E-07
A3 -11.42083 0.000000
A4 1.977507 0.7703659E-07
Q 2.238616 0.1569398E-07
W 31.50135 0.000000
V3 5.502335 0.000000
V4 5.502335 0.000000
V2 2.280316 0.000000
K 2.000000 0.4323916E-01
其中第二组V2,V3,V4的关系从这个精度上来说并不是严格递增的。
以上两组数据,不知是否符合楼主所需。不过,我只尝试求解了一小段时间,楼主有时间可以拿这段程序多运行下,离下界还是有一段距离的。
本人学识有限,如有不对之处,敬请谅解! madio 发表于 2013-10-8 18:51 static/image/common/back.gif
帮你修改了一下,@bnd函数是用来界定一个变量的界的,上下界都必须是确定的值,不能用变量,你的要求可以增 ...
我好像运行不起来啊?你那边能计算出来吗? wujianjack2 发表于 2013-10-8 20:36 static/image/common/back.gif
楼主你好!
你这个问题看起来简单,但实际用LINGO求解起来寻找全局最优解时却遇到了一些问题。
...
我的a2,a3是大于零的,我忘记说啦,我怎么把你的程序输进去怎么结果跟你不一样啊?? 河庄YIN 发表于 2013-10-9 08:40 static/image/common/back.gif
我的a2,a3是大于零的,我忘记说啦,我怎么把你的程序输进去怎么结果跟你不一样啊??
不好意思,今天一直有事不在啊!
很想问下楼主这个问题是工程实际问题吗?用LINGO求解起来求解值变化很大呢!而且你的W,Q值有什么范围吗?
比如:
程序1:(认为W,Q非负,且将0换成eps=0.001)
model:
eps=0.001;
min=(1+a2^2+a3^2+a4^2)/(q^2+w^2);
a2=(@sin(v3)-a4*@sin(v4-v3))/@sin(v2-v3);
a3=(@sin(v2)-a4*@sin(v4-v2))/@sin(v3-v2);
q=1+a2*@cos(k*v2)+a3*@cos(k*v3)+a4*@cos(k*v4);
w=a2*@sin(k*v2)+a3*@sin(k*v3)+a3*@sin(k*v4);
v2>eps;v2-v3<eps;v3-v4<eps;v4<6.283+eps;
a2>eps;a3>eps;a4>eps;a4<5+eps;
@bnd(1,k,14);@gin(k);
!@free(w);!@free(q);
end
因为要强行加约束使之尽量符合楼主的要求,故引进eps代表允许的一个精度。
勾选LINGO的Global Solver求解一小会儿得到以下解:
Local optimal solution found.
Objective value: 0.2222131
Objective bound: 0.1391169E-02
Infeasibilities: 0.000000
Extended solver steps: 1856
Total solver iterations: 1131845
Variable Value
EPS 0.1000000E-02
A2 633.3809
A3 633.5365
A4 0.1000000E-02
Q 2.672236
W 1900.414
V3 4.554398
V4 4.555309
V2 1.414364
K 10.00000
程序2:(不限W,Q的取值范围,且改写eps=0.0001)
model:
eps=0.0001;
min=(1+a2^2+a3^2+a4^2)/(q^2+w^2);
a2=(@sin(v3)-a4*@sin(v4-v3))/@sin(v2-v3);
a3=(@sin(v2)-a4*@sin(v4-v2))/@sin(v3-v2);
q=1+a2*@cos(k*v2)+a3*@cos(k*v3)+a4*@cos(k*v4);
w=a2*@sin(k*v2)+a3*@sin(k*v3)+a3*@sin(k*v4);
v2>eps;v2-v3<eps;v3-v4<eps;v4<6.283+eps;
a2>eps;a3>eps;a4>eps;a4<5+eps;
@bnd(1,k,14);@gin(k);
@free(w);@free(q);
end
同样勾选Global Solver求解一会儿得到:
Local optimal solution found.
Objective value: 0.2901307
Objective bound: 0.1538456
Infeasibilities: 0.000000
Extended solver steps: 1904
Total solver iterations: 1049649
Variable Value
EPS 0.1000000E-03
A2 0.2089522
A3 1.179228
A4 0.1000000E-03
Q 1.588400
W 2.422217
V3 3.240390
V4 3.272489
V2 0.5904324
K 12.00000
以上仅给出两种组合作为示范,楼主也可以自己进行相应的修改,也可以尝试使用Multistart Solver求解,但就结果上看,不同的精度允许下,得到的结果似乎有很大的不同,或许要得到全局最优解需要一段时间,只要楼主觉得结果尚还满意就可以了吧!
鄙人才疏学浅,只能去适应软件,还不能给出更加高效的算法求解这个问题,请楼主见谅!
相关细节,我应该大致作出了说明,希望对楼主有所帮助,谢谢理解!
wujianjack2 发表于 2013-10-9 18:25 static/image/common/back.gif
不好意思,今天一直有事不在啊!
很想问下楼主这个问题是工程实际问题吗?用LINGO求解起来求解值变 ...
你回答的很详细,真的是太谢谢你啊!以后有问题希望还能帮我解决! 河庄YIN 发表于 2013-10-10 15:58 static/image/common/back.gif
你回答的很详细,真的是太谢谢你啊!以后有问题希望还能帮我解决!
谢谢你的支持!我会尽力的。欢迎你在论坛积极发言讨论!
页:
[1]