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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(地震灾区紧急资源的最优调度问题.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

地震灾区紧急资源的最优调度问题.docx

1、地震灾区紧急资源的最优调度问题A 题 资源的最优分配与调度问题摘要 近年来全球的大规模自然灾害频繁发生, 海啸、地震、飓风等,特别是 2008 年发生在我国四川汶川地区的大地震,是我国自建国以来影响非常大的一次灾 害,造成了大量的人员与财产损失。因此,在地震发生后,将救援队伍与紧缺物 资快速合理地分配调运到指定受灾区域对抗震救灾工作具有重要的意义。本文针对灾区的受灾程度及其地理位置的不同,采用了线性规划的 01 模型、 Floyd 最短路径法、匈牙利算法等,研究了在最短时间内实现对人力资源以 及物资资源的最优调度与分配方案。我们考虑到受灾地区之多, 受灾情况的不同, 以及救援队伍和救灾物资的限

2、 制,建立了线性规划中的 01 模型。对于 192 个特灾区,我们首先分配相应的 192支A类救援队伍进行急救,争取在最短时间内分配救援人员和物资到达灾区。 对于514个重灾区,我们先分配106支B类队伍去距离较远的106个重灾区施救, 接着附近剩余的412个重灾区分别由其他204支C类队伍进行施救,且每支队伍 负责救援 2 个灾区。然后借助于 Floyd 最短路径算法计算出救援队伍集结点到灾 区的最短路径, 进一步利用 Matlab 软件对数据进行计算和筛选, 去除异常数据, 得到合理有效的方案。由于灾区情况紧急,不能及时调度大量飞机进行救援,所以为了简化问题, 我们假设只用陆运去施救, 而

3、且陆运救灾队伍和物资都可以到达各个灾区, 由此 可建立最短路径模型。 我们采用了匈牙利算法求得路由矩阵, 并利用 Lingo 软件 计算,从而得出快速合理的调度方案。关键词 线性 0 1 规划; Floyd 最短路径法;匈牙利算法;权值最小1问题重述灾难无情人有情,一方有难,八方支援,灾难激发了全国同胞众志成城、携 手并肩救死扶伤、战胜困难、重建和谐生活、重建美好家园的决心和信心。当地 震、瘟疫等灾害事件发生时,如何在最短时间内实现对人力资源以及物资资源的 最优调度与分配是十分重要的问题。2008年我国的四川汶川地区发生的大地震 是我国自建国以来影响非常大的一次地震,造成了大量的人员与财产损失

4、。因此, 我们的救援队伍要以最快速度、最大资源、最大效率进行快速合理的救援。问题分析:(1) 参照附录中的表(2)和表(3)所给出的灾区的x和y坐标,由于受灾区的地理位置不同,而且受灾程度也不同,所以为了最大限度进行合理施救, 我们要由重到轻、由近及远依次救援,先要解决燃眉之急。即每个特灾区均分配 一支救援队伍施救,每两个重灾区至少分配一支救援队伍进行施救, 做出最优的救援方案。(2) 我们有500支救援队伍,分别分布在30个不同的集结点,根据,队伍 的集结点位置和灾区的地理位置,尽可能选择最短路径进行施救。由受灾区域的 道路网络示意图(图01/02 )可以看出,特灾区相对比较集中,故先调度

5、192支 救援队伍抄近路对其施救。然后根据受灾乡镇之间的道路是否通路的情况,再调 度剩余的308支队伍分别对各个灾区进行施救,争取在最短时间内,选取最短路 径到达受灾区,最快速度抢救被困群众,最大限度降低灾害损失。灾难不等人,我们更不能怠慢,灾难面前,人人有责。下图是部分特灾区,重灾区和救援队伍的分部示意图:*+ +图i:部分特灾区,重灾区和救援队伍的分部2模型假设(1)将每支A救援队伍看成是一个整体。(2)将每支B救援队伍看成是一个整体。(3)将每支C救援队伍看成是一个整体。(4)192个特灾区所辖的每个乡镇均分配一支 A类救援队伍。(5)408个重灾区所辖的邻近的两个区县都均分配一支 B类

6、救援队伍。(6)106个重灾区所辖的每个乡镇均分配一支 C类救援队伍(7)分配好的救援队伍到达各个乡镇之间的道路无阻塞。(8)紧急情况之下,没有空救,只有陆运救援队伍。(9)所有特灾区灾情差不多,所有重灾区灾情差不多。(10)每支救援队伍到达灾区的速度是一样的。3符号说明m救援队伍的数量;n :受灾地区的个数;A:救援某一个特灾区的队伍类型;B: 救援某两个重灾区的队伍类型;C: 救援某一个重灾区的队伍类型;x ij (i=1,2, , ,m;j=1,2, , ,n ): 决策变量;c ij (i=1,2, , ,m;j=1,2, , ,n ): 第 i 支队伍救援第 j 个灾区;d ij (

7、i=1,2, , ,m;j=1,2, , ,n ): 第 i 支队伍救援第 j 个灾区的最短距离;G(V, E):灾区网络图,V是灾区点的集合,E是连接每两个灾区的道路 边的集合。4模型建立与求解4.1模型建立根据各个灾区的地理位置, 将其简化为图模型, 即以各个灾区之间相通的道 路建立网络图G (V,E),V是灾区点的集合,共有706个灾区,则就有706个 点。E是连接每两个灾区的道路边的集合,共有706条边,每条边赋予一个权值, 即就是灾区之间的距离。 考虑到受灾地区之多, 受灾情况的不同, 以及救援队伍 和救灾物资的限制,我们依据模型I的建立,我们首先分配192支A类救援队伍 对 192

8、 个特灾区进行急救, 争取在最短时间内分配救援人员和物资到达灾区。 然 后我们再分配106支B类队伍去距离较远的106个重灾区施救,接着附近剩余的 406个重灾区分别由其他204支C类队伍进行施救,且每支队伍负责救援2个灾 区。4.1.10-1 规划模型:特灾区救援:192 192目标函数:min z= v CijXiji J j J192约束条件:救援特灾区的 A类队伍是1 192个,即1i192.相应的特灾区 也是 1 192,即卩 1j192.重灾区救援:区也是 1 514,即 1j514.4.1.2匈牙利算法的基本原理:它们分布在方阵的不同行、不同列上,并且这些元素之和为最小。而要使这

9、些元素之和为最小, 就要使其中的每一个元素尽可能的小最好这些元素都是 其所在行和列的最小元素。而指派问题的最优解又有这样的性质: 如果从分配问题效率矩阵的一行 (列) 各元素中分别减去该行(列)的最小元素,得到新的矩阵求得最优解相同。由于新矩阵中每行、每列的最小元素均为“ 0”,因此,求原指派问题的最 优解就转化为在新矩阵中找出 n 个分布在不同行、不同列上的“ 0”元素(简称 为独立 0 元素),这些独立 0 元素就是新矩阵的最优解, 找到新矩阵的最优解也 就找到原矩阵的最优解了。要在新的矩阵中找到几个分布在不同行,不同列上的“ 0”元素,前提首先是在新矩阵中确定存在几个这样的“ 0”元素。

10、那么,如何判断在新矩阵中是否 存在 n 个这样的独立 0 元素呢?考尼格证明了这样一个定理: “覆盖所有” 0“元 素的最少直线数等于矩阵中独立元素 0的最多个数。 利用这一定理,就可以通 过寻找“能覆盖所有 0元素的最少直线” 来确定新的矩阵中独立 0元素的具体数 量。倘若新矩阵中独立0元素的数量小于矩阵的阶数n,就得继续对新矩阵进行 化简,直到有了 n 个独立的 0 元素为止, 找到这 n 个独立元素也就找到了救援队 伍指派问题的最优解。4.2 模型求解本题是最优分配问题,众所周知,此问题属于 NP 完全问题,即求解没有多 项式时间算法.(Non-deterministic Polynom

11、ial )显然本问题更应属于 NP完全问题. 有鉴于此一定要针对问题的实际特点寻找简便方法, 想找到解决此类问题 的一般方法是不现实的,对于规模较大的问题可使用近似算法来求得近似最优 解。4.2.1Matlab 软件处理数据将题目所给出的表( 1)、(2)、(3)、(4)中的各个数据输入到 Matlab 软件编辑窗口中,根据表( 2)和表(3)给出的每个灾区的地理坐标,计算出图中每条边的权值并按照权值升序的顺序排列,形成能够显示边信息的矩阵 K。因为救援队伍分散在不同的集结点,故将每支救援队伍分配到与它距离最近的受灾 区域,并假设存在任一条通路,可以使救援队伍到达。422 Floyd算法计算任

12、意两点之间的距离(1) 按照Floyd最短路径算法(附录一),计算出网络图 G中每个顶点到 其它顶点的最短路径矩阵d和路由矩阵r,部分如下矩阵d和路由矩阵r如下:(2)表1:最短路径d12345678910110.007.242.663.524.107.071.178.499.421E+00E+05E+05InfE+05E+05E+05E+06InfE+05E+057.240.009.903.721.131.684.801.592.512E+05E+00E+05InfE+05E+06E+04E+05InfE+05E+052.669.900.006.181.449.731.441.111.213

13、E+05E+05E+00InfE+05E+05E+05E+06InfE+06E+060.004.264InfInfInfE+00InfInfInfInfE+05InfInf3.523.726.180.007.613.568.194.975.905E+05E+05E+05InfE+00E+05E+05E+05InfE+05E+054.101.131.447.610.001.121.581.261.356E+05E+06E+05InfE+05E+00E+06E+06InfE+06E+067.071.689.733.561.120.004.631.422.357E+05E+04E+05InfE+05

14、E+06E+00E+05InfE+05E+051.174.801.448.191.584.630.003.212.298E+06E+05E+06InfE+05E+06E+05E+00InfE+05E+054.260.009InfInfInfE+05InfInfInfInfE+00InfInf8.491.591.114.971.261.423.210.009.2710E+05E+05E+06InfE+05E+06E+05E+05InfE+00E+049.422.511.215.901.352.352.299.270.0011E+05E+05E+06InfE+05E+06E+05E+05InfE+

15、04E+001.432.8312InfInfInfE+05InfInfInfInfE+05InfInf1.291.221.321.261.331.221.271.241.2513E+07E+07E+07InfE+07E+07E+07E+07InfE+07E+0714InfInfInfInfInfInfInfInfInfInfInf15InfInfInfInfInfInfInfInfInfInfInf16InfInfInfInfInfInfInfInfInfInfInf17InfInfInfInfInfInfInfInfInfInfInf18InfInfInfInfInfInfInfInfInf

16、InfInf19InfInfInfInfInfInfInfInfInfInfInf20InfInfInfInfInfInfInfInfInfInfInf21InfInfInfInfInfInfInfInfInfInfInf22InfInfInfInfInfInfInfInfInfInfInf23InfInfInfInfInfInfInfInfInfInfInf表2:路由矩阵r153453559557274777797711341611911123456781210111714517797733343633933525455710910101111114111111891111123125678

17、910117774777119101110101041010108910111234567891011777477779771234567891011123456789101112345678910111234567891011123456789101112345678910111234567891011123456789101112345678910111234567891011(2) 在矩阵K中,找到前面距离较短的204条边,因为K中边的长度是按 照从小到大的顺序排列的。将这204条边的每条边的两个端点看作一个整体, 则相当于B类救援队伍去救由两个端点所组成的一个整体灾区, 这就简化成了共

18、有502支队伍救援502个重灾区。再将502支队伍从第一个集结点开始依次编号, 此问题就可以看作是匹配问题,使得边权值之和最小,即救援路径最短,利用匈 牙利算法便可对此问题进行求解。(3) 匈牙利算法是实现二部图的分配问题的方法,因此首先要先建立每个 队伍到达各个灾区的最短距离矩阵。本次求解根据假设,可以利用、软件编写程序(附录2),建立救援队伍i (仁i=502)和灾区j(0=vj=706)之间的 最短距离矩阵si(附录3)。由于匈牙利算法要求所输入的矩阵是方阵,而 si矩阵 是706*502的行列不等矩阵,贝U需要删除掉204行,即去除204个顶点,再将502 个灾区重新排号。为降低求解的

19、复杂度,删除矩阵K勺第一列的前204个顶点所对 应的204行,则得到502*502的一个方阵,再将此方阵转置得到矩阵sii,即可方便 求解。程序如下:for i=1:204si(K(i,1),:)=i=i+1;end( 4)匈牙利算法求解步骤(程序见附录 4):设图G=(X, Y , E)是一个二元图,M是任意一个匹配:Step1: 令 S=kkong,T=yihuo ;转 Step2 ;Step2:若M饱和X/S的每个顶点,则M是最大匹配,否则,取M-非饱和点u X/S,令 S:=SU u;转 Step3 ;Step3:若 N(S)=T,转 Step6,否则取 y N(S)/T。若 y 是-

20、M 饱和点,转 Step4, 否则转 Step5。Step4:存在x X使得(y, x) M,则令:S:=SU x, T:= T U y, 转 Step3。Step5:u-y 路是 M-增广路,设为 P,并令 M:=MyihuoP,转 Step1;Step6:若X/S=kong,贝U M是最大匹配,否则转Step2。(5)打开匈牙利算法的程序,在 Comma nd Win doW中输入matchi ng , cost=Hungarian(sii) ,调用编写的匈牙利函数,返回的 matching 矩阵是一个 大小与 sii 完全相同的 0, 1 矩阵,其中 0 元素表示 sii 中相同位置的元

21、素未被 选中,1表示A中相同位置的元素被选中。由于 matchi ng矩阵中0元素较多, 为了能够更加清楚显示某个救援队伍营救具体的灾区的情况,编写函数如下:row,col=find(matching=1);final=row,colfinal 矩阵中显示的就是某个救援队伍营救某一个灾区的情况。 cost 是指救 援所需要经过的最短距离。 经过 Matlab 软件的计算,可以等到 cost=7.7266e+075模型评价本文主要采用 Floyd 最短路径算法,匈牙利最优分配分配算法, 0-1 整数规 划模型等对地震灾区紧急资源的最有调度问题进行研究, 其中,用 Floyd 算法并 结合就近原则

22、进行研究, 同时利用最优分配的匈牙利算法, 较好的对救援队和灾 区之间进行了分配,并且可以根据路由矩阵,最快的达到灾区,假设合理,结果 较好。但是本文也存在着一些不足之处, 模型假设中一个救援队伍只能救一个特灾 区,一个救援队伍可以救两个重灾区, 这一条假设存在着很大的特殊性, 若非政 策要求,不然这只是可能性的一种,应该在队伍中做一个有效的分配。其次,过 程中用到的近似和等价思想可能对结果产生一定的偏差。 另外,模型求解中将灾 区重新排列后,在最后的方案中没有做进一步的将灾区重新还原成原来的序号。6模型改进本文求解的假设之一是建立在每条道路交通都完好的情况下, 也就是每个救 援队都能顺利的通

23、过这条道路,达到灾区,但是,地震所造成的危害是巨大的, 往往会导致道路发生损害, 那么就不能按照原来设定好的路径的方式, 那么就需 要改变路径,在本次求解中我们已经根据 floyd 算法得到每两个点之间的最短路 径矩阵 d 和路由矩阵 r ,当有道路发生损害时,即图中某条边缺少,此时就要重 新计算边权的矩阵,用 Dijkstra 算法计算出这一点道所有点的最短距离矩阵和 路由矩阵,再按照前面所讲述的方法得到新的路径。参考文献1姜启源,谢金星,叶俊数学规模(M):北京.高等教育出版社,2003.2袁新生丄ingo和Excel在数学建模中的应用M.北京.科学出版社:2007。3王琦.MATLAB基

24、础与应用实例集萃I.北京:人民邮电出版社,2007.4谭用基,蔡志杰 . 数学规模 M. 上海. 复旦大学出版社 .2005.5孙勇.基于网络模型的应急资源优化配置 J. 计算机工程。 1:290-292,2011 卓金武.Matlab在数学建模中的应用(M :北京北京航空航天出版社,2011.47王海英,黄强,李传涛,褚宝增.图论算法及其Matlab的实现(M :北京. 北京航空航天出版社,8 n-algorithm附录一 Floyd 程序function d,r=floyd(a)n=size(a,1);d=a;for i=1:nfor j=1:nr(i,j)=j;endend%rfor k

25、=1:nfor i=1:nfor j=1:nif d(i,k)+d(k,j)d(i,j) d(i,j)=d(i,k)+d(k,j); r(i,j)=r(i,k)endendendkdrend附录二:匈牙利算法程序function Matching,Cost = Hungarian(Perf)Matching = zeros(size(Perf);num_y = sum(isinf(Perf),1);num_x = sum(isinf(Perf),2);x_con = find(num_x=0);y_con = find(num_y=0);P_size = max(length(x_con),l

26、ength(y_con);P_cond = zeros(P_size);P_cond(1:length(x_con),1:length(y_con) = Perf(x_con,y_con);if isempty(P_cond)Cost = 0;returnendEdge = P_cond;Edge(P_cond=Inf) = 0;cnum = min_line_cover(Edge);Pmax = max(max(P_cond(P_cond=Inf);P_size = length(P_cond)+cnum;P_cond = ones(P_size)*Pmax;P_cond(1:length(x_con),1:length(y_con) = Perf(x_con,y_con);exit_flag = 1;stepnum = 1;while exit_flagswitch stepnumcase 1P_cond,stepnum = step1(P_cond);case 2r_cov,c_cov,M,stepnum = step2(P_cond);case 3c_cov,stepnum = step3(M,P_si

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

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