1个人食谱的优化与设计.docx
- 文档编号:5682756
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:37
- 大小:292.80KB
1个人食谱的优化与设计.docx
《1个人食谱的优化与设计.docx》由会员分享,可在线阅读,更多相关《1个人食谱的优化与设计.docx(37页珍藏版)》请在冰豆网上搜索。
1个人食谱的优化与设计
运筹学课程设计指导书
一、设计性质与目的
本设计是《运筹学》课程重要的实践性教学环节。
此次设计的主要目的是使学生初步掌握运筹学知识在管理问题中应用的基本方法与步骤;巩固和加深学生对所学运筹学理论知识的理解与掌握;锻炼学生从管理实践中提炼问题,分析问题,选择建立运筹学模型,利用模型求解问题,并对问题的解进行分析与评价的综合应用能力;通过利用运筹学计算机软件求解模型的操作,使学生掌握运筹学计算软件的基本操作方法,并了解计算机在运筹学中的应用;初步了解科学研究的基本方法与步骤,并通过设计报告(论文)的撰写,了解学术报告(论文)的写作方法。
二、设计的主要内容与要求
1.问题的选择与提出。
结合专业本课程的知识与所在专业的知识,从某一具体的管理实践活动中,确定具体的研究对象,提炼具体的研究问题及题目。
2.方法与模型的选择。
根据问题的性质和特点,结合所学的运筹学知识,选择分析和解决问题的方法及拟采用运筹学模型。
3.、数据的调查、收集与统计分析,以及具体模型的建立。
收集和统计上述拟定之模型所需要的各种基础数据,并最终将数据整理形成分析和解决问题的具体模型。
4、运筹学计算软件的运用。
运用运筹学计算软件(主要是指Lindo软件)求解所建立的运筹学模型,并打印计算结果,列入设计成果。
5.解的分析与评价。
结合所研究问题的实际背景,对模型的解进行评价、分析以及调整,并对解的实施与控制提出合理化的建议。
6.设计工作的总结与成果整理,撰写设计报告,报告要复合规范要求。
三、设计的步骤与要点
1.课程设计选题
从实际管理活动中发掘并提炼研究问题,是运筹学实践教学所要培养的学生实践能力的一项重要内容,也是本次课程设计的主要内容之一。
鉴于完全由学生自主选题的难度较大,往往会犯选题过大过空的通病,此处列出了一些应用问题的参考类型和范围,以便学生参照这些题目,根据个人意向与兴趣,结合实际情况,确定具体的研究对象和问题,形成自己合适的设计题目。
(1)食谱设计与优化(比如可以针对不同类别的人群比如幼儿、成人、老年人、不同的病人等,或者自己的个性食谱)
(2)个人资金使用(储蓄)方案设计
(3)个人学习时间安排方案的研究
(4)×××企业的年度(季度或月)生产计划安排及优化分析与研究
(5)×××企业的物资存储方案设计、优化分析及评价(要考虑与生产或销售环节之间的联系)
(6)×××农垦区农作物种植计划的制定或优化分析(比如一定种植面积或可用资金的限制下,各种作物的种植规模的合理分配问题)
(7)×××饲养单位产品养殖方案优化研究(思路与上一题基本相似)
(8)材料合理利用问题研究(自选背景,解决比如线材的合理下料,复合产品各种原材料合理调配问题等等)
(9)选址问题研究(自选背景,解决选址问题,如自动充气站、急救中心、血站、医院、学校、发电厂、炼油厂、仓库、分销中心、打麦场等)
(10)投资方案选择、优化分析(自选背景,解决比如在一定资金限制下对可选方案的选择问题,投资模式选择或合理组合问题等等)
(11)×××物资运输企业货物运输方案的优化研究(比如合理的物资调运方案或最优的路径选择等)
(12)西安市旅游景点经典路线的设计(或高校联络最短路线设计)
(13)×××企业某种产品的销售策略分析(可以是利用所学对策论知识对某些知名企业或某些著名的产品销售案例所进行的分析或评价)
此处所列出的题目均为较宽泛的问题类,仅供参考,不可直接取用,学生在选题时需根据题目后括弧内的注释加以详细化、具体化以后,形成自己的设计题目。
此外,除了上面的范围之外,学生确实无法自己确定题目的,可从老师提供的参考材料中选择一个感兴趣的问题进行研究,但必须经过指导教师审核,并由教研室在任务书上签字方可生效。
2.设计的实施步骤及要点
(1)结合专业,在某一具体的管理实践活动中,通过调查和分析,确定具体的研究对象,提炼出要研究的具体问题,并最终形成课程设计的题目。
形成题目后,在要求期限内及时送交指导教师审核,并经教研室签字生效后方可开始下一步的设计工作。
(2)对该问题进行进一步的分析,根据问题的性质和特点,结合所学的运筹学知识,确定分析和解决问题拟用的方法,初步拟定要采用运筹学理论与知识(属于哪一类运筹学问题,应采取哪一种运筹学模型)。
方法和模型的合适性与正确性,要经过指导教师的评定。
(3)根据上述的确定的方法,对问题展开深入的调查分析,收集和统计上述拟定之模型所需要的各种基础数据,包括模型的目标因素、实现目标的主控因素、约束因素以及必须的各种参数及系数等等,最终将数据整理,形成解决或分析该问题的具体的运筹学模型。
(4)运用运筹学计算软件(主要是指Lindo软件)求解该问题求解模型的最优解、次优解或满意解,并打印计算结果,放入设计成果内。
(5)结合所研究问题的实际背景,对模型的解进行评价、分析以及调整,并对解的实施与控制提出合理化的建议。
(6)设计工作的总结与成果整理,撰写设计报告。
四、设计报告(论文)内容及其组织
课程设计(论文)的正文在总体结构上应包括绪论、本论和结论三大部分。
绪论部分主要描述问题提出的背景、研究的主要内容与目的、研究的意义、研究的主要方法及思路等等,参考组织形式如下:
1绪论
1.1研究的背景(主要描述所研究问题所处的环境、现状及存在的问题)
1.2研究的主要内容与目的(主要阐述针对背景中的现状与问题,本次研究主要要从那些方面入手,重点研究那些问题,并说明通过该研究最终要达到什么样的目的,比如要解决或改善那些问题或某一问题的那些方面,达到什么样的程度等等)
1.3研究的意义(阐述通过研究和问题的解决或改善,将会对研究对象的后续发展产生什么样的积极影响,会带来什么样的积极效益)
1.4研究的主要方法与思路(概述本次研究拟采取的什么理论和方法,按照一种什么样的思路一步步的分析和解决所提出的问题)
本论部分是整个报告(论文)的核心,是最能体现作者个人成果的部分,也应该是比重最大的一部分。
根据本次课程设计的特点,该部分主要可以从理论方法的选择、模型的建立、模型的求解及解的分析与评价几个方面来组织,参考形式如下:
2理论方法的选择
2.1所研究的问题的特点(阐述所研究问题在目标上、实现目标的各种限制条件上、目标实现的途径上所具有的特点)
2.2拟采用的运筹学理论方法的特点(阐述将要采用运筹方法和模型,以及该种方法和模型在适用的问题类型、适用条件上的要求与特点)
2.3理论方法的适用性及有效性论证(结合问题和拟采用的方法上的特点,论证该方法在所研究问题上的适用性和有效性,包括类型是否相适,条件是否满足,是否可以直接取用或者应该做哪些调整和假设,是否能够达到拟定的研究目的,结果上是否具有效性和科学性,运用中应该注意那些因素,如何控制以达到更高适用性与有效性等等)
3模型的建立
3.1基础数据的确定(通过调查研究,数据的收集和整理,确定模型的基本参数、系数和各种资源的限值等,通过调研所收集来数据往往是不规范的,不能直接运用到模型中去,该部分主要是针对模型的特点和要求,对收集来数据进行规范化处理。
可以根据需要细化标题,如3.1.1目标函数系数确定3.1.2消耗系数确定等)
3.2变量的设定(根据解决问题的要求和目标,设定模型的决策变量,说明决策变量的实际涵义以及取值范围)
3.3目标函数的建立(根据问题研究的目的及要达到的目的,建立合理的目标函数,说明目标函数的实际涵义,以及论证目标函数与研究的目的一致性)
3.4限制条件的确定(根据问题问题目标实现的实际约束情况,确定模型的各种约束条件,说明各个约束条件的实际含义以及考虑该约束的实际缘由与必要性。
可以根据需要细化标题,如3.4.1××约束3.4.2××约束等)
3.5模型的建立(综合前几步工作,建立起解决问题的具体模型)
4模型的求解及解的分析
4.1模型的求解(说明利用什么工具或方法实现对模型的求解,给出模型的最终解和在该解下的目标函数值,并一一说明各个变量取值以及目标函数值的实际涵义)
4.2解的分析与评价(结合所研究问题的实际背景,对模型的解进行评价、分析,论证这样的解与实际是否相符,是否有效或是否需要结合实际情况作以调整以及如何调整,并对解进行不确定性分析)
设计(论文)的最后一部分是结论,该部分主要是对整个研究工作作以总结,并对研究结论(解)的实施及控制提出合理化建议。
参考形式如下:
5结论与建议
5.1研究结论(总结整个设计研究工作,得出研究的总体结论,包括研究的主要成果,提出问题是否得以解决或改善,以及程度是否打到了研究目的要求,研究工作中有那些有价值的独到的成分、结论或者创新点,具有怎样的推广和应用价值等)
5.2建议与对策:
(对研究的结论或解的实施和控制提出合理划建议,包括的解的应用条件,应用中应重点注意的问题或因素,以及当条件发生变化时应如何处理等等)
此处列出的各种标题只是参考标题,需要根据自己的研究情况作以具体化和调整,某些标题可以根据需要进行合并或进一步细化。
五、成果形式及撰写规范
课程设计最终成果以设计报告或论文形式呈现,报告(论文)原则上不少于5000字。
课程设计报告(论文)应包括封面、任务书、摘要(约200字左右)和关键词(一般为3~5个)、目录、正文及参考文献(资料)等内容(装订顺序与此相同)。
课程设计报告(论文)应采用学校统一规定的封面,学生应在封面的空白栏内准确填入相应的信息。
摘要、目录、正文、参考文献、附录及致谢部分均采用16开(幅面184mm×260mm)的70g打印纸打印,版面的页边距为2.6cm(上)、1.3cm(下)、2.1cm(左)和1.8cm(右),版芯为34行(在“文档网络”中设置),页眉与页脚的边距分别为2cm和1cm。
段落的基本行距为单倍行距,两端对齐,基本字号与字体为小四号宋体(中文)和小四号TimesNewRoman(英文),有关标题、标题编号、图表、公式、参考文献、致谢等的格式要求参见“附录”中的示例。
六、运筹学计算软件使用指南
目前运筹学软件种类繁多,在此为大家介绍Lindo软件的使用方法。
lindo软件
第一节Lindo求解线性规划问题
1.Lindo软件的安装过程
使用Lindo软件前,首先需要在操作系统下安装Lindo软件。
Lindo软件非常容易安装,只需要在Windows操作系统下将光盘(或USB盘)插入光驱(或USB接口),运行其中的安装程序(通常是setup.exe)就可以了。
目前从Lindo系统公司或其他渠道得到的安装程序,多数情况下直接是一个自解压的可执行性文件(如从Lindo系统公司下载的Lindo6.1forWindows试用版安装程序为Lindo61.exe,大致是3M多一些),那么就直接运行这个程序进行安装就可以了。
安装过程中,用户需要按照程序给出的提示,一步一步走下去,直到安装成功为止。
通常,用户首先需要接受用户协议,然后选择将Lindo软件安装到的目的地(一般是硬盘上的某个目录)。
屏幕将提示默认的安装目录(默认的目录通常是C:
\Lindo),您可以任意修改,如此反复,完成后屏幕将提示您确认您的选择。
确认您的选择之后,安装程序就会自动完成全部后续的安装过程。
安装过程结束后,您就可以在Windows操作系统下运行Lindo软件了。
2.编写Lindo程序并运行
下面通过一个简单的例子,说明编写、运行一个LINDO程序的完整过程。
在Windows操作系统下双击Lindo图标(或在Windows“开始”菜单的程序中选择运行Lindo软件),可以启动Lindo软件,屏幕上首先显示如图3-1的工作窗口。
图3-1 Lindo初始界面
这就是Lindo的初始化界面.目前光标所在的子窗口成为模型窗口(modelwindow),是用来提供用户输入Lindo程序的,所谓的一个Lindo程序,就是用Lindo软件所要求的语法格式对一个优化模型的完整描述,因此一个Lindo程序也就是一个Lindo优化模型。
这两者在Lindo中可以认为是一回事,所以下面将不再区分这两个概念。
目前这个模型窗口标“
例3.1求解如下简单的线性规划(LP)问题:
我们可以直接在
图3-2 输入一个简单的优化模型
下面是Lindo求解器运行状态窗口(图3-3)显示的相应的信息及含义:
图3-3 Lindo求解器运行状态窗口显示的相应的信息及含义
Status(当前状态)显示当前求解状态:
“Optimal”表示已经达到了最优解;其他可能的显示还有三个:
Feasible,Infeasible,Unbounded
Iterations(迭代次数)显示迭代次数:
“3”表示经过了3次迭代
Infeasibility(不可行性)约束不满足的量(即各约束条件不满足的“数量”和;特别注意不是“不满足的约束个数”):
“0”表示这个解是可行的
Objective(当前的目标值)显示目标函数当前的值:
14
BestIP(整数规划当前的最佳目标值)显示整数规划当前的最佳目标值:
“N/A”(NoAnswer或NotApplicable)表示无答案或无意义,因为这个模型中没有整数变量,不是整数规划。
IPBound(整数规划的界)显示整数规划的界(对最大化问题显示上界,对最小化问题显示下界):
“N/A”含义同上。
Branches(分支数)显示分支定界算法已经计算的分支数:
“N/A”含义同上。
UpdateInterval(刷新本界面的时间间隔)显示和控制刷新本界面的时间间隔:
“1”表示1秒;用户可以直接在界面上修改这个时间间隔。
InterruptSolver(中断求解程序)当模型规模比较大时(尤其是对整数规划),可能求解时间会很长,如果不想再等待下去时,可以在程序运行过程中用鼠标单击该按纽终止计算。
求解结束后这个按纽变成了灰色,再单击就不再起作用了。
Close(关闭)该按纽只是关闭状态窗口,并不终止计算。
如果你关闭了状态窗口,将随时可以选择Window/OpenStatusWindow菜单命令来再次打开这个窗口。
下一步在敏感性分析对话框(图3-4)中选择“是”,则出现敏感性分析报告,如下图:
图3-4 LINDO的结果报告窗口
“REDUCEDCOST”给出各个变量的检验数。
其中基变量的REDUCEDCOST一定为0;对于非基变量(注意:
非基变量本身取值一定为0),相应的REDUCEDCOST表示当该非基变量增加一个单位(其他非基变量保持不变)时,目标函数值的减少量(对MAX型问题)。
“SLACKORSUPPLUS(松弛或剩余)”本例给出的4个都是约束变量对应的松弛变量(注意:
目标函数为第1行,4个约束条件分别是第2行-第5行)。
“DUALPRICES”给出的是影子价格的值。
“NOITERATIONS=3”表示用单纯形法进行了3次跌代。
敏感性分析的作用是给出“RANGESINWHICHTHEBASISISUNCHANGED”即最优基保持不变的系数范围。
内容包括以下两部分:
(1)目标函数中系数变化的范围(OBJCOEFFICIENTRANGES)
如本例中,目标函数中X1当前的系数(CURRENTCOEF)=2,可以增加(ALLOWABLEINCREASE)=INFINITY(无穷)、可以减少(ALLOWABLEDECREASE)=0.5,说明它的变化范围为[1.5,
]时,最优基保持不变;
目标函数中X2当前的系数(CURRENTCOEF)=3,可以增加(ALLOWABLEINCREASE)=1、可以减少(ALLOWABLEDECREASE)=3,说明它的变化范围为
[0,4]时,最优基保持不变。
(2)约束右端项变化的范围(RIGHTHANDSIDERANGES)
如本例中,第2行约束中当前右端项(CURRENTRHS)=12,可以增加(ALLOWABLEINCREASE)=INFINITY(无穷)、可以减少(ALLOWABLEDECREASE)=0,说明它的变化范围为[12,
]时,最优基保持不变。
第3、4、5行可以类似解释。
最后,可以选择菜单命令Reports中的Tableau来直接查看单纯形表,其中ART是人工变量(artificialvariable)。
具体见图3-5
图3-5 Lindo输出的单纯型表
我们现在可以用鼠标单击工具栏里的保存图标把这个结果报告保存在一个文件中(默认的后缀名为ltx,即LINDO的文本文件),以便以后调出来查看。
如果您不想继续使用LINDO,现在可以选择File中的Exit命令退出。
第二节Lindo求解整数规划问题
1.Lindo软件在使用过程中的注意事项
我们前面已经看到,Lindo软件对模型的输入格式的要求与线性规划问题的自然形式(数学形式)非常相似,几乎没有什么差别,因此几乎不需要专门学习就可以掌握。
不过,Lindo软件对模型的输入格式还是有一些特殊规定的,这些规则值得引起特别的注意。
下面就简单解释一下使用Lindo软件建立线性规划模型的一些特殊注意事项:
(1)Lindo中的变量名由字母和数字组成,但必须以字母开头,且长度不能超过8个字符(且只能是英文字符,不能含有中文字符)。
Lindo中不区分大小写字母,包括Lindo中本身的关键字(如MAX、MIN等)也不区分大小写字母。
(2)Lindo中对优化模型的目标和约束条用行号(行名)进行标识,这些标识会在将来的求解报告中用到。
用户没有指定行号(行名)时,系统会自动产生行号,将目标函数所在的行作为第1行,从第2行起为约束条件。
用户也可以人为定义行号或行名,行号或行名总是以“)”结束,放在相应的约束之前;行号或行名可以和变量一样命名,也可以只用数字命名,但长度同样不能超过8个字符。
为了方便将来阅读求解结果报告,建议学生自觉地对每个约束进行命名。
行名中甚至可以含有中文字符,但行名结束标志符号,即右括号“)”必须是英文字符,否则会出现错误。
(3)在Lindo模型的任何地方都可以用“TITLE”语句对输入的模型进行命名,用法是在TITLE后面写出其名字(最多72个字符,可以有汉字),在程序中单独占一行,请看先面的两个例子:
TITLEExampleModelforChapter2
TITLE第2章的第一个例子
此外,Lindo模型中以感叹号(“!
”符号)开头的是注释行(注释语句,或称为说明语句),可以帮助他人或以后自己理解这个模型。
实际上,每行中“!
”符号后面的都是注释或说明。
例如:
!
Thisisacomment
!
这是一个约束
第1行完全是注释语句;第2行则后半句是注释语句,可以看出,注释语句中也可以有汉字,但是领头的感叹号“!
”必须是英文字符,否则会出现错误。
(4)Lindo中变量不能出现在一个约束的右端(约束条件的右端只能是常数);变量与其系数间可以有空格(甚至回车),但不能有任何运算符(包括乘号“*”等)。
(5)Lindo中不能接受括号“()”和逗号“,”等任何符号(除非在注释语句中),例如400(X1+X2)需要写为400X1+400X2;“10,000”需写为10000。
(6)Lindo中表达式应当已经经过化简,如不能出现2X1+3X2-4X1,而应写成-2X1+3X2等
(7)Lindo中已假定所有变量非负。
可在模型的END语句后面用命令“FREE”(假定自由变量)取消变量的非负假定。
其用法是“FREE”后面跟变量名,如在END语句后输入下面命令,可将变量vname的非负假定取消:
FREEvname
(8)可以在模型的“END”语句后面用命令“SUB”(设置上界(setupperbound)的英文缩写)设置变量的上界,用命令“SLB”(设置下界(setlowerbound)的英文缩写)设置变量的下界。
其用法是:
“SUBvnamevalue”将变量的上限射定为value;“SLB”的用法类似,例如:
SUBX110!
作用等价于“X1<=10”
SLBX220!
作用等价于“X2>=20”
但是“SUB”和“SLB”表示的上下界约束不计入模型的约束,因此LINDO也不能给出其松紧判断和敏感性分析。
(9)数值均衡化及其他考虑:
如果约束系数矩阵中各非零元的绝对值的数量级差别很大(相差1000倍以上),则称其为数值不均衡的。
为了避免数值不均衡引起的计算问题,使用者应尽可能自己对矩阵的行列进行均衡化。
此时还有一个原则,即系数中非零元的绝对值不能大于100000或者小于0.0001。
LINDO不能对LP中的系数自动进行数值均衡化,但如果LINDO觉得矩阵元素之间很不均衡,将会给出警告。
(10)简单错误的检查和避免
当将一个线性规划问题的数学表达式输入Lindo系统时,有可能式子中会带有某些输入错误。
这类错误虽然可能只是抄写和输入错误造成的,但当问题规模较大时,要搜寻它们也是比较困难的。
在Lindo中有一些可帮助寻找错误的功能,其中之一就是菜单命令“Report|Picture”,它的功能是可以将目标函数和约束表达式中的非零系数通过列表(或图形)显示出来。
如例3.2的系数矩阵的图形显示为:
图3-6 系数矩阵的图形显示
2.整数规划问题求解
Lindo可用于求解线性纯整数规划或混合整数规划(IP),模型的输入与LP问题类似,但在END标志后需要定义整型变量。
0/1型的变量可由INTEGER(可简写为INT)命令来标识,有以下两种可能的用法:
INTvname
INTn
前者只将决策变量vname标识为0/1型,后者将当前模型中前n个变量标识为0/1型(模型中变量顺序由模型中输入时出现的先后顺序决定,该顺序可由输出结果中的变量顺序查证是否一致)。
一般的整数变量可用命令GIN(generalinteger的缩写),其使用方式及格式与INT命令相似,需要强调的是,对整数变量的说明只能放在模型的“END”语句之后。
例3.2 求解员工聘用问题,某公司需要工作人员,需求情况如下表所示,为了保证工作人员充分休息,每名工作人员每周工作5天,休息2天,并要求休息的两天时连续的,问如何安排工作人员的作息,使之既满足工作的需要,又使聘任的工作人员数量最少?
时间
所需工作人数
星期日
50
星期一
50
星期二
50
星期三
50
星期四
80
星期五
90
星期六
90
首先在Lindo模型窗口中输入模型,如图1-7,其中“GIN7”表示7个变量都是一般整数变量(仍然默认为取值是非负的)。
求解窗口见图1-8。
图3-7例3-2的输入模型
图3-8例3.2的输出结果
第三节Lingo求解线性规划问题
1.熟悉Lingo软件
Lingo是用来求解线性和非线性优化问题的简易工具。
Lingo内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用Lingo高效的求解器可快速求解并分析结果。
当你在windows下开始运行Lingo系统时,会得到类似下面的一个窗口:
外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGOModel-LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
例3.3如何在LINGO中求解
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 食谱 优化 设计