资源描述
LINDO和LINGO软件,使用简介,LINDO软件,使用简介,由LINDO系统公司开发的专门求解数学规划的软件包,LINDO软件,特点:,程序执行速度快,易于方便地输入、修改、求解和分析,功能:,求解线性规划,求解整数规划,求解二次规划,求解非线性规划,求线性规划(LP)的方法和步骤:,1.输入LP模型,1)模型以MAX或MIN开始,按线性规划的自然形式输入,目标函数。,2)约束:以st开始,每个约束写在一行,用回车分开,3)模型以end结尾,说明:,(1)LINDO中已假设所有变量都是非负的,所以非负约束不必再输入到计算机中。,(2)模型中的变量不区分大小写,(3)符号“,”用“=”形式输入。与,等效,例如,线性规划,输入模型,max 2x+3y,st,4x+3y10,3x+5y12,end,2.存储模型,用SAVE命令将问题模型以LINDO格式存入文件(自己输入文件名),如将上述输入模型存在sf1中。,3.模型求解,选择菜单“SOLVE”,并回答提示“DO RANGE,(SENSITIVITY)ANSLYSIS(灵敏性分析)”,yes或NO,如上例,运行结果为,LP OPTIMUM FOUND AT STEP 2,OBJECTIVE FUNCTION VALUE,1)7.454545,VARIABLE VALUE REDUCED COST,X 1.272727 0.000000,Y 1.636364 0.000000,ROW SLACK OR SURPLUS DUAL PRICES,2)0.000000 0.090909,3)0.000000 0.545455,NO.ITERATIONS=2,RANGES IN WHICH THE BASIS IS UNCHANGED:,OBJ COEFFICIENT RANGES,VARIABLE CURRENT ALLOWABLE ALLOWABLE,COEF INCREASE DECREASE,X 2.000000 2.000000 0.200000,Y 3.000000 0.333333 1.500000,RIGHTHAND SIDE RANGES,ROW CURRENT ALLOWABLE ALLOWABLE,RHS INCREASE DECREASE,2 10.000000 6.000000 2.800000,3 12.000000 4.666667 4.500000,运行结果说明,LP OPTIMUM FOUND AT STEP 2,OBJECTIVE FUNCTION VALUE,1)7.454545,VARIABLE VALUE REDUCED COST,X 1.272727 0.000000,Y 1.636364 0.000000,ROW SLACK OR SURPLUS DUAL PRICES,2)0.000000 0.090909,3)0.000000 0.545455,NO.ITERATIONS=2,单纯形法在两次迭代后得到最优解,最优目标值是,7.454545,最优变量值,最优单纯形表中第0行系数,检验数(min型),对应非基变量增加1个单位时目标函数增加的量,松弛或剩余变量值,对偶价格的值,表示相应约束右端增加1个单位时目标函数增加的量,单纯形法两次迭代(旋转),RANGES IN WHICH THE BASIS IS UNCHANGED:,OBJ COEFFICIENT RANGES,VARIABLE CURRENT ALLOWABLE ALLOWABLE,COEF INCREASE DECREASE,X 2.000000 2.000000 0.200000,Y 3.000000 0.333333 1.500000,RIGHTHAND SIDE RANGES,ROW CURRENT ALLOWABLE ALLOWABLE,RHS INCREASE DECREASE,2 10.000000 6.000000 2.800000,3 12.000000 4.666667 4.500000,灵敏性分析,目标函数的费用系数和约束右端项在什么范围变化,最优基不变,系数变化,x20.2,2+2,y31.5,3+0.333333,102.8,10+6,124.5,12+4.6667,右端变化,例 家具生产计划,某家具厂生产书桌、桌子和椅子,所用的资源有三种:,木料、木工和漆工。生产数据如下表:,每个书桌,每个桌子,每个椅子,现有总资源,木料,8,6,1,48,木工,4,2,1.5,20,漆工,2,1.5,0.5,8,成本单价,60,30,20,若要求桌子的生产量不超过5件,如何安排三中产品的生产可使利润最大?,解:设生产书桌、桌子和椅子分别为x,y和z,则为,MAX 60 x+30y+20z,St,8x+6y+z48,4x+2y+1.5z20,2x+1.5y+0.5z8,y5,end,用LINDO运算,LP OPTIMUM FOUND AT STEP 1,OBJECTIVE FUNCTION VALUE,1)280.0000,VARIABLE VALUE REDUCED COST,X 2.000000 0.000000,Y 0.000000 5.000000,Z 8.000000 0.000000,ROW SLACK OR SURPLUS DUAL PRICES,2)24.000000 0.000000,3)0.000000 10.000000,4)0.000000 10.000000,5)5.000000 0.000000,NO.ITERATIONS=1,RANGES IN WHICH THE BASIS IS UNCHANGED:,OBJ COEFFICIENT RANGES,VARIABLE CURRENT ALLOWABLE ALLOWABLE,COEF INCREASE DECREASE,X 60.000000 20.000000 4.000000,Y 30.000000 5.000000 INFINITY,Z 20.000000 2.500000 5.000000,RIGHTHAND SIDE RANGES,ROW CURRENT ALLOWABLE ALLOWABLE,RHS INCREASE DECREASE,2 48.000000 INFINITY 24.000000,3 20.000000 4.000000 4.000000,4 8.000000 2.000000 1.333333,5 5.000000 INFINITY 5.000000,求整数线性规划(IP)的方法和步骤:,LINDO可用于求解单纯的和混合型整数规划(IP)问题。,LINDO求解整数规划是用分枝定界法。,IP问题的输入与LP问题的输入类似,运算步骤也类似,但在end标志后需定义整型变量。0/1型变量可由INTEGER(可简写为INT)命令来标识:,INTEGER vname(变量名称)或 INTEGER n,前者只将变量vname标识为0/1型,后者将前n个变量标识为0/1型。,还可用命令GIN将变量仅限为整数型,例如,求解整数规划,MAX 4x+3y+2z,St2.5x+3.1z5,0.2x+0.7y+0.4z1,End,Int x,Int y,Int z,运算结果如下,OBJECTIVE FUNCTION VALUE,1)7.000000,VARIABLE VALUE REDUCED COST,X 1.000000 -4.000000,Y 1.000000 -3.000000,Z 0.000000 -2.000000,ROW SLACK OR SURPLUS DUAL PRICES,2)2.500000 0.000000,3)0.100000 0.000000,NO.ITERATIONS=7,BRANCHES=0 DETERM.=1.000E 0,MAX 4x+3y+2z,St2.5x+3.1z5,0.2x+0.7y+0.4z1,End,Int 3,也可使用下面格式,结果相同,又如,求解整数规划,MAX 4x+3y+2z,St2.5x+3.1z5,0.2x+0.7y+0.4z1,End,GIN 3,运算结果如下,OBJECTIVE FUNCTION VALUE,1)8.000000,VARIABLE VALUE REDUCED COST,X 2.000000 -4.000000,Y 0.000000 -3.000000,Z 0.000000 -2.000000,ROW SLACK OR SURPLUS DUAL PRICES,2)0.000000 0.000000,3)0.600000 0.000000,NO.ITERATIONS=17,BRANCHES=2 DETERM.=1.000E 0,LINGO软件,使用简介,功能:,求解线性规划,求解非线性规划,求解大规模数学规划,LINGO软件,求解整数规划,特点:,使输入较大规模问题的过程得到简化,使用方法:,与LINDO的使用方法类似,不同之处:,有些与LINDO不同的命令:,MODEL、GENL、GEN、EXP等,MODEL命令用于输入数学规划模型,GEN和GENL命令用于产生一个与当前LINGO等价的LINDO模型形式,EXP命令将当前解存入已有文件,将来用IMPORT调用,一、LINGO编写格式,1集合部分:以“SETS:”开始,以“ENDSETS”结束,LINGO中的集合有两类:,原始集合(PRIMITIVE SETS),其定义的格式为:,集合名,/member list,(,or 1.n,),/,:,attribute,attribute,etc。,导出集合,(,DERIVED SETS,),即引用其它集合定义的集合,其定义的格式为:,集合名,(,set1,,,set2,,,etc,。):,attribute,attribute,etc,。,例如 考虑如下集合定义,SETS:,PRODUCT/A B/;,MACHINE/M N/;,WEEK/1.2/;,ALLOWED(PRODUCT,MACHINE,WEEK);,ENDSETS,ALLOWED 元素为:,IndexMember,1(A,M,1),2(A,M,2),3(A,N,1),4(A,N,2),5(B,M,1),6(B,M,2),7(B,N,1),8(B,N,2),2目标与约束:这部分定义了目标函数、约束条件等。一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。,3数据部分(DATA):这部分以“DATA:”开始,以“END DATA”结束。其作用在于对集合的属性(数组)输入必要的数值。,格式为:attribut=value_list,4初始化部分(INIT):这部分以“INIT:”开始,以“END INIT”结束。作用在于对集合的属性(数组)定义初值。格式为:attribute=value_list。,几点注意:,1所有的语句除SETS、ENDSETS、DATA、ENDDATA、INIT、ENDINIT和MODEL,END之外必须以一个分号“;”结尾。,2LINGO求解非线性规划时已约定各变量非负。,3使用函数或命令时前面加。,二、LINGO内部函数:,常用数学函数,ABS(X);COS(X);EXP(X);FLOOR(X);LGM(X);LOG(X);SIGN(X);,SIN(X),;,SMAX(X1,X2,.,XN),;,SMIN(X1,X2,.,XN),;,TAN(X),(2)集合函数,FOR(set_name:constraint_expressions),MAX(set_name:expression),MIN(set_name:expression),SUM(set_name:expression),SIZE(set_name),IN(set_name,set_element)如果数据集set_name中包含元素s
展开阅读全文