当前位置:文档之家› lingo程序与结果

lingo程序与结果

lingo程序与结果
lingo程序与结果

程序:

min=1.1*x+1.2*y+1.3*z+1.4*k;

290*a1+315*b1+350*c1+455*d1<=1850;

290*a1+315*b1+350*c1+455*d1>=1750;

290*a2+315*b2+350*c2+455*d2<=1850;

290*a2+315*b2+350*c2+455*d2>=1750;

290*a3+315*b3+350*c3+455*d3<=1850;

290*a3+315*b3+350*c3+455*d3>=1750;

290*a4+315*b4+350*c4+455*d4<=1850;

290*a4+315*b4+350*c4+455*d4>=1750;

a1+b1+c1+d1<=5;

a1+b1+c1+d1>=4;

a2+b2+c2+d2<=5;

a2+b2+c2+d2>=4;

a3+b3+c3+d3<=5;

a3+b3+c3+d3>=4;

a4+b4+c4+d4<=5;

a4+b4+c4+d4>=4;

a1*x+a2*y+a3*z+a4*k>=15;

b1*x+b2*y+b3*z+b4*k>=28;

c1*x+c2*y+c3*z+c4*k>=21;

d1*x+d2*y+d3*z+d4*k>=30;

x>=y;

y>=z;

z>=k;

@gin(x);@gin(y);@gin(z);@gin(k);

@gin(a1);@gin(a2);@gin(a3);@gin(a4);

@gin(b1);@gin(b2);@gin(b3);@gin(b4);

@gin(c1);@gin(c2);@gin(c3);@gin(c4);

@gin(d1);@gin(d2);@gin(d3);@gin(d4);

结果:

Local optimal solution found.

Objective value: 21.50000

Objective bound: 21.50000

Infeasibilities: 0.000000

Extended solver steps: 250

Total solver iterations: 14034

Variable Value Reduced Cost X 14.00000 1.100000 Y 4.000000 1.200000 Z 1.000000 1.300000 K 0.000000 1.400000 A1 1.000000 0.000000 B1 2.000000 0.000000 C1 0.000000 0.000000 D1 2.000000 0.000000 A2 0.000000 0.000000 B2 0.000000 0.000000 C2 5.000000 0.000000 D2 0.000000 0.000000 A3 2.000000 0.000000

B3 0.000000 0.000000 C3 1.000000 0.000000 D3 2.000000 0.000000 A4 0.000000 0.000000 B4 0.000000 0.000000 C4 0.000000 0.000000 D4 4.000000 0.000000 Row Slack or Surplus Dual Price

1 21.50000 -1.000000

2 20.00000 0.000000

3 80.00000 0.000000

4 100.0000 0.000000

5 0.000000 0.000000

6 10.00000 0.000000

7 90.00000 0.000000

8 30.00000 0.000000

9 70.00000 0.000000

10 0.000000 0.000000

11 1.000000 0.000000

12 0.000000 0.000000

13 1.000000 0.000000

14 0.000000 0.000000

15 1.000000 0.000000

16 1.000000 0.000000

17 0.000000 0.000000

18 1.000000 0.000000

19 0.000000 0.000000

20 0.000000 0.000000

21 0.000000 0.000000

22 10.00000 0.000000

23 3.000000 0.000000

24 1.000000 0.000000

lingo程序与结果

程序: min=1.1*x+1.2*y+1.3*z+1.4*k; 290*a1+315*b1+350*c1+455*d1<=1850; 290*a1+315*b1+350*c1+455*d1>=1750; 290*a2+315*b2+350*c2+455*d2<=1850; 290*a2+315*b2+350*c2+455*d2>=1750; 290*a3+315*b3+350*c3+455*d3<=1850; 290*a3+315*b3+350*c3+455*d3>=1750; 290*a4+315*b4+350*c4+455*d4<=1850; 290*a4+315*b4+350*c4+455*d4>=1750; a1+b1+c1+d1<=5; a1+b1+c1+d1>=4; a2+b2+c2+d2<=5; a2+b2+c2+d2>=4; a3+b3+c3+d3<=5; a3+b3+c3+d3>=4; a4+b4+c4+d4<=5; a4+b4+c4+d4>=4; a1*x+a2*y+a3*z+a4*k>=15; b1*x+b2*y+b3*z+b4*k>=28; c1*x+c2*y+c3*z+c4*k>=21; d1*x+d2*y+d3*z+d4*k>=30; x>=y; y>=z; z>=k; @gin(x);@gin(y);@gin(z);@gin(k); @gin(a1);@gin(a2);@gin(a3);@gin(a4); @gin(b1);@gin(b2);@gin(b3);@gin(b4); @gin(c1);@gin(c2);@gin(c3);@gin(c4); @gin(d1);@gin(d2);@gin(d3);@gin(d4); 结果: Local optimal solution found. Objective value: 21.50000 Objective bound: 21.50000 Infeasibilities: 0.000000 Extended solver steps: 250 Total solver iterations: 14034 Variable Value Reduced Cost X 14.00000 1.100000 Y 4.000000 1.200000 Z 1.000000 1.300000 K 0.000000 1.400000 A1 1.000000 0.000000 B1 2.000000 0.000000 C1 0.000000 0.000000 D1 2.000000 0.000000 A2 0.000000 0.000000 B2 0.000000 0.000000 C2 5.000000 0.000000 D2 0.000000 0.000000 A3 2.000000 0.000000

LINGO软件简介

LINGO 软件简介 LINGO 软件是一个处理优化问题的专门软件,它尤其擅长求解线性规划、非线性规划、整 数规划等问题。 一个简单示例 有如下一个混合非线性规划问题: ?????≥≤≤+++---+为整数 213 212 13213 2 2212121,;0,,210022..15023.027798max x x x x x x x x x x t s x x x x x x x 。 LINGO 程序(模型): max =98*x1+277*x2-x1^*x1*x2-2*x2^2+150*x3; x1+2*x2+2*x3<=100; x1<=2*x2; @gin (x1);@gin (x2);! Lingo 默认变量非负 (注意:@bin(x)表示x 是0-1变量;@gin(x)表示x 是整数变量;@bnd(L,x,U)表示 限制LxU ;@free(x)表示取消对x 的符号限制,即可正、可负。) 结果: Global optimal solution found. Objective value: Extended solver steps: 0 Total solver iterations: 45 Variable Value Reduced Cost X1 X2 X3 Row Slack or Surplus Dual Price 1 2 3 ———————— 非常简单! 在LINGO 中使用集合 为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO 引进了“集合”的用法,实现了变量、系数的数组化(下标)表示。 例如:对?? ? ??? ? ==-++-==≤++∑=.,,;10)0(;4,3,2,1),()())()1()(;4,3,2,1,20)(..)} (20)(450)(400{min 4 ,3,2,1均非负INV OP RP INV I I DEM I OP I RP I INV I INV I I RP t s I INV I OP I RP I 求解程序: model : sets : mark/1,2,3,4/:dem,rp,op,inv;!也可以vmark/1..4/:dem,rp,op,inv;

LINGO软件简介

LINGO 软件简介 LINGO 软件是一个处理优化问题的专门软件,它尤其擅长求解线性规划、非线性规划、整数规划等问题。 一个简单示例 有如下一个混合非线性规划问题: ?????≥≤≤+++---+为整数 213 212 13213 2 2212121,;0,,210022..15023.027798max x x x x x x x x x x t s x x x x x x x 。 LINGO 程序(模型): max =98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2+150*x3; x1+2*x2+2*x3<=100; x1<=2*x2; @gin (x1);@gin (x2);! Lingo 默认变量非负 (注意:@bin(x)表示x 是0-1变量;@gin(x)表示x 是整数变量;@bnd(L,x,U)表示 限制L ≤x ≤U ;@free(x)表示取消对x 的符号限制,即可正、可负。) 结果: Global optimal solution found. Objective value: 9561.200 Extended solver steps: 0 Total solver iterations: 45 Variable Value Reduced Cost X1 6.000000 -76.70000 X2 31.00000 -151.2000 X3 16.00000 -150.0000 Row Slack or Surplus Dual Price 1 9561.200 1.000000 2 0.000000 0.000000 3 56.00000 0.000000 ———————— 非常简单! 在LINGO 中使用集合 为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO 引进了“集合”的用法,实现了变量、系数的数组化(下标)表示。

第1讲 Lingo软件入门(2014)

第1讲Lingo软件入门 司守奎 烟台市,海军航空工程学院数学教研室 Email:sishoukui@https://www.doczj.com/doc/0b16618789.html, 1 Lingo软件的基本语法 1.1 集合 集合部分的语法为 sets: 集合名称1/成员列表1/:属性1_1,属性1_2,…,属性1_n1; 集合名称2/成员列表2/:属性2_1,属性2_2,…,属性2_n2; 派生集合名称(集合名称1,集合名称2):属性3_1,…,属性3_n3; endsets 例26 sets: product/A B/; machine/M N/; week/1..2/; allowed(product,machine,week):x; endsets 1.2 数据 数据部分的语法为 data: 属性1=数据列表; 属性2=数据列表; enddata 1.3 计算 计算段部分不能含有变量,必须是已知数据的运算。 calc: b=0; a=a+1; endcalc 1.4 模型的目标函数和约束条件 这里就不具体给出了,下面通过具体例子给出。 1.5 子模型 在LINGO 9.0 及更早的版本中,在每个LINGO 模型窗口中只允许有一个优化模型,可以称为主模型(MAIN MODEL)。在LINGO 10.0 中,每个LINGO 模型窗口中除了主模型外,用户还可以定义子模型(SUBMODEL)。子模型可以在主模型的计算段中被调用,这就进一步增强了LINGO 的编程能力。 子模型必须包含在主模型之内,即必须位于以“MODEL:”开头、以“END”结束的模块内。同一个主模型中,允许定义多个子模型,所以每个子模型本身必须命名,其基本语法是: SUBMODEL mymodel: 可执行语句(约束+目标函数); ENDSUBMODEL 其中mymodel 是该子模型的名字,可执行语句一般是一些约束语句,也可能包含目标函数,但不可以有自身单独的集合段、数据段、初始段和计算段。也就是说,同一个主模型内的变量都是全局变量,这些变量对主模型和所有子模型同样有效。 如果已经定义了子模型mymodel,则在计算段中可以用语句“@SOLVE( mymodel);”求解这个子模型。 2 Lingo函数 2.1 算术运算符

LINGO软件简介

L I N G O软件简介 Document number:BGCG-0857-BTDO-0089-2022

LINGO 软件简介 LINGO 软件是一个处理优化问题的专门软件,它尤其擅长求解线性 规划、非线性规划、整数规划等问题。 一个简单示例 有如下一个混合非线性规划问题: ?????≥≤≤+++---+为整数 213 212 13213 2 2212121,;0,,210022..15023.027798max x x x x x x x x x x t s x x x x x x x 。 LINGO 程序(模型): max =98*x1+277*x2-x1^2-0.3*x1*x2- 2*x2^2+150*x3; x1+2*x2+2*x3<=100; x1<=2*x2; @gin (x1);@gin (x2);! Lingo 默认变量非负 (注意:@bin(x)表示x 是0-1变量;@gin(x)表示x 是整数变量;@bnd(L,x,U)表示限制L?x?U ;@free(x)表示取消对x 的符号限制,即可正、可负。) 结果: Global optimal solution found. Objective value: 9561.200 Extended solver steps: 0 Total solver iterations: 45

Variable Value Reduced Cost X1 6.000000 -76.70000 X2 31.00000 -151.2000 X3 16.00000 -150.0000 Row Slack or Surplus Dual Price 1 9561.200 1.000000 2 0.000000 0.000000 3 56.00000 0.000000 ————————非常简单! 在LINGO中使用集合 为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO引进了“集合”的用法,实现了变量、系数的数组化(下标)表示。

lingo程序实例

例1.2使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销 model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/:capacity; vendors/v1..v8/:demand; links(warehouses,vendors):cost,volume; endsets !目标函数域; min=@sum(links:cost*volume); !需求约束域; @for(vendors(j): @sum(warehouses(i):volume(i,j))=demand(j)); !产量约束; @for(warehouses(i): @sum(vendors(j):volume(i,j))<=capacity(i)); !数据域; data: capacity= 60 55 51 43 41 52 ; demand= ; cost=

; enddata end Global optimal solution found. Objective value: 664.0000 Infeasibilities: 0.000000 Total solver iterations: 15 Model Class: LP Total variables: 48 Nonlinear variables: 0 Integer variables: 0 Total constraints: 15 Nonlinear constraints: 0 Total nonzeros: 144 Nonlinear nonzeros: 0 Variable Value Reduced Cost CAPACITY( WH1) 60.00000 0.000000 CAPACITY( WH2) 55.00000 0.000000 CAPACITY( WH3) 51.00000 0.000000 CAPACITY( WH4) 43.00000 0.000000 CAPACITY( WH5) 41.00000 0.000000 CAPACITY( WH6) 52.00000 0.000000 DEMAND( V1) 35.00000 0.000000 DEMAND( V2) 37.00000 0.000000 DEMAND( V3) 22.00000 0.000000 DEMAND( V4) 32.00000 0.000000 DEMAND( V5) 41.00000 0.000000 DEMAND( V6) 32.00000 0.000000 DEMAND( V7) 43.00000 0.000000 DEMAND( V8) 38.00000 0.000000

LINGO使用说明(比较简单)

Lingo介绍 Lingo是美国LINDO系统公司(Lindo Symtem Inc)开发的求解数学规划系列软件中的一个(其他软件为LINGDO,GINO,What’s Best等),它的主要功能是求解大型线性、非线性和整数规划问题,目前的版本是lingo11.0。 lingo分为Demo、solve suite、hyper、industrial、extended等六类不同版本,只有Demo版本是免费的,其他版本需要向LINDO系统公司(在中国的代理商)购买,Lingo的不同版本对模型的变量总数、非线性变量个数、整型变量个数和约束条件的数量做出不同的限制(其中extended版本无限制)。 Lingo的主要功能特色为: (1)既能求解线性规划,也有较强的求解非线性规划的能力; (2)输入模型简练直观; (3)运行速度快、计算能力强; (4)内置建模语言,提供几十种内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型; (5)将集合的概念引入编程语言,很容易将实际问题转换为Lingo语言; (6)能方便地与excel、数据库等其他软件交换数据。 学校图书馆40本《lingo和excel在数学建模中的应用》,袁新生、邵大宏、郁时炼主编,科学出版社

Lingo 程序设计简要说明 在数学建模中会遇到如规划类的题型,在这种模型中总存在着一个目标,并希望这个目标的取值尽可能的大或小,同时与这个目标有关的一系列变量之间存在一些约束。在构造出目标函数和约束条件的表达式后,我们需要对求出这个最值和各变量的取值。一般我们用LINGO 来对模型进行求解,本文将通过举一个简单的例子,围绕这个例子逐步学习LINGO 的使用。LINGO 只是一个求解工具,我们主要的任务还是模型的建立! 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。 示例:求解线性规划问题: max z=x1+x2+x3+x4+x5+x6+x7+x8 ???????????????≤≤≤≤≤≤269 + x88 + x72 + x66 + x55 + x47 + x38 + x28 + x16 15 6 + x87 + x7+ x65 + x54 + x44 + x34 + x25 + x15 444 + x86 + x77 + x68 + x58 + x45 + x32 + x27 + x14278 + x85 + x74 + x64 + x55 + x49 + x36 + x25 + x13389 + x84 + x75 + x62 + x57 + x46 + x35 + x28 + x1 2 154 + x8 3 + x79 + x66 + x55 + x45 + x3 4 + x27 + x1 求解这个模型的相应LINGO 程序代码如下: 程序一: max= x1+x2+x3+x4+x5+x6+x7+x8; x1 + 7*x2 + 4*x3 + 5*x4 + 5*x5 + 6*x6 + 9*x7 + 3*x8 + 415<=; 2*x1 + 8*x2 + 5*x3 + 6*x4 + 7*x5 + 2*x6 + 5*x7 + 4*x8 + 938<=; 3*x1 + 5*x2 + 6*x3 + 9*x4 + 5*x5 + 4*x6 + 4*x7 + 5*x8 + 827<=; 4*x1 + 7*x2 + 2*x3 + 5*x4 + 8*x5 + 8*x6 + 7*x7 + 6*x8 + 444<=; 5*x1 + 5*x2 + 4*x3 + 4*x4 + 4*x5 + 5*x6 + x7 + 7*x8 + 6 15<=; 6*x1 + 8*x2 + 8*x3 + 7*x4 + 5*x5 + 6*x6 + 2*x7 + 8*x8 + 926<=; 注:然后点击工具条上的按钮 即可。本模型的最优解为2.636364

LINGO 程序范例

线性规划——LINGO程序集 向浩 2011-7-20 程序一: Model: Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11+x12 < x + 500; x21+x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; x=x1+x2+x3; (x1 - 500) * x2=0; (x2 - 500) * x3=0; @bnd(0,x1, 500); @bnd(0,x2, 500); @bnd(0,x3,500); End 程序二: Model: SETS: Points/1..4/: b, c, y, z; ! 端点数为4,即分段数为3; ENDSETS DATA: b=0 500 1000 1500; c=0 5000 9000 12000; y=,,,0; ! 增加的虚拟变量y(4)=0; ENDDATA Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - @sum(Points: c*z); x11+x12 < x + 500; x21+x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; @sum(Points: b*z)=x; @for(Points(i)|i#eq#1: z(i) <= y(i)); @for(Points(i)|i#ne#1: z(i) <= y(i-1)+y(i)); @sum(Points: y)=1;

利用lingo程序求最小费用最大流

利用lingo程序求最小费用最大流 通常求最小费用最大流问题是分两个阶段: 1,先求最大流。 2,再在最大流的基础上求最小费用流。 以下图为例。 其中如(5,8)=(容量,费用)。求从S到T的最小费用最大流。 1,先求最大流,lingo程序为: MODEL: sets: nodes/s,1,2,3,t/; arcs(nodes,nodes)/ s,1 s,2 1,t,1,3 2,1 2,3 3,t/:c,f; endsets data: c= 5 8 4 3 2 10 8; enddata max = flow; @for(nodes(i)|i #ne# 1 #and# i #ne# @size(nodes): @sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0); @sum(arcs(i,j)|i #eq# 1: f(i,j)) = flow; @for(arcs:@bnd(0,f,c)); END 结果是,最大流为12, 2,再在最大流的基础上求最小费用流。程序为: MODEL: sets: nodes/s,1,2,3,t/: ; arcs(nodes,nodes)/ s,1 s,2 1,t,1,3 2,1 2,3 3,t/:b,c,f; endsets data: flow=12; b=8 7 9 2 5 9 4 ; c=5 8 4 3 2 10 8; enddata min=@sum(arcs:b*f); @for(nodes(i)|i #ne# 1 #and# i #ne#@size(nodes): @sum(arcs(i,j):f(i,j))-@sum(arcs(j,i):f(j,i))=0); @sum(arcs(i,j)|i #eq# 1: f(i,j)) = flow; @for(arcs:@bnd(0,f,c)); END 结果是:

Lingo求解DEA程序

MODEL: ! Data Envelope Analysis of Decision Maker Efficiency; SETS: DMU/BL HW NT OP YK EL/: ! Six schools; SCORE; ! Each decision making unit has a;! score to be computed; FACTOR/COST RICH WRIT SCIN/; ! There is a set of factors, input & output; DXF( DMU, FACTOR): F; ! F( I, J) = Jth factor of DMU I; ! Weights used to compute DMU I's score; DXFXD(DMU,FACTOR) : W; ENDSETS DATA: ! Inputs are spending/pupil, % not low income; ! Outputs are Writing score and Science score; NINPUTS = 2; ! The first NINPUTS factors are inputs; ! The inputs, the outputs; !cost rich writ scin; F= 8939 64.3 25.2 223 !BL; 8625 99 28.2 287 !HW; 10813 99.6 29.4 317 !NT; 10638 96 26.4 291 !OP; 6240 96.2 27.2 295 !YK; 4719 79.9 25.5 222; !EL; ENDDATA ! Try to make everyone's score as high as possible; MAX = @SUM( DMU: SCORE); ! The LP for each DMU to get its score;

Lingo程序

最近在编写一个用DEA模型评价几家医院效率的Lingo程序,因为是新手,参考了一些其他程序,但是自己还是搞不出来,苦恼中....,请教各位高手,帮忙看看怎么改正,运行的时候,系统总是提示1017错误,ERROR TEXT:Unexpected Jacobian overflow, contact Lindo systems for patch availability. 我用的是Lingo9.0,谢谢了! 模型用向量表达是这样的: min h。h。表示第。家医院的效率 S.T. YW>=Y。 XW<=h。X。 eW=1. 权重W的和等于1. W>=0. 我编的模型是这样的: model: sets: DMU/1..4/:H,W; ! 4 decision making unit,H是4个DMU的效率值,W是4个DMU的权重; II/1..3/; ! 3 inputs; OI/1..4/; ! 4 outputs; IV(II,DMU):X; ! inputs matrix X; OV(OI,DMU):Y; ! outputs matrix Y; endsets data: X=285 123 106 !input data X; 162 128 64 275 348 104 210 154 104; Y=48 43 253 41 !output data Y; 34 27 148 27 36 45 175 23 33 56 160 84; enddata min=H; !目标是4个H最小化; @for(DMU(n): @for(II(j) sum(DMU(t):W(t)*X(t,j))<=H*X(n,j)); !inputs congditions; @for(OI(i) sum(DMU(t):W(t)*Y(t,i))>=Y(n,i)) !outputs congditions; ); @sum(DMU(n):W(n))=1; !scale efficiency condition; end 1] sets: 2] DMU/1..21/:S,T,P; ! Decision Making Unit; 3] II/1/:w; ! Input Index; 4] OI/1..11/:u; ! Output Index; 5] IV(II,DMU):X; ! Input Variable;

第十八章LINGO软件的使用

第十八章LINGO软件的使用 18.1 LINGO入门 18.1.1 LINGO软件的安装过程 点击LINGO9.0 for Windows安装文件,出现 点击“Next”按钮,出现 此时需要接受安装协议。系统安装时默认的目录是C:\LINGO9。安装完成前,会出现下图所示的对话框:

这个对话框询问你希望采用的默认的建模(即编程)语言,系统推荐的是采用LINGO语法,也就是选项“LINGO(recommended)”;你也可以选择“LINDO”将LINDO语法作为默认的设置。当然,安装后你也可以通过“LINGO|Options|File Format命令来修改默认的建模(即编程)语言。在上图中按下“OK”按钮,系统就会完成LINGO的安装过程。 18.1.2 LINGO基础知识 LINGO有两种命令格式:一种是常用的Windows模式,通过下拉式菜单命令驱动LINGO 运行,界面是图形式的,使用起来也比较方便;另一种是命令行(Command-Line)模式,仅在命令窗口(Command Window)下操作,通过输入行命令驱动LINGO运行。由于其使用字符方式输入,初学者往往不太容易掌握。在这里,我们主要介绍在菜单驱动模式下LINGO的使用方法。 LINGO 9.0软件比以前的版本有了很大的改进,功能大大增强,性能更加稳定,计算的结果更加可靠。LINGO软件不仅可用于求解非线性规划问题,还可以用以求解非线性整数规划问题;LINGO包含了内置的建模语言,模型中所需的数据可以以一定格式保存在独立的文件中;LINGO允许以简练、直观的方式描述较大规模的优化问题。 注:LIGDO公司目前已将LINDO软件从其产品中删除了。事实上,LINDO软件的所有功能(包括LINDO语法格式)都在LINGO中得到了支持。 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。状态行最左边显示的是“Ready”表示“准备就绪”;右下角显示的是当前时间,时间前面是当前光标的位置“Ln1,Col1”(即1行1列)。将来,用户可以用选项命令(LINGO|Options菜单命令)决定是否需要显示工具栏和状态行。在LINGO 模型窗口中,选择菜单命令“File|Open(F3)”,可以看到下图所示的标准的“打开文件”对话框,我们看到有各种不同的“文件类型”:

最优解lingo程序

例1 : 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。 使用LINGO 软件,编制程序如下: 单位销地运价产地 B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 产量 A 16267425960A 24953858255A 35219743351A 47673927143A 52395726541A 6 5 5 2 2 8 1 4 3 52 销量3537223241324338

model:!6发点8收点运输问题;(解释) sets: warehouses/wh1..wh6/: capacity;(仓库,产量)vendors/v1..v8/: demand;(销售地,需求量) links(warehouses,vendors): cost, volume;(价格矩阵)endsets !目标函数; min=@sum(links: cost*volume); !需求约束;(针对第j个销售点) @for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J)); !产量约束;(针对第i个仓库) @for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));这里是数据;

data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end

LINGO用法

LINGO 操作入门 LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO 中求解如下的LP 问题: ,6002100 350. .32min 21211 212 1≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 >=和<=可写成>和< 一个表达式可写成多行,如 min=2*x1 +3*x2; LINGO WINDOWS 命令 文件菜单(File Menu ) 1. 新建(New ) 从文件菜单中选用“新建”命令、单击“新建”按钮或直接按F2键可以创建一个新的“Model”窗口。在这个新的“Model”窗口中能够输入所要求解的模型。 2. 打开(Open ) 从文件菜单中选用“打开”命令、单击“打开”按钮或直接按F3键可以打开一个已经存在的文本文件。这个文件可能是一个Model 文件。 3. 保存(Save) 从文件菜单中选用“保存”命令、单击“保存”按钮或直接按F4键用来保存当前活动窗口(最前台的窗口)中的模型结果、命令序列等保存为文件。 4. 另存为...(Save As ...) 从文件菜单中选用“另存为...”命令或按F5键可以将当前活动窗口中的内容保存为文本文件,其文件名为你在“另存为...”对话框中输入的文件名。利用这种方法你可以将任何窗口的内容如模型、求解结果或命令保存为文件。 5. 关闭(Close ) 在文件菜单中选用“关闭”(Close)命令或按F6键将关闭当前活动窗口。如果这个窗口是新建窗口或已经改变了当前文件的内容,LINGO 系统将会提示是否想要保存改变后的内容。

LINGO 程序范例

线性规划——LINGO程序集 向浩2011-7-20 程序一: Model: Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3; x11+x12 < x + 500; x21+x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; x=x1+x2+x3; (x1 - 500) * x2=0; (x2 - 500) * x3=0; @bnd(0,x1, 500); @bnd(0,x2, 500); @bnd(0,x3,500); End 程序二: Model: SETS: Points/1..4/: b, c, y, z; ! 端点数为4,即分段数为3; ENDSETS DATA: b=0 500 1000 1500; c=0 5000 9000 12000; y=,,,0; ! 增加的虚拟变量y(4)=0; ENDDATA Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - @sum(Points: c*z); x11+x12 < x + 500; x21+x22 < 1000; 0.5*x11 - 0.5*x21 > 0; 0.4*x12 - 0.6*x22 > 0; @sum(Points: b*z)=x; @for(Points(i)|i#eq#1: z(i) <= y(i)); @for(Points(i)|i#ne#1: z(i) <= y(i-1)+y(i)); @sum(Points: y)=1; @sum(Points: z)=1; @for(Points: @bin(y)); End 程序三: MODEL: TITLE 瓶颈设备的多级生产计划; ! 从文本文件exam0502.LDT中读取数据;

相关主题
文本预览
相关文档 最新文档