4 灵敏度分析
当线性规划问题中的常数发生变化(由于测量误差或具有多个取值可能)时, 最优解是否会随之变化?
通常假定变化的常数是某参数的线性函数.讨论参数取值与最优解的关系的问题, 被称为参数线性规划.
例如, 当农作物的价格发生变化时, 生产计划是否应马上随之改变? 参见线性规划书籍
将实际问题归结为线性规划模型是一个探索创造的过程。
线性规划模型的求解仍是计算数学的一个难题。
例2 一家大建筑公司正在三个地点开掘。同时又在其他四个地点建筑,这里需要土方的填充。在1、2、3处挖掘产生的土方分别为每天150,400,325立方码。建筑地点A、B、C、D处需要的填充土方分别为175,125,225,450立方码。也可以从地点4用每立方码5美元的价格获得额外的填充土方。填充土方运输的费用约为一货车容量每英里20美元。一辆货车可以搬运10立方码的土方。表3-3给出了各地点间距离的英里数。求使公司花费最少的运输计划。
表3-3 例3.5中土方问题的英里数:建筑地点间的距离
| 挖掘地点 | 接收填充土方的地点A B C D |
| 1 | 5 | 2 | 6 | 10 |
| 2 | 4 | 5 | 7 | 5 |
| 3 | 7 | 6 | 4 | 4 |
| 4 | 9 | 10 | 6 | 2 |
6.2 整数规划
在许多实际问题中,我们必须要处理离散变量如整数。离散数学曾被认为是比较神秘的领域,没有或几乎没有什么实际的应用。随着数字计算机的发明,离散数学变得极其重要。离散优化对时间安排、物资存储、投资、运输、制造业、生态学和计算机科学等方面的问题都非常有用。
如果要求决策变量取整数, 或部分取整数的线性规划问题, 称为整数规划.
当连续的决策变量变为离散变量时非线性优化问题通常会难解得多。没有连续性后可行域会变得很复杂,通常用一个图或树结构来描述。对一些类型的问题已经开发出了有效的求解算法,对这些算法的改进是一个非常活跃的研究领域,但与连续的情形一样,迄今还没有求解离散优化问题的普遍的有效算法。
例3 钢材截短
有一批钢材, 每根长7.3米. 现需做100套短钢材. 每套包括长2.9米, 2.1米,1.5米的各一根. 至少用掉多少根钢材才能满足需要, 并使得用料最省.
分析: 可能的截法和余料
第1种 7.3-(2.9× 2+1.5)=0
第2种 7.3-(2.9+2.1 × 2)=0.2
第3种 7.3-(2.9+1.5 × 2)=1.4
第4种 7.3-(2.9+2.1+1.5)=0.8
第5种 7.3-(2.1 × 2+1.5 × 2)=0.1
第6种 7.3-(2.1 × 3)=1
第7种 7.3-(2.1+1.5 × 3)=0.7
第8种 7.3-(1.5 × 4)=1.3
模型:设决策变量:按第i种方法截 xi 根钢材。
求目标函数 f=0.2x2+1.4x3+0.8x4+0.1x5+x6+0.7x7+1.3x8
在约束条件 2x1+x2+x3+x4=100 2x2+x4+2x5+3x6+x7=100 x1+2x3+x4+2x5+3x7+4x8=100 xi ³0 , i=1,…,8 下的最小值
解得 xopt=(40, 20, 0, 0, 30, 0, 0, 0) , f (xopt )= 7
实际上应要求xi 为正整数。这是一个整数规划问题, 这里碰巧最优解是整数,所以用Matlab程序可以求得解。
例 4 . 飞船装载问题
设有n种不同类型的科学仪器希望装在登月飞船上, 令cj>0表示每件第 j 类仪器的科学价值; aj >0表示每件第 j 类仪器的重量. 每类仪器件数不限, 但装载件数只能是整数. 飞船总载荷不得超过数 b. 设计一种方案, 使得被装载仪器的科学价值之和最大.建模 记 xj 为第 j 类仪器的装载数.
求 目标函数 f= åj cj xj 在约束条件 åjaj xj £ b, xj 为正整数, 下的最大值.
用分枝定界法求解整数规划问题
基本思想:反复划分可行域并确定最优值的界限,将原问题不断地分枝为若干个子问题, 且缩小最优质的取值范围,直到求得最优解.
例:求目标函数 f=3x1+2x2 在约束条件: 2x1+3x2 £14, 2x1+x 2 £ 9, x1 x 2为自然数下的最大值.
用Lingo软件求解整数规划
model:
max =3*x1+2*x2;
2*x1+3*x2<=14;
2*x1+x2<=9;
@gin(x1);
@gin(x2);
end
6.3 0-1规划
如果要求决策变量只取0 或 1的线性规划问题, 称为0-1规划.
0-1 约束不一定是由变量的性质决定的, 更多地是由于逻辑关系引进问题的
例5 背包问题
一个旅行者的背包最多只能装 6 kg 物品. 现有4 件物品的重量和价值分别为 2 kg , 3 kg, 3 kg, 4 kg, 1 元, 1.2元, 0.9元, 1.1元. 应携带那些物品使得携带物品的价值最大?
建模: 记 xj为旅行者携带第 j 件物品的件数, 取值只能为 0 或 1.
求目标函数 f=x 1 +1.2x 2 +0.9x 3 +1.1x 4 在约束条件 2x 1 +3x 2 +3x 3 +4x 4 £ 6下的最大值.
用Lingo 软件求解0-1规划
Model:
Max=x1+1.2*x2+0.9*x3+1.1*x4;
2*x1+3*x2+3*x3+4*x4<=6;
@int(x1);
@int(x2);
@int(x3);
@int(x4);
end
例 6 集合覆盖问题
实际问题 1 某企业有5种产品要存放, 有些不能存放在一起, 有些能存放在一起的, 由于组合不同所需费用不同. 求费用最低 的储存方案.
实际问题 2 某航空公司在不同城市之间开辟了5 条航线, 一个航班可以飞不同的航线组合, 不同组合成本不同, 求开通所有航线且总费用最小的方案.
抽象为集合覆盖问题:
设集合 S={1,2,3,4,5} 有一个子集类f={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}}其中每一个元素对应一个数 cj , 称为该元素的费用. 选 f 的一个子集使其覆盖S , 且总费用最低.
即实际问题 1中5种产品能存放在一起的各种组合为
f={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}}第 i 种组合的存储费用为 cj ,
求这五种产品费用最低的储存方案。
模型: 设决策变量:设DÍf是 S 的一个覆盖(一种存储方案). 当f的第 i 个元素属于D, (即第 i 种组合被采用)记 xi=1,否则xi=0
求 目标函数 f= Si cixi
在约束条件 x1 +x2 + x5³1 x1 + x3 ³1 (因为第2种产品只在第1,3个组合中出现)
x2 + x4 ³1 x3 + x6 ³1 x2 +x3 + x6 ³1 xiÎ{0,1}, I=1,2, ¼,6, 下的最小值.
混合问题例: 供货问题
一家公司生产某种商品. 现有n 个客户, 第 j 个客户需要货物量至少为 bj,
可在m 各不同地点设厂供货. 在地区 i 设厂的费用为 di , 供货能力为 hi ,
向第 j 个客户供应单位数量的货物费用为 cij. 如何设厂与供货使总费用最小.
模型: 设决0策变量: xij 为在地区 i 向第 j 个客户供货数量, 在地区 i 设厂,记 yi =1 , 否则 记 yi =0
求 目标函数 f= å i (åj cij xij + yi di )
在约束条件 åi xij = bj, åj xij -hi yi £0, xij³0, yi Î{0,1} 下的最小值
6.4 多目标线性规划
目标函数 fk=c (k)T x k=1,2, ¼, m,
s.t. Ax £ b
A1x=b1
LB £ x £ UB
有最优解 x (k), 记 f (k) =f(x (k))
整体评价法
min S=S(f (k) - c(k)T x)/ f (k) (使相对偏差最小)
s.t. Ax £ b
A1x=b1
LB £ x £ UB
有最佳妥协解 x*.
习题:
1. 资源分配, 生产甲肥1吨, 需要磷酸盐0.4吨, 硝酸盐1.8吨,利润1万元;生产乙肥1吨,需要磷酸盐0.1吨,硝酸盐1.5吨,利润0.5万元. 现有磷酸盐10吨,硝酸盐66吨, 问甲、乙肥各生产多少吨获利最大?
2. 营养配餐, 甲种食品每10克含5个单位的蛋白, 10个单位的铁, 单价3元;乙种食品每10克含7个单位的蛋白,4个单位的铁, 单价2元. 现需要一份食品, 含有35个单位的蛋白,40个单位的铁, 问如何配餐最省钱?
3 资源的最优配置策略
某工厂有1000台机器, 生产两种产品 A, B, 若投入 y 台机器生产A 产品, 则纯收入为 5y .若投入 y 台机器生产B 产品, 则纯收入为 4y . 又知, 生产A 种产品机器的年折损率为20%, , 生产B 种产品机器的年折损率为10%, 问在5年内如何安排各年度的生产计划, 才能使总收入最高.
4. 混合泳接力赛由蛙泳、蝶泳、自由泳、仰泳组成。如何根据 4位运动员的4种游泳竞赛成绩安排混合泳接力队,以取得最佳成绩。
蛙泳 蝶泳 自由泳 仰泳
甲 99 60 59 73
乙 79 65 93 87
丙 67 93 63 81
丁 56 79 86 76
5. 一家出版社准备再某市开设两个销售点,向七个区的大学生售书。
每个区的大学生数量(千人)如图。
每个销售点只能向本区和一个相邻区的大学生售书。
这两个销售点应该设在何处,才能使所供应的学生数量最大。
6 仍考虑例2中的土方问题。在使用10立方码载重量的自动倾卸卡车运输的情况下,公司已经确定了最优的运输方案。公司又有三辆更大的卡车可用于运输,载重量为20立方码。使用这些车辆可能会在运输中节省一些资金。载重10立方码载的卡车平均用20分钟装车,5分钟卸车,每小时平均开20英里,费用为每英里单位重量20美元;载重20立方码载的卡车平均用30分钟装车,5分钟卸车,每小时平均开20英里,费用为每英里单位重量30美元,为最大限度地节约运输费用,应如何安排车辆的使用?
表3-5 例3.7中卡车问题的运输路线数据
| 路线 | 从 | 到 | 英里数 | 运量(立方码) |
| 1 | 1 | B | 2 | 125 |
| 2 | 2 | A | 4 | 175 |
| 3 | 3 | C | 4 | 225 |
| 4 | 3 | D | 4 | 100 |
| 5 | 4 | D | 4 | 350 |
7. 有4名同学到一家公司参加三个阶段的面试,公司要求每个同学都必须首先找公司秘书初试,然后到部门主管处复试,最后到经理处参加面试,并且不许插队(即在任何阶段4位同学的顺序是一样的)。由于4位置同学的专业背景不同,所以每人在三个阶段的面试时间也不同,如下所示:
秘书初试 主管复试 经理面试
同学甲 13 15 20
同学乙 10 20 18
同学丙 20 16 10
同学丁 8 10 15
这4位同学约定他们面试完后一起离开公司,假定现在是早上8:00, 问他们最早何时能离开公司。
8 在甲乙双方的一场战争中,一部分甲方部队被乙方部队包围长达4个月,由于乙方封锁了所有水陆交通通道,被包围的乙方部队只能依靠空中交通维持供给。运送4个月的供给分别需要 2次、3次、3次、4次飞行,每次飞行编队由50架飞机组成(每架飞机需要3名飞行员),可以运送10万吨物资,每架飞机每个月只能飞行一次,每名飞行员每月也只能飞行一次,在执行完任务后的返回途中有20%的飞机会被乙方击落,相应的飞行员也因此牺牲或失踪。在第一个月开始的时候,甲方拥有110架飞机和330名熟练的飞行员,在每个月开始时,甲方可以招聘新飞行员和购买新飞机,新飞机必须经过一个月的检查后才可以投入使用,新飞行员必须在熟练飞行员的指导下经过一个月的训练才能投入飞行。每名熟练飞行员作为教练每月指导20名飞行员(包括他自己在内),每名飞行员在完成一个月的飞行任务后必须有一个月的带薪假期,假期结束后才能在投入飞行。已知各项费用如下,请你为甲方安排一个飞行计划。
第一个月 第二个月 第三个月 第四个月
新飞机价格 200 195 190 185
闲置的熟练的飞行员报酬 7 6.9 6.8 6.7
教练和新飞行员报酬 10 9.9 9.8 9.7
执行任务的熟练飞行员报酬 9 8.9 9.8 9.7
休假的熟练的飞行员报酬 5 4.9 4.8 4.7