第一章线性规划 §1线性规划 在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支一数学规划,而线性规划( Linear Programming简记LP)则是数学规划的一个重要分支。自从1947年GB. Dantzig提出 求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深 入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性 规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之 1线性规划的实例与定义 例1某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。 生产甲机床需用A、B机器加工,加工时间分别为每台2小时和1小时;生产乙机床 需用A、B、C三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时 数分别为A机器10小时、B机器8小时和C机器7小时,问该厂应生产甲、乙机床各 几台,才能使总利润最大? 上述问题的数学模型:设该厂生产x1台甲机床和x2乙机床时总利润最大,则x12x 应满足 (目标函数)max二=4x1+3 (1) 2x1+x2≤10 x+x2≤8 st.(约束条件) (2) 2s7 x1,x20 这里变量x1,x2称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式 是问题的约束条件,记为st(即 subject to)。上述即为一规划问题数学模型的三个要素 由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题 总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最 小的问题。 在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往 也是困难的一步,模型建立得是否恰当,直接影响到求解。而选取适当的决策变量,是 我们建立有效模型的关键之一。 12线性规划的 Matlab标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以 是小于号也可以是大于号。为了避免这种形式多样性带来的不便, Matlab中规定线性 规划的标准形式为 min cx such that ax≤b 其中C和x为n维列向量,b为m维列向量,A为m×n矩阵。 例如线性规划 max c'x such that Ax≥b 的 Matlab标准型为
-1- 第一章 线性规划 §1 线性规划 在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。自从 1947 年 G. B. Dantzig 提出 求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深 入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性 规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。 1.1 线性规划的实例与定义 例 1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元。 生产甲机床需用 A、B 机器加工,加工时间分别为每台 2 小时和 1 小时;生产乙机床 需用 A、B、C 三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时 数分别为 A 机器 10 小时、 B 机器 8 小时和 C 机器 7 小时,问该厂应生产甲、乙机床各 几台,才能使总利润最大? 上述问题的数学模型:设该厂生产 1 x 台甲机床和 2 x 乙机床时总利润最大,则 1 2 x , x 应满足 (目标函数) max 4 1 3 2 z = x + x (1) s.t.(约束条件) + + , 0 7 8 2 10 1 2 2 1 2 1 2 x x x x x x x (2) 这里变量 1 2 x , x 称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式 是问题的约束条件,记为 s.t.(即 subject to)。上述即为一规划问题数学模型的三个要素。 由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。 总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最 小的问题。 在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往 也是困难的一步,模型建立得是否恰当,直接影响到求解。而选取适当的决策变量,是 我们建立有效模型的关键之一。 1.2 线性规划的 Matlab 标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以 是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性 规划的标准形式为 c x Ax b x T min such that 其中 c 和 x 为 n 维列向量, b 为 m 维列向量, A 为 mn 矩阵。 例如线性规划 c x Ax b x T max such that 的 Matlab 标准型为
min -cx such that -Ax <-b x 1.3线性规划问题的解的概念 般线性规划问题的标准型为 mm二 anx,≤bi=12 可行解满足约束条件(4)的解x=(x1,x2…xn),称为线性规划问题的可行解, 而使目标函数(3)达到最小值的可行解叫最优解。 可行域所有可行解构成的集合称为问题的可行域,记为R。 14线性规划的图解法 X2=10 x1+X28 图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来 求解例1。如上图所示,阴影区域即为LP问题的可行域R。对于每一固定的值z,使 目标函数值等于z的点构成的直线称为目标函数等位线,当z变动时,我们得到一族平 行直线。让等位线沿目标函数值减小的方向移动,直到等位线与可行域有交点的最后位 置,此时的交点(一个或多个)即为LP的最优解 对于例1,显然等位线越趋于右上方,其上的点具有越大的目标函数值。不难看出 本例的最优解为x*=(2,6),最优目标值*=26 从上面的图解过程可以看出并不难证明以下断言: (1)可行域R可能会出现多种情况。R可能是空集也可能是非空集合,当R非空 时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。R既可能是有界区域, 也可能是无界区域 2)在R非空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其 目标函数值无界) (3)R非空且LP有有限最优解时,最优解可以唯一或有无穷多个。 )若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域R的 上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。在一般的n维
-2- c x Ax b x T min − such that − − 1.3 线性规划问题的解的概念 一般线性规划问题的标准型为 = = n j j j z c x 1 min (3) = = n j aij x j bi i m 1 s.t. 1,2,, (4) 可行解 满足约束条件(4)的解 ( , , , ) 1 2 n x = x x x ,称为线性规划问题的可行解, 而使目标函数(3)达到最小值的可行解叫最优解。 可行域 所有可行解构成的集合称为问题的可行域,记为 R 。 1.4 线性规划的图解法 0 2 4 6 8 10 0 1 2 3 4 5 6 7 8 9 10 x2=7 2x1+x2=10 x1+x2=8 z=12 (2,6) 图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来 求解例 1。如上图所示,阴影区域即为 LP 问题的可行域 R。对于每一固定的值 z ,使 目标函数值等于 z 的点构成的直线称为目标函数等位线,当 z 变动时,我们得到一族平 行直线。让等位线沿目标函数值减小的方向移动,直到等位线与可行域有交点的最后位 置,此时的交点(一个或多个)即为 LP 的最优解。 对于例 1,显然等位线越趋于右上方,其上的点具有越大的目标函数值。不难看出, 本例的最优解为 T x* = (2,6) ,最优目标值 z* = 26 。 从上面的图解过程可以看出并不难证明以下断言: (1)可行域 R 可能会出现多种情况。 R 可能是空集也可能是非空集合,当 R 非空 时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。 R 既可能是有界区域, 也可能是无界区域。 (2)在 R 非空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其 目标函数值无界)。 (3)R 非空且 LP 有有限最优解时,最优解可以唯一或有无穷多个。 (4)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域 R 的 “顶点”。 上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。在一般的 n 维
空间中,满足一线性等式∑ax=b的点集被称为一个超平面,而满足一线性不等式 ∑ax,≤b(或∑ax≥b)的点集被称为一个半空间(其中(a1…an)为一n维行 向量,b为一实数)。有限个半空间的交集被称为多胞形,有界的多胞形又被称为多面 体。易见,线性规划的可行域必为多胞形(为统一起见,空集Φ也被视为多胞形)。 在一般n维空间中,要直接得出多胞形“顶点”概念还有一些困难。二维空间中的顶点 可以看成为边界直线的交点,但这一几何概念的推广在一般n维空间中的几何意义并不 十分直观。为此,我们将采用另一途径来定义它。 定义1称n维空间中的区域R为一凸集,若x,x2∈R及V∈(O,),有 ax2+(1-4)x2∈R 定义2设R为n维空间中的一个凸集,R中的点x被称为R的一个极点,若不 存在x、x2∈R及∈(01),使得x=x2+(1-1)x2。 定义1说明凸集中任意两点的连线必在此凸集中;而定义2说明,若x是凸集R 的一个极点,则x不能位于R中任意两点的连线上。不难证明,多胞形必为凸集。同 样也不难证明,二维空间中可行域R的顶点均为R的极点(R也没有其它的极点)。 1.5求解线性规划的 Matlab解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一。单纯形法是首先由 George Dantzig于1947年提出的,近60年来,虽有许多变形体已被开发,但却保持着 同样的基本观念。由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优 解是可行区域的一个极点。基于此,单纯形法的基本思路是:先找出可行域的一个极点 据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更 优:如此下去,直到找到某一最优解为止。这里我们不再详细介绍单纯形法,有兴趣的 读者可以参看其它线性规划书籍。下面我们介绍线性规划的 Matlab解法 Matlab53中线性规划的标准型为 min cx such that Ax≤b 基本函数形式为 linprog(cA,b),它的返回值是向量x的值。还有其它的一些函数调用形 式(在 Matlab指令窗运行 help linprog可以看到所有的函数调用形式),如: [x, fval]=linprog(c, A, b, Aeq, beq, LB, UB, Xo, OPTIONS 这里fal返回目标函数的值,A和beq对应等式约束Aeq*x=beq,LB和UB分别 是变量x的下界和上界,x0是x的初始值, OPTIONS是控制参数。 例2求解下列线性规划问题 max ==2 x1+3 7 2x1-5x2+x3≥10 x1,x2,x3≥0 解(i)编写M文件 c=[2;3;-5] a=[-2,5,-1];b=-10; aeq=[1,1,1]
-3- 空间中,满足一线性等式 = = n i ai xi b 1 的点集被称为一个超平面,而满足一线性不等式 = n i ai xi b 1 (或 = n i ai xi b 1 )的点集被称为一个半空间(其中 ( , , ) a1 an 为一 n 维行 向量, b 为一实数)。有限个半空间的交集被称为多胞形,有界的多胞形又被称为多面 体。易见,线性规划的可行域必为多胞形(为统一起见,空集 也被视为多胞形)。 在一般 n 维空间中,要直接得出多胞形“顶点”概念还有一些困难。二维空间中的顶点 可以看成为边界直线的交点,但这一几何概念的推广在一般 n 维空间中的几何意义并不 十分直观。为此,我们将采用另一途径来定义它。 定义 1 称 n 维空间中的区域 R 为一凸集,若 x x R 1 2 , 及 (0,1) ,有 x + − x R 1 2 (1 ) 。 定义 2 设 R 为 n 维空间中的一个凸集, R 中的点 x 被称为 R 的一个极点,若不 存在 x x R 1 、 2 及 (0,1) ,使得 1 2 x = x + (1− )x 。 定义 1 说明凸集中任意两点的连线必在此凸集中;而定义 2 说明,若 x 是凸集 R 的一个极点,则 x 不能位于 R 中任意两点的连线上。不难证明,多胞形必为凸集。同 样也不难证明,二维空间中可行域 R 的顶点均为 R 的极点( R 也没有其它的极点)。 1.5 求解线性规划的 Matlab 解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一。单纯形法是首先由 George Dantzig 于 1947 年提出的,近 60 年来,虽有许多变形体已被开发,但却保持着 同样的基本观念。由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优 解是可行区域的一个极点。基于此,单纯形法的基本思路是:先找出可行域的一个极点, 据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更 优;如此下去,直到找到某一最优解为止。这里我们不再详细介绍单纯形法,有兴趣的 读者可以参看其它线性规划书籍。下面我们介绍线性规划的 Matlab 解法。 Matlab5.3 中线性规划的标准型为 c x Ax b T x min such that 基本函数形式为 linprog(c,A,b),它的返回值是向量 x 的值。还有其它的一些函数调用形 式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值,Aeq 和 beq 对应等式约束 Aeq * x = beq ,LB 和 UB 分别 是变量 x 的下界和上界, 0 x 是 x 的初始值,OPTIONS 是控制参数。 例 2 求解下列线性规划问题 max 2 1 3 2 5 3 z = x + x − x − + + + = , , 0 2 5 10 7 1 2 3 1 2 3 1 2 3 x x x x x x x x x 解 (i)编写 M 文件 c=[2;3;-5]; a=[-2,5,-1]; b=-10; aeq=[1,1,1];
x=linprog(-C, a,b, aeq, beq, zeros(3, 1)) value=c!大 (i)将M文件存盘,并命名为 example. m (ii)在 Matlab指令窗运行 example即可得所求结果 例3求解线性规划问题 min ==2x, +3x,+x, x1+4x2+2x3≥8 3x1+2x2≥6 x1x2,x3≥0 解编写 Matlab程序如下 C=[2;3;1] a=[1,4,2;3,2,0] b=[8;6]; Lx, y]=linprog(c, -a, -b, 0,0, zeros(3, 1)) 16可以转化为线性规划的问题 很多看起来不是线性规划的问题也可以通过变换变成线性规划问题来解决。如: 例4问题为 mn|x1|+|x2|+…+|xn Ax≤b 其中x=[x1…xn,A和b为相应维数的矩阵和向量 要把上面的问题变换成线性规划问题,只要注意到事实:对任意的x1,存在 l,v,>0满足 ,=u-v,x,,+ 事实上,我们只要取=+互,12=二就可以满足上面的条件 这样,记u={n1…uny,v=v1…vnJ,从而我们可以把上面的问题 变成 min ∑(1+,) 「A(u-y)≤b l2p≥0 §2运输问题(产销平衡) 例5某商品有m个产地、n个销地,各产地的产量分别为a1,…an,各销地的 需求量分别为b,…b,。若该商品由i产地运到j销地的单位运价为c,问应该如何调 运才能使总运费最省? 解:引入变量x,其取值为由i产地运往j销地的该商品数量,数学模型为
-4- beq=7; x=linprog(-c,a,b,aeq,beq,zeros(3,1)) value=c'*x (ii)将M文件存盘,并命名为example1.m。 (iii)在Matlab指令窗运行example1即可得所求结果。 例3 求解线性规划问题 min 2 1 3 2 3 z = x + x + x + + + , , 0 3 2 6 4 2 8 1 2 3 1 2 1 2 3 x x x x x x x x 解 编写Matlab程序如下: c=[2;3;1]; a=[1,4,2;3,2,0]; b=[8;6]; [x,y]=linprog(c,-a,-b,[],[],zeros(3,1)) 1.6 可以转化为线性规划的问题 很多看起来不是线性规划的问题也可以通过变换变成线性规划问题来解决。如: 例4 问题为 Ax b x x xn + + + s. t. min | | | | | | 1 2 其中 T n x [x x ] = 1 , A 和 b 为相应维数的矩阵和向量。 要把上面的问题变换成线性规划问题,只要注意到事实:对任意的 i x ,存在 ui , vi 0 满足 i i i x = u − v , i i i | x |= u + v 事实上,我们只要取 2 | | i i i x x u + = , 2 | | i i i x x v − = 就可以满足上面的条件。 这样,记 T u u un [ ] = 1 , T n v [v v ] = 1 ,从而我们可以把上面的问题 变成 = + n i i i u v 1 min ( ) − , 0 ( ) s. t. u v A u v b §2 运输问题(产销平衡) 例 5 某商品有 m 个产地、 n 个销地,各产地的产量分别为 a am , , 1 ,各销地的 需求量分别为 b bn , , 1 。若该商品由 i 产地运到 j 销地的单位运价为 ij c ,问应该如何调 运才能使总运费最省? 解:引入变量 ij x ,其取值为由 i 产地运往 j 销地的该商品数量,数学模型为
min C st{2x=b,j=12,…,n xn≥0 显然是一个线性规划问题,当然可以用单纯形法求解。 对产销平衡的运输问题,由于有以下关系式存在: ∑b a 其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由 康托洛维奇和希奇柯克两人独立地提出,简称康一希表上作业法) 表上作业法是单纯形法在求解运输问题时的一种简化方法,其求解工作在运输表上 进行逐步迭代如下:先按某一规则找出一个初始解(初始调运方案):再对现行解作最 优性判断:若这个解不是最优的,就在运输表上对它进行调整改进,得一新解;再判断 再改进,直到得到最优解。 §3指派问题(又称分配问题 Assignment Problem) 3.1指派问题的数学模型 例6拟分配η人去干n项工作,每人干且仅干一项工作,若分配第i人去干第 项工作,需花费c单位时间,问应如何分配工作才能使工人花费的总时间最少? 容易看出,要给出一个指派问题的实例,只需给出矩阵C=(cn),C被称为指派 问题的系数矩阵。 引入变量x,若分配i干j工作,则取x1=1,否则取x=0。上述指派问题的 数学模型为 min x=1,=1,2, 1,j=1 xn=0或1,ij=1,2,…,n (5)的可行解既可以用一个矩阵(称为解矩阵)表示,其每行每列均有且只有一个元 素为1,其余元素均为0,也可以用1,…,n中的一个置换表示
-5- = = m i n j ij ij c x 1 1 min s.t. = = = = = = 0 , 1,2, , , 1, , 1 1 ij m i ij j n j ij i x x b j n x a i m 显然是一个线性规划问题,当然可以用单纯形法求解。 对产销平衡的运输问题,由于有以下关系式存在: = = = = = = = = = m i i n j n j m i ij m i n j bj xij x a 1 1 1 1 1 1 其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由 康托洛维奇和希奇柯克两人独立地提出,简称康—希表上作业法)。 表上作业法是单纯形法在求解运输问题时的一种简化方法,其求解工作在运输表上 进行逐步迭代如下:先按某一规则找出一个初始解(初始调运方案);再对现行解作最 优性判断;若这个解不是最优的,就在运输表上对它进行调整改进,得一新解;再判断, 再改进,直到得到最优解。 §3 指派问题(又称分配问题 Assignment Problem) 3.1 指派问题的数学模型 例 6 拟分配 n 人去干 n 项工作,每人干且仅干一项工作,若分配第 i 人去干第 j 项工作,需花费 ij c 单位时间,问应如何分配工作才能使工人花费的总时间最少? 容易看出,要给出一个指派问题的实例,只需给出矩阵 ( ) ij C = c ,C 被称为指派 问题的系数矩阵。 引入变量 ij x ,若分配 i 干 j 工作,则取 xij = 1 ,否则取 xij = 0 。上述指派问题的 数学模型为 = = n i n j ij ij c x 1 1 min s.t. 0 1,i, j 1,2, ,n 1, 1,2, , 1, 1,2, , 1 1 = = = = = = = = ij 或 n i ij n j ij x x j n x i n (5) (5)的可行解既可以用一个矩阵(称为解矩阵)表示,其每行每列均有且只有一个元 素为 1,其余元素均为 0,也可以用 1, ,n 中的一个置换表示
(5)的变量只能取0或1,从而是一个0-1规划问题。一般的0-1规划问题求解极为 困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模矩阵, 其各阶非零子式均为±1),其非负可行解的分量只能取0或1,故约束x=0或1可改 写为x≥0而不改变其解。此时,指派问题被转化为一个特殊的运输问题,其中m=n a.=b.=1。 3.2求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家 D Konig提出的更为简便的解 法一匈牙利算法。算法主要依据以下事实:如果系数矩阵C=(c,)一行(或一列)中 每一元素都加上或减去同一个数,得到一个新矩阵B=(b),则以C或B为系数矩阵 的指派问题具有相同的最优指派 利用上述性质,可将原系数阵C变换为含零元素较多的新系数阵B,而最优解不 变。若能在B中找出n个位于不同行不同列的零元素,令解矩阵中相应位置的元素取 值为1,其它元素取值为零,则所得该解是以B为系数阵的指派问题的最优解,从而也 是原问题的最优解 由C到B的转换可通过先让矩阵C的每行元素均减去其所在行的最小元素得矩阵 D,D的每列元素再减去其所在列的最小元素得以实现。 下面通过一例子来说明该算法 例7求解指派问题,其系数矩阵为 16151922 C|17211918 24221817 解将第一行元素减去此行中的最小元素15,同样,第二行元素减去17,第三行 元素减去17,最后一行的元素减去16,得 0421 B 7510 再将第3列元素各减去1,得 B 0453 00 以B2为系数矩阵的指派问题有最优指派 由等价性,它也是例7的最优指派 有时问题会稍复杂一
-6- (5)的变量只能取 0 或 1,从而是一个 0-1 规划问题。一般的 0-1 规划问题求解极为 困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模矩阵, 其各阶非零子式均为 1 ),其非负可行解的分量只能取 0 或 1,故约束 xij = 0或1 可改 写为 xij 0 而不改变其解。此时,指派问题被转化为一个特殊的运输问题,其中 m = n , ai = bj = 1。 3.2 求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家 D.Konig 提出的更为简便的解 法—匈牙利算法。算法主要依据以下事实:如果系数矩阵 ( ) ij C = c 一行(或一列)中 每一元素都加上或减去同一个数,得到一个新矩阵 ( ) B = bij ,则以 C 或 B 为系数矩阵 的指派问题具有相同的最优指派。 利用上述性质,可将原系数阵 C 变换为含零元素较多的新系数阵 B,而最优解不 变。若能在 B 中找出 n 个位于不同行不同列的零元素,令解矩阵中相应位置的元素取 值为 1,其它元素取值为零,则所得该解是以 B 为系数阵的指派问题的最优解,从而也 是原问题的最优解。 由 C 到 B 的转换可通过先让矩阵 C 的每行元素均减去其所在行的最小元素得矩阵 D,D 的每列元素再减去其所在列的最小元素得以实现。 下面通过一例子来说明该算法。 例 7 求解指派问题,其系数矩阵为 = 17 19 22 16 24 22 18 17 17 21 19 18 16 15 19 22 C 解 将第一行元素减去此行中的最小元素 15,同样,第二行元素减去 17,第三行 元素减去 17,最后一行的元素减去 16,得 = 1 3 6 0 7 5 1 0 0 4 2 1 1 0 4 7 B1 再将第 3 列元素各减去 1,得 = * * * * 2 1 3 5 0 7 5 0 0 0 4 1 1 1 0 3 7 B 以 B2 为系数矩阵的指派问题有最优指派 2 1 3 4 1 2 3 4 由等价性,它也是例 7 的最优指派。 有时问题会稍复杂一些
例8求解系数矩阵C的指派问题 127979 66 C=717121412 15146610 4107106 解:先作等价变换如下 7「127979 689666 2300*0 7717121412→0*10575V 615146610980*04 4|4107106 06362| 容易看出,从变换后的矩阵中只能选出四个位于不同行不同列的零元素,但n=5 最优指派还无法看出。此时等价变换还可进行下去。步骤如下 (1)对未选出0元素的行打 (2)对行中0元素所在列打∨ 3)对v列中选中的0元素所在行打v 重复(2)、(3)直到无法再打v为止。 可以证明,若用直线划没有打v的行与打v的列,就得到了能够覆盖住矩阵中所 有零元素的最少条数的直线集合,找出未覆盖的元素中的最小者,令√行元素减去此 数,列元素加上此数,则原先选中的0元素不变,而未覆盖元素中至少有一个已转 变为0,且新矩阵的指派问题与原问题也等价。上述过程可反复采用,直到能选取出足 够的0元素为止。例如,对例5变换后的矩阵再变换,第三行、第五行元素减去2,第 列元素加上2,得 70202 43000 08353 l18004 04140 现在己可看出,最优指派为12345 §4对偶理论与灵敏度分析 4.1原始问题和对偶问题 考虑下列一对线性规划模型 max C x st.Ax≤b,x≥0
-7- 例 8 求解系数矩阵 C 的指派问题 = 4 10 7 10 6 15 14 6 6 10 7 17 12 14 12 8 9 6 6 6 12 7 9 7 9 C 解:先作等价变换如下 → − − − − − 0 6 3 6 2 9 8 0 * 0 4 0 * 10 5 7 5 2 3 0 0 * 0 5 0 * 2 0 2 4 10 7 10 6 15 14 6 6 10 7 17 12 14 12 8 9 6 6 6 12 7 9 7 9 4 6 7 6 7 容易看出,从变换后的矩阵中只能选出四个位于不同行不同列的零元素,但 n = 5 , 最优指派还无法看出。此时等价变换还可进行下去。步骤如下: (1) 对未选出 0 元素的行打 ; (2) 对 行中 0 元素所在列打 ; (3) 对 列中选中的 0 元素所在行打 ; 重复(2)、(3)直到无法再打 为止。 可以证明,若用直线划没有打 的行与打 的列,就得到了能够覆盖住矩阵中所 有零元素的最少条数的直线集合,找出未覆盖的元素中的最小者,令 行元素减去此 数, 列元素加上此数,则原先选中的 0 元素不变,而未覆盖元素中至少有一个已转 变为 0,且新矩阵的指派问题与原问题也等价。上述过程可反复采用,直到能选取出足 够的 0 元素为止。例如,对例 5 变换后的矩阵再变换,第三行、第五行元素减去 2,第 一列元素加上 2,得 0 4 1 4 0 11 8 0 0 4 0 8 3 5 3 4 3 0 0 0 7 0 2 0 2 现在已可看出,最优指派为 2 4 1 3 5 1 2 3 4 5 。 §4 对偶理论与灵敏度分析 4.1 原始问题和对偶问题 考虑下列一对线性规划模型: c x T max s.t. Ax b, x 0 (P) 和
minb'yst.Ay≥c,y≥0 称(P)为原始问题,(D)为它的对偶问题 不太严谨地说,对偶问题可被看作是原始问题的“行列转置 (1)原始问题约束条件中的第j列系数与其对偶问题约束条件中的第j行的 系数相同 (2)原始目标函数的系数行与其对偶问题右侧的常数列相同 3)原始问题右侧的常数列与其对偶目标函数的系数行相同 (4)在这一对问题中,除非负约束外的约束不等式方向和优化方向相反 考虑线性规划 t.Ax=b,x≥0 把其中的等式约束变成不等式约束,可得 min ,s[22=0 它的对偶问题是 max b s.t. A < V2 其中y和y2分别表示对应于约束Ax≥b和-Ax≥-b的对偶变量组。令y=y-y2 上式又可写成 byst.Ay≤ 原问题和对偶的对偶问题约束之间的关系 min m 变量 ≤0 行约束 无限制 约束≤ 变量 0 无限制 42对偶问题的基本性质 1°对称性:对偶问题的对偶是原问题。 2°弱对偶性:若x是原问题的可行解,j是对偶问题的可行解。则恒有 x≤b 3°无界性:若原问题(对偶问题)为无界解,则其对偶问题(原问题)无可行解。 4°可行解是最优解时的性质:设X是原问题的可行解,j是对偶问题的可行解 当c=by时,,是最优解。 5°对偶定理:若原问题有有限最优解,那么对偶问题也有最优解:且目标函数值 相同 6°互补松弛性:若x,j分别是原问题和对偶问题的最优解,则 y(A-b)=0,x(Aj-c)=0
-8- b y T min s.t. A y c, y 0 T (D) 称(P)为原始问题,(D)为它的对偶问题。 不太严谨地说,对偶问题可被看作是原始问题的“行列转置”: (1) 原始问题约束条件中的第 j 列系数与其对偶问题约束条件中的第 j 行的 系数相同; (2) 原始目标函数的系数行与其对偶问题右侧的常数列相同; (3) 原始问题右侧的常数列与其对偶目标函数的系数行相同; (4) 在这一对问题中,除非负约束外的约束不等式方向和优化方向相反。 考虑线性规划: min c x s.t. Ax = b, x 0 T 把其中的等式约束变成不等式约束,可得 min s.t. , 0 − − x b b x A A c x T 它的对偶问题是 c y y A A y y b b T T T T − − 2 1 2 1 max s.t. 其中 1 y 和 2 y 分别表示对应于约束 Ax b 和 − Ax −b 的对偶变量组。令 1 2 y = y − y , 则上式又可写成 b y A y c T T max s.t. 原问题和对偶的对偶问题约束之间的关系: min max 无限制 变量 0 0 = 行约束 = 行约束 无限制 变量 0 0 4.2 对偶问题的基本性质 1 o 对称性:对偶问题的对偶是原问题。 2 o 弱对偶性:若 x 是原问题的可行解, y 是对偶问题的可行解。则恒有: c x b y T T 。 3 o 无界性:若原问题(对偶问题)为无界解,则其对偶问题(原问题)无可行解。 4 o 可行解是最优解时的性质:设 x ˆ 是原问题的可行解, y ˆ 是对偶问题的可行解, 当 c x b y T T ˆ = ˆ 时, x ˆ , y ˆ 是最优解。 5 o 对偶定理:若原问题有有限最优解,那么对偶问题也有最优解;且目标函数值 相同。 6 o 互补松弛性:若 x ˆ , y ˆ 分别是原问题和对偶问题的最优解,则 y ˆ (Ax ˆ − b) = 0, x ˆ (A y ˆ − c) = 0 T T T
由上述性质可知,对任一LP问题(P),若它的对偶问题(D)可能的话,我们总可以 通过求解(D)来讨论原问题(P):若(D)无界,则(P)无可行解;若(D)有有限最优解v 最优值wb,则利用互补松弛性可求得(P)的所有最优解,且(P)的最优值为b。例如 对只有两个行约東的LP,其对偶问题只有两个变量,总可用图解法来求解。 例9已知线性规划问题 mnO=2x1+3x2+5x3+2x4+3x sx1+x,+2x3+x4+3x6≥4 2x1-x2+3x3+x4+x5≥3 0,j=1,2,…,5 已知其对偶问题的最优解为=5 3 5’最优值为x=5。试用对偶理论找出原 问题的最优解。 解先写出它的对偶问题 max二=4y1+3y2 2v2≤2 Ditzy ① y1-y2≤3 2;+3y2≤5 y1+y2≤2 3y1+y2≤3 y1,y220 将yy2的值代入约東条件,得②,③,④为严格不等式:设原问题的最优解为 x=(x1…,x3),由互补松弛性得x2=x=x=0。因y,y2>0:原问题的两个 约束条件应取等式,故有 求解后得到x1=1,xs=1;故原问题的最优解为 X=[1000;最优值为w=5 4.3灵敏度分析 灵敏度分析是指对系统或周围事物因周围条件变化显示出来的敏感程度的分析 在以前讨论线性规划问题时,假定an,b,C,都是常数。但实际上这些系数往往是估 计值和预测值。如市场条件一变,c值就会变化;a,往往是因工艺条件的改变而改变 b是根据资源投入后的经济效果决定的一种决策选择。因此提出这样两个问题:当这 些参数有一个或几个发生变化时,已求得的线性规划问题的最优解会有什么变化;或者 这些参数在什么范围内变化时,线性规划问题的最优解不变。这里我们就不讨论了。 44参数线性规划 参数线性规划是研究a,b,C,这些参数中某一参数连续变化时,使最优解发生变化 的各临界点的值。即把某一参数作为参变量,而目标函数在某区间内是这参变量的线性
-9- 由上述性质可知,对任一 LP 问题(P),若它的对偶问题(D)可能的话,我们总可以 通过求解(D)来讨论原问题(P):若(D)无界,则(P)无可行解;若(D)有有限最优解 * w , 最优值 w b * ,则利用互补松弛性可求得(P)的所有最优解,且(P)的最优值为 w b * 。例如 对只有两个行约束的 LP,其对偶问题只有两个变量,总可用图解法来求解。 例 9 已知线性规划问题 min 2 1 3 2 5 3 2 4 3 5 = x + x + x + x + x s.t.x1 + x2 + 2x3 + x4 + 3x5 4 2x1 − x2 + 3x3 + x4 + x5 3 x j 0, j = 1,2, ,5 已知其对偶问题的最优解为 5 3 , 5 4 * 2 * y1 = y = ,最优值为 5 * z = 。试用对偶理论找出原 问题的最优解。 解 先写出它的对偶问题 max 4 1 3 2 z = y + y s.t. y1 + 2y2 2 ① y1 − y2 3 ② 2y1 + 3y3 5 ③ y1 + y2 2 ④ 3y1 + y2 3 ⑤ y1 , y2 0 将 * 2 * 1 y , y 的值代入约束条件,得②,③,④为严格不等式;设原问题的最优解为 ( , , ) * 5 * 1 * x = x x ,由互补松弛性得 0 * 4 * 3 * x2 = x = x = 。因 , 0 * 2 * y1 y ;原问题的两个 约束条件应取等式,故有 3 4 * 5 * x1 + x = 2 3 * 5 * x1 + x = 求解后得到 1, 1 * 5 * x1 = x = ;故原问题的最优解为 [1 0 0 0 1]' * X = ;最优值为 5 * w = 。 4.3 灵敏度分析 灵敏度分析是指对系统或周围事物因周围条件变化显示出来的敏感程度的分析。 在以前讨论线性规划问题时,假定 ij i j a ,b ,c 都是常数。但实际上这些系数往往是估 计值和预测值。如市场条件一变, j c 值就会变化; ij a 往往是因工艺条件的改变而改变; i b 是根据资源投入后的经济效果决定的一种决策选择。因此提出这样两个问题:当这 些参数有一个或几个发生变化时,已求得的线性规划问题的最优解会有什么变化;或者 这些参数在什么范围内变化时,线性规划问题的最优解不变。这里我们就不讨论了。 4.4 参数线性规划 参数线性规划是研究 ij i j a ,b ,c 这些参数中某一参数连续变化时,使最优解发生变化 的各临界点的值。即把某一参数作为参变量,而目标函数在某区间内是这参变量的线性
函数,含这参变量的约束条件是线性等式或不等式。因此仍可用单纯形法和对偶单纯形 行分析参数线性规划问题。 某厂生产三种产品I,Ⅱ,Ⅲ。每种产品要经过A,B两道工序加工。设该厂有两 种规格的设备能完成A工序,它们以A1,A2表示;有三种规格的设备能完成B工序, 它们以B1,B2,B3表示。产品I可在A,B任何一种规格设备上加工。产品Ⅱ可在任何规 格的A设备上加工,但完成B工序时,只能在B1设备上加工:产品Ⅲ只能在A2与B2 设备上加工。已知在各种机床设备的单件工时,原材料费,产品销售价格,各种设备有 效台时以及满负荷操作时机床设备的费用如下表,要求安排最优的生产计划,使该厂利 润最大。 设备 设备有效台时 满负荷时的 III 设备费用(元) A1 10 300 A, 10000 321 B1 B 783 B3 200 原料费元件)025035050 单价(元/件)1252.002.80 2.有四个工人,要指派他们分别完成4项工作,每人做各项工作所消耗的时间如 下表 工作 工人 A B C D 问指派哪个人去完成哪项工作,可使总的消耗时间为最小? 3.某战略轰炸机群奉命摧毀敌人军事目标。已知该目标有四个要害部位,只要摧 毁其中之一即可达到目的。为完成此项任务的汽油消耗量限制为48000升、重型炸弹 48枚、轻型炸弹32枚。飞机携带重型炸弹时每升汽油可飞行2千米,带轻型炸弹时每 升汽油可飞行3千米。又知每架飞机每次只能装载一枚炸弹,每出发轰炸一次除来回路 程汽油消耗(空载时每升汽油可飞行4千米)外,起飞和降落每次各消耗100升。有关 数据如表所示。 要害部位 离机场距离 摧毁可能性 (千米) 每枚重型弹 每枚轻型弹 450 0.10 0.08 0.20 0.16 0.15 0.12
-10- 函数,含这参变量的约束条件是线性等式或不等式。因此仍可用单纯形法和对偶单纯形 法进行分析参数线性规划问题。 习 题 一 1. 某厂生产三种产品 I,II,III。每种产品要经过 A, B 两道工序加工。设该厂有两 种规格的设备能完成 A 工序,它们以 1 2 A , A 表示;有三种规格的设备能完成 B 工序, 它们以 1 2 3 B , B , B 表示。产品 I 可在 A, B 任何一种规格设备上加工。产品 II 可在任何规 格的 A 设备上加工,但完成 B 工序时,只能在 B1 设备上加工;产品 III 只能在 A2 与 B2 设备上加工。已知在各种机床设备的单件工时,原材料费,产品销售价格,各种设备有 效台时以及满负荷操作时机床设备的费用如下表,要求安排最优的生产计划,使该厂利 润最大。 设备 产 品 设备有效台时 满负荷时的 I II III 设备费用(元) A1 A2 B1 B2 B3 5 7 6 4 7 10 9 8 12 11 6000 10000 4000 7000 4000 300 321 250 783 200 原料费(元/件) 单 价(元/件) 0.25 1.25 0.35 2.00 0.50 2.80 2. 有四个工人,要指派他们分别完成 4 项工作,每人做各项工作所消耗的时间如 下表: 工作 工人 A B C D 甲 乙 丙 丁 15 19 26 19 18 23 17 21 21 22 16 23 24 18 19 17 问指派哪个人去完成哪项工作,可使总的消耗时间为最小? 3. 某战略轰炸机群奉命摧毁敌人军事目标。已知该目标有四个要害部位,只要摧 毁其中之一即可达到目的。为完成此项任务的汽油消耗量限制为 48000 升、重型炸弹 48 枚、轻型炸弹 32 枚。飞机携带重型炸弹时每升汽油可飞行 2 千米,带轻型炸弹时每 升汽油可飞行 3 千米。又知每架飞机每次只能装载一枚炸弹,每出发轰炸一次除来回路 程汽油消耗(空载时每升汽油可飞行 4 千米)外,起飞和降落每次各消耗 100 升。有关 数据如表所示。 要害部位 离机场距离 (千米) 摧毁可能性 每枚重型弹 每枚轻型弹 1 2 3 450 480 540 0.10 0.20 0.15 0.08 0.16 0.12