ImageVerifierCode 换一换
格式:PDF , 页数:799 ,大小:4.63MB ,
资源ID:3215192      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3215192.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB数学建模算法及实例分析.pdf)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB数学建模算法及实例分析.pdf

1、-1-第一章第一章 线性规划线性规划 1 线性规划 在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支数学规划,而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。自从 1947 年 G.B.Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。1.1 线性规划的实例与定义 例 1 某机床厂生产甲、乙两种机床

2、,每台销售后的利润分别为 4000 元与 3000 元。生产甲机床需用BA、机器加工,加工时间分别为每台 2 小时和 1 小时;生产乙机床需用CBA、三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为A机器 10 小时、B机器 8 小时和C机器 7 小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?上述问题的数学模型:设该厂生产1x台甲机床和2x乙机床时总利润最大,则21,xx应满足(目标函数)2134maxxxz+=(1)s.t.(约束条件)+0,781022122121xxxxxxx (2)这里变量21,xx称之为决策变量,(1)式被称为问题的目标函数,(2)中的几

3、个不等式是问题的约束条件,记为 s.t.(即 subject to)。由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。而选适当的决策变量,是我们建立有效模型的关键之一。1.2 线性规划的 Matlab 标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性规划的标准形

4、式为 xcxT min s.t.=ubxlbbeqxAeqbAx 其中c和x为n维列向量,A、Aeq为适当维数的矩阵,b、beq为适当维数的列向量。-2-例如线性规划 bAxxcxT s.t.max 的 Matlab 标准型为 bAxxcxT s.t.min 1.3 线性规划问题的解的概念 一般线性规划问题的(数学)标准型为=njjjxcz1max (3)s.t.=njxmibxajnjijij,2,10,2,11LL (4)可行解可行解 满足约束条件(4)的解),(21nxxxxL=,称为线性规划问题的可行解,而使目标函数(3)达到最大值的可行解叫最优解。可行域可行域 所有可行解构成的集合称

5、为问题的可行域,记为R。1.4 线性规划的图解法 024681 001234567891 0 x 2=72 x 1+x 2=1 0 x 1+x 2=8z=1 2(2,6)图 1 线性规划的图解示意图 图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来求解例 1。对于每一固定的值z,使目标函数值等于z的点构成的直线称为目标函数等位线,当z变动时,我们得到一族平行直线。对于例 1,显然等位线越趋于右上方,其上的点具有越大的目标函数值。不难看出,本例的最优解为Tx)6,2(*=,最优目标值26*=z。从上面的图解过程可以看出并不难证明以下断言:(1)可行域R可能会出现多种情况。

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

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

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

9、inprog 可以看到所有的函数调用形式),如:x,fval=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)这里 fval 返回目标函数的值,LB 和 UB 分别是变量x的下界和上界,0 x是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;12;aeq=1,1,1;beq=7;x=linprog(-c,a,b,aeq,beq,z

10、eros(3,1)value=c*x(ii)将M文件存盘,并命名为example1.m。(iii)在Matlab指令窗运行example1即可得所求结果。例3 求解线性规划问题 32132 minxxxz+=+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 可以转化为线性规划的问题 很多看起来不是线性规划的问题也可以通过变换变成线性规划的问题来解决。如:例4 规划问题为 bAxxxxn+t.s.|min21L 其中Tnxxx1L=,A和b为

11、相应维数的矩阵和向量。要把上面的问题变换成线性规划问题,只要注意到事实:对任意的ix,存在0,iivu满足 iiivux=,iiivux+=|事实上,我们只要取2|iiixxu+=,2|iiixxv=就可以满足上面的条件。这样,记Tnuuu1L=,Tnvvv1L=,从而我们可以把上面的问题变成 =+niiivu1)(min 0,)(t.s.vubvuA 例 5|maxminiyxii 其中iiiyx=。对于这个问题,如果我们取|max0iyix=,这样,上面的问题就变换成 -5-0minx 0011,t.s.xyxxyxnnL 此即我们通常的线性规划问题。2 运输问题(产销平衡)例 6 某商品

12、有m个产地、n个销地,各产地的产量分别为maa,1L,各销地的需求量分别为nbb,1L。若该商品由i产地运到j销地的单位运价为ijc,问应该如何调运才能使总运费最省?解:引入变量ijx,其取值为由i产地运往j销地的该商品数量,数学模型为 =minjijijxc11min s.t.=0,2,1,1,11ijmijijnjiijxnjbxmiaxLL 显然是一个线性规划问题,当然可以用单纯形法求解。对产销平衡的运输问题,由于有以下关系式存在:=miinjnjmiijminjijjaxxb111111 其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由康托洛维奇和希奇柯克

13、两人独立地提出,简称康希表上作业法)。3 指派问题 3.1 指派问题的数学模型 例 7 拟分配n人去干n项工作,每人干且仅干一项工作,若分配第i人去干第j项工作,需花费ijc单位时间,问应如何分配工作才能使工人花费的总时间最少?容易看出,要给出一个指派问题的实例,只需给出矩阵)(ijcC=,C被称为指派问题的系数矩阵。引入变量ijx,若分配i干j工作,则取1=ijx,否则取0=ijx。上述指派问题的数学模型为 =ninjijijxc11min s.t.=njijx11 -6-=niijx11 1 0或=ijx 上述指派问题的可行解可以用一个矩阵表示,其每行每列均有且只有一个元素为1,其余元素均

14、为 0;可以用n,1L中的一个置换表示。问题中的变量只能取 0 或 1,从而是一个 0-1 规划问题。一般的 0-1 规划问题求解极为困难。但指派问题并不难解,其约束方程组的系数矩阵十分特殊(被称为全单位模矩阵,其各阶非零子式均为1),其非负可行解的分量只能取 0 或 1,故约束10或=ijx可改写为0ijx而不改变其解。此时,指派问题被转化为一个特殊的运输问题,其中nm=,1=jiba。3.2 求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家 Konig 提出的更为简便的解法匈牙利算法。算法主要依据以下事实:如果系数矩阵)(ijcC=一行(或一列)中每一元素都加上或减去

15、同一个数,得到一个新矩阵)(ijbB=,则以C或B为系数矩阵的指派问题具有相同的最优指派。例 8 求解指派问题,其系数矩阵为 =16221917171822241819211722191516C 解 将第一行元素减去此行中的最小元素 15,同样,第二行元素减去 17,第三行元素减去 17,最后一行的元素减去 16,得 =06310157124074011B 再将第 3 列元素各减去 1,得 =*20531005711407301B 以2B为系数矩阵的指派问题有最优指派 43124321 由等价性,它也是例 7 的最优指派。有时问题会稍复杂一些。例 9 求解系数矩阵C的指派问题 -7-=6107

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1