数学建模社区-数学中国
标题:
今天开始,每天学点Lingo吧(Lingo一)
[打印本页]
作者:
X12345B
时间:
2015-7-17 23:52
标题:
今天开始,每天学点Lingo吧(Lingo一)
LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
- U6 k4 H3 z( R4 k, Q% F5 t! S
* g: Z/ a K J1 D. O4 f
§1 LINGO快速入门
* I# O8 F/ O* z# j! V r
. l9 _4 _- ?! u7 F9 F5 }
当你在windows下开始运行LINGO系统时,会得到一个窗口:
# l; m, R3 u z) i4 a$ ^" M3 w
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。
- H0 \# x2 C% ?- p: D
例1.1 如何在LINGO中求解如下的LP问题:
; h6 M) D. }% d3 o: C8 G
2 l: D1 U4 r6 l+ x' H. Q
在模型窗口中输入如下代码:
7 P2 m0 f" f* s4 g7 m
min=2*x1+3*x2;
: b. Y5 x) ?7 L
x1+x2>=350;
( L8 a2 o* r* F: C
x1>=100;
# T+ ~% S4 E* Y/ a
2*x1+x2<=600;
+ K, Z( V8 J4 A0 J" Z
然后点击工具条上的按钮 即可。
" F0 _$ P7 O6 M$ p" T. i5 \6 _
h1 O1 l d; x6 a0 F
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。
% a" o% q; R6 e9 ?
单
9 e4 a0 Z$ ~) e
位 销地
( V7 m2 p, f) F+ `4 V
运
, [8 n ^7 [6 O9 G
价
4 T3 @ ~& E7 E& e+ S
产地 B1 B2 B3 B4 B5 B6 B7 B8 产量
. ^* A: N. u/ B& g3 J* f
A1 6 2 6 7 4 2 5 9 60
# t& ]7 O- s* A4 z
A2 4 9 5 3 8 5 8 2 55
9 ?) S0 R4 S _ ?
A3 5 2 1 9 7 4 3 3 51
) R4 }7 M; e z! ^% b3 B
A4 7 6 7 3 9 2 7 1 43
- `6 M- N2 v* `+ ~( _+ f
A5 2 3 9 5 7 2 6 5 41
/ T' @# e0 n# R9 V$ o* g1 y
A6 5 5 2 2 8 1 4 3 52
, O& P8 ^6 D i' J
销量 35 37 22 32 41 32 43 38
1 P5 D9 a. T& S8 T
使用LINGO软件,编制程序如下:
) f% [& I0 S& [! @$ Q/ F
model:
. b. F, n9 D3 S U) h6 V7 g
!6发点8收点运输问题;
% s, X; {. w4 N1 Q$ ^. Q! {
sets:
% J! M1 w: f' z8 `* u0 [
warehouses/wh1..wh6/: capacity;
6 ^# ]8 C L1 o- I& z/ @8 {
vendors/v1..v8/: demand;
, M9 H; z, G" n
links(warehouses,vendors): cost, volume;
# l% P1 y" J+ G; P* Y( _. [2 G; b( e
endsets
4 _0 Z% q) K5 Q" \" h1 r
!目标函数;
1 _5 i$ i/ f+ H$ R$ E
min=@sum(links: cost*volume);
( `0 c" U3 e7 z9 ]7 j9 U
!需求约束;
/ e, Y& \# H$ H- @2 ^) e
@for(vendors(J):
2 w2 r4 O0 x: u# x3 V
@sum(warehouses(I): volume(I,J))=demand(J));
( i( S" W1 U3 m: Q0 [
!产量约束;
w: O: N1 ]1 j8 Y$ x" f( k
@for(warehouses(I):
! [1 k) j6 d5 O5 O; k; ?
@sum(vendors(J): volume(I,J))<=capacity(I));
2 v# ?3 |- r8 C( ]& I9 A
7 Q& T& Q' W" N
!这里是数据;
% B: W% M3 E* H; s' p
data:
- ^1 v( q* n% w: t, p
capacity=60 55 51 43 41 52;
+ I! a+ J. i! V `
demand=35 37 22 32 41 32 43 38;
, y* K9 g% B$ N) |
cost=6 2 6 7 4 2 9 5
6 T. W* V1 w: @! B, J) ?2 Y& ^
4 9 5 3 8 5 8 2
7 A0 @( a, P3 O
5 2 1 9 7 4 3 3
0 i0 x! ]& k$ ~$ m7 l: \
7 6 7 3 9 2 7 1
' ]1 c& L4 H' _ K! |
2 3 9 5 7 2 6 5
/ {, k- R: t3 p% W. n
5 5 2 2 8 1 4 3;
$ E9 x+ X5 w3 h) \5 ]2 A- @' c p
enddata
8 T& C; [7 u$ {, j( a
end
' a% O. X m" I# v2 {6 W
然后点击工具条上的按钮 即可。
' Y- f, O! t! \
为了能够使用LINGO的强大功能,接着第二节的学习吧。
% ?0 n8 v# ?" ?6 h/ N$ H& Y! o: ?
(明天见哦)
/ w* A/ E& X1 J# |( I
1 ]0 [6 e% \3 i' F- @
作者:
wujianjack2
时间:
2015-7-18 20:06
占个沙发,哈哈!
. p1 H1 m4 U, S. ?. ]
坐等更新........................... :-)
0 u& Z/ @; q) w7 X2 H
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5