一种基于线性规划的多目标多资源分配模型建立方法与流程

文档序号:12906598阅读:508来源:国知局
一种基于线性规划的多目标多资源分配模型建立方法与流程
本发明涉及多目标多资源分配的研究与应用领域,具体涉及一种应急救援中基于线性规划的多目标多资源分配模型建立方法。
背景技术
:近些年来,随着城市人口、产业高度集中,地球上发生的诸如地震、海啸、洪水、森林火灾等自然灾害,不仅造成了巨大的财产损失,还严重威胁到了人们的生命安全。随着科技水平的不断发展,运用先进的科学技术在灾害发生后的第一时间进行合理有效的救援,是灾后减少人员伤亡和经济财产损失的重要途径。如今,对于自然灾害应急救援的研究已经受到各国研究人员的重视。因为应急救援对救援任务的执行时间有着严格的限制,强调在抢救生命的“黄金时间”即72小时内进行高效率的救援行动。所以需要合理有效的方案来分配有限的救援资源(包括救援人员、工具、机械等)以保证救援资源可以被充分、合理地利用,从而确保救援行动能最大化地减少灾害引发的人员伤亡和经济财产损失。目前,国内外已经在资源分配问题上进行了大量的研究。现有的资源分配方法中,大部分是采用了资源和任务的一对一分配方式,并且考虑了多个分配目标之间的比重问题。但是,缺乏考虑多个资源组合的情况,并且是在任务信息已知的情况下进行分配的。因此,这些方法不能处理动态的、复杂的救援任务;还有一些分配方法增加了对救援任务的不同需求和救援资源之间的差异的考虑。但是依然没有考虑多个资源组合的情况,并且同样不能处理动态的、复杂的救援任务;再有一些分配方法在之前的基础上增加了解决救援任务和救援资源的动态性问题的机制。但是,没有考虑到救援资源分配中的多目标规划问题。总体来看,现有的资源分配方法都不能兼顾资源组合分组、多目标的资源分配和救援资源和救援任务的动态性三方面,所以通过现有的资源分配方法并不能得到一份适用度更好、灵活性较强和有效性更佳的分配方案。如何设计资源分配模型使得到的分配方案能够解决比较复杂的且具备动态情况的救援问题有待进一步研究。技术实现要素:针对上述尚没有解决的关键问题,本发明提出了一种基于线性规划的多目标多资源分配模型建立方法,目的是为应急救援任务提供一种高效、可行的资源分配方案,从而能够解决较为复杂且具有救援任务和救援资源动态情况的救援问题。为实现上述目的,本发明采用如下的技术方案:一种应急救援中基于线性规划的多目标多资源分配模型建立方法,其特征在于,包括以下步骤:步骤1、初始化模型参数和集合;步骤2、在救援资源集合中,找出所有救援资源的所有的组合分组;步骤3、利用线性规划方法,计算当前阶段救援资源的最优组合分组和分配方案;步骤4、更新模型参数和集合;步骤5、迭代步骤2-4,直至救援任务集合为空,结束迭代。作为优选,所述模型中,救援任务集合用task={task1,task2,…,taskm}表示,其中taski表示第i个救援任务。救援资源集合用res={res1,res2,…,resn}表示,其中resj表示第j个救援资源。作为优选,步骤1初始化模型参数和集合操作包括如下:步骤1-1、初始化时间参数curtime为救援开始时间0,即curtime=0;步骤1-2、初始化分配方案集合allocation为空集,即allocation={};步骤1-3、初始化救援任务集合task为当前所有救援任务;步骤1-4、初始化救援资源集合res为当前所有救援资源。作为优选,,步骤1-3所述救援任务集合用task={task1,task2…,taskm}表示。救援任务taski可以用taski=<id,dli>表示,其中id表示taski的编号;dli表示taski的截止时间,即在dli之后对taski的执行被视为无效。作为优选,步骤1-4所述救援资源集合用res={res1,res2,…,resn}表示。救援资源resj可以用resj=<id,cj,rj>表示,其中id表示resj的编号;cj={cj,1,cj,2,…,cj,m}表示resj单独执行各个救援任务所花费的时间;其中cj,i表示resj单独执行taski所花费的时间;rj={rj,1,rj,2,…,rj,m}表示resj单独执行各个救援任务的效果;其中rj,i表示resj执行taski的效果。作为优选,步骤2找出所有救援资源的所有组合分组的方法包括如下:步骤2-1、初始化救援资源组合分组集合rg为空集,即rg={};步骤2-2、不断将救援资源集合res中的救援资源与资源组合分组集合rg中的元素组合,直至res中的所有救援资源都加入到rg中,迭代结束;作为优选,步骤2-2所述救援资源组合分组集合用rg={rg1,rg2,…,rga}表示,其中rgk表示第k个救援资源组合分组,可以用rgk={gk,1,gk,2,…,gk,q}表示,其中gk,p表示第k个救援资源组合分组中的第p个资源组,可以用gk,p={resk,p,1,resk,p,2,…,resk,p,s}表示,其中resk,p,l表示第k个资源分组中的第p个资源组中的第l个救援资源;作为优选,步骤2-2所述救援资源集合中的rg中的组合分组的方法是:首先,将res中的救援资源resj作为一个单独的资源组分别加入到rg中已有的各个组合分组中。另外,将其作为一个独立的救援资源分别添加进rg中已有的各个组合分组的各个资源组中。作为优选,步骤3利用线性规划方法,计算当前阶段救援资源的最优组合分组和分配方案操作包括如下:步骤3-1、根据救援资源的组合分组集合rg,通过线性规划方法计算出rg中每一个救援资源组合分组rgk的分配方案ak以及目标值objk;步骤3-2、从所有资源组合分组rgk的目标值objk中,找出目标值最大的分配方案ak(即max(objk))作为当前阶段的最优分配方案abest,记录救援资源最优的组合分组rgk以及分配方案abest;步骤3-3、计算最优分配方案abest中各个救援任务的执行时间uti,找出最长的执行时间(即max(uti)),并记录在utmax中。作为优选,步骤3-1所述的分配方案ak={ak,1,1,ak,1,2,…,ak,q,m},其中ak,p,i表示是否分配资源组gk,p资源组去完成救援任务taski。ak,p,i=1表示分配gk,p去完成taski,ak,p,i=0表示不分配gk,p去完成taski;当ak,p,i=1时,uti表示gk,p执行taski的时间,计算方法为其中,c(k,p,l),i表示gk,p中第l个救援资源单独执行taski的时间,s表示gk,p中救援资源的数量;uri表示gk,p执行taski的效果,计算方法为其中r(k,p,l),i表示gk,p中第l个救援资源单独执行taski的效果。作为优选,步骤3-1所述的线性规划方法可以表示如下:curtime+uti≤dli(4)其中,线性规划的目标函数(即式1)包括三个不同的规划目标:(1)表示效果优先目标;(2)表示效率优先目标;(3)表示执行时间最短目标。α(效果优先)、β(效率优先)和γ(执行时间最短)表示三个目标之间的比重值,α,β,γ∈[0,1]且α+β+γ=1。η1表示效率优先平衡系数,其计算方法为η2表示执行时间平衡系数,其计算方法为而线性规划的限制条件包括,一个资源组只能执行一个救援任务(式3);一个救援任务只能被一个资源组执行(式4)和救援任务必须在其截止时间前被完成(式5)。作为优选,步骤3-2所述的资源组合分组的目标值objk的计算方法为作为优选,步骤4更新模型参数和集合操作包括如下:步骤4-1、curtime推进到本阶段救援任务的完成时间,即curtime=curtime+utmax;步骤4-2、将本阶段最优分配方案abest放入allocation,即allocation=allocation∪abest;步骤4-3、更新救援任务集合task;步骤4-4、更新救援资源集合res;作为优选,步骤4-3中更新救援任务集合task的操作的具体步骤包括如下:步骤4-3-1、根据本阶段分配方案abest,将已经完成的救援任务从task中去掉;步骤4-3-2、根据当前时间curtime,将过期的救援任务从task中去掉;步骤4-3-3、将在任务完成期间,新发现的救援任务加入到task中。作为优选,步骤4-3-1中从task中去掉已完成的救援任务可表示为task=task\taski,ak,p,i∈abest。作为优选,步骤4-3-2中从task中去掉已过期的救援任务的操作可表示为task=task\taski,dli≤curtime。作为优选,步骤4-3-3中在task中加入新的救援任务的操作可表示为task=task+taski,dli>curtime。作为优选,步骤4-4中更新救援资源集合res的操作的具体步骤包括如下:步骤4-4-1、将在任务完成期间,新到达的救援资源加入到res中;步骤4-4-2、更新res中新加入的救援资源resj的救援任务执行时间cj和救援任务执行效果rj。步骤4-4-3、将根据新加入的救援任务,更新res中每个救援资源resj的救援任务执行时间cj和救援任务执行效果rj。作为优选,步骤4-4-1中在res中加入新的救援资源的操作可表示为res=res+resj,作为优选,步骤4-4-3中更新res中resj的cj和rj的操作可表示为,对于每个新加入的taski,每个resj更新操作如下cj=cj+cj,i且rj=rj+rj,i。附图说明图1为本基于线性规划的多目标多资源分配模型的核心流程图;图2为单目标资源分配方案结果对比图;图3为多目标资源分配方案结果对比图;图4为不同目标比重下任务执行阶段数量对比图;具体实施方式下面结合附图,通过实例进一步说明本发明,但不以任何方式限制本发明的范围。如图1所示,本发明实施例提供一种基于线性规划的多目标多资源分配模型建立方法,其核心部分原理是:将所有救援资源进行组合分组,建立资源组合分组集合。然后通过多目标线性规划的方法找出救援资源的最优组合分组和分配方案。多目标多资源分配模型建立方法的具体过程包括:第一步:初始化模型的当前时间点curtime,分配方案集合allocation,救援任务集合task和救援资源集合res,具体方法如下:1.将当前时间点curtime初始化为0,即curtime=02.将分配方案集合allocation初始化为空集,即allocation={};3.将所有救援任务放入救援任务集合task中,如task={task1,task2,task3,task4,task5}表1为救援任务的实例。表1救援任务实例taskiiddlitask1120task2230task331task4410task55504.将所有救援资源放入救援任务集合res中,如res={res1,res2,res3},表2为救援资源的实例。表2救援资源实例resiidcjrjres11{5,3,2,1,4}{4,3,2,5,1}res22{3,2,3,2,1}{4,4,3,2,1}res33{4,2,4,5,1}{5,3,2,1,4}第二步:在救援资源集和res中,找出所有救援资源的所有的组合分组,存入资源组合分组集rg中。具体方法如下:1.将救援资源组合分组集合rg初始化为空集,即rg={};2.从救援资源的集合res中的第一个救援资源res1开始,不断的将救援资源resj和rg中的元素组合。直至res中的所有resj都加入到rg,迭代结束。扩充方法为首先,将resj作为一个单独的资源组分别加入到rg中已有的各个组合分组中。另外,将其作为一个独立的救援资源分别添加进rg中已有的各个组合分组的各个资源组中。扩充后的rg={rg1,rg2,…,rga}表示,其中rgk表示第k个救援资源组合分组,可以用rgk={gk,1,gk,2,…,gk,q}表示,其中gk,p表示第k个救援资源组合分组中的第p个资源组,可以用gk,p={resk,p,1,resk,p,2,…,resk,p,s}表示,其中resk,p,l表示第k个资源分组中的第p个资源组中的第l个救援资源;表3为救援资源集合res={res1,res2,res3}的组合分组生成实例。表3救援资源组合分组实例第三步:根据救援资源组合分组集合rg,利用线性规划方法,计算当前阶段救援资源最优组合分组和分配方案abest。1.根据得到的救援资源所有的组合分组集合rg,通过线性规划方法计算出每个救援资源组合分组rgk的最佳分配方案ak以及目标值objk。(1)线性规划的表达式如下:curtime+uti≤dli其中,α、β和γ效果优先、效率优先和执行时间最短三个优化目标的比重系数,α,β,γ∈[0,1]且α+β+γ=1。ak,p,i表示一个资源组gk,p是否被分配去执行一个救援任务taski。uti表示gk,p执行taski的时间,计算方法为其中,c(k,p,l),i表示gk,p中第l个救援资源单独执行taski的时间,s表示gk,p中救援资源的数量;uri表示gk,p执行taski的效果,计算方法为其中r(k,p,l),i表示gk,p中第l个救援资源单独执行taski的效果。η1表示效率优先平衡系数,其计算方法为η2表示执行时间平衡系数,其计算方法为对于表3rg中的组合分组{res1}{res2,res3},资源组合分组可以表示为rg4={g4,1,g4,2},g4,1={res1},g4,2={res2,res3},而通过表1、2中的数值可以计算uti和uri的值由表4表示:表4uti和uri数值实例utitask1task2task3task4task5g4,1={res1}53214g4,2={res2,res3}1.711.71.40.5uritask1task2task3task4task5g4,1={res1}43251g4,2={res2,res3}4.53.52.51.52.5通过线性规划,我们得到的最佳分配方案是一系列的ak,p,i的值来表示,将资源组分配给哪个资源。表5为线性规划结果的实例。表5线性规划结果实例task1task2task3task4task5g4,1={res1}a4,1,1=0a4,1,2=0a4,1,3=0a4,1,4=1a4,1,5=0g4,2={res2,res3}a4,2,1=0a4,2,2=1a4,2,3=0a4,2,4=0a4,2,5=0从表5中我们可以看出,rg4的最佳分配结果为将res1分配给task4,将res2和res3分配给task2(2)目标值objk计算方法如下如根据计算rg中5种救援资源组合分组的分配方案的目标值如表6所示表6线5种分配方案的目标值rg1rg2rg3rg4rg5{res1,res2,res3}{res1,res2}{res3}{res1,res3}{res2}{res1}{res2,res3}{res1}{res2}{res3}objk1.31.10.61.50.42.rg比较所有分配方案的目标值obji,将obji最大的的分配方案ak作为当前阶段的分配方案abest;根据表6中的实例,我们选择rg4={{res1},{res2,res3}}作为当前阶段最优分配方案。3.计算最优分配方案abest中各个救援任务的执行时间uti,找出最长的执行时间(即max(uti)),并记录在utmax中。根据表4中的数据,utmax=1;第四步:更新当前时间点curtime、分配方案集合allocation、救援任务集合task和救援资源集合res。1.curtime推进到本阶段救援任务的完成时间,即curtime=0+1=1;2.将本阶段得到的最优分配方案abest,放入allocation中,即allocation={{res1}→task4,{res2,res3}→task2};3.更新救援任务集合task;(1)根据本阶段分配方案abest,将已经完成的救援任务从task中去掉,即task=task\{task2,task4}={task1,task3,task5};(2)根据当前时间curtime,将过期的救援任务从task中去掉,根据表1可以看出,task3的截止时间为dl3=1=curtime,所以task=task\{task3}={task1,task5};(3)将在任务完成期间,新的救援任务加入到task中。在救援任务完成过程中,task6和task7被发现,所以task=task+task6+task7={task1,task5,task6,task7};4.更新救援资源集合res;(1)将在任务完成期间,新到达的救援资源加入到res中;在救援任务完成过程中,res4到达,所以res=res+res4={res1,res2,res3,res4};(2)更新res中新加入的救援资源resj的救援任务执行时间cj和救援任务执行效果rj;即更新c4。(3)将根据新加入的救援任务,更新res中每个救援资源resj的救援任务执行时间cj和救援任务执行效果rj。即更新c1,6、c1,7、c2,6、c2,7、c3,6、c3,7、c4,6、c4,7和r1,6、r1,7、r2,6、r2,7、r3,6、r3,7、r4,6、r4,7。第五步:迭代步骤2-4,直至救援任务集合为空,结束迭代。为了检验本发明的性能,本发明设计了一些救援任务和救援资源,并对这些救援任务和救援资源进行分配。表7给出了实验的参数设置。表7实验参数设置参数值域救援任务个数50个救援任务截止时间27~70个时间段救援资源个数5个单独执行救援任务的时间1~5个时间段单独执行救援任务的效果1(最差)~5(最佳)为了验证我们的模型在多目标救援资源分配中的效果,我们还通过调整α(效率最优)、β(效果最优)和γ(时间最短)值来调整三种不同分配目标间的比重。本实验中,α、β和γ的值如表8所示:表8α、β、γ比重值配置在不同的α、β和γ的比重下,我们将计算和对比救援任务平均执行效果avg(uri)、阶段内救援任务平均执行数量avg(∑ak,p,i)以及任务平均执行时间avg(uti)。本发明提出了一种基于线性规划的多目标多资源分配模型建立方法。通过对比不同的α、β和γ的比重下,模型计算得到的资源分配方案的救援任务平均执行效果、阶段内救援任务平均执行数量和任务平均执行时间,我们得出如下结论:(1)对于单目标的资源分配方案(α=1,β=0,γ=0和α=0,β=1,γ=0),以效果为优先目标时,模型会优先分配资源去执行效果最优的任务。而在以效率为优先目标时,模型以完成更多的任务为主要目标。如图2所示,图中横坐标为实验的三个表现指标:任务平均执行效果、阶段内平均执行任务数量和任务平均执行时间。而纵坐标则是各项指标的数据值。(2)对于多目标资源分配方案(α=0.5,β=0,γ=0.5和α=1/3,β=1/3,γ=1/3),执行时间最短是一个更偏向于执行效率的分配目标。如图3所示,图中横坐标为实验的三个表现指标:任务平均执行效果、阶段内平均执行任务数量和任务平均执行时间。而纵坐标则是各项指标的数据值。(3)以效果为优先目标(α=1,β=0,γ=0)和以效果和执行时间为优先目标(α=0.5,β=0,γ=0.5)的资源分配方案的执行阶段数量比其他资源分配方案略高。这是因为当以效果为优先目标时,为了减少任务的执行时间,资源分配方案中会包含一部分资源合作执行任务的情况。这种合作会减少单个阶段内执行任务的数量,从而增加了救援任务执行的阶段数量。而在三目标平衡(α=1/3,β=1/3,γ=1/3)的资源分配方案中,虽然以效果为优先目标会使分配方案向着执行阶段数量增加的方向偏移,但是以效率为优先目标会使分配结果向着执行阶段数量减少的方向偏移,两个目标之间有一定的抗衡性,所以整体任务执行的阶段数目没有明显的变化。如图4所示,图中横坐标为不同的目标比重。而纵坐标则是资源分配的阶段数量。综合以上分析,本发明可以提升资源分配方案的灵活性和适应性,能够应对更复杂的救援任务。该发明的最终结果可以提供给相关领域的用户使用,例如应急救援等领域,可以为用户提供较为合理、有效的资源分配方案。以上通过实施例对本发明进行了详细的描述,本领域的技术人员应当理解,在不超出本发明的精神和实质的范围内,对本发明做出一定的修改和变动,比如建立其他资源组合分组方法,或者资源分配方法,仍然可以实现本发明的目的。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1