运筹学实验
运筹学综合实验报告

运筹学综合实验报告本次实验中,我们使用了运筹学的方法来解决了一个经典的优化问题,即整数线性规划问题(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%,节省了货物运输的时间,减少了仓储成本。
四、实验结论:通过本次实验,我们了解了运筹学的基本概念和方法,并成功应用运筹学方法解决了物流配送问题。
通过分析最优解,我们发现采用最优解可以降低物流成本,提高配送效率。
因此,我们得出结论:运筹学在物流配送问题中的应用具有重要意义,可以帮助企业降低成本、提高效率。
五、实验心得:通过本次实验,我对运筹学有了更深入的了解。
通过实践应用运筹学方法,我明白了运筹学的实用性和价值。
在以后的工作中,我会更加注重运筹学方法的应用,以解决实际问题,提高工作效率。
本次实验不仅增强了我的动手实践能力,也培养了我分析和解决问题的能力。
我将继续学习和探索运筹学的知识,为将来的工作打下坚实的基础。
运筹学实验心得

运筹学实验心得运筹学是一门研究决策和优化问题的学科,通过数学建模和分析,帮助人们在面对复杂的决策问题时做出最优的选择。
在学习运筹学的过程中,我参与了一次实验,通过实践运用运筹学的知识和方法,深刻体会到了它的重要性和实用性。
在这次实验中,我们小组的任务是在有限的资源下,通过运筹学的方法来安排一所医院的医生排班。
我们需要考虑到医生的工作时间、休假时间、不同科室的需求以及患者的就诊需求等因素。
我将整个实验过程分为以下几个部分进行总结和分享。
我们需要进行问题分析和建模。
在实验开始之前,我们小组对问题进行了全面的分析,确定了问题的约束条件和目标。
通过对医生排班的需求进行细致的分析,我们将问题抽象为一个数学模型,将各种变量和约束条件进行数学化的表示。
这个过程需要我们对运筹学的知识有深入的理解和灵活的运用,确保模型的准确性和合理性。
接着,我们使用合适的算法和工具来求解模型。
在这个实验中,我们使用了线性规划和整数规划的方法来求解医生排班问题。
通过建立相应的数学模型,我们将问题转化为一个数学规划问题,然后使用计算机软件来求解最优解。
在求解的过程中,我们需要根据实际情况调整模型的参数和约束条件,以得到符合实际需求的结果。
在实验过程中,我们还进行了模型的验证和灵敏度分析。
通过与实际情况的对比,我们可以评估模型的准确性和可行性。
同时,我们还对模型中的参数和约束条件进行了灵敏度分析,考察它们对最优解的影响程度。
这个过程帮助我们更好地理解问题的本质,为模型的优化提供了依据。
我们对实验结果进行了评估和总结。
通过对实验结果的分析,我们可以评估模型的性能和可行性。
同时,我们还可以根据实验结果提出相应的改进意见,进一步优化模型和算法。
通过总结实验过程中的经验和教训,我们可以更好地应用运筹学的方法解决实际问题。
通过这次实验,我深刻体会到了运筹学的重要性和实用性。
它不仅可以帮助我们在面对复杂的决策问题时做出最优的选择,还可以提高我们的分析和建模能力。
运筹学实验报告

《运筹学》实验报告河南理工大学经管学院班级:人力11—1班姓名:陈浩学号:311110030120实验一线性规划1.某工厂要用三种原材料C、P、H混合调配出三种不同规格的产品A、B、D,已知产品的规格要求,产品单价,每天能供应的原材料数量及原材料单价分别见下表1和2。
该厂应如何安排生产,使利润收入为最大?表1产品名称规格要求单价(元/kg)原材料C不少于50%50A原材料P不超过25%原材料C不少于25%35B原材料P不超过50%D不限25表2原材料名称每天最多供应量(kg)单价(元/kg)C100 65P 100 25H 60 35解:(1)依题意得到模型:260260150125253550max 321321321≤++≤≤≤++=x x x x x x x x x z(2)建立新问题:(3)解得:实验二运输问题2.设有三个化肥厂(A, B, C)供应四个地区(I, II, III, IV)的农用化肥。
假定等量的化肥在这些地区使用效果相同。
各化肥厂年产量,各地区年需要量及从各化肥厂到各地区运送单位化肥的运价表如下表所示。
试求出总的运费最节省的化肥调拨方案。
需求地区化肥厂I II III IV 产量A B C 1614191313202219231715—506050最低需求最高需求305070703010不限注意:表格中的运价可以填入M(任意大正数)。
解:(1)建立新问题:得:(2)求解问题,观察求解结果:3.人事部门欲安排四人到四个不同岗位工作,每个岗位一个人。
经考核五人在不同岗位的成绩(百分制)如下表所示,如何安排他们的工作使总成绩最好,应淘汰哪一位。
工作人员人力资源物流管理市场营销信息管理甲乙丙丁戊8595828676928783908573787980929095908893解:(1)建立新问题(2)修改各个人名和任务名:(3)得:(4)解得:实验三整数规划4.某厂拟建两种不同类型的冶炼炉。
运筹学实验报告

运筹学实验报告一实验一:线性规划【例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)。
运筹学实验报告(题目)

运筹学实验报告(题目)运筹学实验报告指导老师:姓名:学号:班级:目录例题实验一人力资源分配问题实验二配料问题实验三套裁下料问题实验四成本收益平衡问题实验五投资问题例题实验目的:1掌握Excel并熟悉它的使用环境。
2、准备好系统中的Office安装盘,然后选择【工具】|【加载宏】菜单命令,在弹出的【加载宏】对话框中选择【规划求解】3、在Excei中,对已有的问题进行规划求解。
实验内容:1、对下面线性规划问题进行求解;max z =3x1+x2+2x312x1+3x2+6x3+3x4=98x1+x2-4x3+2x5=103x1-x6=0Xj>=0 j=1,2,3,4,5,6一、第一步:打开Excel菜单栏中的工具菜单,出现一个子菜单,单击“规划求解”选项。
第二步:出现规划求解参数的对话框。
该对话框用来输入规划的目标函数,决策变量和约束条件。
第三步:在规划求解参数对话框内填写参数所在的地址如下:在设置目标单元格一栏内,填入表示目标函数值的单元格地址B16,并选择最大值选项;在可变单元格一栏内,填入决策变量的单元格地址B14:C14。
第四步:单击添加按钮,出现添加约束对话框,在单元格引用位置一栏内,填入约束条件左边的值所在的单元格地址B19:B21;选择<=;在约束值一栏内,填入约束条件左边的值的单元格地址D19:D21。
选择确定,得到一个填写完毕的规划求解参数对话框第五步:单击对话框内的选项按钮,出现规划求解选项对话框。
该对话框用来输入规划求解运算中的有关参数,例如是否线性模型、是否假定非负、迭代次数、精度等。
大部分参数已经按一般要求设置好了,只需设置是否采用线性模型,以及是否假定非负。
在本实验中,选择“采用线性模型”;选择“假定非负”。
然后就进行规划求解。
1.2(a)自变量X1 X2 X3 X4 X5 X6约束条件系数12 3 6 3 0 0 9 =8 1 -4 0 2 0 10 =3 0 0 0 0 -1 0 = 目标函数系数 3 1 2 0 0 0 3解0 0 1.5 0 8 0所以该问题有最优解:X=(0,0,1.5,0,8,0)实验(一)人力资源分配问题实验目的:1、根据题目要求,在有限的人力资源约束下进行建模。
运筹学实验报告总结心得

运筹学实验报告总结心得1. 背景运筹学是以数学模型为基础,结合管理科学、经济学和计算机科学等方法,研究在有限资源的条件下优化决策问题的学科。
本次实验旨在通过运筹学方法解决一个实际的问题,并从中探索运筹学的实际应用价值。
2. 分析2.1 问题描述本次实验中,我们需要解决一个物流配送的问题。
具体问题是:给定一定数量的货物和一些配送车辆,如何确定最优的配送路线和配送顺序,以使得总体的运输成本最小。
2.2 求解思路为了解决这个问题,我们采用了TSP(Traveling Salesman Problem,旅行商问题)的算法。
TSP是一种经典的组合优化问题,通过寻找最短的闭合路径,将n个城市依次访问一遍。
我们将货物所在的位置作为城市,将物流中心作为起始点和终点,通过TSP算法确定最优的配送路线。
2.3 模型设计我们将问题抽象成图论问题,货物的位置和物流中心可以看作图的顶点,两个顶点之间的距离可以看作图的边。
我们首先计算出所有顶点之间的距离,并构建一个距离矩阵。
然后,通过TSP算法,求解最优的路径。
3. 结果通过我们的实验,我们成功地解决了物流配送问题,并得到了最优的配送路线和顺序。
我们以图的形式展示了最优路径,并计算出了最小的运输成本。
4. 建议在实验过程中,我们发现了一些可以改进的地方。
首先,我们可以考虑引入实时交通信息来调整路径,以避免拥堵和路况不佳的区域。
其次,我们可以进一步优化TSP算法,以提高求解效率和准确度。
最后,我们还可以考虑引入其他因素,如货物的紧急程度或优先级,来调整配送顺序,以更好地满足客户需求。
5. 总结通过本次实验,我们深入了解了运筹学的应用,特别是在物流配送方面的应用。
我们成功地解决了一个实际问题,并得到了有用的结果和结论。
我们还发现了一些可以改进的地方,为进一步研究和应用运筹学提供了方向。
运筹学作为一门跨学科的领域,具有广泛的应用前景。
通过运筹学方法,我们可以帮助企业和组织优化决策,提高效率,降低成本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《运筹学》实验指导书课程代码:0900030课程名称:运筹学/Operational Research开课院实验室:管理学院实验中心适用专业:工商管理、工程管理、管理信息、工业工程、工程造价等专业教学用书:《运筹学》(《运筹学》编写组编写,清华大学出版社出版)第一部分实验课简介一、实验的地位、作用和目的及学生能力标准运筹学是一门应用科学,在教学过程中通过案例分析与研究并与现代计算机技术相结合,力求实现理论与实践相结合,优化理论与经济管理专业理论相结合。
实验,是《运筹学》课程中重要的实践环节。
通过实验,可弥补课堂理论教学中的不足,增加学生的感性知识;要使学生能掌握系统的管理科学中的整体优化和定量分析的方法,熟练运用运筹学程序,对实际问题和研究对象进行系统模拟。
二、试验内容应用Lindo6.1版运筹学软件包,解决实际问题。
三、实验方式与基本要求1、实验方式:综合性实验预习要求:复习编程方法及线性规划、整数规划的算法,对实际问题和研究对象,构造数学模型,确定优化技术方法,设计出原始数据表格。
实验设备:台式电脑实验要求:按实验任务要求调试程序,程序执行结果应正确。
实验分组:1人/组2、基本要求(1)在实验室进行实验前,学生熟悉实验软件Lindo程序、操作方法等;(2)将程序调好后,将程序结果记录,并由实验教师检查后签字;(3)将数据及有关的参数等记录在已经设计好的原始数据表格中;(4)在一周内完成实验报告。
四、考核方式与实验报告要求学生进入实验室后签到,实验结束后,指导教师逐个检查并提问,根据学生操作、实验结果、回答问题情况及实验纪律及作风等方面给出学生成绩,再综合实验报告情况给出最后的成绩。
报告格式如附录。
第二部分Lindo背景及功能菜单简介一、Lindo简介1.Lindo简介:LINDO(Linear Interactive and Discrete Optimizer)是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO解决线性规划(LP-Linear Programming)。
整数规划(IP—Integer Programming)问题。
其中LINDO 6.1学生版至多可求解多达300个变量和150个约束的规划问题。
其正式版(标准版)则可求解的变量和约束在1量级以上。
2.特点:LINDO只要通过键盘输入就可以方便地实现交互性良好的操作与使用。
另外,LINDO也可以对外建文件进行处理,只要这些文件里包含有必要的命令代码和输入数据,处理后就可以生成用于报告目的的文档。
还可以自建子程序,然后直接与LINDO相结合形成一个包括你自己的代码和LINDO本身的优化库的综合程序。
二、LINDO的视窗菜单:文件—编辑—求解—报告—窗口—帮助工具栏:它包含所有的其他窗口以及所有命令菜单和工具栏。
在里面的是一个新的空白的模型窗口。
第三部分LINDO常用功能与操作简介一、LINDO数据输入与保存1、打开一个空白工作表/项目File—New,出现一个新的空白的模型窗口,在此窗口中输入需求解得模型。
如图所示:2、数据输入:在空白窗口输入模型,输入方式与我们的数学书写的形式基本一致。
LINDO也不区分变量中的大小写字符,约束条件中的“<=”及“>=”可用“<”及“>”代替。
3、保存当前工作表:如果输入的问题模型已经不再需要改动,可用SA VE命令将它存入文件中,点File——Save,输入文件名,点“保存”。
二、求解从Solve菜单选择Solve命令,或者在窗口顶部的工具栏里按Solve按钮,LINDO 就会开始对模型进行编译。
首先,LINDO会检查模型是否具有数学意义以及是否符合语法要求。
如果模型不能通过这一步检查,会看到以下报错信息:An error occurred during compilation on line: n(产生错误的行数),LINDO会自动跳转到发生错误的行。
我们就可以检查该行的语法错误并改正过来。
通过这一检查阶段后,LINDO就会正式开始求解,这由一个叫LINDO solver 的处理器完成。
当solver初始化时,会在屏幕上显示一个状态窗口,如下图所示:这个状态窗口可以显示solver的进度,下表是对各项数据/控制按钮的说明:当solver完成优化过程后将会提示你是否要进行灵敏度和范围分析。
如果想重新看到刚才的模型,可键入LOOK命令,LINDO会询问具体的行号。
典型的应答可以是3,或1-2,或ALL,而结果,相应地会显示出第3行,第1-2行,或所有问题行。
数据项/控制说明Status 给出当前解决方案的状态,可能的值包括:Optimal(最优的),Feasible (可行的),Infeasible(不可行的),Unbounded(未定的)Iterations solver的重复次数Infeasibility 多余或错误约束条件数量Objective 目标函数的当前值Best IP 标示得到最优整数解决方案值,该项只出现在IP(整数规划)模型。
IP Bound IP模型中目标的理论范围Branches 由LINDO IP solver分生出来的整型变量个数Elapsed Time solver启动后所经过时间Update Interval 状态窗口更新周期(秒)。
你可以把这个值设成任何一个非负数,如果把它设成零的话很可能会增加求解时间。
Interrupt Solver 按下该按钮,solver将立刻停止并返回当前得到的最优解。
Close 按下该按钮关闭状态窗口,solver继续运行。
状态窗口可以通过选取相应命令重新打开。
ROW: 3或:LOOK all如果想修改问题,可键入ALTER命令,LINDO会询问行号、变量名、及新的系数。
例如:如果要将上面问题中约束条件改为,再全部看一下,并求解新问题,那么键入ALTER 命令后相应的应答为2,X,和6,以下是演示过程::ALTERROW: 2V AR: XNEW COEFFICIENT: 6或:LOOK ALL三、LINDO输出结果报告在Reports Window窗口里,它可以显示64,000个字符的信息。
如果有需要,LINDO会从顶部开始刷除部分输出以腾出空间来显示新的输出。
如果你有一个很长的解决方案报告,需要完整地进行阅读使用,你可以把这些信息从Reports Window 写到另外一个磁盘文件里,方法是选取File|Log Output命令,快捷键是F10,然后你就可以找到该文件进行阅读使用。
如下所示,Reports Window里显示的是模型的最优解决方案:按照顺序,报告首先告诉我们LINDO进行了两次运算后求出该解;跟着是在约束条件的约束下我们可以得到的最大利润是145;这时X和Y分别取值10和3。
四、LINDO求解单纯的或混合型的整数规划(IP)问题LINDO可用于求解单纯的或混合型的整数规划(IP)问题。
但目前尚无相应完善的敏感性分析理论。
IP问题的输入与LP问题类似,但在END标志后需定义整型变量。
0-1型的变量可由INTEGER(可简写为INT)命令来标识:INTEGER vname 或INTEGER n五、注意事项1.进入LINDO后,":"表示LINDO已准备接受一个命令。
2.LINDO中已假定所有变量非负。
变量名不能超过8个字符。
3.如要输入<=或>= 型约束,相应以<或>代替即可。
4.LINDO不允许变量出现在一个约束条件的右端。
5.目标函数及各约束条件之间一定要有空格分开。
6.一般LINDO中不能接受括号()和逗号",",例:400(X1+X2)需写为400X1+400X2;10,000需写为10000。
7.EDIT命令调用一个全屏幕编辑器,可对当前模型进行全屏幕编辑。
编辑完成后用“Esc”键保存当前修改,退出全屏幕编辑器;此时若模型有错误,则要求改正错误后再退出。
用“Ctr+Break”键废弃当前修改,退出全屏幕编辑器。
8.LINDO有DEL,EXT,及AL TER等其它编辑命令,虽然全屏幕编辑器EDIT使这些命令用处减少了,但DEL在大块地清除一个模型时是有用的,而AL TER可允许做全局性的替换。
9.LOOK 命令会为你在屏幕上显示你的问题(EDIT 也可如此)。
10.如想获得敏感性分析可用RANGE命令。
11.SAVE命令用来存储一个问题模型到文件中,RETR或TAKE命令用来读取一个以文件存储的模型。
TAKE命令还可用于解读一个以文本格式存储的LINGO格式的问题模型。
12.DIVERT 会导致大多数信息被输送到文件中,而只有少量信息被传送到屏幕。
RVRT 用于结束DIVERET。
如果你divert到一个名为PRN的文件,结果将被直接传到打印机。
13.LINDO文件中常有注释间杂于各命令(COMMANDS)之中,前面注有[!]符号。
例如:! This is a comment。
14.LINDO将目标函数所在行作为第一行,从第二行起为约束条件。
行号自动产生,也可以人为定义行号或行名。
行名和变量名一样,不能超过8个字符。
15.LINDO不能将LP 中的矩阵进行数值均衡化。
为了避免数值问题,使用者应自己对矩阵的行列进行均衡化。
一个原则是,系数矩阵中非零元的绝对值不能大于100000或者小于。
0001。
如果LINDO觉得矩阵元素之间很不均衡,将会给出警告。
16.量纲分析与一般错误的避免天津理工大学管理学院运筹学实验报告实验日期:____________学号姓名系别、专业实验习题一农户拥有土地100亩和资金30000元,在冬半年(从10月中到第二年4月中),农户有劳力3500工时,在夏半年有劳力4000工时,如果有剩余劳力,那么农户就安排到邻居帮工。
冬半年工钱是4.00元/小时,夏半年是4.50元/小时。
农户可以通过种植三种作物和饲养奶牛和蛋鸡来获得现金收入。
作物不需投资,而每买一头奶牛需支付900元,一只蛋鸡7元。
每饲养一头奶牛需用地1.5亩,在冬半年需劳力100工时,在夏半年需劳力50工时,每头奶牛每年的纯现金收入为800元。
相应的,养鸡不需土地,一只在冬半年需0.6工时,在夏半年需0.3工时,每只鸡的年净收入5元。
农户的鸡舍最大可容鸡3000只,牛圈最多可养牛32头。