收藏 分享(赏)

Matlab数学建模算法全收录(数学建模比赛必备参.pdf

上传人:刘岱文 文档编号:30206 上传时间:2018-06-29 格式:PDF 页数:798 大小:8.02MB
下载 相关 举报
Matlab数学建模算法全收录(数学建模比赛必备参.pdf_第1页
第1页 / 共798页
Matlab数学建模算法全收录(数学建模比赛必备参.pdf_第2页
第2页 / 共798页
Matlab数学建模算法全收录(数学建模比赛必备参.pdf_第3页
第3页 / 共798页
Matlab数学建模算法全收录(数学建模比赛必备参.pdf_第4页
第4页 / 共798页
Matlab数学建模算法全收录(数学建模比赛必备参.pdf_第5页
第5页 / 共798页
点击查看更多>>
资源描述

1、 -2- 例如线性规划 bAxxcxT s.t. max 的 Matlab 标准型为 bAxxcxT s.t. min 1.3 线性规划问题的解的概念 一般线性规划问题的(数学)标准型为 =njjjxcz1max (3) s.t. =njxmibxajnjijij,2,10,2,11LL(4) 可行解 满足约束条件( 4)的解 ),(21 nxxxx L= ,称为线性规划问题的可行解,而使目标函数( 3)达到最大值的可行解叫最优解。 可行域 所有可行解构成的集合称为问题的可行域,记为 R 。 1.4 线性规划的图解法 0 2 4 6 8 10012345678910x2 =72x1+x2=10

2、x1+x2 =8z=12(2 ,6 )图 1 线性规划的图解示意图 图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来求解例 1。对于每一固定的值 z,使目标函数值等于 z的点构成的直线称为目标函数等位线,当 z变动时,我们得到一族平行直线。对于例 1,显然等位线越趋于右上方,其上的点具有越大的目标函数值。不难看出,本例的最优解为Tx )6,2(*= ,最优目标值26*=z 。 从上面的图解过程可以看出并不难证明以下断言: ( 1)可行域 R 可能会出现多种情况。 R 可能是空集也可能是非空集合,当 R 非空时,它必定是若干个半平面的交集(除非遇到空间维数的退化) 。 R

3、 既可能是有界区域,也可能是无界区域。 ( 2) 在 R 非空时, 线性规划既可以存在有限最优解, 也可以不存在有限最优解 (其目标函数值无界) 。 -3- ( 3)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域 R 的“顶点” 。 上述论断可以推广到一般的线性规划问题, 区别只在于空间的维数。 在一般的 n维空间中,满足一线性等式=niiibxa1的点集被称为一个超平面,而满足一线性不等式=niiibxa1(或=niiibxa1)的点集被称为一个半空间(其中 ),(1 naa L 为一 n维行向量, b为一实数) 。若干个半空间的交集被称为多胞形,有界的多胞形又被称为多面体。

4、易见,线性规划的可行域必为多胞形(为统一起见,空集 也被视为多胞形) 。 在一般 n维空间中,要直接得出多胞形“顶点”概念还有一些困难。二维空间中的顶点可以看成为边界直线的交点, 但这一几何概念的推广在一般 n维空间中的几何意义并不十分直观。为此,我们将采用另一途径来定义它。 定义 1 称 n 维空间中的区域 R 为一凸集,若 Rxx 21, 及 )1,0( ,有Rxx +21)1( 。 定义 2 设 R 为 n维空间中的一个凸集, R 中的点 x被称为 R 的一个极点,若不存在 Rxx 21、 及 )1,0( ,使得21)1( xxx += 。 定义 1 说明凸集中任意两点的连线必在此凸集中

5、;而定义 2 说明,若 x是凸集 R的一个极点,则 x不能位于 R 中任意两点的连线上。不难证明,多胞形必为凸集。同样也不难证明,二维空间中可行域 R 的顶点均为 R 的极点( R 也没有其它的极点) 。 1.5 求解线性规划的 Matlab 解法 单纯形法是求解线性规划问题的最常用、最有效的算法之一。这里我们就不介绍单纯形法, 有兴趣的读者可以参看其它线性规划书籍。 下面我们介绍线性规划的 Matlab解法。 Matlab 中线性规划的标准型为 xcxTmin s.t. =ubxlbbeqxAeqbAx基本函数形式为 linprog(c,A,b),它的返回值是向量 x的值。还有其它的一些函数

6、调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式) ,如: x,fval=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS) 这里 fval 返回目标函数的值, LB 和 UB 分别是变量 x的下界和上界,0x 是 x的初始值,OPTIONS 是控制参数。 例 2 求解下列线性规划问题 321532max xxxz += s.t. 7321=+ xxx 1052321+ xxx 123321+ xxx 0,321xxx -4- 解 ( i)编写 M 文件 c=2;3;-5; a=-2,5,-1;1,3,1; b=-10;1

7、2; 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 求解线性规划问题 32132 min xxxz += +0,62382432121321xxxxxxxx解 编写 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 可以转化为线性规划的问题 很多看起来不是线性规划的问题

8、也可以通过变换变成线性规划的问题来解决。如: 例 4 规划问题为 bAxxxxn+t.s.|min21L其中Tnxxx 1L= , A和 b 为相应维数的矩阵和向量。 要把上面的问题变换成线性规划问题,只要注意到事实:对任意的ix ,存在0, iivu 满足 iiivux = ,iiivux +=| 事实上,我们只要取2|iiixxu+= ,2|iiixxv= 就可以满足上面的条件。 这样,记Tnuuu 1L= ,Tnvvv 1L= ,从而我们可以把上面的问题变成 =+niiivu1)(min 0,)(t.s.vubvuA例 5 |maxminiyxii 其中iiiyx = 。 对于这个问题,

9、如果我们取 |max0 iyix = ,这样,上面的问题就变换成 -5- 0min x 0011, t.s. xyxxyxnn L 此即我们通常的线性规划问题。 2 运输问题 (产销平衡 ) 例 6 某商品有 m 个产地、 n个销地,各产地的产量分别为maa ,1L ,各销地的需求量分别为nbb ,1L 。若该商品由 i产地运到 j 销地的单位运价为ijc ,问应该如何调运才能使总运费最省? 解:引入变量ijx ,其取值为由 i产地运往 j 销地的该商品数量,数学模型为 =minjijijxc11min s.t. =0,2,1,1,11ijmijijnjiijxnjbxmiaxLL显然是一个线

10、性规划问题,当然可以用单纯形法求解。 对产销平衡的运输问题,由于有以下关系式存在: =miinjnjmiijminjijjaxxb111111其约束条件的系数矩阵相当特殊, 可用比较简单的计算方法, 习惯上称为表上作业法 (由康托洛维奇和希奇柯克两人独立地提出,简称康希表上作业法) 。 3 指派问题 3.1 指派问题的数学模型 例 7 拟分配 n人去干 n项工作,每人干且仅干一项工作,若分配第 i人去干第 j项工作,需花费ijc 单位时间,问应如何分配工作才能使工人花费的总时间最少? 容易看出,要给出一个指派问题的实例,只需给出矩阵 )(ijcC = , C 被称为指派问题的系数矩阵。 引入变

11、量ijx ,若分配 i干 j 工作,则取 1=ijx ,否则取 0=ijx 。上述指派问题的数学模型为 =ninjijijxc11min s.t. =njijx11 -6- =niijx11 1 0或=ijx 上述指派问题的可行解可以用一个矩阵表示,其每行每列均有且只有一个元素为1,其余元素均为 0;可以用 n,1 L 中的一个置换表示。 问题中的变量只能取 0 或 1,从而是一个 0-1 规划问题。一般的 0-1 规划问题求解极为困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模矩阵, 其各阶非零子式均为 1 ) , 其非负可行解的分量只能取 0 或 1, 故约束 10

12、或=ijx可改写为 0ijx 而不改变其解。此时,指派问题被转化为一个特殊的运输问题,其中nm = , 1=jiba 。 3.2 求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家 Konig 提出的更为简便的解法匈牙利算法。算法主要依据以下事实:如果系数矩阵 )(ijcC = 一行(或一列)中每一元素都加上或减去同一个数,得到一个新矩阵 )(ijbB = ,则以 C 或 B 为系数矩阵的指派问题具有相同的最优指派。 例 8 求解指派问题,其系数矩阵为 =16221917171822241819211722191516C 解 将第一行元素减去此行中的最小元素 15,同样,第

13、二行元素减去 17,第三行元素减去 17,最后一行的元素减去 16,得 =06310157124074011B 再将第 3 列元素各减去 1,得 =*20531005711407301B 以2B 为系数矩阵的指派问题有最优指派 43124321由等价性,它也是例 7 的最优指派。 有时问题会稍复杂一些。 例 9 求解系数矩阵 C 的指派问题 -7- =61071041066141512141217766698979712C 解:先作等价变换如下 2636040*08957510*00*0032202*056107104106614151214121776669897971246767容易看出,

14、 从变换后的矩阵中只能选出四个位于不同行不同列的零元素, 但 5=n ,最优指派还无法看出。此时等价变换还可进行下去。步骤如下: (1) 对未选出 0 元素的行打 ; (2) 对 行中 0 元素所在列打 ; (3) 对 列中选中的 0 元素所在行打 ; 重复( 2) 、 ( 3)直到无法再打 为止。 可以证明,若用直线划没有打 的行与打 的列,就得到了能够覆盖住矩阵中所有零元素的最少条数的直线集合,找出未覆盖的元素中的最小者,令 行元素减去此数, 列元素加上此数,则原先选中的 0 元素不变,而未覆盖元素中至少有一个已转变为 0,且新矩阵的指派问题与原问题也等价。上述过程可反复采用,直到能选取出

15、足够的 0 元素为止。例如,对例 5 变换后的矩阵再变换,第三行、第五行元素减去 2,第一列元素加上 2,得 04140400811353800003420207现在已可看出,最优指派为5314254321。 4 对偶理论与灵敏度分析 4.1 原始问题和对偶问题 考虑下列一对线性规划模型: xcTmax s.t. 0, xbAx (P) 和 ybTmin s.t. 0, ycyAT(D) -8- 称( P)为原始问题, ( D)为它的对偶问题。 不太严谨地说,对偶问题可被看作是原始问题的“行列转置” : ( 1) 原始问题中的第 j 列系数与其对偶问题中的第 j 行的系数相同; ( 2) 原始

16、目标函数的各个系数行与其对偶问题右侧的各常数列相同; ( 3) 原始问题右侧的各常数列与其对偶目标函数的各个系数行相同; ( 4) 在这一对问题中,不等式方向和优化方向相反。 考虑线性规划: 0,s.t.min = xbAxxcT把其中的等式约束变成不等式约束,可得 0, s.t. min xbbxAAxcT它的对偶问题是 cyyAAyybbTTTT2121s.t.max 其中1y 和2y 分别表示对应于约束 bAx 和 bAx 的对偶变量组。 令21yyy = ,则上式又可写成 cyAybTT s.t. max 原问题和对偶的对偶约束之间的关系: min max 无限制变量 00=000行约

17、束 =000行约束 无限制变量 004.2 对偶问题的基本性质 1o 对称性:对偶问题的对偶是原问题。 2o 弱对偶性:若 x 是原问题的可行解, y 是对偶问题的可行解。则存在ybxcTT 。 3o 无界性:若原问题(对偶问题)为无界解,则其对偶问题(原问题)无可行解。 4o 可行解是最优解时的性质:设 x 是原问题的可行解, y 是对偶问题的可行解,当 ybxcTT = 时, yx , 是最优解。 5o 对偶定理:若原问题有最优解,那么对偶问题也有最优解;且目标函数值相同。 6o 互补松弛性:若 yx , 分别是原问题和对偶问题的最优解,则 0)(,0)( = cyAxbxAyTTT例 1

18、0 已知线性规划问题 5432132532min xxxxx += s.t. 43254321+ xxxxx -9- 33254321+ xxxxx 5,2,1,0 L= jxj已知其对偶问题的最优解为 5;53,54*2*1= zyy 。试用对偶理论找出原问题的最优解。 解 先写出它的对偶问题 2134max yyz += 2221+ yy 321 yy 53231+ yy 221+ yy 3321+ yy 0,21yy 将*2*1, yy 的值代入约束条件,得,为严格不等式;由互补松弛性得0*4*3*2= xxx 。因 0,*2*1yy ;原问题的两个约束条件应取等式,故有 43*5*1=

19、+ xx 32*5*1=+ xx 求解后得到 1,1*5*1= xx ;故原问题的最优解为 5;10001*= X 。 4.3 灵敏度分析 在以前讨论线性规划问题时,假定jiijcba , 都是常数。但实际上这些系数往往是估计值和预测值。如市场条件一变,jc 值就会变化;ija 往往是因工艺条件的改变而改变;ib 是根据资源投入后的经济效果决定的一种决策选择。因此提出这样两个问题:当这些系数有一个或几个发生变化时,已求得的线性规划问题的最优解会有什么变化;或者这些系数在什么范围内变化时,线性规划问题的最优解或最优基不变。这里我们就不讨论了。 4.4 参数线性规划 参数线性规划是研究jiijcb

20、a , 这些参数中某一参数连续变化时, 使最优解发生变化的各临界点的值。即把某一参数作为参变量,而目标函数在某区间内是这参变量的线性函数,含这参变量的约束条件是线性等式或不等式。因此仍可用单纯形法和对偶单纯形法进行分析参数线性规划问题。 5 投资的收益和风险 5.1 问题提出 市场上有 n种资产is ( ni ,2,1 L= )可以选择,现用数额为 M 的相当大的资金作一个时期的投资。这 n种资产在这一时期内购买is 的平均收益率为ir ,风险损失率为iq ,投资越分散,总的风险越少,总体风险可用投资的is 中最大的一个风险来度量。 -10- 购买is 时要付交易费, (费率ip ) ,当购买

21、额不超过给定值iu 时,交易费按购买iu计算。另外,假定同期银行存款利率是0r ,既无交易费又无风险。 ( %50=r ) 已知 4=n 时相关数据如表 1。 表 1 is ir (%) iq ip (%) iu (元 ) 1s 28 2.5 1 103 2s 21 1.5 2 198 3s 23 5.5 4.5 52 4s 25 2.6 6.5 40 试给该公司设计一种投资组合方案,即用给定资金 M ,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。 5.2 符号规定和基本假设 符号规定: is :第 i种投资项目,如股票,债券 iiiqpr , :分别为is 的平

22、均收益率,交易费率,风险损失率 iu :is 的交易定额 0r :同期银行利率 ix :投资项目is 的资金 a:投资风险度 Q:总体收益 基本假设: 1 投资数额 M 相当大,为了便于计算,假设 1=M ; 2 投资越分散,总的风险越小; 3 总体风险用投资项目is 中最大的一个风险来度量; 4 n种资产is 之间是相互独立的; 5 在投资的这一时期内,iiiqpr , ,0r 为定值,不受意外因素影响; 6 净收益和总体风险只受iiiqpr , 影响,不受其它因素干扰。 5.3 模型的分析与建立 1 总体风险用所投资的is 中最大的一个风险来衡量,即 ,2,1|max nixqiiL= 2

23、购买is 所付交易费是一个分段函数,即 交易费=iiiiiiiiuxupuxxp,而题目所给定的定值iu (单位:元)相对总投资 M 很少,iiup 更小,可以忽略不计,这样购买is 的净收益为iiixpr )( 。 3 要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型: -11- 目标函数为 =maxmin)(max0iiniiiixqxpr约束条件为 =+=nixMxpiniii,1,0,0)1(0L4 模型简化 a) 在实际投资中,投资者承受风险的程度不一样,若给定风险一个界限 a,使最大的一个风险 aMxqii ,可找到相应的投资方案。这样把多目标规划变成一个目标的线性规划

24、。 模型一 固定风险水平,优化收益 =niiiixpr0)(max s.t. =+=niiiiiinixMxpaMxq0,1,0,0,)1( Lb) 若投资者希望总盈利至少达到水平 k 以上,在风险最小的情况下寻求相应的投资组合。 模型二 固定盈利水平,极小化风险 maxminiixq s.t. =+=niiiiniiiinixMxpkxpr00,1,0,0,)1()(Lc) 投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益分别赋予权重 s( 10 s )和 )1( s , s称为投资偏好系数。 模型三 =niiiiiixprsxqs0)()1(maxmin s.t. =+niiiinixMxp0,2,1,0,0,)1( L 5.4 模型一的求解 模型一为: Txxxxxf ),)(185.0,185.0,19.0,27.0,05.0(min43210=

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 技术总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报