第一章线性规划 §1线性规划 在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。此类问题构成了运筹学的一个重要分支一数学规划,而线性规划( Linear Programming简记LP则是数学规划的一个重要分支。自从1947年GB. Dantzig提出 求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深 。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性 规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。 1.1线性规划的实例与定义 例1某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。 生产甲机床需用A、B机器加工,加工时间分别为每台2小时和1小时;生产乙机床 需用A、B、C三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时 数分别为A机器10小时、B机器8小时和C机器7小时,问该厂应生产甲、乙机床各 几台,才能使总利润最大? 上述问题的数学模型:设该厂生产x1台甲机床和x2乙机床时总利润最大,则x,x2 应满足 (日标函数)maxz=4x1+3x 2x1+x2≤10 st(约束条件) x1,x2≥0 这里变量x1,x2称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式 是问题的约束条件,记为st(即 subject to)。由于上面的目标函数及约束条件均为线性 函数,故被称为线性规划问题 总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最 小的问题。 在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往 也是困难的一步,模型建立得是否恰当,直接影响到求解。而选适当的决策变量,是我 们建立有效模型的关键之一。 12线性规划的 Matlab标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以 是小于号也可以是大于号。为了避免这种形式多样性带来的不便, Matlab中规定线性 规划的标准形式为 mInc x x Ax< b q·x=beq lb≤x≤tb 其中c和x为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向
-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 应满足 (目标函数) 1 2 max z = 4x + 3x (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 x T min s.t. ⎪ ⎩ ⎪ ⎨ ⎧ ≤ ≤ ⋅ = ≤ lb x ub Aeq x beq Ax b 其中 c 和 x 为 n 维列向量, A 、 Aeq 为适当维数的矩阵,b 、beq 为适当维数的列向 量
例如线性规划 st.Ax≥b 的 Matlab标准型为 min -c'x s. 3线性规划问题的解的概念 一般线性规划问题的(数学)标准型为 max 2=>C: b. i 4 可行解满足约束条件(4)的解x=(x1,x2…,xn),称为线性规划问题的可行解 而使目标函数(3)达到最大值的可行解叫最优解。 可行域所有可行解构成的集合称为问题的可行域,记为R 14线性规划的图解法 图1线性规划的图解示意 图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来 求解例1。对于每一固定的值二,使目标函数值等于的点构成的直线称为目标函数等 位线,当z变动时,我们得到一族平行直线。对于例1,显然等位线越趋于右上方,其 上的点具有越大的目标函数值。不难看出,本例的最优解为x*=(2,6),最优目标值 从上面的图解过程可以看出并不难证明以下断言 (1)可行域R可能会出现多种情况。R可能是空集也可能是非空集合,当R非空 时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。R既可能是有界区域, 也可能是无界区域 (2)在R非空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其 目标函数值无界)
-2- 例如线性规划 c x Ax b x T max s.t. ≥ 的 Matlab 标准型为 c x Ax b x T min − s.t. − ≤ − 1.3 线性规划问题的解的概念 一般线性规划问题的(数学)标准型为 ∑= = n j j j z c x 1 max (3) s.t. ⎪ ⎩ ⎪ ⎨ ⎧ ≥ = ∑ = = = x j n a x b i m j n j ij j i 0 1,2, , 1,2, , 1 L L (4) 可行解 满足约束条件(4)的解 ( , , , ) 1 2 n x = x x L x ,称为线性规划问题的可行解, 而使目标函数(3)达到最大值的可行解叫最优解。 可行域 所有可行解构成的集合称为问题的可行域,记为 R 。 1.4 线性规划的图解法 0 2 4 6 8 1 0 0 1 2 3 4 5 6 7 8 9 1 0 x2 =7 2 x1 +x2 =1 0 x1+x2 =8 z=12 (2 ,6 ) 图 1 线性规划的图解示意图 图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来 求解例 1。对于每一固定的值 z ,使目标函数值等于 z 的点构成的直线称为目标函数等 位线,当 z 变动时,我们得到一族平行直线。对于例 1,显然等位线越趋于右上方,其 上的点具有越大的目标函数值。不难看出,本例的最优解为 T x* = (2,6) ,最优目标值 z* = 26 。 从上面的图解过程可以看出并不难证明以下断言: (1)可行域 R 可能会出现多种情况。R 可能是空集也可能是非空集合,当 R 非空 时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。R 既可能是有界区域, 也可能是无界区域。 (2)在 R 非空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其 目标函数值无界)
(3)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域R的 顶点”。 上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。在一般的n维 空间中,满足一线性等式∑ax1=b的点集被称为一个超平面,而满足一线性不等式 ∑ax≤b(或∑ax≥b)的点集被称为一个半空间(其中(a,…,an)为一n维行 向量,b为一实数)。若干个半空间的交集被称为多胞形,有界的多胞形又被称为多面 体。易见,线性规划的可行域必为多胞形(为统一起见,空集Φ也被视为多胞形)。 在一般n维空间中,要直接得出多胞形“顶点”概念还有一些困难。二维空间中的顶点 可以看成为边界直线的交点,但这一几何概念的推广在一般n维空间中的几何意义并不 十分直观。为此,我们将采用另一途径来定义它。 定义1称n维空间中的区域R为一凸集,若x,x2∈R及V∈(0,1),有 ax2+(1-4)x2∈R。 定义2设R为n维空间中的一个凸集,R中的点x被称为R的一个极点,若不 存在x、x2∈R及A∈(0,1),使得x=Ax2+(1-)x 定义1说明凸集中任意两点的连线必在此凸集中;而定义2说明,若x是凸集R 的一个极点,则x不能位于R中任意两点的连线上。不难证明,多胞形必为凸集。同 样也不难证明,二维空间中可行域R的顶点均为R的极点(R也没有其它的极点)。 1.5求解线性规划的 Matlab解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一。这里我们就不介绍 单纯形法,有兴趣的读者可以参看其它线性规划书籍。下面我们介绍线性规划的 Matlab 解法 Matlab中线性规划的标准型为 in cl Ax≤b st.Aeq·x=be eq lb≤x≤ub 基本函数形式为 linprog(c,Ab),它的返回值是向量x的值。还有其它的一些函数调用形 式(在 Matlab指令窗运行 help linprog可以看到所有的函数调用形式),如 [x, fval=linprog(c, A, b, Aeq, beq, LB, UB, X, OPTIONS) 这里fl返回目标函数的值,LB和UB分别是变量x的下界和上界,x是x的初始值, OPTIONS是控制参数 例2求解下列线性规划问题 max:=2x,+3x2-5x3 st.x1+x,+x3=7 x1-5x2+x3210 x1+3x2+x3≤12 x,x2,x3≥0
-3- (3)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域 R 的 “顶点”。 上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。在一般的n 维 空间中,满足一线性等式 ∑= = n i ai xi b 1 的点集被称为一个超平面,而满足一线性不等式 ∑= ≤ n i ai xi b 1 (或∑= ≥ n i ai xi b 1 )的点集被称为一个半空间(其中( , , ) a1 L 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 解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一。这里我们就不介绍 单纯形法,有兴趣的读者可以参看其它线性规划书籍。下面我们介绍线性规划的 Matlab 解法。 Matlab 中线性规划的标准型为 c x x T min s.t. ⎪ ⎩ ⎪ ⎨ ⎧ ≤ ≤ ⋅ = ≤ lb x ub Aeq x beq Ax b 基本函数形式为 linprog(c,A,b),它的返回值是向量 x 的值。还有其它的一些函数调用形 式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如: [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值,LB 和 UB 分别是变量 x 的下界和上界, 0 x 是 x 的初始值, OPTIONS 是控制参数。 例 2 求解下列线性规划问题 max 2 1 3 2 5 3 z = x + x − x s.t. x1 + x2 + x3 = 7 2x1 −5x2 + x3 ≥10 x1 + 3x2 + x3 ≤12 x1, x2 , x3 ≥ 0
解(i)编写M文件 c=[2;3;-5]; a=[-2,5,-1;1,3,1];b=[-10;12]; eq=[1,1,1] beg=7i x=linprog(-c, a, b, aeq, beq, zeros(3, 1)) va1ue=c!★ ()将M文件存盘,并命名为 example.m (ⅲi)在 Matlab指令窗运行 example即可得所求结果。 例3求解线性规划问题 mln二 x1+4x2+2x3≥8 x1+2x,≥6 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规划问题为 min|x1|+|x2|+…+|xn s.t. Ax0满足 11.=V;, Ix,u,+v 事实上,我们只要取4=+x 就可以满足上面的条件。 这样,记=[1 vn],从而我们可以把上面的问题 变成 mIn (ul2+v,) A(l-v)≤b s t 0 例5mn{max|s|} 其中E1=x1=y° 对于这个问题,如果我们取x0=max|s;|,这样,上面的问题就变换成
-4- 解 (i)编写 M 文件 c=[2;3;-5]; a=[-2,5,-1;1,3,1]; b=[-10;12]; aeq=[1,1,1]; 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 L 其中 T n x [x x ] = 1 L , 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 L , T n v [v v ] = 1 L ,从而我们可以把上面的问题 变成 ∑= + n i i i u v 1 min ( ) ⎩ ⎨ ⎧ ≥ − ≤ , 0 ( ) s. t. u v A u v b 例 5 min{max | |} i x y i i ε 其中 i i i ε = x − y 。 对于这个问题,如果我们取 max | | 0 i yi x = ε ,这样,上面的问题就变换成
min xo s.t.x1-y1≤x0,…,xn-yn≤x 此即我们通常的线性规划问题 §2运输问题(产销平衡) 例6某商品有m个产地、n个销地,各产地的产量分别为a12…,an,各销地的 需求量分别为b,…,b。若该商品由i产地运到j销地的单位运价为cn,问应该如何调 运才能使总运费最省? 解:引入变量xn,其取值为由i产地运往j销地的该商品数量,数学模型为 mIn st{∑x=b,j=12,…,n 显然是一个线性规划问题,当然可以用单纯形法求解。 对产销平衡的运输问题,由于有以下关系式存在: b 其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由 康托洛维奇和希奇柯克两人独立地提出,简称康一希表上作业法)。 §3指派问题 3.1指派问题的数学模型 例7拟分配n人去干n项工作,每人干且仅干一项工作,若分配第i人去干第j 项工作,需花费cn单位时间,问应如何分配工作才能使工人花费的总时间最少? 容易看出,要给出一个指派问题的实例,只需给出矩阵C=(Cn),C被称为指派 问题的系数矩阵 引入变量x,若分配i干j工作,则取x=1,否则取x=0。上述指派问题的 数学模型为 min
-5- min 0 x 1 1 0 0 s. t. x y x , , x y x − ≤ L n − n ≤ 此即我们通常的线性规划问题。 §2 运输问题(产销平衡) 例 6 某商品有m 个产地、n 个销地,各产地的产量分别为a am , , 1 L ,各销地的 需求量分别为b bn , , 1 L 。若该商品由i 产地运到 j 销地的单位运价为 ij c ,问应该如何调 运才能使总运费最省? 解:引入变量 ij x ,其取值为由i 产地运往 j 销地的该商品数量,数学模型为 ∑∑= = 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 L L 显然是一个线性规划问题,当然可以用单纯形法求解。 对产销平衡的运输问题,由于有以下关系式存在: ∑ ∑∑ ∑ ∑ ∑ = == = = = ⎟ = ⎠ ⎞ ⎜ ⎝ ⎛ =⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ = m i i n j n j m i ij m i n j bj xij x a 1 11 1 1 1 其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由 康托洛维奇和希奇柯克两人独立地提出,简称康—希表上作业法)。 §3 指派问题 3.1 指派问题的数学模型 例 7 拟分配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. ∑= = n j ij x 1 1
x=0或1 上述指派问题的可行解可以用一个矩阵表示,其每行每列均有且只有一个元素为 1,其余元素均为0:可以用1,…,n中的一个置换表示 问题中的变量只能取0或1,从而是一个0-1规划问题。一般的0-1规划问题求解 极为困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模 矩阵,其各阶非零子式均为±1),其非负可行解的分量只能取0或1,故约束x=0或1 可改写为x≥0而不改变其解。此时,指派问题被转化为一个特殊的运输问题,其中 m=n,a.=b.=1 3.2求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家 Konig提出的更为简便的解法 一匈牙利算法。算法主要依据以下事实:如果系数矩阵C=(cn)一行(或一列)中每 元素都加上或减去同一个数,得到一个新矩阵B=(b),则以C或B为系数矩阵的 指派问题具有相同的最优指派。 例8求解指派问题,其系数矩阵为 16151922 17211918 24221817 17192216 解将第一行元素减去此行中的最小元素15,同样,第二行元素减去17,第三行 元素减去17,最后一行的元素减去16,得 0421 B 1360 再将第3列元素各减去1,得 1037 B, 7500 以B2为系数矩阵的指派问题有最优指派 34 由等价性,它也是例7的最优指派。 有时问题会稍复杂一些。 例9求解系数矩阵C的指派问题
-6- ∑= = n i ij x 1 1 xij = 0或1 上述指派问题的可行解可以用一个矩阵表示,其每行每列均有且只有一个元素为 1,其余元素均为 0;可以用1,L,n 中的一个置换表示。 问题中的变量只能取 0 或 1,从而是一个 0-1 规划问题。一般的 0-1 规划问题求解 极为困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模 矩阵,其各阶非零子式均为 ±1),其非负可行解的分量只能取 0 或 1,故约束 xij = 0或1 可改写为 xij ≥ 0而不改变其解。此时,指派问题被转化为一个特殊的运输问题,其中 m = n ,ai = bj =1。 3.2 求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家 Konig 提出的更为简便的解法 —匈牙利算法。算法主要依据以下事实:如果系数矩阵 ( )ij C = c 一行(或一列)中每 一元素都加上或减去同一个数,得到一个新矩阵 ( ) B = bij ,则以C 或 B 为系数矩阵的 指派问题具有相同的最优指派。 例 8 求解指派问题,其系数矩阵为 ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 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 的最优指派。 有时问题会稍复杂一些。 例 9 求解系数矩阵C 的指派问题
127979 89666 C=717121412 15146610 4107106 解:先作等价变换如下 7「127 79 50*202 689666 2300*0 7717121412→0*10575V 615146610 980*04 44107106 0636 容易看出,从变换后的矩阵中只能选出四个位于不同行不同列的零元素,但 最优指派还无法看出。此时等价变换还可进行下去。步骤如下: (1)对未选出0元素的行打v; (2)对行中0元素所在列打v (3)对列中选中的0元素所在行打v 重复(2)、(3)直到无法再打∨为止。 可以证明,若用直线划没有打的行与打ⅴ的列,就得到了能够覆盖住矩阵中所 有零元素的最少条数的直线集合,找出未覆盖的元素中的最小者,令∨行元素减去此 数,V列元素加上此数,则原先选中的0元素不变,而未覆盖元素中至少有一个已转 变为0,且新矩阵的指派问题与原问题也等价。上述过程可反复采用,直到能选取出足 够的0元素为止。例如,对例5变换后的矩阵再变换,第三行、第五行元素减去2,第 列元素加上2,得 4 0388 0 00504 0 现在已可看出,最优指派为234 2413 §4对偶理论与灵敏度分析 41原始问题和对偶问题 考虑下列一对线性规划模型 max C x Ax≤b,x≥0 in bys..Ay≥c,y≥0
-7- ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 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) 和 b y T min s.t. A y ≥ c, y ≥ 0 T (D)
称(P)为原始问题,(D)为它的对偶问题。 不太严谨地说,对偶问题可被看作是原始问题的“行列转置” (1)原始问题中的第j列系数与其对偶问题中的第j行的系数相同 (2)原始目标函数的各个系数行与其对偶问题右侧的各常数列相同 (3)原始问题右侧的各常数列与其对偶目标函数的各个系数行相同 (4)在这一对问题中,不等式方向和优化方向相反 考虑线性规划 min x s..Ax=b.x≥0 把其中的等式约束变成不等式约束,可得 min c'x s.t/y b x≥0 b 它的对偶问题是 max S t C y2 其中y1和y2分别表示对应于约束Ax≥b和-Ax≥-b的对偶变量组。令y=y1-y2, 则上式又可写成 max b'y s..Ay≤c 原问题和对偶的对偶约束之间的关系 max ≥0 变量 1≤0 亍约束 ≥0 无限制 0 0 ≥0 行约束 无限制 42对偶问题的基本性质 1°对称性:对偶问题的对偶是原问题 2°弱对偶性:若ⅹ是原问题的可行解,j是对偶问题的可行解。则存在 C'x< by 3°无界性:若原问题(对偶问题)为无界解,则其对偶问题(原问题)无可行解。 4°可行解是最优解时的性质:设x是原问题的可行解,y是对偶问题的可行解, 当cx=bj时,元,y是最优解。 5°对偶定理:若原问题有最优解,那么对偶问题也有最优解;且目标函数值相同 6°互补松弛性:若x,y分别是原问题和对偶问题的最优解,则 j(A-b)=0,x(Ay-c)=0 例10已知线性规划问题 min=2x,+3x,+5x,+2x,+3x x5 st.x1+x2+2x3+x4+3x24
-8- 称(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 0 行约束 ⎪ ⎩ ⎪ ⎨ ⎧ = ≤ ≥ 0 0 0 行约束 ⎪ ⎩ ⎪ ⎨ ⎧ ≤ ≥ 无限制 变量 0 0 4.2 对偶问题的基本性质 1o 对称性:对偶问题的对偶是原问题。 2o 弱对偶性:若 x 是原问题的可行解, y 是对偶问题的可行解。则存在 c x b y T T ≤ 。 3o 无界性:若原问题(对偶问题)为无界解,则其对偶问题(原问题)无可行解。 4o 可行解是最优解时的性质:设 xˆ 是原问题的可行解, yˆ 是对偶问题的可行解, 当c x b y T T ˆ = ˆ 时, xˆ, yˆ 是最优解。 5o 对偶定理:若原问题有最优解,那么对偶问题也有最优解;且目标函数值相同。 6o 互补松弛性:若 xˆ, yˆ 分别是原问题和对偶问题的最优解,则 yˆ (Axˆ − b) = 0, xˆ (A yˆ − c) = 0 T T T 例 10 已知线性规划问题 min 2 1 3 2 5 3 2 4 3 5 ω = x + x + x + x + x s.t. x1 + x2 + 2x3 + x4 + 3x5 ≥ 4
x1≥0,j=12…5 已知其对偶问题的最优解为y=,y2=2;二=5。试用对偶理论找出原问题的最优 5 解先写出它的对偶问题 max ==4y, +3 y1+2y2 2 y1-y2≤3 y1+3y3≤5 y1+y2≤2 ④ 3 y1+y2 y1,y2≥0 将y1,y2的值代入约束条件,得②,③,④为严格不等式;由互补松弛性得 x2=x3=x4=0。因y1,y2>0;原问题的两个约束条件应取等式,故有 x1+3x5=4 求解后得到x=1,x5=1:故原问题的最优解为 X=[l0001;a=5 4.3灵敏度分析 在以前讨论线性规划问题时,假定a,b2C都是常数。但实际上这些系数往往是估 计值和预测值。如市场条件一变,C,值就会变化;an往往是因工艺条件的改变而改变; b是根据资源投入后的经济效果决定的一种决策选择。因此提出这样两个问题:当这 些系数有一个或几个发生变化时,已求得的线性规划问题的最优解会有什么变化;或者 这些系数在什么范围内变化时,线性规划问题的最优解或最优基不变。这里我们就不讨 44参数线性规划 参数线性规划是研究an,b,C,这些参数中某一参数连续变化时,使最优解发生变化 的各临界点的值。即把某一参数作为参变量,而目标函数在某区间内是这参变量的线性 函数,含这参变量的约束条件是线性等式或不等式。因此仍可用单纯形法和对偶单纯形 法进行分析参数线性规划问题。 §5投资的收益和风险 51问题提出 市场上有n种资产s1(i=1,2,…,n)可以选择,现用数额为M的相当大的资金 作一个时期的投资。这n种资产在这一时期内购买S的平均收益率为F,风险损失率为 q’投资越分散,总的风险越少,总体风险可用投资的s中最大的一个风险来度量
-9- 2x1 − x2 + 3x3 + x4 + x5 ≥ 3 x j ≥ 0, j = 1,2,L,5 已知其对偶问题的最优解为 ; 5 5 3 , 5 4 * 2 * y1 = y = z = 。试用对偶理论找出原问题的最优 解。 解 先写出它的对偶问题 1 2 max z = 4 y + 3y 2 2 y1 + y2 ≤ ① 3 y1 − y2 ≤ ② 2y1 + 3y3 ≤ 5 ③ 2 y1 + y2 ≤ ④ 3 3 y1 + y2 ≤ ⑤ , 0 y1 y2 ≥ 将 * 2 * 1 y , y 的值代入约束条件,得②,③,④为严格不等式;由互补松弛性得 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]'; 5 * * X = ω = 。 4.3 灵敏度分析 在以前讨论线性规划问题时,假定 ij i j a ,b ,c 都是常数。但实际上这些系数往往是估 计值和预测值。如市场条件一变, j c 值就会变化;aij 往往是因工艺条件的改变而改变; bi 是根据资源投入后的经济效果决定的一种决策选择。因此提出这样两个问题:当这 些系数有一个或几个发生变化时,已求得的线性规划问题的最优解会有什么变化;或者 这些系数在什么范围内变化时,线性规划问题的最优解或最优基不变。这里我们就不讨 论了。 4.4 参数线性规划 参数线性规划是研究 ij i j a ,b ,c 这些参数中某一参数连续变化时,使最优解发生变化 的各临界点的值。即把某一参数作为参变量,而目标函数在某区间内是这参变量的线性 函数,含这参变量的约束条件是线性等式或不等式。因此仍可用单纯形法和对偶单纯形 法进行分析参数线性规划问题。 §5 投资的收益和风险 5.1 问题提出 市场上有 n 种资产 i s (i =1,2,L,n )可以选择,现用数额为 M 的相当大的资金 作一个时期的投资。这 n 种资产在这一时期内购买 i s 的平均收益率为 ir ,风险损失率为 qi ,投资越分散,总的风险越少,总体风险可用投资的 i s 中最大的一个风险来度量
购买s时要付交易费,(费率P),当购买额不超过给定值u时,交易费按购买 计算。另外,假定同期银行存款利率是,既无交易费又无风险。(=5% 已知n=4时相关数据如表1。 r(%) P(%0)|4(元) 103 21 198 4.5 2.6 6.5 40 试给该公司设计一种投资组合方案,即用给定资金M,有选择地购买若干种资产 或存银行生息,使净收益尽可能大,使总体风险尽可能小 52符号规定和基本假设 符号规定 s;:第i种投资项目,如股票,债券 ,P2q:分别为s的平均收益率,交易费率,风险损失率 l1:s的交易定额 :同期银行利率 x:投资项目s1的资金 a:投资风险度 Q:总体收益 基本假设: 1.投资数额M相当大,为了便于计算,假设M=1 2.投资越分散,总的风险越小; 3.总体风险用投资项目s中最大的一个风险来度量 4.n种资产s,之间是相互独立的 5.在投资的这一时期内,FP2q1,为定值,不受意外因素影响 6.净收益和总体风险只受F,P12q影响,不受其它因素干扰。 53模型的分析与建立 总体风险用所投资的s中最大的一个风险来衡量,即 max{qx1|i=1,2,…,m} 2.购买S1所付交易费是一个分段函数,即 交易费={Px,x> P1,x≤l 而题目所给定的定值u1(单位:元)相对总投资M很少,Pl更小,可以忽略不 计,这样购买s的净收益为Gr-P,)x 3.要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型 10
-10- 购买 i s 时要付交易费,(费率 pi ),当购买额不超过给定值ui 时,交易费按购买ui 计算。另外,假定同期银行存款利率是 0r ,既无交易费又无风险。(r0 = 5%) 已知 n = 4 时相关数据如表 1。 表 1 i s ir (%) qi pi (%) ui (元) 1s 28 2.5 1 103 2 s 21 1.5 2 198 3 s 23 5.5 4.5 52 4 s 25 2.6 6.5 40 试给该公司设计一种投资组合方案,即用给定资金 M ,有选择地购买若干种资产 或存银行生息,使净收益尽可能大,使总体风险尽可能小。 5.2 符号规定和基本假设 符号规定: i s :第i 种投资项目,如股票,债券 i pi qi r, , :分别为 i s 的平均收益率,交易费率,风险损失率 ui : i s 的交易定额 0r :同期银行利率 i x :投资项目 i s 的资金 a :投资风险度 Q :总体收益 基本假设: 1. 投资数额 M 相当大,为了便于计算,假设 M =1; 2. 投资越分散,总的风险越小; 3. 总体风险用投资项目 i s 中最大的一个风险来度量; 4. n 种资产 i s 之间是相互独立的; 5. 在投资的这一时期内, i pi qi r, , , 0r 为定值,不受意外因素影响; 6. 净收益和总体风险只受 i pi qi r, , 影响,不受其它因素干扰。 5.3 模型的分析与建立 1. 总体风险用所投资的 i s 中最大的一个风险来衡量,即 max{q x | i 1,2, ,n} i i = L 2.购买 i s 所付交易费是一个分段函数,即 交易费 ⎩ ⎨ ⎧ ≤ > = i i i i i i i i p u x u p x x u , , 而题目所给定的定值ui (单位:元)相对总投资 M 很少, pi ui 更小,可以忽略不 计,这样购买 i s 的净收益为 i i i (r − p )x 。 3. 要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型: