运筹学软件的使用_第1页
运筹学软件的使用_第2页
运筹学软件的使用_第3页
运筹学软件的使用_第4页
运筹学软件的使用_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、运筹学软件的使用运筹学软件的使用 运筹学课件运筹学软件的使用 运筹学软件运筹学软件 nLindo的使用(的使用(Linear, Interactive, and Discrete Optimizer) nLingo的使用的使用 nWinQSB的使用的使用 nScilab的使用的使用 运筹学课件运筹学软件的使用 Lindo软件 n简介 n使用方法 n实例 运筹学课件运筹学软件的使用 Lindo 简介 nLINDO由Linus Schrage 于1986年开发的优 化计算软件包, 可以用来求解线性规划 (LP- Linear Programming), 整数规划 (IP-Integer Progr

2、amming) 和二次规划 (QP-Quadratic Programming) 问题. n由于LINDO执行速度很快、易于方便输入、 求解和分析数学规划问题。因此在数学、科 研和工业界得到广泛应用。 n具体事务包括:产品分销、成分混合、生产 与个人事务安排、存货管理 运筹学课件运筹学软件的使用 n一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP- Linear Programming)。整数规划(IP- Integer Programming)问题。其中 LINDO 6 .1 学生版至多可求解多达300 个变量和150个

3、约束的规划问题。其正式 版(标准版)则可求解的变量和约束在1 量级以上。 运筹学课件运筹学软件的使用 使用方法 n窗口界面窗口界面 n基本操作基本操作 模型输入模型输入 求解求解 结果分析结果分析 n求解整数线性规划求解整数线性规划 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 模型输入 变量变量:以字母开头字母和数字组成,系数在前变量在后, 变量默认为非负变量 目标函数目标函数: max(min) 函数 max 4 x1+2 x2 约束不等式约束不等式: 以Subject To 开始,以end结束 1)=或-大于等于号 2)= 或-小于等于号 3)不区分大小写 运筹学课件运筹学软件

4、的使用 求解 n求解按钮 n求解菜单 运筹学课件运筹学软件的使用 0, 1064 853 4max 21 21 21 21 xx xx xx xxz解: 0, 1064 853 004max 4321 421 321 4321 xxxx xxx xxx xxxxz 运筹学课件运筹学软件的使用 1400 CBXBbx1x2x3x4 0 x383510 0 x4104601 01400 4x21 3/53/511/50 0 x42/52/50-1 1/51 -6 2/5-1 2/50- 4/50 cj cj-zj cj-zj 0, 1064 853 004max 4321 421 321 4321

5、 xxxx xxx xxx xxxxz 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 是否进行灵敏度分析是否进行灵敏度分析 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 对各项数据/控制按钮的说明 n据项/控制 说明 nStatus 给出当前解决方案的状态,可能的值包括:Optimal(最 优的), Feasible(可行的), Infeasible(不可行的),Unbounded(未 定的) nIterations solver的重复次数 nInfeasibility 多余或错误约束条件数量 nObjective 目标函数的当前值 nBest IP 标示得到最优整数解决方

6、案值,该项只出现在IP(整数规 划)模型。 nIP Bound IP模型中目标的理论范围 nBranches 由LINDO IP solver分生出来的整型变量个数 nElapsed Time solver启动后所经过时间 nUpdate Interval 状态窗口更新周期(秒)。你可以把这个值设成 任何一个非负数,如果把它设成零的话很可能会增加求解时间。 nInterrupt Solver 按下该按钮,solver将立刻停止并返回当前得到 的最优解。 nClose 按下该按钮关闭状态窗口,solver继续运行。状态窗口可 以通过选取相应命令重新打开。 运筹学课件运筹学软件的使用 对偶价对偶价

7、 格格 检验数检验数 行行 迭代次迭代次 数数 正无穷大 1次迭代或旋转后得到最优解 运筹学课件运筹学软件的使用 要判断表达式输入是否有错误时,也可以使用菜单 “Reports“的”Picture“选项 运筹学课件运筹学软件的使用 若想获得灵敏度分析,可用 “Reports“的”Rang“选项 运筹学课件运筹学软件的使用 1400 CBXBbx1x2x3x4 0 x383510 0 x4104601 01400 4x21 3/53/511/50 0 x42/52/50-1 1/51 -6 2/5-1 2/50- 4/50 cj cj-zj cj-zj 0, 1064 853 004max 43

8、21 421 321 4321 xxxx xxx xxx xxxxz 若需显示单纯形表,可执行“Reports“的”Tab lean“选项 运筹学课件运筹学软件的使用 注意事项: n) 目标函数及各约束条件之间一定要有 “Subject to (ST) ”分开。 n) 变量名不能超过个字符。 n) 变量与其系数间可以有空格,单不能 有任何运算符号(如乘号“”等)。 运筹学课件运筹学软件的使用 注意事项: n) 要输入=约束,相应以代替 即可。 n) 一般LINDO中不能接受括号“()“和 逗号“,“,例:400(X1+X2) 需写成 400X1+400X2;10,000需写成10000。 n)

9、 表达式应当经过简化。不能出现 n 2 X1+3 X2-4 X1,而应写成-X1+3 X2。 运筹学课件运筹学软件的使用 整数线性规划 n整数变量的设置 一般整数变量 GIN 0-1整数变量 INT 放在end之后 Int 3 前3个为整数0-1 变量 Int x1 x1 为整数0-1 变量 实例 运筹学课件运筹学软件的使用 整数规划 nmax x1+4x2 nst n3x1+5x2=8 n4x1+6x2=5 X1+x2+x3=4 X1,x30 x2无约束 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 LinGo软件 n简介 n

10、使用方法 n实例 运筹学课件运筹学软件的使用 LinGo简介 n用于求解非线性规划(NLPNONLINEAR PROGRAMMING)和二次规则(QPQUARATIC PROGRAMING)其中LINGO .0学生版最多可版 最多达300个变量和150个约束的规则问题,其标 准版的求解能力亦再104量级以上。虽然LINDO 和LINGO不能直接求解目标规划问题,但用序贯式 算法可分解成一个个LINDO和LINGO能解决的规划 问题。 nhttp:/ 运筹学课件运筹学软件的使用 使用方法 n窗口界面 n基本操作 模型输入 求解 结果分析 n求解整数线性规划 运筹学课件运筹学软件的使用 窗口界面

11、运筹学课件运筹学软件的使用 模型输入 n直接输入模式与Lindo类似,不同之处有: 1)以model:开始 以end结束 2)目标函数加等号 max= 3)系数与变量之间加* 3*x1 4)每一个不等式结束后加; 5)在END之前定义整数变量 6)可以出现“()” 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 二次规划 nmin z=(x1-1)2+(x2-2)2 nx2-x1=1 nx1+x2=0,x2=0 运筹学课件运筹学软件的使用 二次规划 nmodel: nmin=(x1-1)2+(x2-2)2; nx2-1=1; nx

12、1+x2=2; nEnd 运筹学课件运筹学软件的使用 二次规划 nLocal optimal solution found at iteration: 3 n Objective value: 1.000000 n Variable Value Reduced Cost n X1 0.000000 0.000000 n X2 2.000000 0.000000 n Row Slack or Surplus Dual Price n 1 1.000000 -1.000000 n 2 0.000000 -2.000244 n 3 0.000000 2.000000 运筹学课件运筹学软件的使用 参数

13、输入模式 Model: Sets: !定义集合 Endsets Data: !定义数据 Enddata 调用函数与计算 end 运筹学课件运筹学软件的使用 集合部分 返回 运筹学课件运筹学软件的使用 定义数据 返回 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 求解 n求解按钮 n求解菜单 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 结果 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 例 3.1运输问题 n!3发点4收点; nModel: nSets: nWarehouses/A1.A3/:Capacity; nVendors/B1.B4/:Demand; nL

14、inks(warehouses,vendors):cost,volume; nEndsets n!目标函数; nMin=sum(links:cost*volume); n!需求约束; nFor(vendors(j): nSum(warehouses(i):volume(i,j)=demand); n!产量约束; nFor(warehouses(i): nSum(vendors(j):volume(i,j)=capacity); n!下面是数据; nData: nCapacity=7 4 9; nDemand=3 6 5 6; nCost=3 11 3 10 n1 9 2 8 n7 4 10 5

15、; nEnddata 运筹学课件运筹学软件的使用 例 3.1运输问题 运筹学课件运筹学软件的使用 例 3.1运输问题 运筹学课件运筹学软件的使用 例 3.1运输问题 运筹学课件运筹学软件的使用 模型的集部分 n定义原始集: n语法: nsetname/member_list/:attribute_list; n用“”表示该部分内容可选 n注意: n集的名字可选,集的成员可选,集成员的 属性 运筹学课件运筹学软件的使用 模型的集部分 nMember_list是集成员列表。如果集成员放在集定 义中,那么对它们可采取显式罗列和隐式罗列两种 方式。 n 当显式罗列成员时,必须为每个成员输入一个 不同的

16、名字,中间用空格或逗号搁开,允许混合使 用。 n 当隐式罗列成员时,不必罗列出每个集成员。 可采用如下语法: nsetname/member1.memberN/: attribute_list; n在attribute_ list可以指定一个或多个集成员的属性, 属性之间必须用逗号隔开。 运筹学课件运筹学软件的使用 模型的数据部分和初始部分模型的数据部分和初始部分 n数据部分入门数据部分入门 n数据部分以关键字“data:”开始,以关键字 “enddata”结束。 n语法: nobject_list = value_list; n对象列对象列(object_list)包含要指定值的属性 名、要

17、设置集成员的集名,用逗号或空格隔 开。 n数值列数值列(value_list)包含要分配给对象列中 的对象的值,用逗号或空格隔开。注意属性 值的个数必须等于集成员的个数。 运筹学课件运筹学软件的使用 LINGO有9种类型的函数 n1 基本运算符:包括算术运算符、逻辑运算符和关系运 算符 n2 数学函数:三角函数和常规的数学函数 n3 金融函数:LINGO提供的两种金融函数 n4 概率函数:LINGO提供了大量概率相关的函数 n5 变量界定函数:这类函数用来定义变量的取值范围 n6 集操作函数:这类函数为对集的操作提供帮助 n7 集循环函数:遍历集的元素,执行一定的操作的函数 n8 数据输入输出

18、函数:这类函数允许模型和外部数据源 相联系,进行数据的输入输出 n9 辅助函数:各种杂类函数 运筹学课件运筹学软件的使用 界定函数 定义变量 n变量界定函数实现对变量取值范围的附加限 制,共4种: n0-1整数变量 bin() nbin(x) 限制x为0或1 运筹学课件运筹学软件的使用 界定函数 定义变量 nBND( 下界, 变量, 上界) 定义有界变量 bnd(L,x,U) 限制LxU nFREE( 变量) 定义自由变量 nfree(x) 取消对变量x的默认下界为0的限制,即x可以 取任意实数 运筹学课件运筹学软件的使用 界定函数 定义变量 n一般整数变量 gin() ngin(x) 限制x

19、为整数 放在end之前单个定义 运筹学课件运筹学软件的使用 案例 n某钢筋车间,现用的原材料是长度10米的钢筋 (直径相同),需要制作一批长度为3米的钢筋90 根,长度为4米的钢筋60根,问怎样下料既满足需 要,又使原材料最少? n解:根据题意:有如下三种下料方式: n1)截成3米的3根。 n2)截成3米的2根, 4米的1根。 n3)截成4米的2根。 n设三种下料方式B1,B2,B3分别用原材料(10米) x1,x2,x3根,列成表1-7: 运筹学课件运筹学软件的使用 n 下料方式表 方式 单含 零件 B1B2B3需求量 3m32090 4m01260 可转化成求下面的线性规划问题: min

20、f= x1+x2+x3 3x1+2x290 x2+2x3 60 xj0 ,且为整数(j=1,2,3) s.t. 下料 方式 x1x2x3 运筹学课件运筹学软件的使用 案例 运筹学课件运筹学软件的使用 配料问题案例 n问题 n问题分析 n模型 n求解 运筹学课件运筹学软件的使用 配料问题 某化工厂要用三中原料混合配置三种不同规 格的产品各产品的规格单价如表1, 产品 规格单价(元/公斤) A 原料不少于50% 原料不超过25% 50 B 原料不少于25% 原料不超过50% 35 C不限25 运筹学课件运筹学软件的使用 问如何安排生产使得生产利润最大? 原料日最大供应量单价(元/公斤) 10065

21、 10025 6035 原料的单价与每天最大供应量如表2 运筹学课件运筹学软件的使用 问题分析 n变量 n约束条件 n目标函数 运筹学课件运筹学软件的使用 变 量 生产计划就是要确定每天生产三种产品的数量 以及非中产品中三中原料的数量。而由于每 种产品的数量等于三种原料数量之和,所以 只要确定每天生产三种产品分别含有的原料 数量即可。所以变量就是每天生产三种产品 所用的 原料数,设用于生产第种产品的第种原料数为 3 , 2 , 1, 3 , 2 , 1,jixij 运筹学课件运筹学软件的使用 约束条件 n规格约束 等价于 5 . 0,25. 0 25. 0, 5 . 0 232221 21 2

22、32221 21 131211 11 131211 11 xxx x xxx x xxx x xxx x 0, 03 03, 0 232221232221 131211131211 xxxxxx xxxxxx 运筹学课件运筹学软件的使用 n资源约束 60 100 100 332313 322212 312111 xxx xxx xxx 运筹学课件运筹学软件的使用 目标函数 总产值 总成本 总利润=总产值-总成本 )(25 )(35)(50 333231 232221131211 xxx xxxxxx )(35 )(25)(65 332313 322212312111 xxx xxxxxx 运筹

23、学课件运筹学软件的使用 3331 2221131211 332313322212 312111333231 232221131211 1040 1030152515 )(35)(25 )(65)(25 )(35)(50 xx xxxxx xxxxxx xxxxxx xxxxxx 目标函数 运筹学课件运筹学软件的使用 模型 3,2,1,3,2,1,0 60 100 100 0 03 03 0 . 10401030 152515max 332313 322212 312111 232221 232221 131211 131211 33312221 131211 jix xxx xxx xxx x

24、xx xxx xxx xxx ts xxxx xxx ij 运筹学课件运筹学软件的使用 求解 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 运筹学课件运筹学软件的使用 集循环函数集循环函数 n语法:语法: nfunction(setname(set_index_list)|cond itional_qualifier: nexpression_list); n1for n该函数用来产生对集成员的约束。基于建模语言该函数用来产生对集成员的约束。基于建模语言 的标量需要显式输入每个约束,不过的标量需要显式输入每个约束,不过for函数允函数允 许只输入一个约束,然后许只输入一个约束,然后L

25、INGO自动产生每个集自动产生每个集 成员的约束。成员的约束。 for(set(set_index_list)|condition:expression) 运筹学课件运筹学软件的使用 集循环函数集循环函数 n2sum n该函数返回遍历指定的集成员的一个表达式该函数返回遍历指定的集成员的一个表达式 的和。的和。 sum(set(set_index_list)|condition:expression) n例如: nFor(vendors(j): nSum(warehouses(i):volume(i,j)=demand); 运筹学课件运筹学软件的使用 集循环函数集循环函数 nmin和max n返

26、回指定的集成员的一个表达式的最小值或 最大值。 max(set(set_index_list)|condition:expression) min(set(set_index_list)|condition:expression) 运筹学课件运筹学软件的使用 辅助函数辅助函数 nif(logical_condition,true_result,false_result) nif函数将评价一个逻辑表达式logical_condition, 如果为真,返回true_ result,否则返回false_result。 nIF( logical_condition, true_result, fals

27、e_result) 运筹学课件运筹学软件的使用 nABS( X) nCOS( X) nEXP( X) nFLOOR( X) nLGM( X) ln (X - 1)! nLOG( X) nSIGN( X) -1 if X 0. Otherwise, it returns +1. 数学函数数学函数 运筹学课件运筹学软件的使用 nSIN( X) nSMAX( X1, X2,., XN) nSMIN( X1, X2,., XN) nTAN( X) 数学函数数学函数 运筹学课件运筹学软件的使用 WinQSB软件 QSBQSB是是Quantitative Systems for BusinessQuant

28、itative Systems for Business 的缩写,的缩写,WinQSBWinQSB是一种教学软件,对于非是一种教学软件,对于非 大型的问题一般都能计算,较小的问题还大型的问题一般都能计算,较小的问题还 能演示中间的计算过程。该软件可用于管能演示中间的计算过程。该软件可用于管 理科学、决策科学、运筹学及生产运作管理科学、决策科学、运筹学及生产运作管 理等领域的求解问题。理等领域的求解问题。 运筹学课件运筹学软件的使用 WinQSB软件 (2 2)WinQSB软件用法软件用法 安装安装WinQSB软件后,在系统程序中自软件后,在系统程序中自 动生成动生成WinQSB应用程序,用户根

29、据不同的应用程序,用户根据不同的 问题选择子程序。进入某个子序后,第一项问题选择子程序。进入某个子序后,第一项 工作就是建立新问题或打开已有的数据文件,工作就是建立新问题或打开已有的数据文件, 观察数据输入格式,系统能够解决哪些问题,观察数据输入格式,系统能够解决哪些问题, 结果的输出格式等内容。结果的输出格式等内容。 运筹学课件运筹学软件的使用 WinQSB软件 nQSB的基本内容 n1、抽样分析Acceptance Sampling Analysis(ASA) n2、综合计划编制Aggregate Planning(AP) n3、决策分析Decision Analysis(DA) n4、动

30、态规划 Dynamic Programming(DP) n5、设备场地布局Facility Location and Layout(FLL) 运筹学课件运筹学软件的使用 WinQSB软件 n6、预测与线性回归Forecasting and Linear Regression(FC) n7、目标规划与整数线性目标规划Goal Programming and Integer Linear goal Programming (GP-IGP) n8、库存论与存储控制系统 Inventory Theory and Systems (ITS) n9、作业调度Job Scheduling(JOB) 运筹学课

31、件运筹学软件的使用 WinQSB软件 n10、线性规划和整数规划 Linear Programming and Integer Linear Programming (LP- ILP) n11、马尔可夫过程MarKov Process(MKP) n12、物料需求计划Material Requirements Planning(MRP) n13、网络模型 Network Modeling (Net) n14、非线性规划NonLinear Programming(NLP) n15、网络计划Project scheduling(PERT- CPM) 运筹学课件运筹学软件的使用 WinQSB软件 n1

32、6、二次规划 Quadratic Programming (QP) n17、排队分析 Queuing Analysis (QA) n18、排队系统模拟 Queuing System Simulation (QSS) n19、质量管理控制图Quality Control Charts(QCC) 运筹学课件运筹学软件的使用 本 章 所 有 计 算 都 调 用 子 程 序本 章 所 有 计 算 都 调 用 子 程 序 N e t w o r k Modeling。 1.1.用用WinQSB求解最小树求解最小树 例例求解下图的最小树。求解下图的最小树。 启动程序。依次点击开始,程序,启动程序。依次点击

33、开始,程序,WinQSBWinQSB, Network ModelingNetwork Modeling。 WinQSB软件示例软件示例 运筹学课件运筹学软件的使用 建立新问题。建立新问题。 在 右 图 中 选 择在 右 图 中 选 择 Minimalspanning Tree,输入标题与顶,输入标题与顶 点数。点击确定后,点数。点击确定后, 出现下表。出现下表。 输入数据输入数据 在右表中输入数据,在右表中输入数据, 两点间的权数只输两点间的权数只输 入一次。入一次。 运筹学课件运筹学软件的使用 求解求解 点击菜单栏点击菜单栏 Solveand Analyze,输出表,输出表 最小树结果,最

34、最小树结果,最 小树长为小树长为1515。点。点 击菜单栏击菜单栏Results- GraphicSolution, , 显示最小树树形。显示最小树树形。 运筹学课件运筹学软件的使用 2.用用WinQSB求解最短路求解最短路 进入图进入图6-6-2所示界面,所示界面, 选 择选 择 S h o r t e s t P a t h Problem,如果是有向图,如果是有向图 就按弧的方向输入数据,就按弧的方向输入数据, 如果是无向图每条边必如果是无向图每条边必 须输入两次,无向边变须输入两次,无向边变 为两条方向相反的弧。为两条方向相反的弧。 例如求图例如求图6-6-6的最短路。的最短路。 输入

35、数据,见表输入数据,见表6-6-7。 运筹学课件运筹学软件的使用 点击菜单栏点击菜单栏SolveandAnalyze后后 系统提示用户选择图的起点和终点,系统提示用户选择图的起点和终点, 系统默认从第一个点到最后一个点,系统默认从第一个点到最后一个点, 用户选择后系统不仅输出用户选择后系统不仅输出v1到到v5的路的路 径和路长,还显示了径和路长,还显示了v1到各点的最短到各点的最短 路长,见表路长,见表6-6-8。点击菜单栏。点击菜单栏 Results-GraphicSolution, ,显示了显示了v1到到 各点的最短路线图(图各点的最短路线图(图6-6-9)。)。 运筹学课件运筹学软件的使

36、用 运筹学课件运筹学软件的使用 3.用用WinQSB求解最大流求解最大流 选择选择MaximalFlowProblem,输入节点,输入节点 数,输入数据,求解与最短路同,点击菜单数,输入数据,求解与最短路同,点击菜单 栏栏Results-GraphicSolution,输出最大流网络输出最大流网络 图。(略)图。(略) 4.用用WinQSB求解最小费用流求解最小费用流 系统没有直接求最小费用流的程序,只系统没有直接求最小费用流的程序,只 要利用第四节中(要利用第四节中(*)式得到赋权图,就可以)式得到赋权图,就可以 用最短路程序寻找最小费用增广链,解决了用最短路程序寻找最小费用增广链,解决了 主要的计算过程。主要的计算过程。 运筹学课件运筹学软件的使用 Scilab软件 n软件简介 n基本操作 n求解线性规划 运筹学课件运筹学软件的使用 简介 nScilab是由法国INRIA实验室开发的一个开放 源代码的自由软件,它最初是为系统控制和 信号处理而开发的。与传统的开放源代码数 学软件相比,Scilab的特点在于它具有友好 的用户界面和较完善的图形功能。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论