第四章 数学规划模型
一、数学规划模型 1.模型的建立 问题1 某厂利用甲,乙,丙,丁四种设备生产A,B,C三种 产品, 相关数据如表所示. 已知这三种产品的单件利润 分别是4.5, 5, 7(百元),试问该厂应如何安排生产可获 得最大利润?
A B C 总工时 甲 2 4 800 乙 1 3 650 丙 850 丁 700
甲 乙 丙 丁 注意到变量 代表的是产品的产量, 故有 抽去所给问题的具体意义, 我们得到原问题的数学关系 为
分析 该问题的关键所在是确定每种产品的产量, 为此以 表示三种产品的产量, 则目标为 在一个生产周期中, 每种设备所提供的工时为有限的, 故对四种设备而言还应该满足下列条件:
非负性
用Lingo软件可以得到相应问题的解. 启动Lingo, 在窗 口下中输入下列程序: 保存完之后执行Lingo菜单下的Solve命令,得到相应的解.
Variable Value Reduced Cost X1 85.71429 0.000000 X2 71.42857 0.000000 X3 121.4286 0.000000 Row Slack or Surplus Dual Price 1 1592.857 1.000000 2 0.000000 1.357143 3 57.14286 0.000000 4 0.000000 0.2142857 5 0.000000 0.4642857
问题2 某车间要制造100套钢筋架, 每套需要长为2.9 2.1 1.5 的钢筋各一根. 已知原料钢筋长度为7.4 问如何切割钢筋, 使得钢筋的利用率为最高? 分析 该问题的要点是如何切割钢筋, 使得每次切割之 后, 剩下的余料为最少? 假设在切割过程中, 我们不考虑钢筋的损耗, 并考虑各 种切割方案:
方案 2.9 2.1 1.5 余料 1 3 2 0.1 0.2 4 0.3 5 0.8 注 尽管还有其它方案, 但其它方案不会比这更省.
非负性
从分析中可以看出, 此问题的关键是确定每种方案下 的余料数. 设 表示第 种方案中使用的原料钢 筋数, 则余料数为 而相应的限制条件为
故原问题的数学关系式为 非负性
在Lingo下得到该问题的解为
运行后得到该问题的解为 X2 25.00000 0.000000 X3 0.000000 0.3666667 X4 25.00000 0.000000 X5 0.000000 1.283333 X1 25.00000 0.000000
线性规划的模型一般可表示为 有些情况下,目标函数何以用Min来表示, 其意义为追求最小成本. 非负性
注 线性规划的目标函数还可以用min来表示, 表示 追求目标函数的最小值. 而 表示约束条件: (Subject to). 追求目标函数的最小值. 而 表示约束条件: (Subject to). 有些情况下,目标函数何以用Min来表示, 其意义为追求最小成本.
100吨, 已知每吨运费如表所示, 试建立一个使运费达到 最小的调拨计划. 问题3 要从甲地调出物质2000吨, 从乙地调出物质 1100吨, 分别供给 地1700吨, 地11吨, 地200吨和 100吨, 已知每吨运费如表所示, 试建立一个使运费达到 最小的调拨计划. 销地 15 37 51 乙 7 25 21 甲 D C B A 产地 单位路程运费表
分析 设从第 个产地到第 个销地的运输量为 运 输成本为 则问题的目标函数为 由于从第一个产地调出的物质的总和为第一个产地的产 量, 即有 同理, 有
对称地, 对销地而言, 有关系 由此得到该问题的数学模型
注 该问题又称为运输问题. 运输问题的一般形式可写 成 其中 是第 个产地的产量, 是第 个销地的需求量.
在上面的关系中, 有 相应的运输问题称为产销平衡的运输问题. 若产销不平 衡, 应该如何处理? 为什么总是假定产销是平衡的.
问题4 随机规划模型 决策者要建造一座水库, 使水库的容量 在满足给定 的限制条件下达到最小, 以使其造价最小. 分析 1.在一年中的第 个季节水库应留出一定的容量 以保证洪水的注入. 由于洪水量是一个变数, 故假定 以较大的概率 使得 其中 为第 个季节的储水量.
2.为保证灌溉, 发电, 航运等用水供应, 水库在每个季 节应能保证一定的放水量 考虑到这仍然是一随机因 数, 要求满足满足这一条件的概率不小于 即 其中 为第 个季节的可放水量. 3.为保证水库的安全和水生放养, 水库还应有一定的 储水量 即
由此得到相应问题的数学模型为:
问题5 某公司准备派 个工人 去完成 项工作 已知第 个工人完成第 工作的效 率为 求如此的一个指派方案, 使工人完成这些工作 的效率为最大. 该问题可用一个网络图 来表示: 其中 表 示顶点集, 是边集, 是权集. 该问题即是从 的每一个顶点, 找出唯一的一条到 的某一个 的边, 使得权之和为最大.
模型建立 若以 表示在顶点 存在边, 否则 则目标函数可表示为 而从 的每一个顶点 只能作一条边等价于 同样, 连 惟一的一条边等价于
由此得到相应的数学模型为
这样的规划又称为0-1规划. 注1 很多实际问题都可以转化成这样的模型. 例如游泳 接力队员的选拔. 注2 当人数和工作数不相同时, 这样的问题应该如何求 解, 又当 时, 并且容许一个人能完成两件工作, 又该如何解决?
二、模型的求解
例1 一奶制品加工厂用牛奶生产 两种奶制品, 1桶牛奶可以在设备甲上用12小时加工生产3公斤 或 则在设备乙上用8小时加工成4公斤 根据市场需要, 生产的 全部能售出, 且每公斤 获利24元, 每公 斤 可获利16元. 现在加工厂每天能得到50桶牛奶的供 应, 每天工人总的劳动时间为480小时, 并且设备甲每天 至多能加工100公斤 设备乙的加工能力没有限制. 试 为该厂制定一个生产计划, 使每天获利最大, 并进一步 讨论以下3个附加问题:
⑴若用35元可以买到1桶牛奶, 应否作这项投资? 若投 资, 每天最多购买多少桶牛奶? ⑵若可以聘用临时工人以增加劳动时间, 付给临时工 人的工资最多是每小时几元? ⑶由于市场需求变化, 每公斤 的利润增加到30元, 应否改变生产计划?
解 设 表示这两种产品每天所消耗牛奶的数量 (单位:桶). 则用于生产 的牛奶可获利 用于生产 的牛奶可获利 则目标函数为 限制条件分别为: ⑴对原料的限制: ⑵劳动力的限制 ⑶设备甲的开工限制
由此得到相应的规划模型
模型求解 解法1 (图解法) 对每一约束条件,在第一象限中确定坐标点的范围, 最 终确定解的范围——可行域(多边形区域); 确定等值线(图中用虚线),则最优解为可行域与 等值线的最后交点(即图中点的 坐标)即为所求问 题的最优解.
为此求解方程 容易得到该方程的解为
解法2 (单纯形方法) 原规划的标准型为
解法3 (利用计算机软件) 在软件Lingo8下进行求解: 输入命令 相应的程序文件为Ch4_2_1.
Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 得到的解为 Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row Slack or Surplus Dual Price 1 3360.000 1.000000 2 0.000000 48.00000 3 0.000000 2.000000 4 40.00000 0.000000 Slack 松弛变量,surplus 剩余变量
⑴三个约束条件的右端视为“资源”: 原料, 劳动时间, 设备甲的加工能力. 对当前解而言, 前两种“消耗殆尽”, 结果分析 ⑴三个约束条件的右端视为“资源”: 原料, 劳动时间, 设备甲的加工能力. 对当前解而言, 前两种“消耗殆尽”, 而设备甲尚余40公斤的加工能力. ⑵目标函数可以看作为是“效益”. 成为紧约束的资源 一旦增加,则“效益”必然增加. 解中列出的“对偶”价格表 示紧约束“资源”每增加一个单位后相应“效益”的增加值. 一般称”资源”剩余为零的约束为紧约束.
原料每增加一个单位, 利润可增加48个单位; 而劳动时间 每增加一个单位, 利润可增加2个单位. 而非紧约束资源 的增加, 不会带来相应的收益. 这种“资源”潜在价值被 称为 “影子”价格. 用“影子”价格即可回答附加问题. ⑴用35元购买一桶牛奶, 低于牛奶的影子价格, 故可以 做这项投资; ⑵临时工人每小时的工资不超过2元. 而设 备甲尚有富裕能力, 故增加工时不会产生效益.
⑶目标函数的系数发生变化对最优解和最优值的影响. 在图解法中可以看到,价值系数 对最优解会产 生一定的影响. 因为 确定了等值线的斜率, 原问题 等值线的斜率为 , 当斜率上升到 则 最优解将会改变, 此时最优解将在 点取得.
灵敏度分析还给出了各个系数的范围: 的上界为24, 下界为8, 即当 时, 最优 解不变; 同样当 时,最优解不变. 从图中还可以看出, 原 料(牛奶)的增加, 对应 的是直线 的向右的 平移, 此时最优解仍 为点 但当 与 重合 时, 最优解将不再改变,
此时, 而由“影子”价格知: 原料每增加一个 单位利润将增加48个单位. 此时总利润为 同样, 当劳动力资源 增加时, 即直线 向 右移动时, 最优解也 将改变, 但当 两 点重合时, 最优解将 不再改变. 由“影子”
价格, 劳动力每增加一个工时, 效益增加2个单位.但劳 动力最多增加53个单位. 因设备甲仍有富余工时, 因而设备的加工能力无需再 增加, 其“影子”价格为零. 根据上面的分析,可以回答原问题中提出的相关问题. ⑴可以批准用每桶35元的价格再购买部分牛奶, 但最 多再购买10桶; ⑵可以以用低于每小时2元的工资聘用临时工人以增
劳动时间, 但最多不得超过53小时.
例2 奶制品的销售计划 例1给出的 两种奶制品的生产条件, 利润及工厂 的资源限制不变, 为增加工厂的获利, 开发了奶制品的深 加工技术: 用2小时和3元加工费, 可将1公斤 加工成 0.8高级奶制品 也可将一公斤 加工成0.75公斤高级 奶制品 每公斤 能获利44元, 每公斤 能获利32元, 试为该厂制定一个生产销售计划, 使获得的利润最大, 并讨论以下问题:
⑴若投资32元可以增加供应一桶牛奶, 投资3元可以增 加一小时劳动时间, 应否作这样的投资, 若每天投资150 元, 可赚回多少? ⑵每公斤高级奶制品 的获利经常有10%的波动, 对指定计划有无影响, 若每公斤 的获利下降10%, 计 划应该改变吗?
问题分析 要求指定生产计划, 关键是确定各产品的产量, 而目 标函数为销售这些产品之后可获得的利润.
建立模型 设每天销售 公斤 公斤 公斤 公斤 用 公斤 加工 公斤 加工 目标函数
约束条件 原料供应 每天生产 公斤, 用牛奶 桶, 每天生产 公斤,用牛奶 桶, 两者之和不超过50桶; 劳动时间 每天生产 的时间分别为 加工 的时间分别为 两 者之和不超过480小时; 设备能力 的产量 不得超过设备甲每天的
加工能力100公斤; 非负约束 附加约束 1公斤 加工成 公斤 即 同样 由此得到模型
相应的程序文件为Ch4_2_2.
模型求解 用Lingo软件, 进行求解, 得 Variable Value Reduced Cost X1 0.000000 1.680000 X2 168.0000 0.000000 X3 19.20000 0.000000 X4 0.000000 0.000000 X5 24.00000 0.000000 X6 0.000000 1.520000
Row Slack or Surplus Dual Price 1 3460.800 1.000000 2 0.000000 3.160000 3 0.000000 3.260000 4 76.00000 0.000000 5 0.000000 44.00000 6 0.000000 32.00000 Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Variable Coefficient Increase Decrease X1 24.00000 1.680000 INFINITY
X2 16.00000 8.150000 2.100000 X3 44.00000 19.75000 3.166667 X4 32.00000 2.026667 INFINITY X5 -3.000000 15.80000 2.533333 X6 -3.000000 1.520000 INFINITY
结果分析 由输出的结果知, 约束2和3的“影子”价格分别是 和 即每增加一桶牛奶可使净利润增加 元 增加1小时劳动时间, 可是利润增加 元, 所以应该 投资 元增加一桶牛奶或投资3元增加一小时劳动时 间. 若每天投资 元, 增加供应5桶牛奶, 可获利 元
但约束2的增加值最多不超过120, 意味牛奶的桶数最多 不超过10桶. 在灵敏度分析的报告中, 目标函数系数的变化范围分 别为
由此可见, 当 的价格向下波动 或 的价格向 上波动 都会影响到最优解.
三、应用举例 问题的提出 钢铁、煤、水电等生产、生活物资从 若干供应点运送到一些需求点,怎样安排运输,使运费 问题的提出 钢铁、煤、水电等生产、生活物资从 若干供应点运送到一些需求点,怎样安排运输,使运费 为最小、或者利润为最大. 某种类型的货物由于需要装 箱, 故要考虑如何搭配使利用率达到最高, 诸如此类的 问题都牵涉到一些具体的数学模型, 这目讨论两个问题, 并利用相应的数学规划模型加以解决.
题1 自来水的输送问题 某市有甲、乙、丙、丁四个居民区, 自来水由 三个水库供应, 四个区每天必须得到保证的基本用水量 分别为 千吨, 但由于水源紧张, 三个水库 每天最多只能分别供应 吨自来水, 并由于地 区位置的差别, 自来水公司从各水库向各区送水所需付 出的引水管理费不同(见表), 其它管理费用都是 千吨, 根据公司规定, 各区用户按统一标准 千吨 收费, 此外, 四个区都向公司申请了额外用水量, 分
分别为每天 千吨, 该公司应如何分配供 水量, 才能获利最多? 管理费 甲 乙 丙 丁 A 160 130 220 170 B 140 190 150 C 200 230 /
为了增加供水量, 自来水公司正在考虑进行水库改造, 随三个水库的供水量都提高一倍, 问此时供水方案应如 何改变?公司利润可增加多少?
分析 问题的关键是如何安排从各个水库向四个居民区供水, 使得引水管理费用达到最小, 注意到其它费用与供水安 排无关.
模型建立 设决策变量为 三个水库 向甲、乙、 丙、丁 四个区的供水量, 设水库 向 区的 日供水量为 并注意到 由条件得 由于需求量大于供水量, 需求限制可表示为
相应的程序为Ch4_3_1.
在Lingo下得到问题的解. Variable Value Reduced Cost X11 0.000000 30.00000 X12 50.00000 0.000000 X13 0.000000 50.00000 X14 0.000000 20.00000 X21 0.000000 10.00000 X22 50.00000 0.000000 X23 0.000000 20.00000 X24 10.00000 0.000000 X31 40.00000 0.000000 X32 0.000000 10.00000 X33 10.00000 0.000000
即:该问题的解为 此时引水管理费为 元, 利润为 元.
讨论 如果 三个水库的每天最大供水量都增加一倍, 则公司总供水能力为 千吨, 水库供水量超过总需求 量, 故此时需要计算三个水库向甲、乙、丙、丁四个区 供应每千吨水的净利润, 即有表2
净利润 甲 乙 丙 丁 A 290 320 230 280 B 310 260 300 C 250 220 / 从水库向各区送水的净利润
由此得到目标函数为 约束条件为:
相应的程序文件为Ch4_3_1_2.
在Lingo下得到问题的解: Variable Value Reduced Cost X11 0.000000 25.00000 X12 100.0000 0.000000 X13 0.000000 30.00000 X14 0.000000 20.00000 X21 0.000000 5.000000 X22 40.00000 0.000000 X23 30.00000 0.000000 X24 50.00000 0.000000 X31 80.00000 0.000000 X32 20.00000 0.000000 X33 0.000000 0.000000
Row Slack or Surplus Dual Price 1 93400.00 1.000000 2 0.000000 305.0000 3 0.000000 305.0000 4 0.000000 250.0000 5 0.000000 10.00000 6 0.000000 15.00000 7 0.000000 -45.00000 8 0.000000 -5.000000
问题 某种货机有三个货舱: 前舱、中舱、后舱. 三 个货舱所能装载的货物的最大重量和体积都有限制, 如 题2 货机装运问题 问题 某种货机有三个货舱: 前舱、中舱、后舱. 三 个货舱所能装载的货物的最大重量和体积都有限制, 如 表所示, 并且为了保持飞机的平衡,三个货舱中实际装载 货物的重量必须与其最大容许重量成正比. 前舱 中舱 后舱 重量限制 10 16 8 体积 6800 8700 5300 本问题中的单位为:重量:吨;体积:m3;利润:元/吨.
现有四种货物供该货机本次飞行装运, 有关信息如表, 最后一列表示装运后获得的利润. 重量 体积 利润 货物1 18 480 3100 货物2 现有四种货物供该货机本次飞行装运, 有关信息如表, 最后一列表示装运后获得的利润. 重量 体积 利润 货物1 18 480 3100 货物2 15 650 3800 货物3 23 580 3500 货物 12 390 2850 本问题中的单位为:重量:吨;体积:m3;利润:元/吨.
假设 1.每种货物可以进行任意的分割; 2.每种货物可以在一个或多个货舱中任意分布; 3.每种货物可以混装, 并保证不留空隙.
应如何安排装运, 使该货机本次装运的利润最大?
模型建立 决策变量 表示第 种物资装入第 个货舱的重量, 货 舱 分别表示前、中、后舱. 目标函数表示一次运送后的总利润, 即有 约束条件有如下的:
⑴总重量约束 ⑵三个货舱的重量限制 相应的程序文件为Ch4_3_2.
⑶三个货舱的空间限制 ⑷平衡限制
模型求解. 在Lingo下,可得到模型的解为: Variable Value Reduced Cost X11 0.000000 400.0000 X12 0.000000 57.89474 X13 0.000000 400.0000 X21 7.000000 0.000000 X22 0.000000 239.4737 X23 8.000000 0.000000 X31 3.000000 0.000000
Variable Value Reduced Cost X32 12.94737 0.000000 X33 0.000000 0.000000 X41 0.000000 650.0000 X42 3.052632 0.000000 X43 0.000000 650.0000 最大利润为
一汽车厂生产小、中、大三种类型的汽车, 已知各类 型每辆车对钢材、劳动时间的需求, 利润以及每月工厂, 题3 汽车生产问题 一汽车厂生产小、中、大三种类型的汽车, 已知各类 型每辆车对钢材、劳动时间的需求, 利润以及每月工厂, 劳动时间的现有量入表所示, 试指定月生产计划, 使工 厂每月的利润最大. 小型 中型 大型 现有量 钢材 1.5 3 5 600 劳动时间 280 250 400 60000 利润 2 4 劳动时间以小时计,利润以万元计.
工厂的月利润为 假定在生产周期中, 各项指标不变, 则有相应的线性规划: 模型的建立 设每月生产小、中、大型汽车的数量分别为 工厂的月利润为 假定在生产周期中, 各项指标不变, 则有相应的线性规划: 相应程序为Ch4_3_3.
模型求解 该问题的整数解为
讨论 若增加附加条件: 每种汽车如果生产的话,则至少生产 80辆, 则生产计划应该做如何修改? 分析: 根据条件, 对决策变量的限制改为如下几种: ⑴ ⑵ ⑶
⑷ ⑸ ⑹ ⑺ 对得到的每一个解进行讨论, 最后确定最大值解. 最优解为
注 在Lingo下, 求整数解的命令为 变量名 方法二 用 规划 在问题中,引入待定常数 其中 为任意的的正数, (在具体问题中可以确定), 方法二 用 规划 在问题中,引入待定常数 其中 为任意的的正数, (在具体问题中可以确定), 相应程序为Ch4_3_3_2.
Global optimal solution found at iteration: 31 Objective value: 610.0000 Variable Value Reduced Cost X1 80.00000 -2.000000 X2 150.0000 -3.000000 X3 0.000000 -4.000000 Y1 1.000000 0.000000 Y2 1.000000 0.000000 Y3 0.000000 0.000000
题4 原料采购与加工 问题 某公司用两种原油( 和 )混合加工成两种 汽油(甲和乙), 甲、乙两种汽油含原油的最低比例分 别为 每吨售价分别为 元和 元, 该公司还有原油 和 的库存量分别为 吨和 吨, 另外还可以从市场上买到不超过 吨的原油 原油 的市场价为: 购买不超过 吨时的单价为 吨, 购买量超过 吨但不超过 吨时, 超 过部分 吨, 超过 吨的部分, 吨. 该公
司应如何安排原油的采购和加工?
问题分析 公司安排原油的采购和加工, 其目的是为了取得最大 利润, 但问题的困难之处在于原油 的采购价与采购量 的关系比较复杂.
但这样的函数过于复杂, 为了是问题尽可能简单, 我 们引入多个变量来刻画: 模型建立 设原油的购买量为 则由题意, 购买成本函数为 但这样的函数过于复杂, 为了是问题尽可能简单, 我 们引入多个变量来刻画: 注意成本函数的意义:当购买量在500到1000之间时, 1000表示每吨以8000元购买, 前面的500吨每吨补差价2000元. 采购价格以千元为基本单位.
分别以 表示以 吨, 吨, 吨采购得到 的原油 的采购量, 则当以 吨的价格采购到原油 时, 总有 故相应的条件可表示为 分别以 表示以 吨, 吨, 吨采购得到 的原油 的采购量, 则当以 吨的价格采购到原油 时, 总有 故相应的条件可表示为 同样, 当以价格 吨的价格购买到了 吨原油 时, 有 此外,变量 还应满足 采购价格以千元为基本单位.
假设: 用于生产甲、乙两种汽油的原油 的数量分别 为 用于生产甲、乙两种汽油的原油 的数量分 别为 则总收入为 假设: 用于生产甲、乙两种汽油的原油 的数量分别 为 用于生产甲、乙两种汽油的原油 的数量分 别为 则总收入为 而成本函数 可表达为 500是库存. 约束条件为
以及非负限制 总结上面的分析, 得到相应的模型为
相应程序为Ch4_3_4.
模型求解 利用Lingo, 得到问题的解为 Variable Value Reduced Cost X11 500.0000 0.000000 X21 500.0000 0.000000 X12 0.000000 0.2666667 X22 0.000000 0.000000 X1 0.000000 0.4000000 X2 0.000000 0.000000 X3 0.000000 0.000000
解法二: 采用 规划 令 分别表示以 吨、 吨、 吨, 则约束条件可转化为 单位为千元/吨.
用Lingo软件得到问题的解为 Variable Value Reduced Cost X11 0.000000 0.000000 X21 0.000000 1.400000 X12 1500.000 0.000000 X22 1000.000 0.000000 X1 500.0000 0.000000 X2 500.0000 0.000000 X3 0.000000 0.000000 Y1 1.000000 0.000000 Y2 1.000000 2000.000 Y3 1.000000 1000.000
即问题的解为
题5 接力队的选拔 问题的提出: 在实际工作中,经常会遇到下面的问题: 有若干项工作要分配给某些人去完成. 在分配的过程 中, 要尽可能发挥每个人的长处, 以取得最大效益. 这 样的问题就称为指派问题. 通过下面的例子我们来说 明如何求解这样的指派问题.
问题 某班准备从5名游泳队员中选拔4人组成一个接力队, 参加学校的 混合泳接力赛. 5名队员的4种泳姿 的成绩如表所示, 问应该如何选拔?
甲 乙 丙 丁 戊 蝶泳 仰泳 蛙泳 自由泳 5名队员4种泳姿的百米最好成绩
问题分析 解决该问题的关键, 是从5名队员中选出4名队员, 组 成接力队, 每名队员完成一种泳姿, 且4人的泳姿各不相 同, 但使总成绩为最好. 一种方法是穷举法, 但这种方 法当 较大时是不可接受的. 我们用 规划来解 决这个问题.
以 表示5名队员, 表示4种 泳姿, 以 表示第 名队员游第 种泳姿的最好成 绩, 则有
66.8 57.2 78 70 67.4 75.6 66 67.8 74.2 71 87 66.4 84.6 69.6 83.8 58.6 53 59.4 62.4
引入 变量 若选择队员 去参加泳姿 的比赛, 则记 其它情况, 记 且应该满足如下的约 束条件: 1.每人最多只能入选4种泳姿之一,即 2.每种泳姿必须有一人也只能有一人入选,即
当队员 选泳姿 时, 相应的 表示他的成绩, 否则 因此 即为所求求的目标函数. 从而该问题的规划模型为
相应的程序文件为Ch4_3_5
用Lingo软件求解该问题. 该问题的解为
题6 选课策略 某学校规定,运筹学专业的学生毕业时至少学习过两 门数学课,三门运筹学课和两门计算机课,这些课程的 编号、名称、学分、所属类别和先修课要求如表所示, 那么毕业时学生最少可以学习这些课程中的哪些课程? 如果某个学生既希望选修课程的数量少,又希望所获 得的学分多,他可以选修哪些课程?
编号 名称 学分 类别 先修课程号 1 微积分 5 数学 2 线性代数 4 3 最优化方法 数学,运筹学 1,2 数据结构 数学,计算机 7 应用统计 6 计算机模拟 计算机,运筹学 计算机编程 计算机
编号 名称 学分 类别 先修课程号 8 预测理论 2 运筹学 5 9 数学实验 3 运筹学,计算机 1,2
模型建立 设 表示选修课表中按编号顺序的9门课程( 表示不选这门课程, ) 则问题的目标为选修 课程为最少, 即 约束条件有 1.至少选修两门数学课, 三门运筹学课和两门计算机课, 即
此外, 某些课程有先选的要求, 例如对《最优化方法》 而言, 必须先选《微积分》和线性代数《线性代数》.即 应该满足 从而得到约束条件关系 同样, 对其它选修课程的先选关系也可得到相应的约束 条件, 整理后得到
由此得到相应的规划为
若在考虑选修课时达到最小的同时, 还希望所得到的 学分达到最大, 则增加目标函数 在Lingo下面对问题进行求解, 得到解为 若在考虑选修课时达到最小的同时, 还希望所得到的 学分达到最大, 则增加目标函数 相应的程序文件为Ch4_3_6.
为此引入目标函数向量 最终得到目标函 数 但是得到问题的解发现选修的课程门数多于6门而达 到7门,如果所考虑的问题是优先门数的话, 则再增加限 制条件
则得到问题的解为 而此时相应的学分为
题7 销售代理的开发与中断 问题 某公司正在考虑在某城市开发一些销售代理业 务. 经过预测, 该公司已经确定了该城市未来5年的业务 量, 分别为 该公司已经初步 物色了4家销售公司作为其代理候选企业, 下表给出了该 公司与每个候选企业代理关系的一次性费用, 以及每个 应该与哪些候选企业建立代理关系?
代理1 代理2 代理3 代理4 最大业务量 350 250 300 200 一次性费用 100 80 90 70 年运行费用 7 .5 4.0 6.5 3.0 单位:万元.
如果该公司目前已经和上述4个代理建立了代理关系, 并且都处于运行状态, 但每年初可以决定临时中断或重 新恢复代理关系, 每次临时中断或恢复代理关系的费用 如下表所示, 该公司应如何对这些代理进行业务调整? 代理1 代理2 代理3 代理4 中断费用 5 3 4 2 恢复费用 1 9
模型的建立 首先考虑问题的前半部分: 以 表示公司在第 年与公司 首次建立代理关系( 则表示不建立代理关 系). 目标函数为这5年中的总费用, 则总费用为建立代理 关系的一次性费用及每年的运行费用, 其中建立代理关 系的一次性费用为
由于第一问中没有说明是否可以临时中断代理关系, 故 假定代理关系一旦建立, 该关系将维持下去, 因此对候选 代理1而言, 5年的总运行费用为 于是对所有的候选代理人而言, 5年的总运行费用为
由此得到问题的目标函数为
约束条件为: 公司的业务量必须由足够的代理承担, 即 有(第一年的业务量) 类似,对第二年的业务量,有 由此得到问题的数学模型为
相应程序为Ch4_3_7..
得到问题的解为 其余的变量为零, 此 意味 公司在第一年初与代理1,2建立代理关系, 并在以后 保持代理关系, 第四年与代理4建立代理关系. 最小费用 为 元.
进一步地, 若建立关系之后可以中断关系, 中断关系 之后也可恢复关系, 试在其它假设不变的情况下, 求出 问题的最优解.
模型建立 仍然以 表示在第 年公司与候选代理人 在年 初建立代理关系, 但注意到在年初公式可以临时决定公 司可以决定解除或恢复代理关系, 故以 表示公司 在第 年初公司与代理人 中断代理业务, 而 则表 示在第 年的年初公司与代理人 恢复代理人业务, 则 相应的目标函数为
相应程序为Ch4_3_7_2.
中断与恢复代理关系的约束表现为 注意到期初时, 公司与所有代理人都有代理关系, 即 又恢复关系可以表现为 即 有
问题 某饮料厂生产一种饮料以满足市场需要. 该厂 销售科根据市场预测, 已经确定了未来四周该饮料厂的 题8 饮料厂的生产与检修计划 问题 某饮料厂生产一种饮料以满足市场需要. 该厂 销售科根据市场预测, 已经确定了未来四周该饮料厂的 需求量, 计划科根据本厂实际情况给出了未来四周的生 产能力和生产成本, 相应数据由下表所示, 每周当饮料 满足需求后有剩余时, 要支出存储费, 为每周每千箱饮 料 千元, 问应如何安排生产, 在满足市场需要的前 提下, 使四周的总费用为最小. 1.这样的数学模型又称为生产与存储问题. 2.总费用由生产及存储费用构成.
周次 需求量 生产能力 成本 1 15 30 5 2 25 40 5.1 3 35 45 5.4 4 20 5.5 合计 100 135 单位:千元/千箱.
分析 从表中的数据中可以看出, 除了第四周外, 其余各周 的生产能力都大于每周的需求量, 即可以满足市场的需 要. 如果第一周, 第二周按需生产, 第三周多生产5千箱 以弥补第四周的不足部分, 可以使总的存储费用为最小, 但注意到,生产成本逐月上升, 因而从总成本最小的角度 出发考虑问题, 前几周多生产一些, 可能是更好的方案.
模型假设 设饮料厂在第一周开始时没有库存, 并且假设在第四 周的周末也没有库存, 周末有库存时需支付一周的存储 费.
模型建立 以 表示四周的产量, 表示 周末的库存量, 则成本为 对第一周而言, 产量减去库存, 即为当月的需求量, 即 平行的有其它的约束条件,由此得规划为
相应程序为Ch4_3_8.
在Lingo下对该问题进行求解, 容易得到该问题的解 为: 最优解值为 源程序为:程序_ch4_13.
讨论 如果工厂要安排一次设备检修, 检修将占用当周15千 箱的生产能力, 但会使检修以后每周的生产能力提高5 千箱, 试确定检修的时间安排.
分析 问题的关键是确定检修的时间安排. 为此引入 变 量 若 则表示检修 放在第 周进行, 注意到此时该周的生产能力将减少15 千箱, 而以后各周的生产能力将增加5箱, 因而要增加相 应的约束条件:
又检修只能进行一次, 故还应该满足
联合起来, 得到原问题的数学规划为
在Lingo下, 可以得到问题的解为 即检修安排在第一周, 最优解值为
题9 饮料的生产批量问题 问题 某饮料厂使用同一条生产线轮流生产多种饮料 以满足市场需要. 如果某周开工生产其中一种原料, 就 要清洗设备和更换部分部件, 于是需支出生产准备费. 现在只考虑一种饮料的生产, 假设其未来四周的需求量, 生产能力, 生产成本与存储费与上题相同, 问如何安排 这种饮料的生产, 使该种饮料的总费用为最小?
周次 需求量 生产能力 成本 1 15 30 5 2 25 40 5.1 3 35 45 5.4 4 20 5.5 合计 100 135
分析 与上例相比, 解决该问题的关键是要考虑与产品数量 无关的生产准备费用.条件是:只要生产, 就有该费用的产 生.
表示需求量, 生产能力为 如果在时段 开工, 则需支 付准备费用 时段 末的库存为 单件存储费为 产量为 为成本, 引入 变量 模型建立 首先我们对问题做一般的讨论: 将问题分为若干个阶段, 用 来表示. 对时段 以 表示需求量, 生产能力为 如果在时段 开工, 则需支 付准备费用 时段 末的库存为 单件存储费为 产量为 为成本, 引入 变量 表示该产品在该时段投入生产, 否则不投入生产, 则目 标函数为 这样的规划又称为动态规划.
相应的关系为
带回原来问题的值, 得到问题的模型为
在Lingo下,得到问题的最优解为 程序文件为:程序_ch_14.
题10 钢管的下料问题 问题 某钢管零售商从钢管厂进货, 将钢管按客户的 要求进行切割后售出, 从钢管厂进货时的长度都是19 现有一客户需要50根4 29根6 和15根8 的钢筋, 应如何下料? 零售商如果采用不同的切割模式太多, 将会导致生产 过程的复杂化, 从而增加生产和管理成本, 所以该零售商 规定采用的不同切割模式不能超过3种, 此外, 该客户除
需要上面的三种钢管外, 还需要10根5 长的钢筋, 应如 何下料?
分析 首先确定哪些方案是可行的, 为此讨论以下方 4m 6m 8m 余料 1 4 3 2
方案 4m 6m 8m 余料 5 1 6 3 7 2 所谓一个合适的切割方案, 应当满足两点: 第一方案 可行, 第二切割后剩下的余料应当小于最小用料单位4 因此合适的切割方案只有这上述7种.
模型建立 由前面的分析,不难得到相应的模型为 相应程序为Ch4_3_10
在Lingo下, 得到问题的解为 其余 此时用料27根, 余料27 如果余料无用,我们可以考虑另外一种模式, 即要求用 料最少, 此时模型为
源程序为:程序ch4_15
此时的最优解为 其余 此时余料为35
现在来看第二个问题, 在增加一个品种的条件下, 要 求切割方案总数不超过3种, 今用整数非线性规划方法加 以求解. 设 为第 种方案下使用的原料数, 第 种方案下产生 4 5 6 8 的钢管数分别为 则问题的模型为
得到问题的最优解为
题11 某储蓄所每天的营业时间为上午9点到下午5点. 根据 经验, 每天不同时间所需要的服务员数量为: 时间段 9—10 10—11 11—12 12—1 数量 4 3 6 1—2 2—3 3—4 4—5 5 8
储蓄所可以雇佣全时和半时两类服务员. 全时服务员每 天报酬100元, 从上午9点到下午5点工作, 但中午12点到 下午2点之间必须安排1小时的午餐时间.储蓄所每天可 以不超过3名的半时服务员, 每个半时服务员必须连续 工作4小时, 报酬40元, 问该储蓄所该如何雇佣全时和半 时服务员? 如果不能雇佣半时服务员, 每天至少增加多 少费用,如果雇佣半时服务员的数量没有限制, 每天可以 减少多少费用?
分析 解决此问题的关键是确定聘用全时服务员及半时服务 员的人数, 但还要考虑全时服务员有吃午餐的时间, 故把 全时服务员分为两类: 午餐时间为12时至下午1时的及下 午1时至下午2时的; 而半时服务员按上班时间进行划分.
模型建立 设 为午餐时间为下午12时的全时服务员的人数, 为午餐时间为下午1时的全时服务员的人数, 而 分别 表示从9点, 10点, 11点, …, 1点开始上班的半时服务员 人数, 则目标函数为 约束条件按各个小时需要的服务员人数确定, 则有
此外, 对半时服务员人数的限制 对决策变量的限制为 为整数. 由上述分析, 得到相应的数学模型为
为整数.
模型求解 在Lingo下得到问题的解: 若不能雇佣半时服务员,则最优解为 因而多支出 元. 若对半时服务员人数没有限制, 则最优解为 因而多支出 元. 程序_ch4_17 若对半时服务员人数没有限制, 则最优解为
节省开支 元.
四、几种常用的线性规划介绍 问题1 生产组织与计划问题 工厂用 种设备 生产 种产品 在一个生产周期内, 已知第 台设备 只能工作 个 问题1 生产组织与计划问题 工厂用 种设备 生产 种产品 在一个生产周期内, 已知第 台设备 只能工作 个 机时. 工厂必须完成产品 至少 件. 设备 生产 所 需要的机时和成本分别为 试建立相应的数学模型, 使设备能在计划周期内完成计划但又使成本达到最低.
模型为
问题2 工厂选址问题 设有 个需求点(城市, 仓库, 商店等), 有 个可供 选择的建厂地址, 每个地址最多可建一个工厂. 在 地 址建立工厂的生产能力为 在 地址经营工厂, 单位时 间的固定成本为 需求点 的需求量为 从厂址 到 需求点 的单位运费为 问应如何选择厂址和安排运 输计划, 使相应的成本为最小.
模型为
上式中 的意义是: 在地址 建厂, 不在地址 建厂. 这样的线性规划称为混合型的整数线性规划.
问题3 设备购置和安装问题 工厂需要 种设备 设备 的单价为 工厂已有第 种设备 台, 今有资金 元, 可用于购置这些设备. 该厂有 处可安装这些设备, 处最多可安装 台, 将一台设备 安装在 处, 经 济效益为 元, 问应如何购置和安装这些设备, 才能使 总的经济效益最高. 以 表示设备 在 处安装的台数, 表示购置
的台数, 则模型为
问题4 货郎问题 货郎要到 个地方去卖货. 已知两个地方 和 之间 的距离为 如何选择一条道路, 使得货郎每个地方走 一遍后回到起点, 且所走的路径最短. 定义 货郎选择的路线包含从 到 的路径 否则
则相应的模型为
问题5 系统可靠性问题 选择 个元件, 组成一个并联系统. 设第 个位置所用 的元件可从集合 中挑选. 对元件 用 表示元 件 在第 个位置上的花费, 表示其可靠性的概率, 问 应如何配置各位置上的元件, 使得系统的可靠性不小于 且使总费用最小. 定义 若元件 且元件 用在位置 上 若元件 且元件 不用在位置 上
总费用为 其可靠性为 若记 则上式可写成 相应的模型转化为 规划.
模型为
五、非线性规划简介 前面的问题中, 所建立的数学模型中的表达式的各个 部分都是线性函数, 因而我们把这样的规划称为线性规 前面的问题中, 所建立的数学模型中的表达式的各个 部分都是线性函数, 因而我们把这样的规划称为线性规 划, 但在许多实际问题中, 目标函数和约束条件表达式 可能是非线性函数.这样的规划就称为非线性规划.
问题1 抽水费用最小问题 某地区有3个泵站: 第 个泵站的抽水费用为 其中 为抽水流量. 泵站与各灌溉地块 用渠道连接. 在一个灌溉周期中, 地块 需流量 立方 米/小时. 泵站 的最大抽水能力为 由于渗透和蒸发, 从 泵站到 地块的水量要打一折扣, 即乘上系数 称 为水的实用系数. 问应如何确定每一泵站的输水量, 才 能使总的抽水费用为最小? 试建立相应的数学模型.
分析 问题的关键是确立决策变量和目标函数. 设从泵站 到地块 的输水量为
注: 在上面的问题中, 输水费用函数 一般不是 的线性函数. 因而相应的规划不是线性规划.
问题2 砂石运输问题 设有 立方米的砂, 石要由甲地运到乙地, 运输前需 先装入一个有底无盖并在底部装有滑行器的木箱中. 砂 石运到乙地后, 从箱中倒出,在继续用空箱装运. 不论箱 子大小, 每装运一箱, 需0.1元, 箱底和两端的材料费为 20元/米2, 箱子两侧的材料费为5元/米2, 箱底的两个滑 行器与箱子同长, 材料费为2.5元/米. 问木箱的长宽高各 为多少米,才能使运费与箱子的成本费的总和为最小.
建模 设木箱的长宽高分别为 运费与成本费的总 和为 则目标函数为
若在上述问题中, 箱子的底与两侧使用废料来做, 而 废料只有4平方米, 则问题为:
在上面问题中, 目标函数与约束条件中的每一项可表达 成 的形式(其中的 为整数) , 数学上将其成为广义多项式, 相应的规划称为几何规划. 当系数为正数时, 规划称为正项几何规划.
非线性规划解法 例1 求解非线性规划
解1 图解法
解2 用Lingo软件求解 相应程序为Ch4_4_1.
无约束非线性规划解法简介 无约束非线性规划一般可写成 其中 解法 1.求 的梯度 2.令梯度 解出 的驻点 3.验证 在该点的Hessian矩阵是否为正(负)定的, 若成立, 则该点为函数的极小(大)值点.
例 求函数 的极小点. 解 的梯度为 令 则驻点为 函数的Hessian阵为 注意到该矩阵为正定阵, 因而该点为极小值点. 例 求函数 的极小点. 解 的梯度为 令 则驻点为 函数的Hessian阵为 注:此方法与二元函数的极值问题的讨论完全一致.但使问题更一般化. 注意到该矩阵为正定阵, 因而该点为极小值点.
注意到此方法只有对一些特殊的函数才有效. 一般情 况下, 要求出函数的驻点是比较困难的. 下面我们简单 介绍求解该类问题的数值解法. 1.给出 的极小点 的一个初始估计值 称为初 始点; 2.如果 已求得, 并且不是极小点, 设法选取一个方向 (该方向称为搜索方向), 使目标函数 沿该方 向是下降的(一般取梯度方向);
3.在射线 取适当的步长, 书记 由此确定点 其中的 一般取使得 上式取到极小值的值. 4.检验 是否为函数 的极小值, 或者满足 精度的要求, 若不是, 再回到第二步.
六、应用 题1 医院开刀问题 某大医院向社会提供各种不同的医疗服务, 为获得最 好的社会效益和经济效益, 医院必须优化其资源配置. 题1 医院开刀问题 某大医院向社会提供各种不同的医疗服务, 为获得最 好的社会效益和经济效益, 医院必须优化其资源配置. 如果资源配置不是最好的, 则可能存在有的资源使用率 低, 而有的资源使用过度的情况. 以下面提供的外科手 术数据为例, 试建立一个能够帮助医院改善其资源配置, 提高效益的的数学模型. 此题为同济大学2004年数学竞赛试题.
手术类型分为三类: 简称为大手术(例如心脏搭桥手 术), 中手术(例如胃切除手术)和小手术(例如阑 尾手术). 每种手术所需的人数和费用如下表:
手术 主刀医师 麻醉师 配合医师 器械护士 大 3 1 2 中 小 巡回护士 所需时间 平均费用 1天 3万 半天 1.6万 5个/天 3千 巡回护士 所需时间 平均费用 1天 3万 半天 1.6万 5个/天 3千 资源数据表
现在医院的人员基本情况如下: 高级医师21人, 普通医师44人. 只有高级医师才可以 充人大, 中手术的主刀医师. 护士100人, 其中只有60人 可以充当器械护士, 麻醉师30人. 1.假定各种外科手术的病人足够多, 如何安排每天的日 常手术使得其经济效益最高? 2.若做手术的病人分布不均, 如大手术并不常见, 而小手 术则可能较多, 要求做小手术的病人在手术完成之前一
直占据着医院的床位, 如若床位有限, 小手术要求一周 内完成, 否则病人要求转院. 问如何制定一个医院的每 周手术安排计划? 3.充分考虑社会效益和经济效益, 如何在原来的计划上 作尽可能小的调整, 满足急症病人的需要.
问题分析 在第一种情况下, 需要确定各种手术方案, 目标是使 得相应的收益达到最大, 而并不考虑实际情况. 因问题 假设是有足够多的病人可供选择. 设 是每天进行的大手术的人数, 是每天进行的中 手术的人数, (为使问题简单, 是实际进\ 行中手术的人数, ) 是进行小手术的人数. 则目标函 数为
再考虑资源的要求: 假设小手术中由高级医师主刀的有 个, 而有普通医师 主刀的有 个, 高级医师: 普通医师: 麻醉师:
器械护士: 护士总需要: 另外,所有的 都必须取正整数. 由此得到相应的数学 模型为
为正整数.
由Lingo程序, 得到该问题的解 总收益为 单位: 万元. 相应程序为Ch4_5_1.
结果分析: 在这样的安排下, 大手术没有安排(想一下 原因是什么?) 高级医师进行的都是中手术. 中手术一 个完成了20个. 小手术安排了100个, 均是由普通医师主 刀的. 此时医师的使用情况是: 高级医师20, 普通医师 30, 麻醉师30. 器械护士30, 巡回护士40.
2.在第种情况下, 没有安排大手术, 这显然不合理. 由 于大手术并不多见, 故可以考虑在周末安排一到两个大 2.在第种情况下, 没有安排大手术, 这显然不合理. 由 于大手术并不多见, 故可以考虑在周末安排一到两个大 手术. 如果尽安排一个大手术的情况下, 相应问题的解 为: 总收益为 单位: 万元. 相应程序为Ch4_5_1_2.
对小手术的安排, 不妨可以规定: 在需要进行小手术 的病人住院后, 5天内一定要安排手术.
对结果的分析, 可以发现, 开刀医生资源并没有充分 利用. 造成这一现象的关键原因是麻醉师不够(当然还 得考虑病区内有值班医师和护士的存在). 但如果从增 加效益的角度来说, 提高社会效益和医院效益的一个方 法是增加麻醉师.例如当把麻醉师的数量从30增加到35 人时, 相应问题的解为 总收益为 单位: 万元.
不断改变麻醉师的数量, 可以发现当麻醉师数量上升到 45人时, 解不再变化. 问题的解为 不断改变麻醉师的数量, 可以发现当麻醉师数量上升到 45人时, 解不再变化. 问题的解为 总收益为 单位: 万元. 相应程序为Ch4_5_1_3.
六、练习 1.用长度为500厘米的条材, 分别截成长度为98厘米与 78厘米的两种毛坯, 前者需要1000根, 后者需要2000根. 1.用长度为500厘米的条材, 分别截成长度为98厘米与 78厘米的两种毛坯, 前者需要1000根, 后者需要2000根. 问因如何截取, 才能使⑴余料最少?⑵使用的原料最少? 试建立相应的模型, 并用Lingo软件求解. 2.某商店拟制定某种商品7—12月的进货、销售计划.已 知商店最大库存量为1500件, 6月底已有存货300件, 年 底的库存以不少于300件为宜. 以后每月进货一次, 假
设各月份该商品买进, 售出单价如下表, 若每件每月的 库存费为0.5元, 问各月进货,售货多少件, 才能使净收益 最大,试建立数学模型, 并求解. 月 7 8 9 10 11 12 买进(元/件) 28 26 25 27 24 23.5 卖出(元/件) 29
3.某货船的载重量为12000吨, 总容积为45000 冷藏 容积为3000 可燃性指数的总和不得超过7500, 准备 装6种货物, 每种货物的单价, 重量, 体积和可燃性指数 如下表, 试确立相应的装货方案, 使价值最高.
货物 重量 体积 可燃性 是否冷藏 单价 0.2 1.2 1 是 50 0.5 2.3 2 否 100 3.0 4 150 0.12 4.5 0.25 5.2 3 250 6.4 9 200
4.城市消防站的选址问题 设 城市人口分布在 个区中, 第 区的人口为 要 建若干个消防站, 它们的位置只能从 个位置中选定, 令 表示从第 区的中心到第 个位置的距离. 要 求每个区由一个消防站管辖, 同时不容许某个区被分配 给一个不设消防站的点管辖. 用 表示第 区(中心) 到分配管辖它的消防站的距离, 表示第 个服务点的 总人口数, 在第 点建立一个服务于人口总数为 的消 防站所虚费用为 可用于建消防站的总费用不得
超过 万元,若要求各区中心离可分配管辖该区的消防站 最远的距离为最小, 试建立相应的数学模型. 对此问题, 拟定一组数据, 并根据该数据, 验证你所建立的模型的 合理性. 5.求函数 的梯度, Hessian阵和极小点.