资源描述
LINDO程序有以下特点:
★ 程序以“MAX”(或“MIN”)开始,表示目标最大化(或最小化)问题,后面直接写出目标函数表达式和约束表达式;
★ 目标函数和约束之间用“ST”分开;
(或用“s.t.”,“sunject to”)
★ 程序以“END”结束( “END” 也可以省略)。
★ 系数与变量之间的乘号必须省略。
★ 系统对目标函数所在行自动生成行名“1)”,对约束默认的行名分别是“2)” “3)”…,用户也可以自己输入行名;行名放在对应的约束之前。
★ 书写相当灵活,不必对齐,不区分字符的大小写。
★ 默认所有的变量都是非负的, 所以不必输入非负约束。
★ 约束条件中的“<=” 及“>=”可分别用“<” 及“>”代替。
★ 一行中感叹号“!”后面的文字为是注释语句,可增强程序的可读性,不参与模型的建立。
求解器运行状态窗口显示的相应信息及含义:
名称
含义
Status
(当前状态)
显示当前求解状态:“Optimal”表示已经达到最优解;其他可能的显示还有三个:Feasible(可行解), Infeasible(不可行), Unbounded(最优值无界)。
Iterations
(迭代次数)
显示迭代次数:“2”表示经过了2次迭代。
Infeasibility
(不可行性)
约束不满足的量(即各个约束条件不满足的“数量”的和;特别注意不是“不满足的约束个数”):“0”表示这个解是可行的。
Objective
(当前的目标值)
显示目标函数当前的值:7.45455。
Best IP
(整数规划当前的最佳目标值)
显示整数规划当前的最佳目标值:“N/A” (No Answer或Not Applicable)表示无答案或无意义,因为这个模型中没有整数变量,不是整数规划(IP)。
名称
含义
IP Bound
(整数规划的界)
显示整数规划的界(对最大化问题显示上界;对最小化问题,显示下界):“N/A”含义同上。
Branches
(分枝数)
显示分枝定界算法已经计算的分枝数: “N/A”含义同上。
Elapsed Time
(所用时间)
显示计算所用时间(秒):“0.00”说明计算太快了,用时还不到0.005秒。
Update Interval
(刷新本界面的时间间隔)
显示和控制刷新本界面的时间间隔:“1”表示1秒;用户可以直接在界面上修改这个时间间隔。
Interrupt Solver
(中断求解程序)
当模型规模比较大时(尤其对整数规划),可能求解时间会很长,如果不想再等待下去时,可以在程序运行过程中用鼠标点击该按钮终止计算。求解结束后这个按钮变成了灰色,再点击就不起作用了。
Close(关闭)
该按钮只是关闭状态窗口,并不终止计算。如果你关闭了状态窗口,将来随时可以选择WINDOW | OPEN STATUS WINDOW 菜单命令来再次打开这个窗口。
输出结果表示的意思是:“LP OPTIMUM FOUND AT STEP2”
表示单纯形法在两次迭代(旋转)后得到最优解
“OBJECTIVE FUNCTION VALUE 1) 7.4545450 ”
表示最优目标值为7.4545450.(注意:在LINDO中目标函数所在的行总是被认为是第1行,这就是这里“1)”的含义)。
“VALUE”
给出最优解中各变量(VARIABLE)的值:
X =1.272727, Y =1.636364.
“REDUCED COST” 给出最优的单纯形表中目标函数行(第1行)中变量对应的系数(即各个变量的检验数(也称为判别数)). 其中基变量的reduced cost值一定为0;对于非基变量(注意:非基变量本身取值一定为0), 相应的 reduced cost值表示当该非基变量增加一个单位(其他非基变量保持不变)时目标函数减少的量( 对max型问题)。本例最优解中两个变量都是基变量,所以对应的REDUCED COST的值均为0。
“SLACK OR SURPLUS(松驰或剩余)” 给出约束对应的松驰变量的值: 第2、3行松驰变量均为0, 说明对于最优解来讲,两个约束(第2、3行)均取等号,即都是紧约束。
“DUAL PRICES” 给出对偶价格的值: 第2、3行对偶价格分别为 .090909,.545455。
“NO. ITERATIONS= 2” 表示用单纯形法进行了两次迭代(旋转)。
LINDO模型的一些注意事项
1. 变量名由字母和数字组成,但必须以字母开头,且长度不能超过8个字符,不区分大小写字母,包括关键字(如MAX、MIN等)也不区分大小写字母。
2. 对目标函数和约束用行号(行名)进行标识,这些标识会在将来的求解结果报告中用到。
行名可以和变量名一样命名,也可以只用数字命名,还可以含有中文字符,但长度同样不能超过8个字符。
为了方便将来阅读求解结果报告,建议用户总是自觉地对每个约束进行命名。
行名结束标志符号、即右括号“)”必须是英文字符,否则会出现错误。
3. 可以用“TITLE”语句对输入的模型命名,用法是在TITLE后面写出其名字(最多72个字符,可以有汉字),在程序中单独占一行,可以在模型的任何地方。
模型命名的第一个作用类似于对模型的注释和说明。
模型命名的另一个目的,是为了方便将来阅读求解结果报告。因为用户有可能同时处理多个模型,很容易混淆模型与求解结果的对应关系。这时如果对不同模型分别进行了命名,就可以随时(例如在求解当前模型前)使用菜单命令“FILE|TITLE”将当前模型的名字显示在求解结果报告窗口中,这样就容易判别每个求解结果与每个模型的对应关系。
4. 模型中以感叹号“!” 开头的是注释行(注释语句,或称为说明语句),可以帮助他人或以后自己理解这个模型。实际上,每行中“!”符号后面的都是注释或说明。注释语句中可以使用汉字字符 。
5. 变量不能出现在一个约束条件的右端(即约束条件的右端只能是常数);变量与其系数间可以有空格(甚至回车),但不能有任何运算符号(包括乘号“*”等)。
6. 模型中不接受括号“( )”和逗号“,”等符号(除非在注释语句中)。
例如: 4(X1+X2)需写为4X1+4X2;“10,000”需写为10000。
7. 表达式应当已经经过化简。
如不能出现2X1 + 3X2 - 4X1,而应写成 -2X1 + 3X2等。
8. LINDO 中已假定所有变量非负。若要取消变量的非负假定,可在模型的“END”语句后面用命令“FREE”。例如,在“END”语句后输入FREE vname,可将变量vname的非负假定取消。
9. 可以在模型的“END”语句后面用命令“SUB”(即设置上界(SET UPPER BOUND)的英文缩写)设定变量的上界,用命令“SLB” (即设置下界(SET LOWER BOUND)的英文缩写)设定变量的上下界。其用法是:“SUB vname value”将变量vname的上限设定为value;“SLB”的用法类似。
用“SUB”和“SLB”表示的上下界约束不计入模型的约束,因此LINDO也不能给出其松紧判断和敏感性分析。
10. 数值均衡化考虑:如果约束系数矩阵中各非零元的绝对值的数量级差别很大(相差1000倍以上),则称其为数值不均衡的。为了避免数值不均衡引起的计算问题, 使用者应尽可能自己对矩阵的行列进行均衡化。此时还有一个原则, 即系数中非零元的绝对值不能大于100000 或者小于.0001。LINDO 不能对LP 中的系数自动进行数值均衡化,但如果LINDO 觉得矩阵元素之间很不均衡, 将会给出警告。
11. 简单错误的检查和避免:
输入模型时可能会有某些输入错误. 当问题规模较大时, 要查找错误是比较困难的。在LINDO 中有一些可帮助寻找错误的功能,其中之一就是菜单命令“Report | Picture(Alt+5)” , 它的功能是可以将目标函数和约束表达式中的非零系数通过列表(或图形)显示出来。
例2.2 菜单命令“Report | Picture(Alt+5)” 的功能
对如下的一个有错误的模型输入:
MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2
SUBJECT TO
2) A0 +Al +A2 <=8
3) B0 +B1 +B2 <=9
4) C0 +C1 +C2 <=6
5) A0 +B0 +CO =6
6) A1 +B1 +C1 =5
7) A2 +B2 +C2 =9
END
用Report | Picture命令,将弹出一个对话框,在弹出的对话框中采用缺省选项(即不采用下三角矩阵形式,并以图形方式显示),直接按“OK”按钮可得到一个输出图形。可以从图中很直观地发现,其实错误原因只不过是在输入5)行的表达式中C0与CO弄混了(英文字母O与数字0弄混了)。在图中,还可以用鼠标控制显示图形的缩放,这对于规模较大的模型是有用的。
例2.3 三个变量范围限定命令(FREE、SUB、SLB)的作用
求解如下的LP问题:
这个模型中对变量x没有非负限制,对y有上限限制,对z有下限限制。用FREE、SUB、SLB三个命令可以实现这些功能。
具体输入如下:
MAX 2x – 3y + 4z
S.T.
con2) 4 x + 3y + 2z <= 10
con3) -3x + 5 y - z < 12
con4) x + y + 5z > 8
con5) -5x - y - z > 2
END
free x ! 说明:变量x没有非负限制
sub y 20 ! 说明:变量y的上界为20
slb z 30 ! 说明:变量z的下界为30
解得到的结果:最大值为122,最优解为x=-17,y=0,z=39。
可以看出y的上界(20)在最优解中并没有达到,z的下界(30)也没有达到,因此模型中去掉“sub y 20”和“slb z 30”两个语句,得到的结果应该是不变的。
但由于最优解中x的取值为负值,所以“free x”这个语句确实是不能少的。不妨试一下,去掉这个语句后效果会怎样?
其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。
二.培训的及要求培训目的
安全生产目标责任书
为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标:
一、目标值:
1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。
2、现金安全保管,不发生盗窃事故。
3、每月足额提取安全生产费用,保障安全生产投入资金的到位。
4、安全培训合格率为100%。
二、本单位安全工作上必须做到以下内容:
1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。
2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。
3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。
4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。
5、在公司及政府的安全检查中杜绝各类违章现象。
6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。
7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。
8、虚心接受员工提出的问题,杜绝不接受或盲目指挥;
9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。
10、必须按规定对单位员工进行培训和新员工上岗教育;
11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。
三、 安全奖惩:
1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。
2、每月接受主管领导指派人员对安全生产责任状的落
展开阅读全文