LINGO源程序
LINGO基本语法和编程ppt课件
f对
x, j
y j
是非线性的,
所以在新建料场时是NLP模型。先解NLP模型,而把现有临时料场的位置作
为初始解告诉LINGO。
本例中集合的概念
利用集合的概念,可以定义需求点DEMAND和供应点 SUPPLY两个集合,分别有6个和2个元素(下标)。但决 策变量(运送量) 与c ij 集合DEMAND和集合SUPPLY都 有关系的。该如何定义这样的属性?
在实际问题中,输入的数据通常是原始数据,不一定 能在模型中直接使用,可以在这个段对这些原始数据进 行一定的“预处理”,得到模型中真正需要的数据。
例如
Calc: TotalWeight = @sum(Box(i): zl(i)*js(i)); EndCalc
注意计算段只能对常量进行计算,不能对需要 通过解优化程序求解出来的变量进行计算。
1 2 3 456
a 1.25 8.75 0.5 5.75 3 7.25
b 1.25 0.75 4.75 5 6.5 7.75
d3
5
4
7 6 11
建立模型
记工地的位置为(a ,b ) ,水泥日用量为d,i1, 6;料场
ii
i
位置为(
x
j
,
y
j
)
,日储量为
e j
,
j 1,2
;从料场
j 向工地i
的
运送量为c ij 。
集合的基本用法
例四这理属个些解性SA季需(LIIL度求ANCtG的必tOrO帆须i公b建u船按司t模e需时需)语求满要的言量足决概最分。定念重别每下。要是个四的季4个0是度条季理正,度解常6的0集的条帆合生,船(产7生5S能条产et)力,量及2是。5其条4下0, 条帆船,每条船的生产费用为400美元。如果加班生产, 每条船的生产费用为450美元。每个季度末,每条船的 库存费用为20美元。假定生产提前期为0,初始库存为 10条船。如何安排生产可使总费用最小?
Lingo课件-介绍与简单程序
IF函数应Байду номын сангаас实例1
我们生产两种产品X和Y,我们想总共的成本最小 . 约 束条件是,两种产品的数量和要大于30,产品X的成本
是2,固定费用是 100 (生产这种产品时,起步费用),
产品Y的成本是3,固定成本是60.
实例程序
MIN = COST; COST = XCOST + YCOST; XCOST = @IF( X #GT# 0, 100, 0) + 2 * X; YCOST = @IF( Y #GT# 0, 60, 0) + 3 * Y;
1.
Lingo介绍
LINGO是一种专门用于求解最优化模型的软件. 由于
LINGO软件包执行速度快,易于输入、修改、求解和 分析数学规划(优化问题),因此在教育、科研和工
业界得到广泛应用. LINGO主要用于求线性规划、非线
性规划、二次规划、整数规划和动态规划问题,也可 用于一些线性和非线性方程组的求解以及代数方程求
runtime
1.3工具栏
2. 简单程序
LINGO系统与C语言、Maple软件不同,在LINGO 系统下变量与内部函数不区分大小写, 变量student与变 量Student, 函数@file 与@FILE认为相同,一般情况下, 系统会自动将变量全部转化为大写. 1)变量要求
在LINGO中创建变量名必须字母开头,由字母、数 字或下划线“_”组成的字符序列, 变量有效长度为32 个字符.
Solve求解实例
例1 Min f=x1-2*x2+x3; s.t.x1+x2-2*x2+x4=10; 2*x1-x2+4*x3<=8; -x1+2*x2-4*x3<=4; x1>0;x2>0;x3>0;x4>0;
lingo编程实验报告
lingo编程实验报告Lingo编程实验报告一、引言编程是现代科技领域不可或缺的一项技能。
在信息时代,计算机程序的编写已经渗透到我们生活的方方面面。
为了掌握这一技能,我参加了一次关于Lingo 编程的实验。
本文将对这次实验进行报告和总结。
二、Lingo编程简介Lingo是一种用于创建交互式多媒体内容的编程语言。
它最初由Adobe公司开发,用于支持其多媒体软件Director。
Lingo具有易学易用的特点,广泛应用于游戏开发、教育软件和互动式网页等领域。
通过使用Lingo,我们可以实现图像、声音、动画等多媒体元素的交互和控制。
三、实验目标本次实验的目标是利用Lingo编写一个简单的互动式游戏。
通过这个实验,我们将学习如何使用Lingo语言来控制多媒体元素的行为和交互,加深对编程的理解和应用。
四、实验过程1. 环境搭建在开始实验之前,我们首先需要安装Director软件,并创建一个新的项目。
Director提供了一个直观的图形界面,让我们可以轻松地创建多媒体场景和元素。
2. 编写代码在Director的Lingo编辑器中,我们可以编写Lingo代码。
Lingo代码由一系列指令组成,用于控制多媒体元素的行为。
在这个实验中,我们使用了一些常用的Lingo指令,如on mouseUp、go to the frame等。
3. 创建游戏场景在实验中,我们创建了一个简单的游戏场景,包括一个角色和一些障碍物。
通过编写Lingo代码,我们可以控制角色的移动和障碍物的生成。
当角色与障碍物碰撞时,游戏结束。
4. 测试和调试完成代码编写后,我们对游戏进行了测试和调试。
通过不断地运行和调试代码,我们发现了一些问题并进行了修复。
这个过程不仅帮助我们找出错误,还加深了对Lingo语言的理解和掌握。
五、实验结果经过一段时间的努力,我们最终成功地完成了这个互动式游戏。
游戏中的角色可以通过鼠标控制移动,并且当角色与障碍物碰撞时,游戏会结束并显示得分。
实验目的和要求
一、实验目的和要求:目的:本实验目的熟悉LINGO软件开发环境;了解并熟练掌握LINGO语言的数学模型的结构;掌握并应用LINGO语言来解决线性规划问题的能力;并了解灵敏度分析的含义..要求:1、了解LINGO软件应用界面;熟悉使用菜单及工具条的功能;2、使用LINGO完成例题验证;3、使用LINGO完成线性规划问题与对偶线性规划问题求解;并分析解题结果;二、实验内容:1 使用LINGO验证下列题目;并进行结果分析MODEL:SETS:QUATERS/Q1;Q2;Q3;Q4/:TIME;DEM;RP;OP;INV;ENDSETSMIN=@SUMQUATERS:400*RP+450*OP+20*INV;@FORQUATERSI:RPI<=40;@FORQUATERSI|TIMEI#GT#1:INVI=INVI-1+RPI+OPI-DEMI;INV1=10+RP1+OP1-DEM1;DATA:DEM=40;60;75;25;TIME=1;2;3;4;ENDDATAEND2使用LINGO验证下列题目;并进行结果分析MODEL:SETS:DAYS/D1;D2;D3;D4;D5;D6;D7/:RQMT;START;ENDSETSMIN=@SUMDAYS:START;@FORDAYSI:@SUMDAYSJ|J#GT#I+2#OR#J#LE#I#AND#J#GT3I-5:STARTJ>RQMTI;;DATA:RQMT=17;13;15;19;14;16;11;ENDDATAEND3 使用LINGO求解实验一两道题目;并进行结果分析min z =4*x1+4*x2+x3s.t. x1+x2+x3<=22*x1+x2<=32*x1+x2+3*x3>=3x1;x2;x3>=04max z=3*x1+x2s.t. x1+x2>=32*x1+x2<=4x1+x2=3x1;x2>=05使用LINGO求解实验一两道题目;并进行结果分析max z=3*x1+2*x22*x1+3*x2<=14.54*x1+x2<=16.5x1;x2>=0x1;x2为整数三、实验过程1、源程序MODEL:SETS:QUATERS/Q1;Q2;Q3;Q4/:TIME;DEM;RP;OP;INV;ENDSETSMIN=@SUM QUATERS:400*RP+450*OP+20*INV;@FOR QUATERSI:RPI<=40;@FOR QUATERSI|TIMEI#GT#1:INVI=INVI-1+RPI+OPI-DEMI;INV1=10+RP1+OP1-DEM1;;DATA:DEM=40;60;75;25;TIME=1;2;3;4;ENDDATAEND运行结果Global optimal solution found.Objective value: 78450.00Total solver iterations: 2变量函数值目标函数减少量 TIME Q1 1.000000 0.000000TIME Q2 2.000000 0.000000TIME Q3 3.000000 0.000000TIME Q4 4.000000 0.000000DEM Q1 40.00000 0.000000DEM Q2 60.00000 0.000000DEM Q3 75.00000 0.000000DEM Q4 25.00000 0.000000RP Q1 40.00000 0.000000RP Q2 40.00000 0.000000RP Q3 40.00000 0.000000RP Q4 25.00000 0.000000OP Q1 0.000000 20.00000OP Q2 10.00000 0.000000OP Q3 35.00000 0.000000OP Q4 0.000000 50.00000INV Q1 10.00000 0.000000INV Q2 0.000000 20.00000INV Q3 0.000000 70.00000INV Q4 0.000000 420.0000行号松弛或剩余值对偶价格1 78450.00 -1.0000002 0.000000 30.000003 0.000000 50.000004 0.000000 50.000005 15.00000 0.0000006 0.000000 450.00007 0.000000 0.0000008 0.000000 450.00009 0.000000 430.000010 0.000000 400.000011 0.000000 0.000000结果分析:经过两次迭代;已经找到全局最优解;得到最小值78450.00;此时TIMEQ1=1;TIMEQ2=2;TIMEQ3=3;TIMEQ4=4;DEMQ1=40;DEMQ2=60;DEMQ3=75;DEMQ4= 25;RPQ1=40;RPQ2=40;RPQ3=40;RPQ4=25;OPQ1=0;OPQ2=15;OPQ3=35;OPQ4=0;INVQ 1=10;INVQ2=0;INVQ3=0;INVQ4=02、源程序MODEL:SETS:DAYS/D1;D2;D3;D4;D5;D6;D7/:RQMT;START;ENDSETSMIN=@SUM DAYS:START;@FOR DAYSI:@SUM DAYSJ|J#GT#I+2#OR#J#LE#I#AND#J#GT#I-5:STARTJ>RQMTI;;DATA:RQMT=17;13;15;19;14;16;11;ENDDATAEND运行结果Global optimal solution found.Objective value: 22.33333Total solver iterations: 11变量函数值目标函数减少量RQMT D1 17.00000 0.000000RQMT D2 13.00000 0.000000RQMT D3 15.00000 0.000000RQMT D4 19.00000 0.000000RQMT D5 14.00000 0.000000RQMT D6 16.00000 0.000000RQMT D7 11.00000 0.000000START D1 6.000000 0.000000START D2 5.333333 0.000000START D3 0.000000 0.000000START D4 7.333333 0.000000START D5 0.000000 0.3333333START D6 3.333333 0.000000START D7 0.3333333 0.000000行号松弛或剩余值对偶价格1 22.33333 -1.0000002 0.000000 -0.33333333 2.000000 0.0000004 0.000000 -0.33333335 0.000000 -0.33333336 4.666667 0.0000007 0.000000 -0.33333338 0.000000 0.000000结果分析:经过11次迭代;已经找到全局最优解;最小值为22.33333;此时RQMTD1=17;RQMTD2=13;RQMTD3=15;RQMTD4=19;RQMTD5=14;RQMTD6=16;RQMTD7=11 ;STARTD1=6;STARTD2=5.333333;STARTD3=0;STARTD4=7.333333;STARTD5=0;STAR TD6=3.333333;STARTD7=0.3333333、源程序MODEL:MIN=4*X1+4*X2+X3;X1+X2+X3<=2;2*X1+X2<=3;2*X1+X2+3*X3>=3;X1>=0;X2>=0;X3>=0;END运行结果Global optimal solution found.Objective value: 1.000000Total solver iterations: 1变量函数值目标函数减少量X1 0.000000 3.333333X2 0.000000 3.666667X3 1.000000 0.000000行号松弛或剩余值对偶价格1 1.000000 -1.0000002 1.000000 0.0000003 3.000000 0.0000004 0.000000 -0.33333335 0.000000 0.0000006 0.000000 0.0000007 1.000000 0.000000结果分析:经过一次迭代;已经找到全局最优解;最小值为1;此时x1=0;x2=0;x3=1 4、源程序MODEL:MAX=3*X1+X2;X1+X2>=3;2*X1+X2<=4;X1+X2=3;X1>=0;X2>=0;END运行结果:Global optimal solution found.Objective value: 5.000000Total solver iterations: 0变量函数值目标函数减少量X1 1.000000 0.000000X2 2.000000 0.000000行号松弛或剩余值对偶价格1 5.000000 1.0000002 0.000000 0.0000003 0.000000 2.0000004 0.000000 -1.0000005 1.000000 0.0000006 2.000000 0.000000结果分析:已经找到全局最优解;函数最大值为5;此时x1=1;x2=25、源程序MODEL:MAX=3*X1+2*X2;2*X1+3*X2<=14.5;4*X1+X2<=16.5;X1>=0;X2>=0;@GIN X1;@GIN X2;END运行结果:Global optimal solution found.Objective value: 13.00000Extended solver steps: 0Total solver iterations: 3变量函数值目标函数减少量X1 3.000000 -3.000000X2 2.000000 -2.000000行号松弛或剩余值对偶价格1 13.00000 1.0000002 2.500000 0.0000003 2.500000 0.0000004 3.000000 0.0000005 2.000000 0.000000结果分析:经过三次迭代;已经得到全局最优解;函数最大值为13;此时x1=3;x2=2四、思考题1、LINGO软件主要能解决哪些问题主要用来解决将实际问题模型化后;在几条限制条件下;编程解决一些优化、规划问题;诸如最短路线问题、最少费用问题、分配问题指派问题、最小生成树问题、二次分配问题;;得出局部或全局最优解;经常构造0—1变量;解决实际中的整数规划问题;;还可以做灵敏度分析等等...2、使用LINGO编程与LINDO解决LP问题的区别LINDO是一种专门用于求解数学规划问题的软件包..由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题..LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题..也可以用于一些非线性和线性方程组的求解以及代数方程求根等..LINDO中包含了一种建模语言和许多常用的数学函数包括大量概论函数;可供使用者建立规划问题时调用..LINGO是在LINDO的基础上做的软件; 除了解线性规划问题之外;还加了非线性的求解器;另外有集的概念;可以用集操作函数方便写模型可以更方便的处理复杂的问题..3、说说对偶价格的含义当求目标函数的最大值时;增加的数量就是改进的数量;所以影子价格就等于对偶价格;当求目标函数的最小值时;改进的数量应该是减少的数量;所以影子价格即为负的对偶价格..影子价格又称影子利率..用线性规则方法计算出来的反映资源最优使用效果的价格..用微积分描述资源的影子价格;即当资源增加一个数量而得到目标函数新的最大值时;目标函数最大值的增量与资源的增量的比值;就是目标函数对约束条件即资源的一阶偏导数..用线性规划方法求解资源最优利用时;即在解决如何使有限资源的总产出最大的过程中;得出相应的极小值;其解就是对偶解;极小值作为对资源的经济评价;表现为影子价格..这种影子价格反映劳动产品、自然资源、劳动力的最优使用效果..另外一种影子价格用于效用与费用分析..广泛地被用于投资项目和进出口活动的经济评价..例如;把投资的影子价格理解为资本的边际生产率与社会贴现率的比值时;用来评价一笔钱用于投资还是用于消费的利亏;把外汇的影子价格理解为使市场供求均衡价格与官方到岸价格的比率;用来评价用外汇购买商品的利亏;使有限外汇进口值最大..因此;这种影子价格含有机会成本即替代比较的意思;一般人们称之为广义的影子价格..实验体会:通过这次实验熟悉了LINGO软件开发环境;并掌握LINGO语言的数学模型的结构;知道它在企业与决策过程中的重要..熟悉了LINGO工作界面;也了解了LINDO与LINGO的异同性;以及求解过程的注意..在做完这格试验后;我了解到;我们可以借助lingo软件将一些生产问题;进行合理的数学建模并得出理论上的最优解;但同时要求我们考虑到建模范围内的方方面面;一旦没有考虑到一个约束条件的话;得出的结论会大相径庭..通过实验;我收获很多;要善于将理论与实际结合;合理运用计算机软件解决实际问题..。
LINGO使用说明(比较简单)
@sum( xb1(j) : a(i,j)*x(j)) +c(i) <= b(i);
); 同时我们在E盘新建了一个名为DATA.XLS的EXCLE文件;关于 EXCLE的使用,这里不更多说明。需要指出的是‘ DA ’ , ‘ DB ’ , ‘ DC ’是EXCLE中对一系列单元格的命名,即先选中某个一维或多维单元格 区域,然后再在显示单元格行列坐标的文本框中写入对这个区域的命 名,再回车确认。这样就可以通过这个命名来控制访问EXCLE的数据 了。至于另一种操作方法请查找相关的help文件。 以上只是介绍了LINGO基本的知识,上面的程序未经调试,可能存 在一些问题!还有希望大家能尽可能使用help文件,在其中有着详细的 解答!
相应Lingo代码如下: @max( xb1( i ) : b( i )*c( i ) ) <=33 ;
同样MAX语句也可以用于多维变量。 4.MIN语句:
MIN语句的功能是从一组取值与下标有关的表达式中返回它们 的最小值。用法与MAX的相同。
三.EXCEL电子表格接口
在你解决一个模型的时候,或许会有大量的数据要整合到你的 代码中去,而这些数据大部分时候会被保存在电子表格中。而且 EXCEL也是用来处理你所得到的数据较好的一个选择。出于上述原
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗 口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将 被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的 窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实 现。 示例:求解线性规划问题:
Lingo的使用与编程
四舍五入、取整函数等 • 尽量使用线性模型,减少非线性约束和非线性变量的个数
– 如x/y <5 改为x<5y • 合理设定变量上下界,尽可能给出变量初始值 • 模型中使用的参数数量级要适当
需求量 35 37 22 32 41 32 43 38
拥有量
B1 B2 B3 B4 B5 B6 B7 B8
60 55 51 depot 43 41 52
A1
62674259
A2
49538582
A3
52197433
A4
76739271
A5
23957265
A6 5 5 2 2 8 1 4 3
capacity (i) V(i)
x 8 j1 ij
V
i
翻译成lingo语言即为:
@FOR( WAREHOUSES( I):@SUM( VENDORS( J): x( I, J))<=v( I));
SETS: WAREHOUSES/1..6/: v; VENDORS/1..8/: d; LINKS( WAREHOUSES, VENDORS): C, x; ENDSETS DATA: v = 60 55 51 43 41 52; d = 35 37 22 32 41 32 43 38; C=62674259 49538582 52197433 76739271 23957265 5 5 2 2 8 1 4 3; ENDDATA MIN = @SUM( LINKS( I, J): C( I, J) * x( I, J)); @FOR( VENDORS( J): @SUM( WAREHOUSES( I): x( I, J)) = d( J)); @FOR( WAREHOUSES( I): @SUM( VENDORS( J): x( I, J)) <= v( I)); END
lingo
集循环函数
集循环函数遍历整个集进行操作。其语法为: @function(setname[(set_index_list)[|conditional_qualifier]]:e xpression_list);
Lingo的四个集循环函数: @for(x()、@min():求最大值、最小值。
Lingo程序结构 Lingo程序结构
集合段,定义集合
数据段,输入数据
数据初始化段,赋 予数据初值
!目标函数; 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)); end
LINGO优化软件 LINGO优化软件
美国LINDO公司的主要产品: 公司的主要产品: 美国 公司的主要产品 LINDO: Linear INteractive and Discrete Optimizer (V6.1) LINGO: Linear INteractive General Optimizer (V10.0) LINDO API: LINDO Application Programming Interface (V5.0)
sets: product/A B/; machine/M N/; week/1..2/; allowed(product,machine,week):x; endsets 派生集成员:
定义了三个原 始集,allowed 为三个原始集 构成的派生集。 X为派生集的属 性。
(A,M,1) (A,M,2) (A,N,1) (A,N,2) 集成员按这个顺序排列。 (B,M,1) (B,M,2) (B,N,1) (B,N,2)
LINGO软件程序
LINGO软件程序程序一:MODEL:SETS:! Dynamic programming illustration (see Anderson, Sweeney & Williams, An Intro to Mgt Science,6th Ed.). We have a network of 10 cities. Wewant to find the length of the shortest routefrom city 1 to city 10.;! Here is our primitive set of ten cities, whereF( i) represents the shortest path distancefrom city i to the last city;CITIES /1..10/: F, CONPATH;! The derived set ROADS lists the roads thatexist between the cities (note: not all citypairs are directly linked by a road, and roadsare assumed to be one way.);ROADS( CITIES, CITIES)/1,2 1,3 1,42,5 2,6 2,73,5 3,6 3,74,5 4,65,8 5,96,8 6,97,8 7,98,10 9,10/: D, RONPATH;! D( i, j) is the distance from city i to j; ENDSETSDATA:! Here are the distances that correspond to theabove links;D =1 5 213 12 116 10 412 143 96 58 105 2;ENDDATA! If ou are already in last city, then the cost to travel to it is 0;F( @SIZE( CITIES)) = 0;! The following is the classic dynamic programmingrecursion. In words, the shortest distance fromCity i to last city is the minimum over allcities j reachable from i of the sum of thedistance from i to j plus the minimal distancefrom j to last city;@FOR( CITIES( i)| i #LT# @SIZE( CITIES):F( i) = @MIN( ROADS( i, j): D( i, j) + F( j)););! Set CONPATH( j) > 0 if city j is on any critical path,i.e., if going to j from some i on the critical path,still allows us to get to last city in optimal time;CONPATH( 1) = 1;@FOR( CITIES( j)| j #GT# 1:CONPATH( j) = @MAX( ROADS( i,j): CONPATH( i)*((F(I)-F( j) #EQ# D(i,j)))););! Set RONPATH(i,j) = 1 if arc i,j is on any critical path,i.e., both i and j are on path and (i,j) is shortest pathfrom i to j. Note, we do not assume distances satisfytriangle inequality;@FOR( ROADS(i,j): RONPATH(I,J) =@SMIN( CONPATH(i), CONPATH(j))*((F(i)-F( j)) #EQ# D(i,j)););END程序二:MODEL:! The Mexican Steel problem;SETS:! Steel plants;PLANT /AHMSA FUNDIDA SICARTSA HYLSA HYLSAP/:RD2, MUE;! Markets;MARKET / MEXICO MONTE GUADA /: DD, RD3, MUV;! Final products;CF /STEEL/: PV, PE, EB;! Intermediate products;CI / SPONGE PIGIRON/;! Raw materials;CR /PELLETS COKE NATGAS ELECTRIC SCRAP/ : PD;! Processes;PR /PIGIRON1 SPONGE1 STEELOH STEELEL STEELBOF/;! Productive units;UNIT / BLASTFUR OPENHEAR BOF DIRECT ELECARC/;! ;CRXP( CR, PR) : A1; CIXP( CI, PR) : A2;CFXP( CF, PR) : A3; UXP( UNIT, PR) : B;UXI( UNIT, PLANT) : K;PXM( PLANT, MARKET) : RD1, MUF;PXI( PR, PLANT) : Z;CFXPXM( CF, PLANT, MARKET) : X;CRXI( CR, PLANT) : U; CFXI( CF, PLANT) : E;CFXM( CF, MARKET) : D, V;ENDSETS! Demand equations;@FOR( CFXM( C, J):D( C, J) = 5.209 * ( 1 + 40/ 100) * DD( J)/100); ! Transport rate equations;@FOR( PXM( I, J)| RD1( I, J) #GT# 0:MUF( I, J) = 2.48 + .0084 * RD1( I, J));@FOR( PXM( I, J)| RD1( I, J) #LE# 0:MUF( I, J) = 0);@FOR( PLANT( I)| RD2( I) #GT# 0:MUE( I) = 2.48 + .0084 * RD2( I));@FOR( PLANT( I)| RD2( I) #LE# 0: MUE( I) = 0);@FOR( MARKET( J)| RD3( J) #GT# 0:MUV( J) = 2.48 + .0084 * RD3( J));@FOR( MARKET( J)| RD3( J) #LE# 0: MUV( J) = 0); ! For each plant I1;@FOR( PLANT( I1):! Sources >= uses, final products;@FOR( CF( CF1): [MBF]@SUM( PR( P1): A3( CF1, P1) * Z( P1, I1)) >=@SUM( MARKET( J1): X( CF1, I1, J1)) +E( CF1, I1));! Intermediate products;@FOR( CI( CI1): [MBI]@SUM( PR( P1): A2( CI1, P1) *Z( P1, I1)) >= 0);! Raw materials;@FOR( CR( CR1): [MBR]@SUM( PR( P1): A1( CR1, P1) *Z( P1, I1)) + U( CR1, I1) >= 0);! Capacity of each productive unit M1;@FOR( UNIT( M1): [CC]@SUM( PR( P1): B( M1, P1) * Z( P1, I1)) <=K( M1, I1)););! For each final product CF1;@FOR( CF( CF1):! Demand requirements for each market J1;@FOR( MARKET( J1): [MR]@SUM( PLANT(I1): X( CF1, I1, J1)) + V(CF1, J1) >= D( CF1, J1));! Upper limit on exports ;[ME] @SUM( PLANT( I1): E( CF1, I1)) <= EB( CF1); );! Components of objective;PHIPSI = @SUM( CR( CR1):@SUM( PLANT( I1): PD(CR1) * U(CR1, I1)));PHILAM = @SUM( CF( CF1):@SUM(PLANT(I1): @SUM(MARKET(J1):MUF(I1,J1)*X(CF1, I1, J1))) + @SUM( MARKET( J1):MUV( J1) * V( CF1, J1)) + @SUM( PLANT( I1):MUE( I1) * E( CF1, I1)));PHIPI = @SUM( CFXM( CF1, I1):PV( CF1) * V( CF1, I1));PHIEPS = @SUM( CFXP( CF1, I1):PE( CF1) * E( CF1, I1));[OBJROW] MIN = PHIPSI + PHILAM + PHIPI - PHIEPS; DATA:A1= -1.58, -1.38, 0, 0, 0,-0.63, 0, 0, 0, 0,0, -0.57, 0, 0, 0,0, 0, 0, -0.58, 0,0, 0, -0.33, 0, -0.12;A2= 1, 0, -0.77, 0, -0.95,0, 1, 0, -1.09, 0;A3= 0, 0, 1, 1, 1;B = 1 0 0 0 00 0 1 0 00 0 0 0 10 1 0 0 00 0 0 1 0;K = 3.25, 1.40, 1.10, 0, 0,1.50, 0.85, 0, 0, 0,2.07, 1.50, 1.30, 0, 0,0, 0, 0, 0.98, 1,0, 0, 0, 1.13, 0.56;RD1= 1204 218 11251017 0 1030819 1305 7041017 0 1030185 1085 760;RD2 = 739, 521, 0, 521, 315;RD3 = 428, 521, 300;PD = 18.7, 52.17, 14, 24, 105;PV = 150;PE = 140;EB = 1;DD = 55, 30, 15;ENDDATAEND程序三:MODEL:! The Vehicle Routing Problem (VRP);!************************************;! WARNING: Runtimes for this model ;! increase dramatically as the number;! of cities increase. Formulations ;! with more than a dozen cities ;! WILL NOT SOLVE in a reasonable ;! amount of time! ;!************************************;SETS:! Q(I) is the amount required at city I,U(I) is the accumulated delivers at city I ;CITY/1..8/: Q, U;! DIST(I,J) is the distance from city I to city J X(I,J) is 0-1 variable: It is 1 if some vehicle travels from city I to J, 0 if none;CXC( CITY, CITY): DIST, X;ENDSETSDATA:! city 1 represent the common depo;Q = 0 6 3 7 7 18 4 5;! distance from city I to city J is same from city J to city I distance from city I to the depot is 0, since the vehicle has to return to the depot;DIST = ! To City;! Chi Den Frsn Hous KC LA Oakl Anah From;0 996 2162 1067 499 2054 2134 2050!Chicago;0 0 1167 1019 596 1059 1227 1055!Denver;0 1167 0 1747 1723 214 168 250!Fresno;0 1019 1747 0 710 1538 1904 1528!Houston;0 596 1723 710 0 1589 1827 1579!K. City;0 1059 214 1538 1589 0 371 36!L. A.;0 1227 168 1904 1827 371 0 407!Oakland;0 1055 250 1528 1579 36 407 0;!Anaheim;! VCAP is the capacity of a vehicle ;VCAP = 18;ENDDATA! Minimize total travel distance;MIN = @SUM( CXC: DIST * X);! For each city, except depot....;@FOR( CITY( K)| K #GT# 1:! a vehicle does not traval inside itself,...;X( K, K) = 0;! a vehicle must enter it,... ;@SUM( CITY( I)| I #NE# K #AND# ( I #EQ# 1 #OR# Q( I) + Q( K) #LE# VCAP): X( I, K)) = 1;! a vehicle must leave it after service ;@SUM( CITY( J)| J #NE# K #AND# ( J #EQ# 1 #OR# Q( J) + Q( K) #LE# VCAP): X( K, J)) = 1;! U( K) is at least amount needed at K but can't exceed capacity;@BND( Q( K), U( K), VCAP);! If K follows I, then can bound U( K) - U( I);@FOR( CITY( I)| I #NE# K #AND# I #NE# 1:U( K) >= U( I) + Q( K) - VCAP + VCAP *( X( K, I) + X( I, K)) - ( Q( K) + Q( I))* X( K, I););! If K is 1st stop, then U( K) = Q( K);U( K) <= VCAP - ( VCAP - Q( K)) * X( 1, K);! If K is not 1st stop...;U( K)>= Q( K)+ @SUM( CITY( I)|I #GT# 1: Q( I) * X( I, K)););! Make the X's binary;@FOR( CXC: @BIN( X));! Minimum no. vehicles required, fractionaland rounded;VEHCLF = @SUM( CITY( I)| I #GT# 1: Q( I))/ VCAP;VEHCLR = VEHCLF + 1.999 -@WRAP( VEHCLF - .001, 1);! Must send enough vehicles out of depot;@SUM( CITY( J)| J #GT# 1: X( 1, J)) >= VEHCLR;END程序四:MODEL:MIN = 10 * W88 + 18 * W87 + 23 * W86 + 28 * W85 + 33 * W84 + 38 * W83 + 43 * W82 + 48 * W81 + 16 * W78 + 8 * W77 + 16 * W76 + 21 * W75 + 26 * W74 + 31 * W73 + 36 * W72 + 41 * W71 + 19 * W68 + 14 * W67 + 6 * W66 + 14 * W65 + 19 * W64 + 24 * W63 + 29 * W62 + 34 * W61 + 22 * W58 + 17 * W57 + 12 * W56 + 4 * W55 + 12 * W54 + 17 * W53 + 22 * W52 + 27 * W51 + 25 * W48 + 20 * W47 + 15 * W46 + 10 * W45 + 2 * W44 + 10 * W43 + 15 * W42 + 20 * W41 + 28 * W38 + 23 * W37 + 18 * W36 + 13 * W35 + 8 * W34 + 8 * W32 + 13 * W31 + 40 * W28 + 35 * W27 + 30 * W26 + 25 * W25 + 20 * W24 + 15 * W23 + 7 * W22 + 15 * W21 + 52 * W18 + 47 * W17 + 42 * W16 + 37 * W15 + 32 * W14 + 27 * W13 + 22 * W12 + 14 * W11;! Probabilities sum to 1;W88 + W87 + W86 + W85 + W84 + W83 + W82 + W81 + W78 + W77 + W76 + W75 + W74 + W73 + W72 + W71 + W68 + W67 + W66 + W65 + W64 + W63 + W62 + W61 + W58 + W57 + W56 + W55 + W54 + W53 + W52 + W51 + W48 + W47 + W46 + W45 + W44 + W43 + W42 + W41 + W38 + W37 + W36 + W35 + W34 + W33 + W32 + W31 + W28 + W27 + W26 + W25 + W24 + W23 + W22 + W21 + W18 + W17 + W16 + W15 + W14 + W13 + W12 + W11 = 1;! Prob{out of state 1}- Prob{ into state 1} = 0;- .4 * W82 - .5 * W81 - .4 * W72 - .5 * W71 - .4 * W62 - .5 * W61 - .4 * W52 - .5 * W51 - .4 * W42 - .5 * W41 - .4 * W32 - .5 * W31 - .4 * W22 - .5 * W21 + W18 + W17 + W16 + W15 + W14 + W13 + .6 * W12 + .5 * W11 = 0;! Into state 2;- .4 * W83 - .1 * W82 - .5 * W81 - .4 * W73 - .1 * W72 - .5 * W71 - .4 * W63 - .1 * W62 - .5 * W61 - .4 * W53 - .1 * W52 - .5 * W51 - .4 * W43 - .1 * W42 - .5 * W41 - .4 * W33 - .1 * W32 - .5 * W31 + W28 + W27 + W26 + W25 + W24 + .6 * W23 + .9 * W22 + .5 * W21 - .4 * W13 - .1 * W12 - .5 * W11 = 0;! Into state 3;- .4 * W84 - .1 * W83 - .5 * W82 - .4 * W74 - .1 * W73 - .5 * W72 - .4 * W64 - .1 * W63 - .5 * W62 - .4 * W54 - .1 * W53 - .5 * W52 - .4 * W44 - .1 * W43 - .5 * W42 + W38 + W37 + W36 + W35 + .6 * W34 + .9 * W33 + .5 * W32 + W31 - .4 * W24 - .1 * W23 - .5 * W22 - .4 * W14 - .1 * W13 - .5 * W12 = 0;! Into state 4;- .4 * W85 - .1 * W84 - .5 * W83 - .4 * W75 - .1 * W74 - .5 * W73 - .4 * W65 - .1 * W64 - .5 * W63 - .4 * W55 - .1 * W54 - .5 * W53 + W48 + W47 + W46 + .6 * W45 + .9 * W44 + .5 * W43 + W42 + W41 - .4 * W35 - .1 * W34 - .5 * W33 - .4 * W25 - .1 * W24 - .5 * W23 - .4 * W15 - .1 * W14 - .5 * W13 = 0;! Into state 5;- .4 * W86 - .1 * W85 - .5 * W84 - .4 * W76 - .1 * W75 - .5 * W74 - .4 * W66 - .1 * W65 - .5 * W64 + W58 + W57 + .6 * W56 + .9 * W55 + .5 * W54 + W53 + W52 + W51 - .4 * W46 - .1 * W45 - .5 * W44 - .4 * W36 - .1 * W35 - .5 * W34 - .4 * W26 - .1 * W25 - .5 * W24 - .4 * W16 - .1 * W15 - .5 * W14 =0;! Into state 6;- .4 * W87 - .1 * W86 - .5 * W85 - .4 * W77 - .1 * W76- .5 * W75 + W68 + .6 * W67 + .9 * W66 + .5 * W65 + W64 + W63 + W62 + W61 - .4 * W57 - .1 * W56 - .5 * W55 - .4 * W47 - .1 * W46 - .5 * W45 - .4 * W37 - .1 * W36 - .5 * W35 - .4 * W27 - .1 * W26 - .5 * W25 - .4 * W17 - .1 * W16 - .5 * W15 = 0;! Into state 7;- .4 * W88 - .1 * W87 - .5 * W86 + .6 * W78 + .9 * W77 + .5 * W76 + W75 + W74 + W73 + W72 + W71 - .4 * W68 - .1 * W67 - .5 * W66 - .4 * W58 - .1 * W57 - .5 * W56 - .4 * W48 - .1 * W47 - .5 * W46 - .4 * W38 - .1 * W37 - .5 * W36 - .4 * W28 - .1 * W27 - .5 * W26 - .4 * W18 - .1 * W17 - .5 * W16 = 0;!! Into state 8;.4 * W88 + .5 * W87 + W86 + W85 + W84 + W83 + W82 + W81 - .6 * W78 - .5 * W77 - .6 * W68 - .5 * W67 - .6 * W58 - .5 * W57 - .6 * W48 - .5 * W47 - .6 * W38 - .5 * W37 - .6 * W28 - .5 * W27 - .6 * W18 - .5 * W17 = 0;END程序五:MODEL:!Product pricing;!Producer chooses prices to maximize producer surplus;!Each customer chooses the one product/bundle that maximizes consumer surplus;SETS:CUST/ HOME STUD BUS/:SIZE, ! Each cust/market has a size;DISC, ! Discount off list price willing to give to I;DISD, ! Discount given to dealer(who sells full price);FM, ! Fixed cost of developing market I;YM, ! = 1 if we develop market I, else 0;SRP; ! Consumer surplus achieved by customer I;BUNDLE/ B1 B2 B3 B12 B13 B23 B123/:COST, ! Each product/bundle has a cost/unit to producer;FP, ! Fixed cost of developing product J;YP, ! = 1 if we develop product J, else 0;PRICE, ! List price of product J;PMAX; ! Max price that might be charged;CXB( CUST, BUNDLE): RP, ! Reservation price of customer I for product J;EFP, ! Effective price I pays for J, = 0 if not bought;X; ! = 1 if I buys J, else 0;ENDSETSDATA:! Reservation prices;RP = 400 50 200 450 650 250 700200 200 50 350 250 250 400500 100 100 550 600 260 600;! Variable costs of each product;COST = 100 20 30 120 130 50 150;! Fixed product development costs;FP = 30000 40000 60000 10000 20000 8000 0;! Customer sizes;SIZE = 4000 3000 3000;! Fixed market development costs;FM = 15000 12000 10000;! Discount off list price to each customer, 0 <= DISC < 1;DISC = 0 .1 0;! Discount/tax off list to each dealer, 0 <= DISD < 1;DISD = .05 0 0;ENDDATA!-------------------------------------------------;! The seller wants to maximize the profit contribution; [PROFIT] MAX =@SUM( CXB( I, J):SIZE( I) * EFP( I, J) ! Revenue;- COST( J)* SIZE( I) * X( I, J)! Variable cost;- EFP( I, J) * SIZE( I) * DISD( I))! Discount to dealers;- @SUM( BUNDLE: FP * YP)! Product development cost;- @SUM( CUST: FM * YM);! Market development cost;! Each customer can buy at most 1 bundle;@FOR( CUST( I):@SUM( BUNDLE( J) : X( I, J)) <= YM( I);@BIN( YM( I)););! Force development costs to be incurred...;@FOR( CXB( I, J): X( I, J) <= YP( J);! for product J;! The X's are binary, yes/no, 1/0 variables;@BIN( X( I, J)););! Compute consumer surplus for customer I;@FOR( CUST( I): SRP( I)= @SUM( BUNDLE( J): RP( I, J) * X( I, J)- EFP( I, J));! Customer chooses maximum consumer surplus;@FOR( BUNDLE( J):SRP( I) >= RP( I, J)- ( 1 - DISC( I)) * PRICE( J)););! Force effective price to take on proper value;@FOR( CXB( I, J):! zero if I does not buy J;EFP( I, J) <= X( I, J) * RP( I, J);! cannot be greater than price;EFP( I, J) <= ( 1 - DISC( I)) * PRICE( J);! cannot be less than price if bought;EFP( I, J) >= ( 1 - DISC( I))* PRICE( J)- ( 1 - X( I, J))* PMAX( J););! Compute upper bounds on prices;@FOR( BUNDLE( J): PMAX( J)= @MAX( CUST( I): RP( I, J)/(1 - DISC( I))););END程序六:MODEL:! (STEINERT);!Given a set of nodes, the distance between them, and a specified subset of the nodes, find the set of links so that the total distance is minimized, and there is a (unique) path between every pair of nodes in the specified subset. This is called a Steiner tree problem;SETS:ALLNODE / A B C D E F G H I J K/: U;! U( I) = level of node I in the tree;! U( 1) = 0;! The subset of nodes that must be connected. The first node must be a must-do node;MUSTNOD( ALLNODE)/ A B C D E/;LINK( ALLNODE, ALLNODE):DIST, ! The distance matrix;X; ! X( I, J) = 1 if we use link I, J;ENDSETSDATA: ! Distance matrix need not be symmetric;! A B C D E F G H I J K;DIST =0 14 999 999 999 4 999 999 999 999 99914 0 999 999 999 999 999 3 999 999 999999 999 0 9 999 999 999 999 2 999 999999 999 9 0 999 999 999 999 999 3 6999 999 999 999 0 999 999 5 999 999 34 999 999 999 999 0 999 999 3 999 999999 999 999 999 999 999 0 2 999 3 999999 3 999 999 5 999 2 0 999 999 999999 999 2 999 999 3 999 999 0 8 999999 999 999 3 999 999 3 999 8 0 999999 999 999 6 3 999 999 999 999 999 0;ENDDATA!-----------------------------------------------;! The model size: Warning, may be slow for N > 8;N = @SIZE( ALLNODE);! Objective is minimize total distance of links;MIN = @SUM( LINK: DIST * X);! For each must-do node K, except the base, ... ;@FOR( MUSTNOD( K)| K #GT# 1:! It must be entered;@SUM( ALLNODE( I)| I #NE# K: X( I, K)) = 1;! Force U(J)=number arcs between node J and node 1. Note: This is not very strong for large problems;@FOR( ALLNODE( J)| J #GT# 1 #AND# J #NE# K:U( J) >= U( K) + X ( K, J) -( N - 2) * ( 1 - X( K, J)) +( N - 3) * X( J, K); ););! There must be an arc out of node 1;@SUM( ALLNODE( J)| J #GT# 1: X( 1, J)) >= 1;!If an arc out of node J, there must be an arc in;@FOR( ALLNODE( J)| J #GT# 1:@FOR( ALLNODE( K)| K #NE# J:@SUM( ALLNODE( I)| I #NE# K #AND# I #NE# J:X( I, J)) >= X( J, K);); );! Make the X's 0/1;@FOR( LINK: @BIN( X); );! Level of a node except the base is at least 1, no more than N-1, and is 1 if link to the base;@FOR( ALLNODE( K)| K #GT# 1:@BND( 1, U( K), 999999);U( K) < N - 1 - ( N - 2) * X( 1, K); );END。
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;endsetsdata:X=285 123 106 !input data X;162 128 64275 348 104210 154 104;Y=48 43 253 41 !output data Y;34 27 148 2736 45 175 2333 56 160 84;enddatamin=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;end1] 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;6] OV(OI,DMU):Y; ! Output Variable;7] endsets8] data:9] p=(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);10]X=5533.72 3029.54 6183.25 2999.95 6206.32 7484.22 8909.77 2732.06 2497.32 3662.31 2956.09 3272.09 3204.73 3043.49 2748.25 5142.15 3137.34 2758.55 22672.75 12085.89 4206.85;11]Y=41253 23613 43959 16698 25335 20053 12313 14498 18022 22490 13212 18586 19499 15588 14623 18881 8717 16644 14662 11659 1756030291.64 11948.11 27240.53 10915.13 16627.77 17793.02 19329.71 15233.70 9476.91 15761.74 10458.03 14246.10 11945.66 11963.18 10997.07 24596.55 7694.88 10944.88 40312.57 19332.42 14571.148205 5762.2 6292.5 5388.5 6485.8 5940 4035.5 5389.9 5503.8 5613 4814.3 5942.5 5609.7 5377.2 5084 5180.8 3847.2 5552.1 3741.2 2743.8 4565.46.36 5.19 5.75 4.407.23 6.718.07 6.45 6.38 7.46 5.12 6.715.24 4.41 4.576.75 4.18 5.427.89 6.17 4.506.68 5.70 6.73 5.18 6.37 6.05 5.70 6.71 6.03 6.47 5.83 5.77 5.87 5.04 5.16 6.24 4.25 6.48 6.54 6.21 4.9049 39 60 32 39 43 48 32 3442 32 32 38 29 28 48 28 36 3427 2784 62 86 50 55 60 68 51 5057 49 51 50 46 49 57 47 53 61 64 4214.46 21.62 36.56 28.66 20.63 33.33 60.19 25.58 26.05 26.8831.00 24.01 29.69 29.26 33.63 37.33 41.85 32.45 131.61 218.91 47.260.90 0.60 0.72 0.55 0.80 0.75 0.53 0.78 0.70 0.67 0.69 1.03 0.51 0.55 0.53 0.78 0.50 0.62 0.31 0.31 0.360.25 0.19 0.34 0.11 0.21 0.15 0.13 0.13 0.14 0.24 0.10 0.13 0.12 0.10 0.11 0.13 0.07 0.13 0.08 0.05 0.050.42 0.29 0.51 0.19 0.28 0.24 0.27 0.19 0.20 0.28 0.22 0.20 0.20 0.22 0.20 0.20 0.16 0.19 0.22 0.17 0.11 ;12]enddata13]max=@sum(DMU:P*T);14]@for(DMU(j));15]S(j)=@sum(II(i): w(i)*X(i,j));16]T(j)=@sum(OI(i): u(i)*Y(i,j));17]S(j)>=T(j);18]@sum(DMU: P*S)=1;END一个LINGO的通用程序1] sets:2] DMU/1..6/:S,T,P; ! Decision Making Unit;3] II/1..2/:w; ! Input Index;4] OI/1..2/:u; ! Output Index;5] IV(II,DMU):X; ! Input Variable;6] OV(OI,DMU):Y; ! Output Variable;7] endsets8] data:9] p=?;10]X=具体数字;11]Y=具体数字;12]enddata13]max=@sum(DMU:P*T);14]@for(DMU(j));15]S(j)=@sum(II(i): w(i)*X(i,j));16]T(j)=@sum(OI(i): u(i)*Y(i,j));17]S(j)>=T(j);18]@sum(DMU: P*S)=1;END通常情况下直接输入就行,我做的东西有300多个数据,先从excel按列粘到txt上,整理好格式,然后粘到LINDO 上运行就好。
如何编写一个LINGO 9.0程序
一、如何编写一个LINGO 9.0程序1、编写双击LINGO图标,启动软件,屏幕上显示LINGO的初始用户界面。
光标所在的窗口称为模型窗口(model window),用来供用户输入优化模型(LINGO程序)。
输入结束后,从莱单中选择File/Save(F5)命令把它保存在一个文件中,默认的后缀名为lg4,即LINGO程序的二进制文件。
保存的文件将来可以用File/Open(F3)重新打开进行修改。
2、运行从莱单中选择LINGO/Solve(Ctrl+S)命令运行程序。
用鼠标选择主莱单中Window/Reports Window,这就是最终结果的报告窗口。
二、如何编写一个简单的LINGO程序说明:(1)在模型窗口中输入一个LINGO程序,以“MODEL:”开始,以“END”结束。
对简单的模型,这两个语句也可以省略。
(2)目标函数的表达方式是“MAX=”或“MIN=”,约束条件的S.T不要写出。
(3)决策变量的变量名由字母和数字组成,但必须以字母开头,且长度不超过32个字符。
不区分大小写字母(包括LINGO本身的关键字,如MAX、MIN、END)。
(4)每行可以用行号(行名)进行标识,行名写法和变量名一样,行号用数字前带下划线表示,以方括号“[ ]”为行号(行名)的首尾,位于目标函数或每一个约束条件的开头。
如果用户没有指定行号(行名),系统会自动产生行号,将目标函数所在行作为第一行,从第二行起为约束条件。
(5)注释语句用“!”开头,单独一个语句。
(6)变量与其系数间用“*”连接。
(7)每个语句(目标函数、约束条件和说明语句)结束用“;”,允许一行写多个语句,但最好一行只写一个语句。
(8)LINGO假定所有变量非负,可以用命令“@FREE(变量名)”取消变量的非负假定。
(9)用命令“@BND(下界,变量名,上界)”设置变量的上界和下界。
(10)一般整数变量可用“@GIN(变量名)”来标识,0-1型变量可用“@BIN(变量名)”来标识。
