数学建模社区-数学中国
标题:
今天开始,每天学点Lingo吧(Lingo一)
[打印本页]
作者:
X12345B
时间:
2015-7-17 23:52
标题:
今天开始,每天学点Lingo吧(Lingo一)
LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
# P* P* r, }7 J& f
1 `& M' c0 W. G- y
§1 LINGO快速入门
) B4 |; p7 M/ j" @
) K; @$ Q2 @* I' L) u" O2 E
当你在windows下开始运行LINGO系统时,会得到一个窗口:
4 C7 B1 K: _! J2 B
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。
/ d) F% O! [4 A% n6 e& N4 t% l
例1.1 如何在LINGO中求解如下的LP问题:
6 M) P! O8 S% M. v$ Q/ U Q
* t* U- J- u- m" r1 `+ z5 b
在模型窗口中输入如下代码:
! _* ^& F- |, p2 m, [
min=2*x1+3*x2;
0 ^. `3 p3 o+ y2 r# L6 Q6 {
x1+x2>=350;
6 A+ @1 |& x4 M1 Y* M$ A
x1>=100;
; d( \5 W9 {* W
2*x1+x2<=600;
3 \3 @" y6 }( ^; n3 Y$ t0 q
然后点击工具条上的按钮 即可。
4 k Q8 O" V* Y
) |$ |! S' L+ _! y$ g
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。
n _) ?) p u, p3 [- t5 z, u+ u" C1 [
单
" ]5 w! I; J- s0 V1 b
位 销地
) ]" w1 I. n3 x, A+ ^' d0 n3 D! j' u
运
/ j6 e# [' w8 ]9 E
价
/ a, Q2 q4 u( V+ G; r9 R! a) L+ _
产地 B1 B2 B3 B4 B5 B6 B7 B8 产量
* v @- i) R5 I+ S2 l3 ^ P7 F
A1 6 2 6 7 4 2 5 9 60
9 R) t: a0 n2 F. a
A2 4 9 5 3 8 5 8 2 55
6 v) S: @" M. I% M4 i; ^* p% J9 \
A3 5 2 1 9 7 4 3 3 51
+ }4 |% A" ~6 q G+ z& J& Q! c
A4 7 6 7 3 9 2 7 1 43
% N& G- k! W6 R9 v6 p( d
A5 2 3 9 5 7 2 6 5 41
7 Q* L8 E$ S3 H8 u6 \
A6 5 5 2 2 8 1 4 3 52
* y: p p4 ]4 ~: [+ j# M
销量 35 37 22 32 41 32 43 38
& ]( _8 o7 G6 P, R& x( ]2 b9 _
使用LINGO软件,编制程序如下:
5 {5 E' B" w3 R8 K; I
model:
0 ~( K; V' A5 o
!6发点8收点运输问题;
& c1 Y$ h. Y8 z [$ C* [2 M
sets:
% Z9 t- C- z- Q" e. N6 q% z
warehouses/wh1..wh6/: capacity;
* f0 Z+ g1 l. H' B/ K
vendors/v1..v8/: demand;
1 g- \ B; M( }0 a
links(warehouses,vendors): cost, volume;
) g/ s$ O3 A( X [% s9 l/ p" Y
endsets
: n& J7 L& E: Q; X5 n* k5 U
!目标函数;
* E! M0 m7 o6 o. b; o* [
min=@sum(links: cost*volume);
5 {" i& w: F+ e! h
!需求约束;
0 f9 u6 C `, g7 X: {; ^" E; D
@for(vendors(J):
7 x* q I) S6 E7 J. C9 @6 ?
@sum(warehouses(I): volume(I,J))=demand(J));
$ V u& z% H& D4 ]/ `3 U6 \: @- V( J
!产量约束;
' l w- X. T! D( L# V. R( }
@for(warehouses(I):
4 e% t5 M& D/ \ b' i
@sum(vendors(J): volume(I,J))<=capacity(I));
7 Z& ?0 \7 V1 `( v! b
h/ V5 T7 z! G, R* K1 X
!这里是数据;
" i, _/ V) X$ s
data:
p/ K5 W5 H# k
capacity=60 55 51 43 41 52;
" E# e3 U1 x' V# v* q" [! }
demand=35 37 22 32 41 32 43 38;
6 X k+ J6 ~3 O
cost=6 2 6 7 4 2 9 5
% b7 k; I- ~0 X% ~/ C
4 9 5 3 8 5 8 2
9 ~6 ]9 d' _" _' v, _, Z
5 2 1 9 7 4 3 3
; h8 x9 _" x1 p" y. N
7 6 7 3 9 2 7 1
7 r' Z2 }5 b2 e" r
2 3 9 5 7 2 6 5
0 q. ?% V! l& a" ~; r$ I. D
5 5 2 2 8 1 4 3;
; _( m1 C* q/ ^4 }( w1 F# }) G6 t
enddata
1 A. f4 n& }( ~) U
end
+ u. \' ]9 E! p1 B# w7 Y7 f5 `0 h
然后点击工具条上的按钮 即可。
/ g' M4 u8 Y8 M9 @9 S: }
为了能够使用LINGO的强大功能,接着第二节的学习吧。
" z4 C2 `% T; ?3 A6 m& X
(明天见哦)
$ R" `& G2 Y4 I4 V# b8 g
& J1 {4 j k& a$ t* h
作者:
wujianjack2
时间:
2015-7-18 20:06
占个沙发,哈哈!
3 _; @& W" E1 S- ~2 q3 ~2 H2 z
坐等更新........................... :-)
+ b7 I- s! f. v* ^" ]. i2 |& l
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5