运筹学实验
《运筹学》实验四__网络计划(学生版)
实验四网络计划
一、实验目的
掌握WinQSB软件绘制计划网络图,计算时间参数,求关键路线。
二、实验平台和环境
WindowsXP平台下,WinQSB V2.0版本已经安装在D:\WinQSB中。
三、实验内容和要求
用WinQSB软件求解网络计划问题。
输人数据(PERT/CPM),显示网络图,计算时间参数,显示结果和关键工序,计算赶工时间,显示甘特图。
四、实验操作步骤
启动程序。
点击开始→程序→WinQSB→PERT_CPM.(课堂演示)
五、分析讨论题
参考上述实验过程,编制下述项目的网络计划图,计算有关参数并指出关键工序。
1、某工程项目明细如表4-1所示。
2、某工程项目明细如表4-2所示。
表4-2
六、网络计划常用术语词汇及其含义。
运筹学实验报告
运筹学实验报告姓名:学号:班级:指导老师:实验内容1、线性规划问题:⎪⎪⎩⎪⎪⎨⎧≥≤+≤+≤++=0,13119241171289..68max 2121212121x x x x x x x x t s x x z (1) 给出原始代码;(2) 计算结果(包括灵敏度分析,求解结果粘贴);(3) 回答下列问题(手写):a ) 最优解及最优目标函数值是多少;b ) 资源的对偶价格各为多少,并说明对偶价格的含义;c ) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?这时目标函数值将是多少?d ) 对x 2的目标函数系数进行灵敏度分析;e ) 对第2个约束的约束右端项进行灵敏度分析;f ) 结合本题的结果解释“Reduced Cost ”的含义。
解:(1) max =8*x1+6*x2;9*x1+8*x2<=12; 7*x1+11*x2<=24; 9*x1+11*x2<=13;(2)计算结果: Objective value: 10.66667Total solver iterations: 2 Variable Value Reduced Cost X1 1.333333 0.000000 X2 0.000000 1.111111 Row Slack or Surplus Dual Price 1 10.66667 1.000000 2 0.000000 0.8888889 3 14.66667 0.000000 4 1.000000 0.000000灵敏度分析: Objective Coefficient RangesCurrent Allowable Allowable Variable Coefficient Increase Decrease X1 8.000000 INFINITY 1.250000 X2 6.000000 1.111111 INFINITY Righthand Side RangesRow Current Allowable Allowable RHS Increase Decrease 2 12.00000 1.000000 12.00000 3 24.00000 INFINITY 14.66667 4 13.00000 INFINITY 1.000000(3)a)该LP问题的最优解x={x1,x2}={1.333333,0.000000} 目标函数值z=10.66667b)第2行资源的对偶价格为0.8888889,3、4行的对偶价格为0、0.对偶价格的含义:表示当对应约束有微小变动时, 目标函数的变化率。
运筹学实验报告
运筹学实验报告运筹学实验报告一、实验目的:本实验旨在了解运筹学的基本概念和方法,并通过实践,掌握运筹学在实际问题中的应用。
二、实验过程:1.确定运筹学的应用领域:本次实验选择了物流配送问题作为运筹学的应用领域。
2.收集数据:我们选择了一个小型企业的物流配送数据进行分析,并将数据录入到计算机中。
3.建立模型:根据所收集的数据,我们建立了一个代表物流配送问题的数学模型。
4.运用运筹学方法进行求解:我们运用了线性规划的方法对物流配送问题进行求解,并得到了最优解。
5.分析结果:通过分析最优解,我们得出了一些有关物流配送问题的结论,并提出了一些优化建议。
三、实验结果:通过运用运筹学方法对物流配送问题进行求解,我们得到了一个最优解,即使得物流成本最低的配送方案。
将最优解与原始的配送方案进行对比,我们发现最优解的物流成本降低了20%,节省了货物运输的时间,减少了仓储成本。
四、实验结论:通过本次实验,我们了解了运筹学的基本概念和方法,并成功应用运筹学方法解决了物流配送问题。
通过分析最优解,我们发现采用最优解可以降低物流成本,提高配送效率。
因此,我们得出结论:运筹学在物流配送问题中的应用具有重要意义,可以帮助企业降低成本、提高效率。
五、实验心得:通过本次实验,我对运筹学有了更深入的了解。
通过实践应用运筹学方法,我明白了运筹学的实用性和价值。
在以后的工作中,我会更加注重运筹学方法的应用,以解决实际问题,提高工作效率。
本次实验不仅增强了我的动手实践能力,也培养了我分析和解决问题的能力。
我将继续学习和探索运筹学的知识,为将来的工作打下坚实的基础。
运筹学实验讲解
Lingo软件实验报告一、实验内容:1)用lingo软件解决线性规划问题;2)熟悉lingo软件的相关操作。
3)对线性规划问题建立目标函数,罗列对应的表达式约束条件,并且对各变量设定实际的非负约束,考虑到lingo软件能方便地输入数据,并且有内置建模语言,提供内部处理函数,能很方便地处理一系列约束条件解出目标函数的最值,所以采用lingo软件解决线性规划问题。
4)对目标规划问题进行多目标处理,添加正负偏差变量罗列对应的表达式约束条件,并且对欲达到目标顺序添加优先等级,建立目标函数,利用lingo软件能能很方便地处理一系列约束条件解出目标函数的最值,采用lingo软件解决线性规划问题。
二、实验设备:计算机三、使用软件:lingo软件四、软件特点与优势:可以简单地表示模型,能方便地输入数据和选择输出。
五、举例计算:1,线性规划A: 营养套餐问题:根据生物营养学理论,要维持人体正常的生理健康需求,一个成年人每天需要从食物中获取3000cal热量,55g蛋白质和800mg钙。
假定市场上可供选择的食品有猪肉、鸡蛋、大米和白菜,这些食品每千克所含热量和营养成分,以及市场价格见下表。
问如何选购才能满足营养的前提下,使购买食品的总费用最小?解:为了建立该问题的数学模型,假设xj(j=1,2,3,4)分别为猪肉、鸡蛋、大米和白菜每天的购买量,则目标函数为Minz=20x1+8x2+4x3+2x4表示在满足营养要求的系列约束条件下,确定各种食物的购买量,使每天购买食物的总费用最小。
其约束条件是热量需求:1000x1+800x2+900x3+200x4>=3000蛋白质需求:50x1+60x2+20x3+10x4>=55钙需求:400x1+200x2+300x3+500x4>=800决策变量的非负约束:xj>=0(j=1,2,3,4)因此,营养配餐问题的数学模型为Minz=20x1+8x2+4x3+2x41000x1+800x2+900x3+200x4>=300050x1+60x2+20x3+10x4>=55400x1+200x2+300x3+500x4>=800xj>=0(j=1,2,3,4)B: lingo代码:model:min=20*x1+8*x2+4*x3+2*x4;1000*x1+800*x2+900*x3+200*x4>=3000;50*x1+60*x2+20*x3+10*x4>=55;400*x1+200*x2+300*x3+500*x4>=800;ENDC: 结果截屏:D:运行结果分析:由运行结构可知:该线性规划的最值为13.33333,即在变量为非负的情况下,只买3.33kg的大米可以满足目标函数的要求。
运筹学实践教学报告范文(3篇)
第1篇一、引言运筹学作为一门应用数学分支,广泛应用于经济管理、工程技术、军事决策等领域。
本报告旨在通过运筹学实践教学,验证理论知识在实际问题中的应用效果,提高学生的实践能力和创新能力。
以下是对本次实践教学的总结和反思。
二、实践教学内容1. 线性规划问题本次实践教学选择了线性规划问题作为研究对象。
通过建立线性规划模型,我们尝试解决生产计划、资源分配等实际问题。
- 案例一:生产计划问题某公司生产A、B两种产品,每单位A产品需消耗2小时机器时间和3小时人工时间,每单位B产品需消耗1小时机器时间和2小时人工时间。
公司每天可利用机器时间为8小时,人工时间为10小时。
假设A、B产品的利润分别为50元和30元,请问如何安排生产计划以获得最大利润?- 建模:设A产品生产量为x,B产品生产量为y,目标函数为最大化利润Z = 50x + 30y,约束条件为:\[\begin{cases}2x + y \leq 8 \\3x + 2y \leq 10 \\x, y \geq 0\end{cases}\]- 求解:利用单纯形法求解该线性规划问题,得到最优解为x = 3,y = 2,最大利润为240元。
- 案例二:资源分配问题某项目需要分配三种资源:人力、物力和财力。
人力为50人,物力为100台设备,财力为500万元。
根据项目需求,每种资源的需求量如下:- 人力:研发阶段需20人,生产阶段需30人;- 物力:研发阶段需30台设备,生产阶段需50台设备;- 财力:研发阶段需100万元,生产阶段需200万元。
请问如何合理分配资源以满足项目需求?- 建模:设人力分配量为x,物力分配量为y,财力分配量为z,目标函数为最大化总效用U = x + y + z,约束条件为:\[\begin{cases}x \leq 20 \\y \leq 30 \\z \leq 100 \\x + y + z \leq 500\end{cases}\]- 求解:利用线性规划软件求解该问题,得到最优解为x = 20,y = 30,z = 100,总效用为150。
运筹学实验报告
运筹学实验报告一实验一:线性规划【例l】某制药厂用甲、乙两台机器生产A、B两种药物。
每种药物要经过两道工序,在甲机器上搅拌,在乙机器上包装。
生产每千克药物所需的加工时间以及机器1周可用于加工的总时间如下表1所示。
已知生产每千克药物A的利润是30元,B是25元,问应如何安排1周的生产计划才能使工厂获利最大?表 1 两种药物在各机器上所需加工时间及各机器可用于加工的总时间(1)写出数学模型,建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果。
(2)将电子表格格式转换成标准模型。
(3)将结果复制到Excel或Word文档中。
(4)分析结果。
解:(1)从已知条件写出该问题的数学模型:max Z=30x1+25x2;2x1+4x2<=40;3x1+2x2<=30;x1>=0,x2>=0.建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果:求解模型过程Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 3X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioX2 25.0000 0 1.0000 0.3750 -0.2500 7.5000X1 30.0000 1.0000 0 -0.2500 0.5000 5.0000C(j)-Z(j) 0 0 -1.8750 -8.7500 337.5000(2)将电子表格格式转换成标准模型。
运筹学实验
试验一Matlab基本运算练习一、实验内容:矩阵运算和基于矩阵的代数运算二、实验目的:1、熟悉有关矩阵运算的各种命令。
2、能熟练地进行代数运算,包括计算矩阵的加、减、乘、逆和方阵的行列式等。
3、能求解线性方程组。
4、能运用矩阵方法求解代数问题。
三、基本知识MA TLAB的操作对象是矩阵,标量为1×1的矩阵,向量为1×n矩阵,多项式也可用矩阵表示.1.矩阵输入矩阵输入有两种方式:(1) 用中括号表示,每行元素间用逗号或空格分开,行与行之间用分号隔开;(2) a=初始值:步长:终值,可输入行矩阵.例如输入a=[1 2 3; 4 5 6; 7 8 9]或a=[1,2,3;4,5,6;7,8,9]会得到同样的结果:a=1 2 34 5 67 8 9输入a=2:2:10得到从2到10的以2为公差的数组:a =2 4 6 8 102.多项式的表示法和运算MA TLAB用行向量来表示一个多项式.例如6xp可用矩阵表示为:x)(3+-=xp=[1 0 –1 6]MA TLAB提供的多项式运算函数名见表1-1表1-1例1 求解方程 1223-=-x x x .解 输入如下命令 syms xs=solve('x^3-2*x^2=x-1') 或 syms xs= x^3-2*x^2-x+1; solve(s) 例2 求多项式12)(23--=x x x p 的微分. 解 输入 p=[1 -2 0 -1]; q=polyder(p) 得 q =3 -4 03.矩阵运算 1.MA TLAB 提供的一些特殊矩阵,见(表1-2).例如rand(3,9)产生一3行9列的矩阵,其元素数值范围为(0,1). 2.运算符,见(表1-3).3.关系运算符,见(表1-4).4.矩阵运算的命令符,见(表1-5).若方程组为B AX =,且1-A 存在,则B A X 1-=.因此可用B A X \=或B A X /=计算线性方程组的解.例3 已知矩阵A 、B 、b 如下⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=741056143A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=201181697431B []531=b(1) 输入矩阵A 、B 、b;(2) 求X1=A 的转置,X2=A+B,X3=AB; (3) 求X4=A 的行列式,X5=A 的秩; (4) 求X6=A 的逆;(5) 求方程组AX=b 的解向量.解 完成上述求解的命令为: (1)A=[3 4 –1;6 5 0;1 –4 7]B=[1 3 4;7 9 16;8 11 20] b=1:2:5 (2) x1=A'x2=A+B x3=A*B 得 x1 =3 6 145 -4 - 1 0 7 x2 =4 7 3 13 14 16 9 7 27 x3 =23 34 56 41 63 104 29 44 80(3) x4=det(A) x5=rank(A) 得 x4 = -34 x5 = 3 (4)x6=inv(A) 得 x6 =-1.0294 0.7059 -0.1471 1.2353 -0.6471 0.1765 8529 -0.4706 0.2647(5)x=inv(A)*b ’ 得 x = 0.3529 0.1765 7647例4 求方程组⎪⎩⎪⎨⎧=--+=--+=+--22302212432143214321x x x x x x x x x x x x 的解.解 输入A=[2 -1 -1 1 1;1 2 -1 -2 0;3 1 -2 -1 2]; A([1,2],:)=A([2,1],:)得A =1 2 -1 -2 02 -1 -1 1 13 1 -2 -1 2输入A(2,:)=A(2,:)-2*A(1,:);A(3,:)=A(3,:)-3*A(1,:)得A =1 2 -1 -2 00 -5 1 5 10 -5 1 5 2输入A(3,:)=A(3,:)-A(2,:)得A =1 2 -1 -2 00 -5 1 5 10 0 0 0 1由线性代数知识知方程组无解.试验二Matlab函数运算练习一、实验内容:Matlab函数编写方法与应用二、实验目的:1.区别M 脚本文件(M-Script) 和M 函数(M-function)。
运筹学实验心得(精选5篇)
运筹学实验心得(精选5篇)运筹学实验心得篇1实验心得:1.背景与目标:运筹学是一门决策支持学科,它使用数学模型和算法来解决实际生活中的优化问题。
本实验的目标是通过学习运筹学的基本理论和方法,提高自己在实际问题中的决策能力和解决问题的能力。
2.实验内容:本实验包括了几个重要的运筹学主题,包括线性规划、整数规划、非线性规划和动态规划等。
我们首先学习了这些基本概念和算法,然后通过具体案例进行了实践操作,并运用所学知识对实际生活中的一些问题进行了分析和解决。
3.实验结果与收获:通过实验,我们成功地运用运筹学方法解决了一些实际问题。
例如,我们使用线性规划算法解决了货物配送问题,并使用整数规划算法解决了人员调度问题。
同时,我们也收获了一些理论知识和实践经验。
我们学会了如何使用数学模型和算法来解决实际问题,并提高了自己的决策能力和解决问题的能力。
4.反思与建议:在实验过程中,我们遇到了一些困难和挑战。
例如,有时候我们无法理解复杂的数学模型和算法,或者无法找到合适的实际问题来验证我们的知识。
因此,我们建议在学习运筹学时,应该注重基本概念和算法的学习,并积极寻找合适的实际问题来巩固和应用所学知识。
总的来说,这次实验让我们更加深入地了解了运筹学的魅力和价值,也让我们更加坚定了自己的学习方向和目标。
运筹学实验心得篇2当然,我可以帮助您撰写一篇运筹学实验的心得体会。
以下是一个可能的示例:---标题:运筹学实验:理论到实践的桥梁摘要:这篇*分享了一次运筹学实验的经历,描述了实验中的问题、解决方法以及所学到的经验教训。
关键词:运筹学,实验,问题解决,学习经验---运筹学是我在大学期间最喜爱的科目之一。
它提供了一种实用且富有挑战性的方法来理解和解决现实世界中的优化问题。
然而,真正将理论与实际联系起来的,是我的第一次运筹学实验。
实验开始时,我被一大堆复杂的数学模型和计算机程序搞得眼花缭乱。
理论知识和抽象的模型使我有些晕头转向,但我还是勇敢地面对了挑战。
运筹学实验总结
运筹学实验总结引言:运筹学是一门综合了数学、经济学和工程学等多学科知识的学科,它通过建立数学模型和运用各种优化方法,帮助我们在现实问题中寻找最优解决方案。
在这学期的运筹学课程中,我们进行了一系列实验。
这些实验不仅加深了对运筹学理论的理解,还提供了一种应用运筹学方法解决问题的实践平台。
在本文中,我将总结我参与的运筹学实验,并分享我的体会和收获。
实验一:线性规划问题求解在这个实验中,我们学习了线性规划的基本概念和求解方法。
我选择了一个典型的生产调度问题作为实验题目。
通过建立数学模型,并运用线性规划软件,我成功地解决了这个问题。
通过这个实验,我深刻理解了线性规划问题的本质,以及如何利用线性规划方法找到最优解。
实验二:整数规划问题求解整数规划是线性规划的扩展,它在决策问题中更加实用。
在这个实验中,我选择了货物配送路线问题作为研究对象。
通过构建整数规划模型,并运用求解软件,我得到了最佳的货物配送方案。
这个实验不仅对我的数学建模能力提出了要求,还培养了我的实际问题解决能力。
实验三:动态规划动态规划是一种重要的优化方法,它广泛应用于最优化问题的求解。
在这个实验中,我们学习了动态规划的基本原理和设计思想。
我选择了旅行商问题作为研究对象,通过建立递推关系和寻找最优子结构,我成功地解决了该问题。
这个实验让我意识到了动态规划方法的强大威力,同时也对我的算法设计能力提出了更高的要求。
实验四:模拟退火算法模拟退火算法是一种全局搜索优化算法,具有很强的应用能力。
在这个实验中,我选择了旅行商问题作为研究对象,通过模拟退火算法的迭代和优化,我得到了一个较好的解。
通过这个实验,我掌握了模拟退火算法的基本原理和实现过程,也了解到了算法的优越性。
实验五:遗传算法遗传算法是一种模拟自然选择和遗传机制的优化算法。
在这个实验中,我选择了装箱问题作为研究对象。
通过运用遗传算法的交叉、变异和适应度选择,我得到了一个较好的装箱方案。
这个实验不仅对我的算法设计能力提出了更高的要求,还让我意识到了遗传算法的创新性和解决复杂问题的能力。
运筹学实验报告
运筹学实验报告运筹学实验报告一、引言运筹学是一门研究如何有效地进行决策和规划的学科。
它利用数学、统计学和计算机科学的方法,帮助解决各种实际问题。
本次实验旨在通过实际案例,探讨运筹学在实践中的应用。
二、问题描述我们选择了一个物流配送问题作为本次实验的研究对象。
假设有一家电商公司,需要将一批商品从仓库分配给不同的客户。
每个客户的需求量和距离仓库的距离都不同。
我们的目标是找到一种最优的配送方案,以最小化总配送成本。
三、数学模型为了解决这个问题,我们采用了整数规划模型。
首先,我们定义了以下变量:- Xij:表示将商品从仓库i分配给客户j的数量- Di:表示仓库i的供应量- Dj:表示客户j的需求量- Cij:表示将商品从仓库i分配给客户j的单位运输成本然后,我们建立了以下约束条件:1. 每个仓库的供应量不能超过其库存量:∑Xij ≤ Di2. 每个客户的需求量必须得到满足:∑Xij ≥ Dj3. 分配的商品数量必须是非负整数:Xij ≥ 0最后,我们的目标是最小化总配送成本:Minimize ∑Cij*Xij四、实验步骤1. 收集数据:我们收集了仓库的库存量、客户的需求量和单位运输成本的数据,并进行了整理和清洗。
2. 建立数学模型:根据收集到的数据,我们建立了上述的整数规划模型。
3. 求解模型:我们使用了运筹学软件对模型进行求解,并得到了最优的配送方案和总配送成本。
4. 分析结果:我们对结果进行了分析,比较了不同方案的优劣,并提出了一些建议。
五、实验结果与分析经过运筹学软件的求解,我们得到了最优的配送方案和总配送成本。
通过与其他方案的比较,我们发现该方案在成本上具有明显的优势。
同时,我们还发现一些仓库和客户之间的距离较远,可能会导致运输时间和成本增加。
因此,我们建议公司可以考虑优化仓库和客户的布局,以减少运输成本。
六、实验总结本次实验通过运筹学的方法,解决了一个物流配送问题。
我们通过建立数学模型、求解模型和分析结果,得出了最优的配送方案和总配送成本。
运筹学实验一:规划求解操作(线性规划问题)
实验一:规划求解操作(线性规划问题)一、实验目的在Excel 软件中加载规划求解工具,使用Excel 软件求解线性规划问题。
二、实验内容1. 在Excel 软件中,加载“规划求解”工具。
2. 在Excel 窗体上输入问题的数据及计算公式。
3. 使用规划求解进行分析,找出线性规划问题的最优解。
4. 对结果进行简单分析。
某营养师建议一位缺铁质与维生素B 的病人,应在一段时间内摄取至少2400mg 的铁质、2100mg 的维生素B1与1500mg 的维生素B2。
现在考虑A, B 两个牌子的维生素,A 牌的维生素每颗含40mg 铁质、10mg 维生素B1与5mg 维生素B2;B 牌的维生素每颗含10mg 铁质,以及各15mg 的维生素B1与B2。
已知A 牌维生素每颗6元,B 牌每颗为8元。
试问在满足营养师建议的情况下,A 与B 两种厂牌的维生素各应服用多少才能使花费的费用最少?1212121212min 684010240010152100 .5151500,0z x x x x x x s t x x x x =++≥⎧⎪+≥⎪⎨+≥⎪⎪≥⎩ 三、实验步骤1. 加载规划求解工具,如图1-1a~图1-1c 。
2. 在窗体上输入问题数据及模块,服用量可先输入任意数值,如图1-2。
3. 输入目标函数和约束的计算公式,如图1-3。
4. 打开规划求解工具,如图1-4。
5. 完成规划求解的参数设定,如图1-5a~图1-5d。
6. 找出线性规划问题的最优解,如图1-6a与图1-6b。
图1-1a 加载规划求解工具图1-1b 加载规划求解工具图1-1c 加载规划求解工具图1-2 输入问题数据与模块图1-3 输入公式图1-4 打开规划求解工具图1-5a 参数设定图1-5b 参数设定图1-5c 参数设定图1-5d 参数设定图1-6 找出线性规划问题的最优解图1-6b 线性规划问题的敏感性报告。
运筹学实验报告(1)
运筹学实验报告一、实验目的:通过实验熟悉单纯形法的原理,掌握matlab循环语句的应用,提高编程的能力和技巧,体会matlab在进行数学求解方面的方便快捷。
二、实验环境:Matlab2012b,计算机三、实验内容(包含参数取值情况):构造单纯形算法解决线性规划问题Min z=cxs.t. Ax=bxj>=0,j=1,…,n函数功能如下:function[S,val]=danchun(A1,C,N)其中,S为最优值,Val为最优解,A1为标准形式LP问题的约束矩阵及最后一列为资源向量(注:资源向量要大于零),A1=[A+b];C是目标函数的系数向量,C=c;N为初始基的下标(注:请按照顺序输入,若没有初始基则定义N=[])。
先输入A1,C,N三个必要参数,然后调用danchun(A1,C,N)进行求解。
在此函数中,首先判断N的长度是否为空,若为空,则flag=1,进入初始解问题的迭代求值,添加辅助问题,构建单纯形表,求g所对应的RHS值,若其>0,则返回该问题无解,若其=0,则返回A1,C,N三个参数,继续构造单纯形表求解。
A1为经过变换后的系数及资源向量,C为单纯形表的第一行,N为经过辅助问题求解之后的基的下标。
否则,直接构建单纯形表,对该问题进行求解,此时flag=2,多次迭代后找到解。
另外,若在大于零的检验数所对应的系数均小于零时,会显示“此问题无界”。
若找到最优解和最优值时,会输出“val”和“S=”以及具体数值。
四、源程序(在matlab中输入edit后回车,写在.M文件中,并保存为danchun.M)function[S,val]=danchun(A1,C,N)if(length(N)==0)gN=zeros(1,length(A1(:,1)));gC=[-C,gN,0];%原文题的检验数的矩阵G=[zeros(1,length(C)),-ones(1,length(gN)),0];val=zeros(1,length(C));%val为最优解;for i=(length(C)+1):length(C)+length(A1(:,1))%生成基变量gN(i-length(C))=i;endNn=gN;%%%%%%%ll=zeros(1,length(N));%比值最小原则%生成除了最上端两行的表的矩阵gb=A1(:,length(C)+1);A1(:,length(C)+1)=[];l=zeros(length(gN),length(gN));gA=[A1,l,gb];for i=1:length(gb)gA(i,gN(i))=1;endfor i=1:length(gN)%J为基本可行基所对应的检验数J(i)=G(gN(i));endfor i=1:length(gN)%找到基本可行基的检验数,将其赋值为0 if(J(i)~=0)G=G-(J(i)/gA(i,gN(i)))*gA(i,:);endendflag=1;elseflag=2;A=A1;Z=[-C,0];%单纯形表的第一行val=zeros(1,length(C));%val为最优解;ll=zeros(1,length(N));%比值最小原则end%%初始解问题while flag==1for i=1:length(gN)%J为基本可行基所对应的G的检验数J(i)=G(gN(i));JZ(i)=Z(gN(i));%JZ为基本可行基所对应的Z的检验数endfor i=1:length(gN)%找到基本可行基的检验数,将其赋值为0 if(J(i)~=0)G=G-(J(i)/gA(i,gN(i)))*gA(i,:);Z=Z-(JZ(i)/gA(i,gN(i)))*gA(i,:);endG1=G;%G1为检验数G1(:,length(G1))=[];D=max(G1);%找到检验数的最大值if(D<=0)%检验数都小于0if(G(length(G))>=1)disp('此情况无解');flag=0;elseif(G(length(G))>=0)for i=1:length(gN)if(max(gN)<=length(A1(1,:)));flag=2;for j=1:length(Nn)a=Nn(1);gA(:,a)=[];Z(a)=[];endA=gA;N=gN;break;endendendendelse%检验数大于0for i=1:length(G)if(G(i)==D)%找到最大的那个检验数所对应的元素for j=1:length(gN)if(gA(j,i)>0)ll(j)=gA(j,length(G))/gA(j,i);%求比值elsell(j)=10000;endendd=min(ll);for k=1:length(ll)%找到进基和离基if(ll(k)==d)gN(k)=i;gA(k,:)=gA(k,:)/gA(k,i);for m=1:k-1gA(m,:)=-(gA(m,i)/gA(k,i))*gA(k,:)+gA(m,:);endfor n=k+1:length(ll)gA(n,:)=-(gA(n,i)/gA(k,i))*gA(k,:)+gA(n,:);endbreak;endendendendendendwhile(flag==2)for i=1:length(N)%J为基本可行基所对应的检验数J(i)=Z(N(i));endfor i=1:length(N)%找到基本可行基的检验数,将其赋值为0if(J(i)~=0)Z=Z-(J(i)/A(i,N(i)))*A(i,:);endendZ1=Z;%Z1为检验数Z1(:,length(Z1))=[];D=max(Z1);%找到检验数的最大值if(D<=0)%检验数都小于0disp('已找到最优解和最优值')for i=1:length(N)val(N(i))=A(i,length(Z));endS=Z(length(Z));disp('val');disp(val);flag=0;else%检验数大于0for i=1:length(Z)if(Z(i)==D)%找到最大的那个检验数所对应的元素for j=1:length(N)if(A(j,i)>0)ll(j)=A(j,length(Z))/A(j,i);%求比值elsell(j)=10000;endendd=min(ll);if(d==10000)disp('此问题无界')flag=0;break;endfor k=1:length(ll)%找到进基和离基if(ll(k)==d)N(k)=i;A(k,:)=A(k,:)/A(k,i);for m=1:k-1A(m,:)=-(A(m,i)/A(k,i))*A(k,:)+A(m,:);endfor n=k+1:length(ll)A(n,:)=-(A(n,i)/A(k,i))*A(k,:)+A(n,:);endbreakendendendendendend五、运行结果与数据测试参考例题:例1:Min z=3x1+x2+x3+x4s.t. -2x1+2x2+x3=43x1+2x+x4=6Xj>=0,j=1,2,3,4在workspace中写入,形式如下:>> A=[-2 2 1 0 43 1 0 1 6]A =-2 2 1 0 43 1 0 1 6>> C=[3 1 1 1]C =3 1 1 1>> N=[3 4]N =3 4>> danchun(A,C,N)已找到最优解和最优值val0 2 0 4ans =6例2:初始解问题Min z=5x1+21x3s.t. x1-x2+6x3-x4=2x1+x2+2x3-x5=1xj>=0,j=1,…,5在workspace中写入,形式如下:>> A=[1 -1 6 -1 0 21 12 0 -1 1]A =1 -1 6 -1 0 21 12 0 -1 1 >> C=[5 0 21 0 0]C =5 0 21 0 0>> N=[]N =[]>> danchun(A,C,N)已找到最优解和最优值val0.5000 0 0.2500 0 0ans =7.7500六、求解实际问题(即解决附件中的实验题目)实验题目列出下列问题的数学模型,并用你自己的单纯形算法程序进行计算,最后给出计算结果。
运筹学实验报告
《运筹学》实验报告指派问题班级:姓名:学号:指导教师:《运筹学》实验报告(一)一.实验目的熟练的掌握整数规划,0-1规划问题的数学模型的建立于求解和数据分析二.实验要求利用EXCEL软件求解整数规划和0-1规划模型三.实验准备Pc486微机、Windows环境、Excel软件四.实验内容及步骤实验内容:某公司面临5项任务,计划派甲、乙、丙、丁、戊分别去做。
由于戊临时被公司派往国外,因此公司只有让甲、乙、丙、丁中的一个人同时担任两项任务,其他三人仍旧单独完成一项任务。
各人完成相应任务时间如下表。
请为公司制定一个总工时最小的指派方案。
实验内容分析:本题中研究的是制定一个总工时最小的工作任务分配方案即本题是一个0-1规划问题。
又本题中是四个员工五个任务的不平衡的分配任务,所以可以有增加虚拟人物的方式来解决不平衡问题也可以直接用抽屉原则来解决不平衡问题。
方法一:(虚拟人物法)建立数学模型:变量:甲员工做A任务为X11,甲员工做B任务为X12,甲员工做C任务为X13,甲员工做D任务为X14,甲员工做E任务为X15,乙员工做A任务为X21,乙员工做B任务为X22,乙员工做C任务为X23,乙员工做D任务为X24,乙员工做E任务为X25,丙员工做A 任务为X31,丙员工做B任务为X32,丙员工做C任务为X33,丙员工做D任务为X34,丙员工做E任务为X35,丁员工做A任务为X41,丁员工做B任务为X42,丁员工做C任务为X43,丁员工做D任务为X44,丁员工做E任务为X45,虚拟员工做A任务为X51,虚拟员工做B任务为X52,虚拟员工做C任务为X53,虚拟员工做D任务为X54 ,虚拟员工做E任务为X55目标:总工时最小的人员安排方法约束:每人(包括虚拟人物)只能做一项任务即决策变量的0-1约束。
规划模型如下:MINZ(x)=25X11+29X12+31X13+42X14+37X15+39X21+38X22+26X23+20X24 +33X25+34X31+27X32+28X33+40X34+32X35+24X41+42X42+36X43+23X44+45X45+24X51+27X52+26X53+20X54+32X55X11+ X21+ X31+ X41+ X51=1X12+ X22+ X32+ X42+ X52=1X13+ X23+ X33+ X34+ X35=1X14+ X24+ X34+ X44+ X45=1X15+ X25+ X35+ X45+ X55=1 s.t. X11+ X12+ X13+ X14+ X15=1X21+ X22+ X23+ X24+ X25=1X31+ X32+ X33+ X34+ X35=1X41+ X42+ X43+ X44+ X45=1X51+ X52+ X53+ X54+ X55=1X ij=0或1(i=0-5,j=0-5)用EXCEL求解上式,过程如下:输入效率矩阵、方案矩阵和约束条件单元格公式:求解参数对话框如图所示:最终结果为:最小总工时131甲做A任务乙做C任务和D任务丙做E任务丁做B任务方法二:(抽屉原则法)建立数学模型:设甲员工做A任务为X11,甲员工做B任务为X12,甲员工做C任务为X13,甲员工做D任务为X14,甲员工做E任务为X15,乙员工做A任务为X21,乙员工做B任务为X22,乙员工做C任务为X23,乙员工做D任务为X24,乙员工做E任务为X25,丙员工做A任务为X31,丙员工做B任务为X32,丙员工做C任务为X33,丙员工做D任务为X34,丙员工做E任务为X35,丁员工做A任务为X41,丁员工做B任务为X42,丁员工做C任务为X43,丁员工做D任务为X44,丁员工做E任务为X45。
哈工大运筹学实验报告实验
哈工大运筹学实验报告实验实验一:货物运输问题的数学建模与求解实验目的:1.了解货物运输问题的数学建模方法;2.掌握货物运输问题的线性规划求解方法;3.学会使用运筹学软件求解货物运输问题。
实验原理:货物运输问题属于线性规划问题的一种,其目标是在满足供需平衡和运输容量限制的前提下,使运输成本最小化。
实验内容:1.问题描述:公司有m个供应点和n个需求点,其中每个供应点的供应量为si (i=1,2,…,m),每个需求点的需求量为dj (j=1,2,…,n)。
公司希望通过运输将货物从供应点送到需求点,各供应点到需求点的单位运输成本为aij (i=1,2,…,m; j=1,2,…,n)。
公司希望确定每个供应点与需求点之间的货物运输量xij,以及总运输成本C,使总运输成本最小。
2.数学建模:设xij表示从第i个供应点到第j个需求点的货物运输量,C表示总运输成本,则该问题的数学模型可以描述为:min C = ∑(i=1 to m) ∑(j=1 to n) aij * xijsubject to:∑(j=1 to n) xij = si, i=1,2,…,m∑(i=1 to m) xij = dj, j=1,2,…,nxij ≥ 0, i=1,2,…,m; j=1,2,…,n3.求解方法:利用运筹学软件求解上述线性规划问题,得到最优解。
实验步骤:1.在运筹学软件中新建一个线性规划模型;2.设定决策变量、目标函数和约束条件,并输入相应参数;3.运行求解算法,得到最优解。
实验结果:根据实验步骤,通过运筹学软件求解货物运输问题,得到最优解如下:供应点1到需求点1的运输量为x11=200;供应点1到需求点2的运输量为x12=150;供应点2到需求点1的运输量为x21=100;供应点2到需求点2的运输量为x22=250;总运输成本最小为C=900。
实验总结:通过本次实验,我了解了货物运输问题的数学建模方法,并掌握了线性规划求解的基本步骤。
运筹学实验报告1
运筹学实验报告1《运筹学》课程实验报告一学院:专业:班级:姓名:学号:指导老师:实验报告班级学号姓名课程名称运筹学开课实验室实验时间实验项目名称【实验项目一】线性规划综合性实验实验性质验证性()综合性(√)设计性()成绩指导老师签名实验条件:硬件:计算机,软件:lingo11实验目的及要求:使学生掌握线性规划建模的方法以及至少掌握一种线性规划软件的使用,提高学生应用线性规划方法解决实际问题的实践动手能力。
实验内容:熟悉、了解LINGO系统菜单、工具按钮、建模窗口、求解器运行状态窗口以及结果报告窗口等的环境。
实验过程:1.选择合适的线性规划问题可根据自己的建模能力,从本实验指导书提供的参考选题中或从其它途径选择合适的线性规划问题。
2.建立线性规划数学模型针对所选的线性规划问题,运用线性规划建模的方法,建立恰当的线性规划数学模型。
3.用运筹学软件求解线性规划数学模型应用运筹学软件Lingo对已建好的线性规划数学模型进行求解。
4.对求解结果进行应用分析对求解结果进行简单的应用分析。
实验习题计算:使用lingo来求解下列例题1. MAXZ=2X1+2X2X1-X2≥-1-0.5X1+X2≤2X1,X2≥0解:运用软件lingo11求解线性规划例题1如下:由上述运算结果可知:该线性规划问题的解为无界解,X=(2,3)是它的一个基可行解。
2. MINZ=1000X1+800X2X1≥10.8X1+X2≥1.6X1≤2X2≤1.4X1,X2≥0解:运用软件lingo11求解线性规划例题1如下:由上述运算结果可知:该线性规划问题的最优解X=(1,0.8),目标值Z=1640实验总结:例题1可用图解法检验,从图中可以清楚的看出,该问题可行域无界,目标函数值可以增大到无穷大,该题解为无界解;但在其可行域中存在顶点X=(2,3),故X=(2,3)为该线性规划问题的基可行解。
运筹学实训实验报告
一、实验背景运筹学是一门应用数学的分支,它运用数学模型和算法来解决各种优化问题。
随着现代科技的发展,运筹学在各个领域的应用越来越广泛,如生产管理、物流运输、资源分配等。
为了提高学生运用运筹学知识解决实际问题的能力,我们开展了运筹学实训实验。
二、实验目的1. 熟悉运筹学的基本概念和常用方法;2. 掌握线性规划、整数规划、运输问题、目标规划等运筹学模型;3. 学会运用计算机软件解决实际问题;4. 培养学生的团队合作精神和创新意识。
三、实验内容本次实验主要包括以下内容:1. 线性规划:以生产计划问题为例,建立数学模型,并运用Excel规划求解器求解最优解。
2. 整数规划:以人员排班问题为例,建立数学模型,并运用Lingo软件求解最优解。
3. 运输问题:以物流配送问题为例,建立数学模型,并运用Lingo软件求解最优解。
4. 目标规划:以投资组合问题为例,建立数学模型,并运用Lingo软件求解最优解。
四、实验步骤1. 线性规划实验(1)问题分析:某企业需要生产甲、乙两种产品,已知生产甲、乙两种产品所需的原料、劳动力及设备等资源消耗量,以及产品的售价和利润。
(2)模型建立:根据问题分析,建立线性规划模型,目标函数为最大化利润,约束条件为资源消耗量不超过限制。
(3)求解:运用Excel规划求解器求解最优解。
2. 整数规划实验(1)问题分析:某公司需要安排员工值班,要求每天至少有3名员工值班,且员工值班时间不能超过一周。
(2)模型建立:根据问题分析,建立整数规划模型,目标函数为最小化员工值班成本,约束条件为员工值班时间不超过限制。
(3)求解:运用Lingo软件求解最优解。
3. 运输问题实验(1)问题分析:某物流公司需要将货物从A、B两个仓库运送到C、D两个销售点,已知各仓库的货物量、各销售点的需求量以及运输成本。
(2)模型建立:根据问题分析,建立运输问题模型,目标函数为最小化运输成本,约束条件为各仓库的货物量不超过需求量。
运筹学实验报告
实验一:线性规划问题1、实验目的:①学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
②掌握利用计算机软件求解线性规划最优解的方法。
2、实验任务①结合已学过的理论知识,建立正确的数学模型;②应用运筹学软件求解数学模型的最优解③解读计算机运行结果,结合所学知识给出文字定性结论3、实验仪器设备:计算机4、实验步骤:(1)在主菜单中选择线性规划模型,在屏幕上就会出现线性规划页面,如图所示。
(2)在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数及约束条件的各变量的系数和b值,并选择好“≥”、“≤”或“=”号,如图所示。
(3)当约束条件输入完毕后,请点击“解决”按钮,屏幕上将显现线性规划问题的结果,如图所示。
例题一:例题二:例题三:例题四:例题五5、试验体会或心得运筹学是一门实用的学科,学习运筹学,结合生活实际运用运筹学,我们可以将资源最大化利用。
学习理论的目的就是为了解决实际问题。
线性规划的理论对我们的实际生活指导意义很大。
当我们遇到一个问题,需要认真考察该问题。
如果它适合线性规划的条件,那么我们就利用线性规划的理论解决该问题。
线性规划指的是在资源有限的条件下,为达到预期目标最优,而寻找资源消耗最少的方案。
其数学模型有目标函数和约束条件组成。
一个问题要满足一下条件时才能归结为线性规划的模型:⑴要求解的问题的目标能用效益指标度量大小,并能用线性函数描述目标的要求;⑵为达到这个目标存在很多种方案;⑶要到达的目标是在一定约束条件下实现的,这些条件可以用线性等式或者不等式描述。
所以,通过这次实验,不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。
这次实验让我懂得了运筹学在电脑的应用,让我对运输与数学相结合的应用理解更深了。
实验二:整数规划与运输问题1、实验目的:①学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
运筹学实验
运筹学实验《运筹学实验》1——线性规划建模与求解(周二、三)一.实验目的及要求1. 掌握线性规划建模的方法与过程,体会线性规划建模的核心思想。
2. 掌握线性规划问题的求解方法。
3.掌握用Matlab或LINDO求解线性规划问题的基本方法和步骤,学会分析Matlab或LINDO的计算结果。
4.锻炼应用所学知识解决综合性问题的能力二.实验设备与器件1.安装win98系统以上的计算机2.malab6.0或LINDO6.01或更高版本的软件三.实验原理①线性规划常见可以解决资源分配问题,成本效益平衡问题。
在求解线性规划时,常用的方法有图解法和单纯形法。
单纯形法基本思路是:先找出一个基本可行解,判断其是否为最优解,如果不是最优解,则转换到相邻的基本可行解,并使目标函数值不断增大,直到找出最优解或判断有无界解、无解为止。
本实验是合理利用线材问题属于解决资源分配问题②使用LINDO 6.01进行操作:LINDO(Linear Interactive and Discrete Optimizer)是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题,因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO 中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
四.实验内容实验准备:1 自学运筹学实验指导书第一、二两章,复习巩固Matlab基础知识;2 复习课本《运筹学基础及应用》第一章,熟悉线性规划模型建模的过程,模型标准化及模型求解的思路和过程,最优解判定的准则和方法。
实验内容:1 自学运筹学实验指导书第三章,掌握线性规划模型求解的软件技术;2 利用软件实现运筹学实验指导书第三章所有例题的求解计算;3 参照例题,总结提炼线性规划建模与求解过程的主要难点问题、模型求解的程序命令及其适用条件等,形成便于自己理解的规范的操作指南;4 利用前面总结的方法,完成如下习题的求解:● 1.7 化标准型并用程序命令求解● 1.12 建立模型,化标准型并用程序命令求解5 完成如下实际问题的建模与求解。
运筹学实验
实验一:线性规划注:以下四个题目任选一个来写实验报告,其他三道作为参考。
题目1:生产计划问题某企业生产3种产品甲、乙、丙,产品所需的主要原料为A、B两种,每单位原料A可生产产品甲、乙、丙的底座为别为12、18、16个;每个产品甲、乙、丙需要原料B分别为13kg、8kg、10kg,设备生产用时分别为10.5、12.5、8台时,每个产品的利润分别为1450元、1650元、1300元。
按月计划,可提供的原料A为20个单位,原料B为350kg,设备正常的月工作时间为3000台时。
建立实现总利润最高的数学模型并求解。
题目2:投资问题某公司受人委托,准备用120万元投资A和B两种基金,其中A基金的单位投资额为50元,年回报率为10%,B基金的单位投资额为100元,年回报率为4%。
委托人要求在每年的年回报金额至少达到6万元的基础上要求投资风险最小。
据测定每单位A基金的投资风险指数为8,每单位B基金的投资风险指数为3,风险指数越大表面投资风险越大。
委托人要求至少在基金B中的投资额不少于30万元。
(1)为了使总的投资风险指数最小,该公司在基金A和B中各投资多少单位?这时每年的回报金额是多少?(2)为了使总的投资回报金额最大,应该如何投资?这时投资风险指数是多少?题目3:配料问题某化工厂根据一项合同要为用户生产一种用甲、乙两种原料混合配置而成的特殊产品。
甲、乙两种原料都含有A、B、C三种化学成分,其含量(%)是:甲为12,2,3;乙为3,3,15。
按合同规定,产品中三种化学成分的含量(%)不得低于4,2,5。
甲、乙原料成本为每千克3,2元。
厂方希望总成本达到最某咨询公司,受厂商的委托,对新上市的一种新产品进行消费者反应的调查。
该公司采用了挨户调查的方法,委托他们调查的厂商以及该公司的市场研究专家对该调查提出下列几点要求:(1)至少调查2000户人家;(2)在晚上调查的户数和白天调查的户数相等;(3)至少调查700户有孩子的家庭;(4)至少调查450户无孩子的家庭。
运筹学上机实验报告
运筹学上机实验报告一、实验目的本次运筹学上机实验的目的是通过实践操作,加深对运筹学知识的理解和掌握,了解线性规划模型的建立和求解方法,并能够应用相关软件进行模型求解。
二、实验内容1. 线性规划模型建立在本次实验中,我们需要根据给定的问题情境,建立相应的线性规划模型。
具体来说,我们需要确定决策变量、约束条件和目标函数,并将其转化为标准形式。
2. 模型求解在建立好线性规划模型后,我们需要利用相关软件进行模型求解。
常用的求解方法包括单纯形法、对偶单纯形法等。
通过对不同方法的比较和分析,可以找到最优解并得出相应结论。
3. 结果分析与优化在得出最优解后,我们还需要对结果进行分析和优化。
可以通过灵敏度分析等方法来研究问题情境中各个因素对最终结果的影响程度,并提出相应改进意见。
三、实验过程1. 线性规划模型建立首先,我们需要确定决策变量。
例如,在一个生产计划问题中,决策变量可能是不同产品的生产数量。
然后,我们需要根据问题情境确定约束条件,例如生产线的产能限制、原材料的供应量等。
最后,我们需要确定目标函数,即需要最小化或最大化的目标。
2. 模型求解在建立好模型后,我们需要利用相关软件进行模型求解。
以MATLAB 为例,可以使用linprog函数进行线性规划求解。
具体步骤包括输入决策变量、约束条件和目标函数等参数,并调用linprog函数进行计算。
3. 结果分析与优化在得出最优解后,我们还需要对结果进行分析和优化。
例如,在灵敏度分析中,我们可以通过改变某些参数值来研究其对最终结果的影响程度。
如果发现某个因素对结果影响较大,则可以提出相应改进意见。
四、实验心得通过本次运筹学上机实验,我深刻认识到了线性规划模型在实际问题中的重要性,并学会了如何利用相关软件进行模型求解和结果分析。
同时,在实验过程中也遇到了一些困难和挑战,例如如何正确建立模型、如何选择合适的求解方法等。
但通过不断尝试和探索,我逐渐掌握了相关技能和方法,并取得了较好的实验成果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 动态规划模型编程解算
1、用Lingo软件求解下列最短路线问题:
下图是一个线路网,连线上的数字表示两点之间的距离(或费用)。
试寻求一条由A到G 距离最短(或费用最省)的路线。
见“Matlab数学建模算法全收录”P59页Lingo程序——最优值为18.
再此基础上,自己编写下列最短路径规划程序:
Title Dynamic Programming;
sets:
vertex/A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G/:L;
road(vertex,vertex)/A B1,A B2,B1 C1,B1 C2,B1 c3,B2 C2,B2 C3,B2 C4, C1 D1,C1 D2,C2 D1,C2 D2,C3 D2,C3 D3,C4 D2,C4 D3,
D1 E1,D1 E2,D2 E2,D2 E3,D3 E2,D3 E3,
E1 F1,E1 F2,E2 F1,E2 F2,E3 F1,E3 F2,F1 G,F2 G/:D;
endsets
data:
D=5 3 1 3 6 8 7 6
6 8 3 5 3 3 8 4
2 2 1 2
3 3
3 5 5 2 6 6
4 3;
L=0,,,,,,,,,,,,,,,;
enddata
@for(vertex(i)|i#GT#1:L(i)=@min(road(j,i):L(j)+D(j,i)));
end
运行结果:
2、用Lingo求解下列最短路径规划程序:
如下图,求从S到T的最短路径。
设d(x,y)为城市x与城市y之间的直线距离;L(x)为城市S到城市x的最优行驶路线的路长。
模型为:
min {L(x)+d(x,y)}
L(S)=0
注释:求得最短路径为20。
代码如下:
Title Dynamic Programming;
sets:
vertex/S,A1,A2,A3,B1,B2,C1,C2,T/:L;
road(vertex,vertex)/S A1,S A2,S A3,A1 B1,A1 B2,A2 B1,A2 B2,A3 B1, A3 B2,B1 C1,B1 C2,B2 C1,B2 C2,
C1 T,C2 T/:D;
endsets
data:
D=6 3 3 6 5 8 6 7
4 6 7 8 9
5 6;
L=0,,,,,,,,;
enddata
@for(vertex(i)|i#GT#1:L(i)=@min(road(j,i):L(j)+D(j,i)));
end
运行结果:
3、用Lingo 求解下列动态规划问题(经营策略问题):建模并编程解算 某商店在未来4个月中需要利用一个仓库存储某种商品。
仓库的最大容量为1000件,每月中旬订购商品,并于下月初到货。
预计今后4个月这种商品的购价k p 和售价k q 如下表所示。
假定商店在1月初开始时仓库已存有该种商品500件,且每月市场需求不限。
问应如何计划每月的订购与销售数量,使得这4个月的总利润最大。
月份k
购价k p 售价k q
1
10
12 2 9 9 3 11 13 4
15 17
需建立整数规划模型(设(1,2,3,4)i x i =为第i 个月的订购数量,(1,2,3,4)i y i =为
第i 个月的销售数量)。
程序如下:
max =12*y1+9*y2+13*y3+17*y4-10*x1-9*x2-11*x3-15*x4; y1<=500; x1-y1<=500; x1-y1>=-500; x1-y1+x2-y2<=500; x1-y1+x2-y2>=-500; x1-y1+x2-y2+x3-y3<=500; x1-y1+x2-y2+x3-y3>=-500; x1-y1+x2-y2+x3-y3+x4-y4<=500; x1-y1+x2-y2+x3-y3+x4-y4>=-500; y2<=1000; y3<=1000; y4<=1000; Z1=500; Z2=500+x1-y1; Z3=500+x1-y1+x2-y2; Z4=500+x1-y1+x2-y2+x3-y3; Z5=500+x1-y1+x2-y2+x3-y3+x4-y4;
运行结果:。