lingo中怎样实现双目标的优化?

lingo中怎样实现双目标的优化?,第1张

你可以先乱灶把重要的设置成目标函数,另外一个不要设置优化目标函数

求出来重要的目标函数以后,再带入求另外一个。

比如说 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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12342537.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存