
求出来重要的目标函数以后,再带入求另外一个。
比如说 max z=,解出z=100,然后就把z=100当作限制条件,再运行一次
max y= 就可以解出山悔来当z最大的时候逗陪正y也取最大。
因为没有数据段,所以可能很难修改。错误有可能出现在数据段。另外,最后一句的n有败凳什么用吗?好像并不出现在其他约束语句中…可能这也是一个要修改的地方。
最后,楼主要注意的一个问亩敏题是个1000*100的矩阵,而且目标函数是非线性的,lingo解起来会很慢,甚至运行了半天迅枯枝结论是没有可行解。最好是用更专业的MATLAB来编程计算。
MODEL:SETS:
dvd/1..10/:n
supply/1..10/
link(dvd,supply):x,c
ENDSETS
DATA:
c=
2 4 0 0 0 0 3 1 0 0
2 0 4 0 3 1 0 0 5 0
0 2 0 3 0 0 0 0 4 1
4 0 0 0 0 0 1 3 2 0
0 1 0 4 2 3 0 0 0 0
0 2 1 0 0 0 4 0 0 3
1 0 4 0 0 0 3 2 0 0
2 0 0 1 0 4 0 0 3 0
0 4 0 0 1 0 0 3 0 2
3 0 2 0 0 0 0 0 1 4
n= 1 4 1 2 2 1 3 3 3 2
ENDDATA
@FOR(link(i,j):x(i,j)=@IF(c(i,j)#EQ#0,0,x(i,j)))
MIN=@SUM(link(i,j):c(i,j)*x(i,j))
@FOR(link(i,j):@BIN(x(i,j)))
@FOR(dvd(i):@SUM(supply(j):x(i,j))=3)
@FOR(supply(i):@SUM(dvd(j):c(i,j)*x(i,j))<=n(i))
END
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)