数学建模社区-数学中国
标题:
今天开始,每天学点Lingo吧(Lingo一)
[打印本页]
作者:
X12345B
时间:
2015-7-17 23:52
标题:
今天开始,每天学点Lingo吧(Lingo一)
LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
: \+ x: u& A3 G9 Q0 Z8 q$ T6 n
. m9 `; S, P' u. I8 A
§1 LINGO快速入门
1 u) P+ G9 X. |& D
" p( Y/ K0 t- |+ U7 i
当你在windows下开始运行LINGO系统时,会得到一个窗口:
6 {6 p6 d' f, Q) J J" Q$ ~5 V' y
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。
% I4 G2 O7 b1 x% w1 C
例1.1 如何在LINGO中求解如下的LP问题:
+ j" O6 P% m5 V
6 G( Q0 F( {5 w* |+ s9 S
在模型窗口中输入如下代码:
* K; S* f, L# B: N
min=2*x1+3*x2;
5 Q s3 q* B8 P9 R t+ u4 R
x1+x2>=350;
' ?' l6 u1 V! b. p2 l2 }
x1>=100;
* v, E& Y1 s5 a2 E1 }' b! z" G
2*x1+x2<=600;
% b3 |' |8 ?0 z6 ?: ?
然后点击工具条上的按钮 即可。
* j3 Y% X+ w" u3 M! ]
: t) ] b# o( J6 _ S- t+ a" m
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。
2 _ X' D2 G7 O) g& b& b4 {7 a
单
' ]2 a4 Q" E0 Y, }
位 销地
/ Z. `& Z8 Q# u! t
运
8 p% G" @0 H: i$ m8 C0 F# R: i
价
. k: T2 S: i- H. N/ t _3 D/ c8 ^
产地 B1 B2 B3 B4 B5 B6 B7 B8 产量
r: u8 u9 N3 b
A1 6 2 6 7 4 2 5 9 60
: t& z, E0 A0 {: q/ i1 R [
A2 4 9 5 3 8 5 8 2 55
9 {4 a6 i: r f% k( a
A3 5 2 1 9 7 4 3 3 51
$ Q! V) I% [ M& z' h
A4 7 6 7 3 9 2 7 1 43
- }/ {9 Q+ [) m, \# G( G$ p
A5 2 3 9 5 7 2 6 5 41
, L6 g! o) s: r' b8 t
A6 5 5 2 2 8 1 4 3 52
2 e& r; K! u6 H' _0 u/ c
销量 35 37 22 32 41 32 43 38
: ~! l7 a8 L1 V8 m
使用LINGO软件,编制程序如下:
8 V9 U1 |. @1 P C: S) ^2 q
model:
/ T% X- v* g$ `4 X
!6发点8收点运输问题;
Y5 @) V& L; H/ g$ d0 m& y Q
sets:
# ], q5 b, G, P# i6 Z7 G. N4 ~
warehouses/wh1..wh6/: capacity;
2 }* m0 Z) Y# p" Q7 i {
vendors/v1..v8/: demand;
8 e- n' O3 {; A8 L* K! n, ~) f' }. B
links(warehouses,vendors): cost, volume;
4 X: b6 J* n; n3 w: B
endsets
' Y6 a) ~; x3 \" \6 Z4 K, L
!目标函数;
9 ?9 K1 f1 l4 y! K3 I4 ]4 Y% {
min=@sum(links: cost*volume);
7 L6 ~4 f1 J6 @2 ?) `
!需求约束;
# \. Z; O( B3 P7 c
@for(vendors(J):
9 z( [+ y5 Y8 S4 ~
@sum(warehouses(I): volume(I,J))=demand(J));
7 J h. d6 W e6 z( H. a
!产量约束;
+ l0 d6 C: o' [6 c
@for(warehouses(I):
& P% f- U+ h$ C7 M& f
@sum(vendors(J): volume(I,J))<=capacity(I));
7 \4 r. e4 a- X
. t6 c5 S$ C! r3 b
!这里是数据;
" |5 o( q D) [/ e. {
data:
. I# q# c: w( S1 M- Y2 r
capacity=60 55 51 43 41 52;
- p/ H' z% I% k: `( r" A, C
demand=35 37 22 32 41 32 43 38;
) a( V% Z$ R5 \3 i& R
cost=6 2 6 7 4 2 9 5
9 Y. p$ L P9 N, I9 `& w5 l
4 9 5 3 8 5 8 2
# F: ]# K" @& H
5 2 1 9 7 4 3 3
8 A: O' [, I. G0 E N
7 6 7 3 9 2 7 1
) A2 T, U# V% h* J6 @
2 3 9 5 7 2 6 5
( w v* w$ U- r/ |* j: a5 l
5 5 2 2 8 1 4 3;
+ e8 n& v9 e8 [! P' S7 W
enddata
. C p& X6 |* w c" I6 L1 F" h
end
" o. r8 y" z) N0 [
然后点击工具条上的按钮 即可。
' c; L2 j4 |$ V- u6 x
为了能够使用LINGO的强大功能,接着第二节的学习吧。
q6 s& L m' n, o' C% v9 K
(明天见哦)
7 w0 l C" Y: m9 ^2 \
3 L1 W4 w: q) A* O6 w4 W
作者:
wujianjack2
时间:
2015-7-18 20:06
占个沙发,哈哈!
: Y; B: ~' {2 b1 X, U& g7 ~' o
坐等更新........................... :-)
! J5 u8 e1 T5 l/ J0 p) N
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5