运筹学实验报告 林纯雪
- 格式:doc
- 大小:126.50 KB
- 文档页数:17
运筹学实验报告林纯雪运筹学报告一、投资计划问题某地区在今后3年内有4种投资机会,第一种是在3年内每年年初投资,年底可获利润20%,并可将本金收回。
第二种是在第一年年初投资,第二年年底可获利50%,并可将本金收回,但该项投资金额不超过2百万元。
第三种是在第二年年初投资,第三年年底收回本金,并获利60%,但该项投资金额不超过1.5百万元。
第四种是在第三年年初投资,第三年年底收回本金,并可获利40%,但该项投资金额不超过1百万元。
现在该地区准备了3百万元资金,如何制定投资方案,使到第三年年末本利的和最大?解:设x1,x2,x3,x4依次表示从一种投资方案到第四种投资方案的投资额程序如下:max=x1*1.2+x2*1.5+(x1+x3)*1.2+x4*1.6+(x1+x3+x5)*1.2+x 6*1.4;x1+x2+x3+x4+x5+x5+x6=3;x2<2;x4<1.5;x6<1;end求解结果:Global optimal solution found.Objective value: 10.80000Total solver iterations: 0Variable Value Reduced CostX1 3.000000 0.000000X2 0.000000 2.100000X3 0.000000 1.200000X4 0.000000 2.000000X5 0.000000 6.000000X6 0.000000 2.200000Row Slack or Surplus Dual Price1 10.80000 1.0000002 0.000000 3.6000003 2.000000 0.0000004 1.500000 0.0000005 1.000000 0.000000二、配料问题某冶炼厂计划炼制含甲、乙、丙、丁4种金属成分的合金1吨,4种金属的含量比例为:甲不少于23%,乙不多于15%,丙不多于4%,丁介于35%~65%之间,此外不允许有其他成分。
《运筹学》实验报告成绩:班级:学号:姓名:实验一、线性规划(25分)一、实验目的:安装WinQSB软件,了解WinQSB软件在Windows环境下的文件管理操作,熟悉软件界面内容,掌握操作命令;利用WinQSB软件求解线性规划问题。
二、实验内容:安装与启动软件;建立新问题,输入模型,求解模型,结果的简单分析。
三、操作步骤:(1)安装与启动WinQSB软件(5分)1.安装双击Setup.exe,弹出窗口如下图0—1所示:图0—1输入安装的目标文件夹,点Continue按钮,弹出窗口如图0—2所示:图0—2输入用户名和公司或组织名称,点Continue按钮进行文件的复制,完成后弹出窗口如图0—3:图0—3显示安装完成,点“确定”退出。
WinQSB软件安装完毕后,会在开始→程序→WinQSB中生成19个菜单项,分别对应运筹学的19个问题。
如图0—4所示:图0—42.启动在开始菜单中选择Linear and Integer Programming,运行后出现启动窗口如下图0—5所示:图0—5(2)建立线性规划问题并输入模型(5分)选题:P32例八,题目如下:miz z=-3x1+x2+x3x1-2x2+x3≤11-4x1+x2+2x3≥3-2x1 +x3=1x1,x2,x3≥0输入数据,如下图所示:、(3)分析模型并求解(5分)计算结果:a) 运用软件计算的具体过程:b)计算的最终结果如下:(4)实验结果分析(5分)最优解=[4,1,9],即x1=4,x2=1,x3=9最优值=-2,min z=-2四、实验中遇到的主要问题及解决方法(5分)起初未能正确的Variable Type选择导致了计算结果出现错误,最后仔细的检查了操作过程,改变了Variable Type,得出了正确的结果。
实验二、运输问题(25分)一、实验目的:熟悉运用WinQSB软件求解运输问题和指派问题,掌握操作方法。
二、实验内容:求解实际中某一运输问题,建立、输入并求解模型,结果的简单分析。
运筹学综合实验报告本次实验中,我们使用了运筹学的方法来解决了一个经典的优化问题,即整数线性规划问题(Integer Linear Programming,简称ILP)。
一、实验目的本次实验的主要目的是熟悉ILP的求解过程,了解ILP在实际问题中的应用,以及掌握使用现代优化软件Gurobi来求解ILP的方法。
二、实验原理1. 整数线性规划问题整数线性规划问题是在所有线性规划问题中的一个非常重要的子集。
它将优化目标函数的线性组合与整数限制相结合。
一个典型的ILP问题可以被描述为:最大化(或最小化)目标函数:\max(\min) \sum_{j=1}^{n}c_j x_j满足如下的约束条件:\sum_{j=1}^{n}a_{ij} x_j \leq b_i,\ i=1,2,\cdots,mx_j \geq 0,\ j=1,2,\cdots,nx_j \in Z,\ j=1,2,\cdots,nx_j表示自变量,c_j表示目标函数中的系数,a_{ij}表示第i个约束条件中x的系数,b_i表示约束条件的右侧常数,m表示约束条件的数量,n表示变量的数量。
最后两个约束条件要求自变量只能是整数。
2. Gurobi优化软件Gurobi是一个商业优化软件,经过多年的发展,已成为当前最流行的数学优化软件之一。
Gurobi支持多种数学优化方法,包括线性规划、非线性规划、混合整数规划、二次规划等。
Gurobi使用了现代算法来实现高效的求解效果,是工业和学术界备受推崇的优化软件。
三、实验内容1. 利用Gurobi求解整数线性规划问题我们使用Gurobi来求解如下的整数线性规划问题:\max\ \ 2x_1 + 3x_2 + 7x_3满足如下的约束条件:x_1 + x_2 + x_3 \leq 6x_1 - x_2 + x_3 \leq 4x_1, x_2, x_3 \in Z,\ x_1 \geq 0,\ x_2 \geq 0,\ x_3 \geq 0我们使用Python代码来实现该问题的求解过程:```pythonimport gurobipy as gbmodel = gb.Model("integer linear programming")# Create variablesx1 = model.addVar(vtype=gb.GRB.INTEGER, name="x1")x2 = model.addVar(vtype=gb.GRB.INTEGER, name="x2")x3 = model.addVar(vtype=gb.GRB.INTEGER, name="x3")# Set objectivemodel.setObjective(2*x1 + 3*x2 + 7*x3, gb.GRB.MAXIMIZE)# Add constraintsmodel.addConstr(x1 + x2 + x3 <= 6)model.addConstr(x1 - x2 + x3 <= 4)# Optimize modelmodel.optimize()# Print resultsprint(f"Maximum value: {model.objVal}")print(f"x1 = {x1.x}")print(f"x2 = {x2.x}")print(f"x3 = {x3.x}")```运行该代码,得到的输出结果为:```Optimize a model with 2 rows, 3 columns and 6 nonzerosVariable types: 0 continuous, 3 integer (0 binary)Coefficient statistics:Matrix range [1e+00, 1e+00]Objective range [2e+00, 7e+00]Bounds range [0e+00, 0e+00]RHS range [4e+00, 6e+00]Found heuristic solution: objective 9.0000000Presolve time: 0.00sPresolved: 2 rows, 3 columns, 6 nonzerosVariable types: 0 continuous, 3 integer (0 binary)Root relaxation: objective 1.500000e+01, 2 iterations, 0.00 secondsNodes | Current Node | Objective Bounds | WorkExpl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time0 0 15.00000 0 1 9.00000 15.00000 66.7% - 0sH 0 0 14.0000000 15.00000 7.14% - 0s0 0 15.00000 0 1 14.00000 15.00000 7.14% - 0sExplored 1 nodes (2 simplex iterations) in 0.03 secondsThread count was 4 (of 4 available processors)Solution count 2: 14 9Optimal solution found (tolerance 1.00e-04)Best objective 1.400000000000e+01, best bound 1.400000000000e+01, gap 0.0000%Maximum value: 14.0x1 = 2.0x2 = 4.0x3 = 0.0```经过Gurobi的求解,我们得到了最大值为14,同时x_1=2, x_2=4, x_3=0时取到最优值。
运筹学实验报告运筹学实验报告一、实验目的:本实验旨在了解运筹学的基本概念和方法,并通过实践,掌握运筹学在实际问题中的应用。
二、实验过程:1.确定运筹学的应用领域:本次实验选择了物流配送问题作为运筹学的应用领域。
2.收集数据:我们选择了一个小型企业的物流配送数据进行分析,并将数据录入到计算机中。
3.建立模型:根据所收集的数据,我们建立了一个代表物流配送问题的数学模型。
4.运用运筹学方法进行求解:我们运用了线性规划的方法对物流配送问题进行求解,并得到了最优解。
5.分析结果:通过分析最优解,我们得出了一些有关物流配送问题的结论,并提出了一些优化建议。
三、实验结果:通过运用运筹学方法对物流配送问题进行求解,我们得到了一个最优解,即使得物流成本最低的配送方案。
将最优解与原始的配送方案进行对比,我们发现最优解的物流成本降低了20%,节省了货物运输的时间,减少了仓储成本。
四、实验结论:通过本次实验,我们了解了运筹学的基本概念和方法,并成功应用运筹学方法解决了物流配送问题。
通过分析最优解,我们发现采用最优解可以降低物流成本,提高配送效率。
因此,我们得出结论:运筹学在物流配送问题中的应用具有重要意义,可以帮助企业降低成本、提高效率。
五、实验心得:通过本次实验,我对运筹学有了更深入的了解。
通过实践应用运筹学方法,我明白了运筹学的实用性和价值。
在以后的工作中,我会更加注重运筹学方法的应用,以解决实际问题,提高工作效率。
本次实验不仅增强了我的动手实践能力,也培养了我分析和解决问题的能力。
我将继续学习和探索运筹学的知识,为将来的工作打下坚实的基础。
运筹学实验报告学院:安全与环境工程姓名:***学号: **********专业:物流工程班级:物流1302班实验时间: 5月8日、 5月9日5月13日、5月14日5月20日、5月21日湖南工学院安全与环境工程学院2015年5月实验一线性规划一、实验目的1、理解线性规划的概念。
2、对于一个问题,能够建立基本的线性规划模型。
3、会运用Excel解决线性规划电子表格模型。
二、实验内容线性规划的一大应用适用于联邦航空公司的工作人员排程,为每年节省开支超过600万美元。
联邦航空公司正准备增加其中心机场的往来航班,因此需要雇佣更多的客户服务代理商,但是不知道到底要雇用多少数量的代理商。
管理层意识到在向公司的客户提供令人满意的服务水平的同时必须进行成本控制,因此,必须寻找成本与收益之间合意的平衡。
于是,要求管理团队研究如何规划人员才能以最小的成本提供令人满意的服务。
分析研究新的航班时间表,以确定一天之中不同时段为实现客户满意水平必须工作的代理商数目。
在表1.2的最后一栏显示了这些数目,其中第一列给出对应的时段。
表中的其它数据反映了公司与客户服务代理商协会所定协议上的一项规定,这一规定要求每一代理商工作8小时为一班,各班的时间安排如下:轮班1:6:00AM~2:00PM轮班2:8:00AM~4:00PM轮班3:中午~8:00PM轮班4:4:00PM~午夜轮班5:10:00PM~6:00AM表中打勾的部分表示这段时间是有相应轮班的。
因为轮班之间的重要程度有差异,所以协议中工资也因轮班所处的时间而不同。
每一轮班对代理商的补偿(包括收益)如最低行所示。
问题就是,在最低行数据的基础上,确定将多少代理商分派到一天之中的各个轮班中去,以使得人员费用最小,同时,必须保证最后一栏中所要求的服务水平的实现。
表1.1 联邦航空公司人员排程问题的数据轮班的时段时段 1 2 3 4 5 最少需要代理商的数量6:00AM~8:00AM √ 488:00AM~10:00AM √√ 7910:00AM~中午√√ 65中午~2:00PM √√√ 872:00PM~4:00PM √√ 644:00PM~6:00PM √√ 736:00PM~8:00PM √√ 828:00PM~10:00PM √ 4310:00PM~午夜√√ 52午夜~6:00AM √ 15每个代理商的每日成本 170 160 175 180 195三、实验步骤(1)明确实验目的:科学规划人员以最小的成本提供令人满意的服务。
运筹学lingo实验报告
运筹学lingo实验报告
一、引言
实验目的
本次实验旨在探索运筹学lingo在解决实际问题中的应用,了解lingo的基本使用方法和解题思路。
实验背景
运筹学是一门研究决策和规划的学科,其能够帮助我们优化资源分配、解决最优化问题等。
lingo是一种常用的运筹学工具,具有强大的求解能力和用户友好的界面,被广泛应用于各个领域。
二、实验步骤
准备工作
•安装lingo软件并激活
•熟悉lingo界面和基本功能
确定问题
•选择一个运筹学问题作为实验对象,例如线性规划、整数规划、网络流等问题
•根据实际问题,使用lingo的建模语言描述问题,并设置变量、约束条件和目标函数
运行模型
•利用lingo的求解器,运行模型得到结果
结果分析
•分析模型求解结果的合理性和优劣,对于不符合要求的结果进行调整和优化
结论
•根据实验结果,总结lingo在解决该问题中的应用效果和局限性,对于其他类似问题的解决提出建议和改进方案
三、实验总结
实验收获
•通过本次实验,我熟悉了lingo软件的基本使用方法和建模语言,增加了运筹学领域的知识和实践经验。
实验不足
•由于时间和条件的限制,本次实验仅涉及了基本的lingo应用,对于一些复杂问题的解决还需要进一步学习和实践。
•在以后的学习中,我将继续深入研究lingo的高级功能和应用场景,以提升运筹学问题的求解能力。
以上就是本次实验的相关报告内容,通过实验的实践和总结,我对lingo在运筹学中的应用有了更深入的理解,为今后的学习和研究奠定了基础。
运筹学lingo实验报告(一)运筹学lingo实验报告介绍•运筹学是一门研究在给定资源约束下优化决策的学科,广泛应用于管理、工程、金融等领域。
•LINGO是一种常用的运筹学建模和求解软件,具有丰富的功能和高效的求解算法。
实验目的•了解运筹学的基本原理和应用。
•掌握LINGO软件的使用方法。
•运用LINGO进行优化建模和求解实际问题。
实验内容1.使用LINGO进行线性规划的建模和求解。
2.使用LINGO进行整数规划的建模和求解。
3.使用LINGO进行非线性规划的建模和求解。
4.使用LINGO进行多目标规划的建模和求解。
实验步骤1. 线性规划•确定决策变量、目标函数和约束条件。
•使用LINGO进行建模,设定目标函数和约束条件。
•运行LINGO求解线性规划问题。
2. 整数规划•在线性规划的基础上,将决策变量的取值限制为整数。
•使用LINGO进行整数规划的建模和求解。
3. 非线性规划•确定决策变量、目标函数和约束条件。
•使用LINGO进行非线性规划的建模和求解。
4. 多目标规划•确定多个目标函数和相应的权重。
•使用LINGO进行多目标规划的建模和求解。
实验结果•列举各个实验的结果,包括最优解、最优目标函数值等。
结论•运筹学lingo实验是一种有效的学习运筹学和应用LINGO的方法。
•通过本实验能够提高对运筹学概念和方法的理解,并掌握运用LINGO进行优化建模和求解的技能。
讨论与建议•实验过程中是否遇到困难或问题,可以进行讨论和解决。
•提出对于实验内容或方法的建议和改进方案。
参考资料•提供参考书目、文献、教材、网站等资料,以便学生深入学习和研究。
致谢•对与实验指导、帮助或支持的人员表示感谢,如老师、助教或同学等。
以上为运筹学lingo实验报告的基本框架,根据实际情况进行适当调整和补充。
实验报告应简洁明了,清晰表达实验目的、内容、步骤、结果和结论,同时可以加入必要的讨论和建议,以及参考资料和致谢等信息。
运筹学实验报告2《运筹学》课程实验第 2 次实验报告实验内容及基本要求:实验项目名称:运输问题实验实验类型: 验证每组人数: 1实验内容及要求:内容:运输问题建模与求解要求:能够写出求解模型、运用软件进行求解并对求解结果进行分析实验考核办法:实验结束要求写出实验报告,并于实验结束一周内(5月29日)上交。
实验结果:(附后)内容主要包括以下3点:1. 问题分析与建立模型,阐明建立模型的过程(一定要给出模型)。
2. 实验步骤,包含使用什么软件以及详细的实验过程。
3. 实验结果及其分析。
成绩评定:该生对待本次实验的态度 ?认真 ?良好 ?一般 ?比较差。
本次实验的过程情况 ?很好 ?较好 ?一般 ?比较差对实验结果的分析 ?很好 ?良好 ?一般 ?比较差文档书写符合规范程度 ?很好 ?良好 ?一般 ?比较差综合意见: 成绩指导教师签名刘长贤日期 2012.5.31实验背景:某农民承包了五块土地工206亩,打算种小麦、玉米和蔬菜三种农作物。
各种农作物的计划播种面积(亩)以及每块土地各种不同农作物的亩产量(公斤)如表1所示。
问如何安排种植计划,可使总产量最高,表1 每块土地种植不同农作物的亩产数量土地块别计划1 2 34 5 播种作物种类面积小麦 500 600650 1050 80086850 800 700 900 95070 玉米1000 950 850550 70050 蔬菜44 32 46 36 48土地亩数一(问题分析与建立模型 1.问题分析:总产量为目标函数maxZ;计划播种面积和土地亩数是约束条件;每块土地种植的不同农作物的亩产数量是决策变量2数学模型:目标函数1112131415MaxZ,500x,600x,650x,1050x,800x,2122232425 850x,800x,700x,900x,950x,1000x31,950x32,850x33,550x34,700x35约束条件x,x,x,x,x,861112131415x,x,x,x,x,702122232425x,x,x,x,x,503132333435x,x,x,36112131x,x,x,48122232x,x,x,44132333x,x,x,32142434 x,x,x,46152535xi,j,0,i,1,2,3,4,5;j,1,2,3二(实验步骤1.根据数学模型和题目要求,使用Excel软件建立如下表格2.单元格名称指定:选中要指定名称的单元格,点击“插入-名称-定义/指定”,则可对上图中的“亩产数量(=Sheet1!$C$3:$G$5),种植量(=Sheet1!$C$8:$G$10),实际面积(=Sheet1!$H$8:$H$10),计划面积(=Sheet1!$J$8:$J$10),实际亩数(=Sheet1!$C$11:$G$11),土地亩数(=Sheet1!$C$13:$G$13),总产量(=Sheet1!$L$12)”进行名称的指定3.单元格赋值:(1)利用“求和”函数对“实际面积”和“实际亩数”相应的单元格进行赋值,例如H8=SUM(小麦),C11=SUM(土地1)(2)利用“SUMPRODUCT”函数对“总产量”对应的单元格L12进行赋值,由于之前指定了单元格名称,故总产量=SUMPRODUCT(亩产数量,种植量) (3)由于当前各决策变量的值为0,故相应的实际面积,实际亩数,总产量为0 4.单击“工具”>“加载宏”>“规划求解”设置相关参数,如下图目标单元格为总产量可变单元格为每块土地种植的不同农作物对应的单元格约束条件为实际面积=计划面积;实际亩数=计划亩数5.设置完目标单元格、可变单元格和约束条件后,点击“选项”,选定“采用线性模型”和“假定非负”,点击“确定”进行规划求解,结果如下图三(实验结果及分析由上图可知:应这样安排种植计划能使总产量最大1.在土地1上种植34亩玉米和2亩蔬菜2.在土地2上种植48亩蔬菜3.在土地3上种植44亩小麦4.在土地4上种植32亩小麦5.在土地5上种植10亩小麦和36亩玉米。
运筹学实验报告一、实验目的:通过实验熟悉单纯形法的原理,掌握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六、求解实际问题(即解决附件中的实验题目)实验题目列出下列问题的数学模型,并用你自己的单纯形算法程序进行计算,最后给出计算结果。
豆,i=3表示玉米;j=1表示I 等耕地,j=2表示II 等耕地,j=3表示III 等耕地)。
z 表示总产量。
max z=1100011x+950012x+900013x+800021x+680022x+600023x+1400031x+1200032x+1000033x11x +21x+31x <=100 12x+22x+32x <=30013x +23x+33x<=200s.t. 1100011x +950012x +900013x >=190000800021x+680022x+600023x>=1300001400031x+1200032x+1000033x>=350000ijx>=0(i=1,2,3;j=1,2,3)二、求解过程三、实验分析从表中可以看出,水稻只在III 等耕地上种植21.1 2hm ;大豆只在III 等耕地上种植21.7 2hm ;玉米在I 等耕地种植100 2hm ,II 等耕地种植3002hm ,III 等耕地种植157.22hm 。
可以获得最大总产量6892222kg 。
(2)如何制订种植计划,才能使总产值最大?一、建立模型设ijx 表示为i 种作物在j 等耕地种植的面积(i=1表示水稻,i=2表示大豆,i=3表示玉米;j=1表示I 等耕地,j=2表示II 等耕地,j=3表示III 等耕地)。
z 表示总产值。
max z=(1100011x+950012x+900013x)*1.2+(800021x+680022x+600023x)*1.5+(1400031x+1200032x+1000033x)*0.811x +21x+31x <=100 12x+22x+32x <=30013x +23x+33x<=200s.t. 1100011x +950012x +900013x >=190000800021x+680022x+600023x>=1300001400031x+1200032x+1000033x>=350000ijx>=0(i=1,2,3;j=1,2,3)二、求解过程三、实验分析从表中可以看出,水稻在I等耕地种植58.75 2hm,II等耕地种植300 2hm,III等耕地种植2002hm;玉米hm;大豆只在III等耕地上种植16.252hm。
《运筹学》实验报告实验名称:综合实践运用班级:组员:学院:完成时间:2011年12月指导教师:1 实验目的1、掌握运筹学概念、原理、模型以及实际应用意义。
2、理解掌握运筹学综合实践应用。
2 实验内容案例B4童心玩具厂下一年度的现金流(万元)如表中所示,表中负号表示2该月现金流出大于流入,为此该厂需要借款。
借款有两种方式:一是于上一年末借一年期贷款,一次得全部贷款额,从一月底起每月还息1%,于12月归还本金和最后一次利息;二是得到短期贷款,每月出获得,于月底归还,月息 1.5%。
当该厂有多余现金时,可短期存款,月初存入,月末取出,月息0.4%。
问该厂应如何进行存款操作,既能弥补可能出现的负现金流,又可以使年末现金总量最大?3 实验具体方法及步骤3.1 案例分析从案例中可以知道,该厂全年可以进行的借贷次数不限,借贷类型有两种,分别是长贷和短贷,为保证厂方的现金充足,可以在借贷了长贷的情况下依据实际情况借贷短贷。
其中长贷(用y表示)只借贷一次,在年初发生,以后每个月都将要还长贷的0.01%y的利息,总共要还12个月,还息日期为每个月的月底,也即是下一个月份的月初还息;而每个月还可以进行短期贷款(用wi表示),可贷款12个月,并于月底也就是下个月出还段贷款息1.5%wi,也就是说每个月的月初将进行一次短贷贷款,并还上一个月的短贷息 1.5%wi;而每个月若是有现金余留,可将现金(用zi表示)存款,利息为0.4%zi,总共为12个月综上可知,第一个月现金余额须为长贷额+短贷额-月底存款额要大于第一个月的现金需求额,从第二个月开始:上一个月的存款本息+本月贷款额-长贷利息-上个月短贷本息-月底存款额要大于本月的现金需求3.2 建立模型设长期贷款为y,wi表示第i个月的短期贷款额,zi为第i个月的短期存款额,i=1,2,3,4,5,6,7,8,9,10,11,12,目标函数为年底的最多现金额Max Z(目标函数为第12个月份所遗留的现金额,即求第12个月份的现金余额最大),其中约束条件共有12个,分别代表每个月份的现金约束,则线性模型可建立为:Max Z=(1+0.004)x12-(1+0.01)y-(1+0.015)w12S.t{y+w1-z1>=12 第1个月(1+0.004)z1-0.01y-(1+0.015)w1-z2+w2>=10 第2个月(1+0.004)z2-0.01y-(1+0.015)w2-z3+w3>=8 第3个月(1+0.004)z3-0.01y-(1+0.015)w3-z4+w4>=10 第4个月(1+0.004)z4-0.01y-(1+0.015)w4-z5+w5>=4 第5个月(1+0.004)z5-0.01y-(1+0.015)w5-z6+w6>=-5 第6个月(1+0.004)z6-0.01y-(1+0.015)w6-z7+w7>=7 第7个月(1+0.004)z7-0.01y-(1+0.015)w7-z8+w8>=2 第8个月(1+0.004)z8-0.01y-(1+0.015)w8-z9+w9>=-15 第9个月(1+0.004)z9-0.01y-(1+0.015)w9-z10+w10>=-12 第10个月(1+0.004)z10-0.01y-(1+0.015)w10-z11+w11>=7 第11个月(1+0.004)z11-0.01y-(1+0.015)w11-z12+w12>=-45 第12个月}该案例线性模型使用LINGO软件进行求解,编辑如下程序:求解得到结果如图所示,为:结果解析:本实验结果为小组3成员各自独立完成并且结果一致所得。
实验一.简单线性规划模型的求解与Lingo软件的初步使用一. 实验目的:了解Lingo软件的基本功能和简单线性规划模型的求解的输入和输出结果。
二. 实验内容:1. 在Lingo中求解教材P55习题2.2(1)的线性规划数学模型;2. 用Lingo求解教材P52例12的数学模型。
3. 建立教材P57习题2.9的数学模型并用Lingo求解。
三. 实验要求:1. 给出所求解问题的数学模型;2. 给出Lingo中的输入并求解;3. 指出Solution Report中输出的三个主要部分的结果;4. 能给出最优解和最优值;5. 指出第3小题中哪些约束是取等式和哪些约束取不等式。
四. 写出实验报告:1.该问题的数学模型如下,min z=-3x1+4x2-2x3+5x4;4x1-x2+2x3-x4=-2;x1+x2+3x3-x4≤14;-2x1+3x2-x3+2x4≥2;x1,x2,x3≥0,x4无约束;Lingo中的代码如下,求解可得解报告,Solution Report中输出的三个主要部分的结果如下,Variable ValueX1 0.000000X2 8.000000X3 0.000000X4 -6.000000Row Slack or Surplus Dual Price1 2.000000 -1.0000002 0.000000 4.5000003 0.000000 0.50000004 10.00000 0.000000 故最优解为x1=0,x2=8,x3=0,x4=-6,最优值为2。
2.该问题Lingo中的代码如下,min =150*(x1+x2+x3)+80*(y1+y2+y3);500*x1<=5000;1000*x1+500*x2<=9000;1500*x1+1000*x2+500*x3<=12000;2000*x1+1500*x2+1000*x3+500*y1<=16000;2500*x1+2000*x2+1500*x3+1000*y1+500*y2<=18500;3000*x1+2500*x2+2000*x3+1500*y1+1000*y2+500*y3<=21500;3500*x1+3000*x2+2500*x3+2000*y1+1500*y2+1000*y3<=25500;4000*x1+3500*x2+3000*x3+2500*y1+2000*y2+1500*y3<=30000;4000*x1+4000*x2+3500*x3+2500*y1+2500*y2+2000*y3<=33500;4000*x1+4000*x2+4000*x3+2500*y1+2500*y2+2500*y3>=36000;2000*x1+1500*x2+1000*x3+500*y1>=12000;3500*x1+3000*x2+2500*x3+2000*y1+1500*y2+1000*y3>=21500;x1+x2+x3+y1+y2+y3<=11;求解可得解报告,Global optimal solution found.Objective value: 1350.000Infeasibilities: 0.000000Total solver iterations: 5Variable Value Reduced Cost X1 3.000000 0.000000 X2 0.000000 0.000000 X3 6.000000 0.000000 Y1 0.000000 27.50000 Y2 0.000000 27.50000 Y3 0.000000 0.000000Row Slack or Surplus Dual Price 1 1350.000 -1.0000002 3500.000 0.0000003 6000.000 0.0000004 4500.000 0.0000005 4000.000 0.0000006 2000.000 0.0000007 500.0000 0.0000008 0.000000 0.0000009 0.000000 0.5500000E-0110 500.0000 0.00000011 0.000000 -0.6500000E-0112 0.000000 -0.5500000E-0113 4000.000 0.00000014 2.000000 0.000000 Solution Report中输出的三个主要部分的结果如下,Variable ValueX1 3.000000X2 0.000000X3 6.000000Y1 0.000000Y2 0.000000Y3 0.000000Row Slack or Surplus Dual Price1 1350.000 -1.0000002 3500.000 0.0000003 6000.000 0.0000004 4500.000 0.0000005 4000.000 0.0000006 2000.000 0.0000007 500.0000 0.0000008 0.000000 0.0000009 0.000000 0.5500000E-0110 500.0000 0.00000011 0.000000 -0.6500000E-0112 0.000000 -0.5500000E-0113 4000.000 0.00000014 2.000000 0.000000故最优解为x1=3,x2=0,x3=6,y1=0,y2=0,y3=0,最优值为1350。
《运筹学》实验报告专业:工商管理专业班级:11-2班:胡坤学号:8指导老师:雷莹前言第十一周、十二周,我们在雷莹老师的指导下,用计算机进行了有关运筹学的一系列实验。
本实验报告即是对这次试验的反馈。
本这次试验是为了帮助我们顺利完成有关《运筹学》课程容的学习。
在先期,雷老师带领我们进行了《运筹学》理论课程的学习,不仅使我们了解和掌握了运筹学的相关知识,而且让我们认识到运筹学的现实意义,认识到现代社会数学与人们生产、生活之间的紧密联系和对人们生产、生活的巨大促进作用。
然而,与此同时,现代社会同时是一个计算机时代,我们只拥有理论知识还不够,必须把理论知识和计算技术结合起来,这样才能进一步提高生产力。
我相信这也是老师要求我们做这次试验的目的和初衷。
在实验中,我们主要是利用WinQSB软件进行相关试验,根据实验指导书中详细给出的各个实验的基本步骤和容,独立完成各项实验。
本次实验中共包含4个实验,分别是线性规划实验、运输问题实验、整数规划实验,以及网络优化实验。
每个实验均与理论课中讲解的容相对应。
部分实验容用于使我们了解WinQSB软件的基本操作,而其它实验容要求我们能够根据给出的问题,进行分析、建模和求解。
通过完成各项实验任务,使我们得以巩固已有的理论课程学习容,为将来进一步的学习和实际应用打下基础。
线性规划实验通过对以下问题的分析,建立线性规划模型,并求解:某工厂要用三种原材料C、P、H混合调配出三种不同规格的产品A、B、D。
已知产品的规格要求,产品单价,每天能供应的原材料数量及原材料单价分别见下表1和2。
该厂应如何安排生产,使利润收入为最大?表2实验报告要求(1)写出自己独立完成的实验容,对需要建模的问题,给出问题的具体模型;(2)给出利用WinQSB软件得出的实验结果;(3)提交对实验结果的初步分析,给出自己的见解;实验过程:一、建立模型设Ac是A产品中用c材料,同理得出Ap、Ah、Bc、Bp、Bh、Dc、Dp、Dh⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧≤++≤++≤++≤++≥++≤++≥++++++++++++++++=60Dh Bh Ah 100Dp Bp Ap 100Dc Bc Ac 5.0Bh Bp Bc Bp 25.0Bh Bp Bc Bc 25.0Ah Ap Ac Ap 5.0Ah Ap Ac Ac Dh Bh Ah 35-Dp Bp Ap 25-Dc Bc Ac 65-Dh Dp Dc 25Bh Bp Bc 35)(50 max )()()()()(H P C A A A z二、求解过程三、实验分析实验结果表明,在题目的要求下,该工厂只能生产A产品才能盈利,并且在使用c材料100个单位、p材料50个单位、h材料50个单位时,即生产200个单位的A产品时,才能获得最大利润,最大利润为500。
运筹学实验报告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)模型建立:根据问题分析,建立运输问题模型,目标函数为最小化运输成本,约束条件为各仓库的货物量不超过需求量。
运筹学实验报告姓名:学号:班级:相关说明:一、实验性质和目的本实验是运筹学课程安排的上机操作实验。
实验目的:了解并熟悉Lingo软件在运筹学模型求解中的作用,激发学习兴趣,提高学习效果,增强自身的动手能力,提高实际应用能力。
二、实验基本要求1. 实验前认真做好理论准备,仔细阅读相关资料;2. 认真完成实验任务,按时按质提交实验报告。
三、主要参考资料1. LINGO软件2. LINGO快速入门3. Lingo_12_Users_Manual,LINDO Systems, Inc.,20104. Optimization Modeling with LINGO,LINDO Systems, Inc.,20065. 优化建模与LINDO/LINGO软件,清华大学出版社,20056. 邓成梁主编,运筹学的原理和方法(第二版),华中科技大学出版社,20017.运筹学编写组主编,运筹学(第三版),清华大学出版社,20058.胡运权主编,运筹学教程(第三版),清华大学出版社,2007注意:1.第12周交实验报告,一份打印稿,一份电子文档。
不许copy别人的文档交差。
电子文档以“学号_姓名_班级”为文件名,发送至邮箱:2.引用别人的程序(或程序片段)需注明出处。
实验内容1、线性规划问题:(1) 给出原始代码;max=5*x1+10*x2;-x1+2*x2<=25;x1+x2<=20;5*x1+3*x2<=75;(2) 计算结果(包括灵敏度分析,求解结果粘贴);①计算结果Global optimal solution found at iteration: 2Objective value: 175.0000Variable Value Reduced CostX1 5.000000 0.000000X2 15.00000 0.000000Row Slack or Surplus Dual Price1 175.0000 1.0000002 0.000000 1.6666673 0.000000 6.6666674 5.000000 0.000000②灵敏度分析Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 5.000000 5.000000 10.00000X2 10.00000 INFINITY 5.000000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 25.00000 15.00000 7.5000003 20.00000 1.153846 7.5000004 75.00000 INFINITY 5.000000(3) 回答下列问题:a) 最优解及最优目标函数值是多少;最优解x1=5,x2=15最有目标函数值z=175b) 资源的对偶价格各为多少,并说明对偶价格的含义;分别是1,1.667X1的对偶价格是1,表示,x1增加1个单位的投入,利润增加1X2的对偶价格是1.667,表示x2增加1个单位的投入,利润增加1.667c) 为了使目标函数值增加最多,让你选择一个约束条件,将它的常数项增加一个单位,你将选择哪一个约束条件?这时目标函数值将是多少?第二个约束条件,此时目标函数值将是181d) 对x2的目标函数系数进行灵敏度分析;x2的系数在[5,+∞)内变化时,最优解不变的情况下,目标函数的最优值保持不变e) 对第2个约束的约束右端项进行灵敏度分析;第二个约束的右端项原来为20,当它在[20-7.5,20+1.15] = [12.5,21.15]上变化时,最优基保持不变f ) 结合本题的结果解释“Reduced Cost”的含义。
实验一:线性规划问题1、实验目的:①学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
②掌握利用计算机软件求解线性规划最优解的方法。
2、实验任务①结合已学过的理论知识,建立正确的数学模型;②应用运筹学软件求解数学模型的最优解③解读计算机运行结果,结合所学知识给出文字定性结论3、实验仪器设备:计算机4、实验步骤:(1)在主菜单中选择线性规划模型,在屏幕上就会出现线性规划页面,如图所示。
(2)在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数及约束条件的各变量的系数和b值,并选择好“≥”、“≤”或“=”号,如图所示。
(3)当约束条件输入完毕后,请点击“解决”按钮,屏幕上将显现线性规划问题的结果,如图所示。
例题一:例题二:例题三:例题四:例题五5、试验体会或心得运筹学是一门实用的学科,学习运筹学,结合生活实际运用运筹学,我们可以将资源最大化利用。
学习理论的目的就是为了解决实际问题。
线性规划的理论对我们的实际生活指导意义很大。
当我们遇到一个问题,需要认真考察该问题。
如果它适合线性规划的条件,那么我们就利用线性规划的理论解决该问题。
线性规划指的是在资源有限的条件下,为达到预期目标最优,而寻找资源消耗最少的方案。
其数学模型有目标函数和约束条件组成。
一个问题要满足一下条件时才能归结为线性规划的模型:⑴要求解的问题的目标能用效益指标度量大小,并能用线性函数描述目标的要求;⑵为达到这个目标存在很多种方案;⑶要到达的目标是在一定约束条件下实现的,这些条件可以用线性等式或者不等式描述。
所以,通过这次实验,不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。
这次实验让我懂得了运筹学在电脑的应用,让我对运输与数学相结合的应用理解更深了。
实验二:整数规划与运输问题1、实验目的:①学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
2018-2019学年第一学期《运筹学》实验报告(四)班级:交通运输171学号: 1000000000姓名: *****日期: 2018.11.22实验一:用Lingo 软件求解下列整数规划问题(要求附程序和结果)12121212max 25062210,1,2i z x x x x x x x x x i =++≤⎧⎪-+≤⎪⎨+≤⎪⎪≥=⎩且取整数12312323123123123max 232452244,,01z x x x x x x x x x x x x x x x x x =+-++≤⎧⎪+≤⎪⎪+-≤⎨⎪+-≤⎪=⎪⎩或解:例题(左)解题程序及运行结果如下:sets :bliang/1,2/:x,a; yshu/1,2,3/:b;xshu(yshu,bliang):c; endsets data : a=2,1; b=5,0,21; c=1,1 -1,1 6,2; enddatamax =@sum (bliang(i):a(i)*x(i));@for (yshu(j):@sum (bliang(i):x(i)*c(j,i))<=b(j)); @for(bliang(i):@gin(x(i)));Global optimal solution found.Objective value: 7.000000 Objective bound: 7.000000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 0Variable Value Reduced CostX( 1) 3.000000 -2.000000X( 2) 1.000000 -1.000000A( 1) 2.000000 0.000000A( 2) 1.000000 0.000000B( 1) 5.000000 0.000000B( 2) 0.000000 0.000000B( 3) 21.00000 0.000000C( 1, 1) 1.000000 0.000000C( 1, 2) 1.000000 0.000000C( 2, 1) -1.000000 0.000000C( 2, 2) 1.000000 0.000000C( 3, 1) 6.000000 0.000000C( 3, 2) 2.000000 0.000000Row Slack or Surplus Dual Price1 7.0000001.0000002 1.000000 0.0000003 2.000000 0.0000004 1.000000 0.000000例题(右)解题程序及运行结果如下:sets:bliang/1,2,3/:x,a;yshu/1,2,3,4/:b;xshu(yshu,bliang):c;endsetsdata:a=2,1,-1;b=2,5,2,4;c=1,3,10,4,11,2,-11,4,-1;enddatamax=@sum(bliang(i):a(i)*x(i));@for(yshu(j):@sum(bliang(i):x(i)*c(j,i))<=b(j));@for(bliang(i):@bin(x(i)));Global optimal solution found.Objective value: 2.000000Objective bound: 2.000000Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 0Variable Value ReducedCostX( 1) 1.000000 -2.000000X( 2) 0.000000 -1.000000X( 3) 0.000000 1.000000A( 1) 2.000000 0.000000A( 2) 1.000000 0.000000A( 3) -1.000000 0.000000B( 1) 2.000000 0.000000B( 2) 5.000000 0.000000B( 3) 2.0000000.000000B( 4) 4.000000 0.000000C( 1, 1) 1.000000 0.000000C( 1, 2) 3.000000 0.000000C( 1, 3) 1.000000 0.000000C( 2, 1) 0.000000 0.000000C( 2, 2) 4.000000 0.000000C( 2, 3) 1.000000 0.000000C( 3, 1) 1.000000 0.000000C( 3, 2) 2.000000 0.000000C( 3, 3) -1.000000 0.000000C( 4, 1) 1.000000 0.000000C( 4, 2) 4.000000 0.000000C( 4, 3) -1.000000 0.000000Row Slack or Surplus Dual Price1 2.0000001.0000002 1.000000 0.0000003 5.000000 0.0000004 1.000000 0.0000005 3.000000 0.000000实验二:一、问题重述某学校规定,运筹学专业的学生毕业时必须至少学习过两门数学课、三门运筹学课和两门计算机课。
实验报告《运筹学(二)》2012~2013学年第一学期实验1一、实验目的1. 加强学生分析问题的能力,锻炼数学建模的能力。
2. 利用所学高级语言,设计动态规划算法,并完成程序设计。
二、实验内容问题1(动态规划):(投资问题)某公司拟现将3千万元用于扩建3工厂。
每个项目预计可获得的收益由表1给出。
问如何投资可获得最大的收益。
(教材P212)表1三、实验步骤1、建立模型S k ——对k #,…,3#项目允许的投资额; x k ——对k #项目的投资额;w k ——对k #项目投资xk 后的收益:w k (S k ,x k )=w k (x k ); T k ——S k+1=S k -x k ;F k ——当第k 至第3项目 允许的投资额为S k 时所能获得的最大收益。
为了获得最大收益,必须将5百万元资金全部用于投资。
故假想有第4阶段存在时,必有S 4=0。
对于本问题,有下列递归方程:f 4(S 4)=0f k (S k )=max{w k (x k )+f k +1(S k +1)},,k=3,2,1 2、编写代码 clc; a=[0 2.5 4 10 0 3 5 8.50 2 6 9];[m n]=size(a);max=0;ii=1;%fid=fopen('exp.txt','w')for x=0:3for y=0:3-xfor z=0:3-x-y% z=3-x-y;tep(ii,:)=[x y z a(1,x+1)+a(2,y+1)+a(3,z+1)];% fprintf(fid,'%4.2f %4.2f %4.2f %4.2f \n',tep(ii));fprintf( '%4.2f %4.2f %4.2f \n',tep(ii,1:3) );fprintf( '%4.2f %4.2f %4.2f %4.2f \n',tep(ii,:) );if tep(ii,4)>maxmax=tep(ii,4);zyj=[x y z ];endii=ii+1;endendend%fclose(fid)'最优解:'zyj'最优值:'Max3、运行代码四、运行结果0.00 0.00 0.000.00 0.00 0.00 0.000.00 0.00 1.000.00 0.00 1.00 2.00 0.00 0.00 2.000.00 0.00 2.00 6.00 0.00 0.00 3.000.00 0.00 3.00 9.00 0.00 1.00 0.000.00 1.00 0.00 3.00 0.00 1.00 1.000.00 1.00 1.00 5.00 0.00 1.00 2.000.00 1.00 2.00 9.00 0.00 2.00 0.000.00 2.00 0.00 5.00 0.00 2.00 1.000.00 2.00 1.00 7.00 0.00 3.00 0.000.00 3.00 0.00 8.501.00 0.00 0.001.00 0.00 0.002.50 1.00 0.00 1.001.00 0.00 1.00 4.50 1.00 0.002.001.00 0.002.00 8.50 1.00 1.00 0.001.00 1.00 0.00 5.50 1.00 1.00 1.001.00 1.00 1.00 7.50 1.002.00 0.001.002.00 0.00 7.502.00 0.00 0.002.00 0.00 0.00 4.00 2.00 0.00 1.002.00 0.00 1.00 6.00 2.00 1.00 0.002.00 1.00 0.00 7.003.00 0.00 0.003.00 0.00 0.00 10.00ans =最优解:zyj =3 0 0 ans =最优值:max =10>>五、结果分析所求最优解为d=3,d=0,d=0,即投资第一个项目3千万元,不投资第二、第三个项目,公司总的最大利润增长额为10千万元。
运筹学报告一、投资计划问题某地区在今后3年内有4种投资机会,第一种是在3年内每年年初投资,年底可获利润20%,并可将本金收回。
第二种是在第一年年初投资,第二年年底可获利50%,并可将本金收回,但该项投资金额不超过2百万元。
第三种是在第二年年初投资,第三年年底收回本金,并获利60%,但该项投资金额不超过1.5百万元。
第四种是在第三年年初投资,第三年年底收回本金,并可获利40%,但该项投资金额不超过1百万元。
现在该地区准备了3百万元资金,如何制定投资方案,使到第三年年末本利的和最大?解:设x1,x2,x3,x4依次表示从一种投资方案到第四种投资方案的投资额程序如下:max=x1*1.2+x2*1.5+(x1+x3)*1.2+x4*1.6+(x1+x3+x5)*1.2+x6*1.4;x1+x2+x3+x4+x5+x5+x6=3;x2<2;x4<1.5;x6<1;end求解结果:Global optimal solution found.Objective value: 10.80000Total solver iterations: 0Variable Value Reduced CostX1 3.000000 0.000000X2 0.000000 2.100000X3 0.000000 1.200000X4 0.000000 2.000000X5 0.000000 6.000000X6 0.000000 2.200000Row Slack or Surplus Dual Price1 10.80000 1.0000002 0.000000 3.6000003 2.000000 0.0000004 1.500000 0.0000005 1.000000 0.000000二、配料问题某冶炼厂计划炼制含甲、乙、丙、丁4种金属成分的合金1吨,4种金属的含量比例为:甲不少于23%,乙不多于15%,丙不多于4%,丁介于35%~65%之间,此外不允许有其他成分。
该厂准备用6种不同等级的矿石熔炼这种合金,各种矿石中的杂质在熔炼中废弃。
现将每种矿石中的4种金属含量和价格列表如下,试计算如何选配各种矿石才能使合金的原料成本达到最低。
金属含量和价格解:设x1,x2,x3,x4,x5,x6依次表示矿石1到矿石6所需的用量程序如下:min=23*x1+20*x2+18*x3+10*x4+27*x5+12*x6;0.25*x1+0.4*x2+0.2*x3+0.2*x5+0.08*x6>0.23;0.1*x1+0.1*x3+0.15*x4+0.2*x5+0.05*x6<0.15;0.1*x1+0.05*x4+0.1*x6<0.04;0.25*x1+0.3*x2+0.3*x3+0.2*x4+0.4*x5+0.17*x6>0.35;0.25*x1+0.3*x2+0.3*x3+0.2*x4+0.4*x5+0.17*x6<0.65;0.25*x1+0.4*x2+0.2*x3+0.2*x5+0.08*x6+0.1*x1+0.1*x3+0.15*x4+0.2*x5+0.05*x6+0. 1*x1+0.05*x4+0.1*x6+0.25*x1+0.3*x2+0.3*x3+0.2*x4+0.4*x5+0.17*x6=1;end求解结果:Global optimal solution found.Objective value: 27.42857Total solver iterations: 4Variable Value Reduced CostX1 0.000000 5.857143X2 0.9714286 0.000000X3 0.000000 0.8571429X4 0.8000000 0.000000X5 0.000000 4.142857X6 0.000000 3.428571Row Slack or Surplus Dual Price1 27.42857 -1.0000002 0.1585714 0.0000003 0.3000000E-01 0.0000004 0.000000 28.571435 0.1014286 0.0000006 0.1985714 0.0000007 0.000000 -28.57143三、下料问题有一批500cm长的条材,要截成98cm长的毛坯1000根、78cm长的毛坯2000根。
现有6种下料方法,每种方法截出两种毛坯的根数和残料的长度列表如下,要求计算如何下料可使所用条材根数最少。
6种下料方法比较解:设x1,x2,x3,x4,x5,x6依次表示从方法1到方法6用掉条材的数量程序如下:min=x1+x2+x3+x4+x5+x6;5*x1+4*x2+3*x3+2*x4+x5=1000;x2+2*x3+3*x4+5*x5+6*x6=2000;end求解结果:Global optimal solution found.Objective value: 520.0000Total solver iterations: 0Variable Value Reduced CostX1 120.0000 0.000000X2 0.000000 0.4000000E-01X3 0.000000 0.8000000E-01X4 0.000000 0.1200000X5 400.0000 0.000000X6 0.000000 0.4000000E-01Row Slack or Surplus Dual Price1 520.0000 -1.0000002 0.000000 -0.20000003 0.000000 -0.1600000四、资源分配问题某个中型的百货商场对售货人员的需求经过统计分析如下表所示。
为了保证销售人员充分休息,售货人员每周工作五天,工作的五天连续。
休息两天,并要求休息的两天是连续的。
问应该如何安排售货人员的作息,既能满足工作需要,又使配备的售货人员的人数最少?解:mon,tue,wen,thu,fri,sat,sun依次表示每天安排的售货员人数程序如下:sets:days/mon..sun/:required,start;endsetsdata:required=15 24 25 19 31 28 28;enddatamin=@sum(days:start);@for(days(j):@sum(days(i)|i#le#5:start(@wrap(j+i+2,7))) >=required(j));end求解结果:Global optimal solution found.Objective value: 36.00000Total solver iterations: 5Variable Value Reduced Cost REQUIRED( MON) 15.00000 0.000000REQUIRED( TUE) 24.00000 0.000000REQUIRED( WED) 25.00000 0.000000REQUIRED( THU) 19.00000 0.000000REQUIRED( FRI) 31.00000 0.000000REQUIRED( SAT) 28.00000 0.000000REQUIRED( SUN) 28.00000 0.000000START( MON) 8.000000 0.000000START( TUE) 0.000000 0.000000START( WED) 12.00000 0.000000START( THU) 0.000000 0.3333333START( FRI) 11.00000 0.000000START( SAT) 5.000000 0.000000START( SUN) 0.000000 0.000000Row Slack or Surplus Dual Price1 36.00000 -1.0000002 9.000000 0.0000003 0.000000 -0.33333334 0.000000 -0.33333335 1.000000 0.0000006 0.000000 -0.33333337 0.000000 0.0000008 0.000000 -0.3333333五、计算如下运输问题:解:a1,a2,a3,a4,a5,a6是6个产地,b1,b2,b3,b4,b5,b6,b7,b8是8个销地程序如下:sets:need/a1,a2,a3,a4,a5,a6/:re;coul/b1,b2,b3,b4,b5,b6,b7,b8/:requ;link(need,coul):cost,num;endsetsdata:cost=6 2 6 7 4 2 5 94 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;re=60 55 51 43 41 52;requ=35 37 22 32 41 32 43 38;enddatamin=@sum(link:cost*num);@for(need(i):@sum(coul(j):num(i,j))<=re(i));@for(coul(j):@sum(need(i):num(i,j))>=requ(j));end求解结果:Rows= 15 Vars= 48 No. integer vars= 0 ( all are linear)Nonzeros= 158 Constraint nonz= 96( 96 are +- 1) Density=0.215 Smallest and largest elements in abs value= 1.00000 60.0000 No. < : 6 No. =: 0 No. > : 8, Obj=MIN, GUBs <= 8Single cols= 0Optimal solution found at step: 24Objective value: 664.0000Variable Value Reduced CostRE( A1) 60.00000 0.0000000RE( A2) 55.00000 0.0000000RE( A3) 51.00000 0.0000000RE( A4) 43.00000 0.0000000RE( A5) 41.00000 0.0000000RE( A6) 52.00000 0.0000000REQU( B1) 35.00000 0.0000000REQU( B2) 37.00000 0.0000000REQU( B3) 22.00000 0.0000000REQU( B4) 32.00000 0.0000000REQU( B5) 41.00000 0.0000000REQU( B6) 32.00000 0.0000000REQU( B7) 43.00000 0.0000000REQU( B8) 38.00000 0.0000000COST( A1, B1) 6.000000 0.0000000COST( A1, B2) 2.000000 0.0000000COST( A1, B3) 6.000000 0.0000000COST( A1, B4) 7.000000 0.0000000COST( A1, B5) 4.000000 0.0000000COST( A1, B6) 2.000000 0.0000000COST( A1, B7) 5.000000 0.0000000COST( A1, B8) 9.000000 0.0000000COST( A2, B1) 4.000000 0.0000000COST( A2, B2) 9.000000 0.0000000COST( A2, B3) 5.000000 0.0000000COST( A2, B4) 3.000000 0.0000000COST( A2, B5) 8.000000 0.0000000COST( A2, B6) 5.000000 0.0000000COST( A2, B7) 8.000000 0.0000000COST( A2, B8) 2.000000 0.0000000COST( A3, B1) 5.000000 0.0000000COST( A3, B2) 2.000000 0.0000000COST( A3, B3) 1.000000 0.0000000COST( A3, B5) 7.000000 0.0000000 COST( A3, B6) 4.000000 0.0000000 COST( A3, B7) 3.000000 0.0000000 COST( A3, B8) 3.000000 0.0000000 COST( A4, B1) 7.000000 0.0000000 COST( A4, B2) 6.000000 0.0000000 COST( A4, B3) 7.000000 0.0000000 COST( A4, B4) 3.000000 0.0000000 COST( A4, B5) 9.000000 0.0000000 COST( A4, B6) 2.000000 0.0000000 COST( A4, B7) 7.000000 0.0000000 COST( A4, B8) 1.000000 0.0000000 COST( A5, B1) 2.000000 0.0000000 COST( A5, B2) 3.000000 0.0000000 COST( A5, B3) 9.000000 0.0000000 COST( A5, B4) 5.000000 0.0000000 COST( A5, B5) 7.000000 0.0000000 COST( A5, B6) 2.000000 0.0000000 COST( A5, B7) 6.000000 0.0000000 COST( A5, B8) 5.000000 0.0000000 COST( A6, B1) 5.000000 0.0000000 COST( A6, B2) 5.000000 0.0000000 COST( A6, B3) 2.000000 0.0000000 COST( A6, B4) 2.000000 0.0000000 COST( A6, B5) 8.000000 0.0000000 COST( A6, B6) 1.000000 0.0000000 COST( A6, B7) 4.000000 0.0000000 COST( A6, B8) 3.000000 0.0000000 NUM( A1, B1) 0.0000000 5.000000 NUM( A1, B2) 19.00000 0.0000000 NUM( A1, B3) 0.0000000 5.000000 NUM( A1, B4) 0.0000000 7.000000 NUM( A1, B5) 41.00000 0.0000000 NUM( A1, B6) 0.0000000 2.000000 NUM( A1, B7) 0.0000000 2.000000 NUM( A1, B8) 0.0000000 10.00000 NUM( A2, B1) 1.000000 0.0000000 NUM( A2, B2) 0.0000000 4.000000 NUM( A2, B3) 0.0000000 1.000000 NUM( A2, B4) 32.00000 0.0000000 NUM( A2, B5) 0.0000000 1.000000 NUM( A2, B6) 0.0000000 2.000000 NUM( A2, B7) 0.0000000 2.000000 NUM( A2, B8) 0.0000000 0.0000000NUM( A3, B2) 11.00000 0.0000000 NUM( A3, B3) 0.0000000 0.0000000 NUM( A3, B4) 0.0000000 9.000000 NUM( A3, B5) 0.0000000 3.000000 NUM( A3, B6) 0.0000000 4.000000 NUM( A3, B7) 40.00000 0.0000000 NUM( A3, B8) 0.0000000 4.000000 NUM( A4, B1) 0.0000000 4.000000 NUM( A4, B2) 0.0000000 2.000000 NUM( A4, B3) 0.0000000 4.000000 NUM( A4, B4) 0.0000000 1.000000 NUM( A4, B5) 0.0000000 3.000000 NUM( A4, B6) 5.000000 0.0000000 NUM( A4, B7) 0.0000000 2.000000 NUM( A4, B8) 38.00000 0.0000000 NUM( A5, B1) 34.00000 0.0000000 NUM( A5, B2) 7.000000 0.0000000 NUM( A5, B3) 0.0000000 7.000000 NUM( A5, B4) 0.0000000 4.000000 NUM( A5, B5) 0.0000000 2.000000 NUM( A5, B6) 0.0000000 1.000000 NUM( A5, B7) 0.0000000 2.000000 NUM( A5, B8) 0.0000000 5.000000 NUM( A6, B1) 0.0000000 3.000000 NUM( A6, B2) 0.0000000 2.000000 NUM( A6, B3) 22.00000 0.0000000 NUM( A6, B4) 0.0000000 1.000000 NUM( A6, B5) 0.0000000 3.000000 NUM( A6, B6) 27.00000 0.0000000 NUM( A6, B7) 3.000000 0.0000000 NUM( A6, B8) 0.0000000 3.000000Row Slack or Surplus Dual Price1 664.0000 1.0000002 0.0000000 3.0000003 22.00000 0.00000004 0.0000000 3.0000005 0.0000000 1.0000006 0.0000000 2.0000007 0.0000000 2.0000008 0.0000000 -4.0000009 0.0000000 -5.00000010 0.0000000 -4.00000011 0.0000000 -3.00000013 0.0000000 -3.00000014 0.0000000 -6.00000015 0.0000000 -2.000000六、目标规划某单位领导在考虑单位职工的升级调资方案时,依次遵守以下规定:(1)不超过年工资总额60000元;(2)每级的人数不超过定编规定的人数;(3)Ⅱ、Ⅲ级的升级面尽可能达到现有人数的20%;(4)Ⅲ级不足编制的人数可录用新职工,又Ⅰ级的职工中有10%要退休。