运筹学实验
《运筹学》实验四__网络计划(学生版)

实验四网络计划
一、实验目的
掌握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.对偶价格的含义:表示当对应约束有微小变动时, 目标函数的变化率。
运筹学综合实验报告

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

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)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(6)LINGO中不能输入下标,x1→x1。
图3
注2:例1.1的模型求解还可以按图4的方式输入代码求解。此时LINGO中输入的代码和线性规划模型的除注1的相关差异外,还有如下不同:
(7)Dual Price,对偶价格,即最大化问题中对偶变量的最优解的值如图9所示,对于最小化问题,对偶价格为对偶变量的最优解的值的相反数。
图9
图10
例1.2求解下面线性规划的数学模型
min z=-3x1+4x2-2x3+5x4;
4x1-x2+2x3-x4=-2;
x1+x2+3x3-x4≤14;
-2x1+3x2-x3+2x4≥2;
(3)Objective,目标函数值为14,由于处于最优解状态,所以这里表示最优值为14。
(4)Infeasibility 0,不可行性0,表示此时有可行解,否则没有可行解。
(5)Iteration 1,表示迭代了1步求得最优解。
(6)Extended Solver Status,表示扩展的解的状况,主要用于整数规划和非线性规划。
(1)数与变量的乘积,乘号用空格表示;
(2)约束条件之前用s.t.或subject to表示后面是约束;
(3)每行后面不用分号结束;
(4)这种输入法的好处是和LINDO的输入一致,可以直接在LINDO中求解,做灵敏度分析较方便,也能得到最优单纯形表。
图4
点菜单栏的LINGO→Solver,或直接点工具栏上的,可得求解结果即解的状况(Solver Status)和解报告(Solution Report):
a=4 -1 2 -1
1 1 3 -1
-2 3 -1 2;
2.用Excel加载规划求解,对所建立线性规划模型求解;
3.用Matlab调用函数linprog(),对所建立线性规划模型求解;
4.用Lingo编写程序,对所建立线性规划模型求解;
5.用1stopt对所建立线性规划模型求解.
【注】:根据所提供的资料,自学各种软件的用法。
三、实验要求
1.学生在实验操作过程中自己独立完成,1人1组;
Row Slack or Surplus Dual Price
1 2.000000 -1.000000
2 0.000000 4.500000
3 0.000000 0.5000000
4 10.00000 0.000000
实验
一、实验目的
1.掌握线性规划建模的方法与步骤;
2.熟悉Lingo求解较大规模线性规划问题.
(4)Variable Value Reduced Cost
X1 4.000000 0.000000
X1 2.000000 0.000000
最优解的变量X1=4.000000,X2=2.000000。
(5)Reduced Cost:表示减少的成本,即最小化问题的最优目标函数中各变量的检验数,即在其它变量不变时,该变量减少一个单位,目标费用减少的数量如图8。对于最大化问题,是最优目标函数中各变量的检验数的相反数,表示当该变量增加一个单位时目标函数减少的数量如图9。这里由于上面X1和X2为取值非零的基变量,所以检验数为零。Reduced Cost为在最优解时,最小化问题中变量的检验数,最大化问题中变量检验数的相反数。
运筹学课程上机实验要求
每项实验提交一份实验报告,根据实验报告进行上机实验成绩评定。提交实验报告要求:
1.提交电子word版运筹学课程实验报告一份,文件名以学生的学号命名(撰写要求及格式参考附件);
2.实验报告统一由学习委员打包发送到chen.zhh@
3.提交报告时间:下次上机之前。
成绩评定等级主要分5级,优秀(100分)、良好(85分)、中等(70分)、及格(60分)、不及格(60分以下)。具体成绩评定还可根据实际情况界于5等级成绩之间细评为10等级。优(100分)、优-(95分)、良+(90分)、良(85分)、良-(80)、中+(75分)、中(70分)、中-(65分)、及格(60分)、不及格(60分以下)。
每吨产品的消耗
每周资源总量
甲
乙
维生素/kg
30
20
160
设备/台班
5
1
15
附录1:
Excel规划求解,用于求解线性规划。见附件
附录2:
1stOPT用于求解线性规划。见附件
附录3:
Matlab用于求解线性规划。
1.模型minz=cX
S.t. AX≤b
命令:x=linprog(c, A, b)
2.模型minz=cX
Objective value: 2.000000
Total solver iterations: 0
Variable Value Reduced Cost
X1 0.000000 15.50000
X2 8.000000 0.000000
X3 0.000000 8.500000
X4 -6.000000 0.000000
S.t. AX≤b
AeqX=Beq
命令:x=linprog(c,A,b,Aeq,beq)
注意:若没有不等式:AX≤b约束,则令A=[ ],b=[ ].
3.模型minz=cX
S.t. AX≤b
AeqX=Beq
VLB≤X≤VUB
命令:x=linprog(c,A,b,Aeq,beq, VLB,VUB)
注意:若没有等式:AeqX=Beq约束,则令A=[ ],b=[ ].
x1,x2,x3≥0,x4无约束;
LINGO中输入如下的代码:
min=-3*x1+4*x2-2*x3+5*x4;
4*x1-x2+2*x3-x4=-2;
x1+x2+3*x3-x4<=14;
-2*x1+3*x2-x3+2*x4>=2;
@free(x4);
求解可得解报告:
Global optimal solution found.
4x1≤16
4x2≤16
x1,x2≥0
LINGO中的输入的代码如图2所示,这种输入方式的优势在于适合LINDO系统。
图2
注1:LINGO中输入的代码和线性规划模型的差异如下:
(1)max z→max,min z→min;
(2)每一行(包括目标函数)用英文的分号结束;
(3)数与变量的乘积用*表示;
(4)不等号≤和≥用<=和>=或<和>表示;
(6)Row Slack or Surplus Dual Price
1 14.00000 1.000000
2 0.000000 1.500000
3 0.0000000.1250000
44.000000 0.000000
Slack or Surplus表示松弛或剩余变量,即将最优解带入各个约束条件后,左边比右边小的或大的数量,表示在最优方案中,剩余或超过的资源数量。注意,这里第一行表示目标函数,其松弛或剩余变量和对偶价格都没有意义。
问题:某制药厂生产甲、乙两种药品,生产这两种药品要消耗某种维生素。生产每吨药品所需要的维生素量分别为30Kg,20Kg,所占设备时间分别为5台班,1台班,该厂每周所能得到的维生素量为160kg,每周设备最多能开15个台班。且根据市场需求,甲种产品每周产量不应超过4t。已知该厂生产每吨甲、乙两种产品的利润分别为5万元及2万元。问该厂应如何安排两种产品的产量才能使每周获得的利润最大?
5级成绩评定标准如下:
优秀:
能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果可靠,体现了学生较强的分析和解决实际问题的能力,实验报告完整。实验工作量充分。
良好:
能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果基本可靠,体现了学生较强的分析和解决实际问题的能力,实验报告较完整。实验工作量较充分。
五、实验内容及步骤
教学过程中所见到的运筹学模型大多是小规模的,但是,在解决生产和经营管理活动中的实际时,建立的通常是含有很多和变量和约束条件的模型,用前面的方法,经常要花费大量的时间来输入代码或模型,下面介绍编程的方法,对于解决大型复杂的模型,效果显著。
例2.1求解下面线性规划的数学模型;
min z=-3x1+4x2-2x3+5x4;
!约束条件;
@sum(js(J):a(1,J)*x(J))=b(1);
@sum(js(J):a(2,J )*x(J))<=b(2);
@sum(js(J):a(3,J)*x(J))>= b(3);
!自由变量;
@free(x(4));
!指定常量的值;
data:
c=-3 4 -2 5;
b=-2 14 2;
图5
关于图5的Solver Status的注释如下:
(1)Model(模型) LP(线性规划Linear programming,其它模型还有非线性规划NLP(Nonlinear programming ),整数线性规划ILP(Integer),整数非线性规划INLP)
(2)State(状态) Global Opt(整体最优解Global optimal solution,线性规划的最优解都是整体最优解,非线性规划有局部最优解(Local Opt)和整体最优解之分,其它状态还有无可行解(Infeasible)图7和无界解(Unbounded)图8)
二、实验内容
1.对线性规划问题的习题,列出线性规划模型并求解;
2.用Lingo编写程序,对所建立线性规划模型求解;