- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lingo12 软件培训教案
Lingo 主要用于求解线性规划,整数规划,非线性规划, V10 以上版本可编程。
例 1 一个简单的线性规划问题
max
z
2 x
3 y
st. x
y
350
x
100
2 x
y
600
x,
y
0
!exam_1.lg4 源程序
max = 2*x+3*y;
[st_1] x+y350;
[st_2] x100;
2*x+y600; !决策变量黙认为非负 ; 相当于 =; 大小写不区分
当规划问题的规模很大时,需要定义数组下面定义下标集和对应数组的三种方法,
(或称为矩阵 ),以及下标集 (set)
效果相同 ::r1 = r2 = r3, a = b = c.
sets :
r1/1..3/:a;
r2 : b;
r3 : c;
link2(r1,r2): x;
link3(r1,r2,r3): y;
endsets
data :
ALPHA = 0.7;
a=11 12 13 ;
r2 = 1..3;
b = 11 12 13;
c = 11 12 13;
enddata
例2
运输问题
计算 6 个发点 8 个收点的最小费用运输问题。产销单位运价如下表。
B1
B2
B3
B4
B5
B6
B7
B8
产量
A1
6
2
6
7
4
2
5
9
60
A2
4
9
5
3
8
5
8
2
55
A3
5
2
1
9
7
4
3
3
51
A4
7
6
7
3
9
2
7
1
43
A5
2
3
9
5
7
2
6
5
41
A6
5
5
2
2
8
1
4
3
52
销量
35
37
22
32
41
32
43
38
解: 设决策变量 xij = 第 i 个发点到第 j 个售点的运货量, i=1,2, m;
j=1,2, n; 记为 cij =第 i 个发点到第 j 个售点的运输单价, i =1,2, m; j=1,2, n
记 si =第 i 个发点的产量, i=1,2, m; 记 d j =第 j 个售点的需求量, j=1,2, n.
其中, m = 6; n = 8.
设目标函数为总成本,约束条件为( 1)产量约束;(2)需求约束。
于是形成如下规划问题:
m n
min
z
cij
xij
i 1
j 1
m
st.
xij
si
, i
1,2,...,m
1 n
xij
d j , j
1,2,...,n
i 1
xij
0, i
1,2,...,m, j
1,2,..., n
把上述程序翻译成 LINGO 语言,编制程序如下:
!exam_2.lg4 源程序
model : !6 发点 8 收点运输问题 ;
sets :
rows/1..6/: s;
! 发点的产量限制
;
cols/1..8/: d;
! 售点的需求限制
;
links(rows,cols): c, x;
! 运输单价,决策运输量
;
endsets
!-------------------------------------;
data :
s = 60,55,51,43,41,52;
d = 35 37 22 32 41 32 43 38;
c = 6 2 6 7 4 2 9 55219743323957265
enddata
!------------------------------------;
min
=
@sum(links: c*x);
! 目标函数 =运输总成本
;
@for (rows(i):
@sum(cols(j): x(i,j))=s(i) );
!
产量约束 ;
@for (cols(j):
@sum(rows(i): x(i,j))=d(j) );
! 需求约束
;
end
例 3 把上述程序进行改进,引进运行子模块和打印运算结果的语句:
!exam_3.lg4 源程序
model : !6 发点 8收点运输问题 ;
sets :
rows/1..6/: s;
! 发点的产量限制
;
cols/1..8/: d;
! 售点的需求限制
;
links(rows,cols): c, x;
! 运输单价,决策运输量
;
endsets
!==================================;
data :
s = 60,55,51,43,41,52;
d = 35 37 22 32 41 32 43 38;
c = 6 2 6 7 4 2 9 552197433239572
原创力文档


文档评论(0)