一种面向敏捷卫星调度的自适应大邻域搜索方法与流程

文档序号:11590797阅读:458来源:国知局

本发明涉及卫星技术领域,特别是涉及一种面向敏捷卫星调度的自适应大邻域搜索方法。



背景技术:

对地观测卫星(earthobservationsatellite,eos)作为主要的太空观测平台,能够通过星载照相机对地面目标进行成像,并通过星地链路将所拍摄的照片发回地面。对地观测卫星具有视场宽,不受国界线限制等特点,得到越来越多国家的青睐,成为太空信息的主要来源。随着卫星技术的发展,卫星图像在国民经济发展、人道主义救援和军事活动等领域发挥了越来越重要的作用,卫星成像需求也因此与日俱增,对地观测卫星的调度成为制约卫星效能发挥的关键,卫星调度问题也吸引了越来越多研究者的注意。此处的“卫星调度”主要包括确定卫星在什么时刻、以什么模式、对什么任务进行多长时间的观测,并在什么时刻进行什么任务的数据传输等,在满足预先设置的各种约束的条件下,使得卫星的观测收益最大。

敏捷对地观测卫星(agileearthobservationsatellite,aeos)是新一代的对地观测卫星,本文中均简称为“敏捷卫星”。相比传统的对地观测卫星,敏捷卫星具有三个方向的自由度,除了侧摆之外,敏捷卫星还具备俯仰和偏航能力,这使得敏捷卫星能够在过顶目标之前或之后对目标进行成像,进而使得卫星对地面目标的可见时间窗口大大延长,因而敏捷卫星的观测能力得到了极大提高,能够遂行很多复杂任务,如条带拼接和立体成像等,同时也使敏捷卫星调度问题变得更加复杂,其原因在于:敏捷卫星对地面目标的可见时间大于观测所需要的时间,因此只要剩余时间足够卫星完成成像过程,成像活动可以在目标可见时间窗口的任意时刻开始。同时,对敏捷卫星而言,从上一任务完成到后一任务执行前,需要一定的姿态调整与稳定时间。不同的成像开始时间意味着不同的观测角度,导致卫星与上一任务的转换时间改变,因此敏捷卫星调度问题是一个具有时间依赖特性的调度问题。

敏捷卫星成像调度问题已经被证明是一个np-hard的组合优化问题。国内外针对敏捷卫星的成像调度,采取的研究方法多为混合启发式方法。当前的研究主要分为两个角度,第一为最大化成像排序问题(maximumshotsequencingproblem,msp),主要目的是将成像任务在几个连续的成像轨道中调度,通常一个任务可以对应多个时间窗;第二种为最大化成像轨道排序问题(maximumshotorbitsequencingproblem,msop),通常只处理一个轨道,每个成像任务只有一个时间窗。

针对msp问题,liao和yang提出一种滚动调度框架以处理天气的不确定性,采用拉格朗日松弛和线性搜索技术进行求解。dilkina研究了问题的局部优化求解方法,包括模拟退火、爬山法和车轮法等,并得出带有约束船舶的基于排序的搜索算法,该算法对于敏捷卫星成像调度具有最好的效果。habet等人将问题建模为约束规划问题,该模型有两个目标函数,其一为最大化成像收益,其二为最小化任务之间的转换时间总和,并提出一种禁忌搜索算法进行求解。grasset-bourdel提出一种前向年代记算法,并设计了四个决策层确保生成解的可行性。生成解的过程中,如果违反了约束,采用回溯的方法解决。bianchessi和righini研究了cosmo-skymed星座的调度问题。为了确保算法在多平台的可用性,他们提出一种带有前瞻和回溯能力的确定构造算法。bianchessi等扩展了cordeau和laporte的研究,解决了多星多轨道的敏捷卫星调度问题。整个调度过程分为三个阶段,后两阶段采用禁忌搜索算法。采用列生成算法保证用户的最大效用。tangpattanakul等提出一种有偏随机遗传算法解决多目标的敏捷卫星调度问题,最大化成像收益,同时确保不同用户之间的收益比较均衡。

针对msop问题的研究目前比较有限。lemaitre等对敏捷卫星成像调度问题进行了定义,并提出了约束规划和局部搜索两种算法。cordeau和laporte将敏捷卫星调度问题转化为带时间窗口的车辆路径问题(vehicleroutingproblemwithtimewindows,vrptw),提出一种禁忌搜索算法进行求解,该算法的主要思想是将现有解朝着邻域中的最优解转移,同时维护一个已访问解的禁忌列表,以防止算法出现循环,同时在目标函数中引入一个惩罚因子,以松弛成像时间窗口约束。

综上所述,目前的技术对敏捷卫星调度问题的不足主要体现在:

(1)现有技术中,大多将敏捷卫星姿态转换时间简化为固定时间,对于敏捷卫星的时间依赖特性的研究不够深入,没有最大化发挥敏捷卫星的机动能力。

(2)现有技术中的算法,均是针对小规模算例进行的,针对大规模算例的算法效率有待提高。

(3)现有技术中的msop问题由于只处理一个轨道,与事实并不相符。实际上敏捷卫星调度问题需要解决的是同时优化多个轨道的msp问题,其复杂程度相比msop问题大大提高。

(4)现有针对敏捷卫星调度技术中,国外研究较为领先,国内尚属起步阶段,对于我国敏捷卫星调度的研究较为有限。



技术实现要素:

本发明的目的在于提供一种面向敏捷卫星调度的自适应大邻域搜索方法来克服或至少减轻现有技术的上述缺陷中的至少一个。

为实现上述目的,本发明提供一种面向敏捷卫星调度的自适应大邻域搜索方法,所述面向敏捷卫星调度的自适应大邻域搜索方法包括如下步骤:

step1,建立敏捷卫星调度问题的约束满足模型;

step2,进行算法参数初始化;根据step1中约束满足模型求解初始解:利用贪婪规则,将约束满足模型中的任务按照优先级排列,在优先级相同的情形下优先选取成像时间窗口早的任务,生成可行初始解s0,计算其收益为r0,并令初始解s0为当前解sc和最优解sb;

step3,在当前解sc的邻域内进行调整,得到新解s’c调整方法具体包括:

step31,选取一个删除算子,在当前解sc的邻域内进行破坏操作:根据所选择的删除算子定义的选择规则删除当前解sc中的部分任务,得到破坏解,并将被删除的任务存入需求银行;

step32,选取一个插入算子,在破坏解的邻域内进行修复操作:根据所选择的插入算子定义的选择规则在需求银行中选择部分任务,在破坏解中插入,得到修复解,该修复解为新解s’c;

step4,计算新解s’c的收益r’c,如果新解s’c的收益r’c相比当前解sc的收益rc有所提高,则令新解s’c为当前解sc,新解s’c的收益r’c为当前解sc的收益;否则,采用模拟退火机制判定是否接受新解s’c为当前解sc,同时相应更新当前解sc和当前解的收益rc;如果新解s’c的收益r’c相比最优解sb的收益rb有所提高,则令新解s’c为最优解sb,新解s’c的收益r’c为最优解sb的收益rb;

step5,基于step4中计算的结果,更新step3中所选取的全部算子的分数;并在每个包含预设次数的迭代的阶段结束后,根据在此阶段的表现,更新step3中所选取的全部算子的权重以及初始化step3中所选取的全部算子的分数;

step6,如果满足终止条件,输出最优解和最优解的收益值,否则执行step3。

进一步地,step1中的敏捷卫星调度模型具体为:

s.t.

hi+di+trans(i,i+1)≤hi+1(5)

上述各公式中:

公式(1)是目标函数,所有观测任务的优先级之和,xij是一个布尔变量,该变量表示任务ti的第j个窗口是否被调度方案选取,若选取,则为1,否则为0;

约束(2)表示每个任务只能至多被观测一次;

约束(3)和约束(4)中sti*为选取观测的可见时间窗口的开始时间,eti*为选取观测的可见时间窗口的结束时间,dli表示任务的规定最晚观测时间;

约束(5)定义了两个任务之间的姿态转换时间trans(i,i+1),前一任务观测结束加姿态转换时间不能晚于后一观测任务的开始;

约束(6)给出了xij取值的条件,当窗口被包含在调度方案中,则取值为1,否则为0,tobs为输出的观测任务集合,owi为任务ti的观测时间窗口;

约束(7)给出了姿态转换时间的计算方法,其中δg为相邻两个任务观测姿态角的变化值,v1~v4则定义了不同角度变化下的四种姿态调整速度;

约束(8)代表卫星的存储约束,|rk|代表卫星第k个轨道进行成像的数目,m为每个轨道可以进行观测的最大时长。

进一步地,step31中,删除算子包括:

随机删除算子:从当前解中随机选取q个任务删除;

基于优先级的删除算子:从当前解中选取q个优先级最低的任务删除;

基于可见机会的删除算子:从当前解中选取q个观测机会多的任务删除,观测机会由任务的可见时间窗口的数量决定;

基于冲突度的删除算子:删除q个冲突度最高的任务,任务的冲突度定义为与任务的当前观测窗口交叉的其他任务可见时间窗口的数目;

批量删除算子1:该算子将一次性选取多个具有某种共同属性的任务删除,这里定义为删除处于同一轨道的任务,轨道的选取依赖于该轨道已安排任务的优先级之和,优先级小的轨道中的任务将被首先删除,直至满足q个任务;

批量删除算子2:算子将一次性选取多个具有某种共同属性的任务删除,这里定义为删除处于同一轨道的任务,轨道的选取依赖于轨道上已安排任务的数量,优先删除具有最小已安排任务数量的轨道中的任务。

进一步地,step32中,插入算子包括:

贪婪插入算子:为了最大化收益,该算子每次从任务银行中选取优先级最大的任务,并尝试插入;

最少可见机会插入算子:优先选取观测机会少的任务,并尝试插入;

最小冲突度插入算子:优先插入冲突度小的任务,这种任务将引入尽可能少的冲突到新解中。

进一步地,step5中,对所选取算子的分数进行更新的方法包括:

τi=τi+δ1:如果达到新的全局最优解;

τi=τi+δ2:如果新解没有被采纳,但好于当前解,差于最优解;

τi=τi+δ3:如果新解差于当前解,但新解被采纳;

τi=τi+δ4:如果新解没有被采纳;

其中,τi指的是算子当前的分数,δ1、δ2、δ3和δ4分别指的是根据四种不同表现,给对所选取的算子的分数的增量,δ1>δ2>δ3>δ4。

进一步地,step5中,对算子权重进行更新的方法包括:

其中,λ∈[0,1],是一个控制常数,表示算子权重对于每个阶段算子表现变化的敏感程度;

nd和nr分别代表了两类算子的个数;在第一个阶段内,由于算子的没有历史权重,所有的权重初始化为1,算子随机进行选取,但在前20次迭代内,必须使全部算子至少被选中过一次;

每次迭代需要选出一对删除算子和插入算子,采用轮盘赌机制对删除算子进行选取,采用下式计算算子被选中的概率:

其中ωj代表更新过的算子权重;

采用模拟退火机制对没有提高收益的新解进行采纳的判断:令t温度系数为,rc为当前解sc的收益值,当r’c>rc时,则新解s’c被采纳;否则,根据以下概率采纳s’c:

每一次迭代,采用模拟退火标准调整温度值t;第n次迭代时温度值tn=ctn-1,其中c为退火系数;为了确保退火过程缓慢和平稳,初始温度设置为:

本发明针对敏捷卫星调度问题(agilesatelliteschedulingproblem,assp)的时间依赖特性,以最大化观测目标的收益为目标,构建了assp的约束满足模型,并提出了基于自适应大邻域搜索(adaptivelargeneighborhoodsearch,alns)的求解框架,生成无冲突的调度方案。alns算法的优势在于,综合了变邻域结构和大邻域结构的优势:对于大部分的优化问题,都可以确定一系列的启发式规则,这些规则构成了alns的核心部分的算子。每种算子对应一类邻域结构,通过衡量算子表现调整算子被选中的概率,从而改变搜索的邻域结构,提高算法的收敛特性;由于大邻域具有多样性,算法可以以一种结构化的方式探索大部分的解空间,得到的解具有更高的鲁棒性,不容易陷入局部最优。

附图说明

图1是本发明所提供的面向敏捷卫星调度的自适应大邻域搜索方法一优选实施方式的流程示意图。

图2a是利用本发明提供的alns算法和现有的aco算法的任务采取区域分布模式时任务完成率的曲线对比示意图。

图2b是利用本发明提供的alns算法和现有的aco算法的任务采取全球分布模式时任务完成率的曲线对比示意图。

图3a是利用本发明提供的alns算法和现有的aco算法的任务采取区域分布模式时任务收益率的曲线对比示意图。

图3b是利用本发明提供的alns算法和现有的aco算法的任务采取全球分布模式时任务收益率的曲线对比示意图。

具体实施方式

在附图中,使用相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面结合附图对本发明的实施例进行详细说明。

在本发明的描述中,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。

相对于急剧增长的用户需求,敏捷卫星的观测能力还是有限的,因而敏捷卫星调度问题是一个过度订阅问题,为了最大化系统的效能,以最大化观测任务的收益为优化目标。

本实施例提出的面向敏捷卫星调度的自适应大邻域搜索方法包括后文提及的alns算法,alns算法本质上是一个基于多邻域结构的局部搜索框架,是对大邻域搜索算法的改进。根据经验,邻域较小则容易陷入局部最优解,邻域越大,能够搜索到的局部最优解越好,也就能使最终解更精确。但邻域的增大会导致每次迭代的时间延长。因此大邻域搜索需要有效的邻域搜索方法。大邻域搜索算法通过对解的破坏操作和修复操作在解的邻域中进行搜索,在该框架下不同算子通过竞争调整当前解,算子多为一些简单而快速的启发式规则,因此计算时间短。每次迭代中,当前解中的大部分任务被修改,破坏算子与插入算子一起生成新的解,破坏算子用以删除当前解中的任务,插入算子用以插入新的任务。

本实施例提供的alns在大邻域搜索算法的基础上引入了自适应层,使算法在算子选取上具有一定的智能性。alns算法的基本框架如图1所示,内循环基于模拟退火机制。每次循环迭代中,分别选取一个破坏算子和一个插入算子,由自适应层根据算子在之前迭代中的表现控制算子被选取的概率。为最优解的搜索贡献更大的算子被赋予更高的分数,从而提高它在接下来的迭代中被选中的概率,算子的选取采用轮盘赌方法。新的解如果满足了一定的接受条件,则被接受。经过一定次数的迭代后,所有算子的分数被重置,重新计算被选中的概率。整个流程不断迭代,直到满足终止条件。

因此,面向敏捷卫星调度的自适应大邻域搜索方法包括如下步骤:

step1,建立敏捷卫星调度问题的约束满足模型。

在日常的卫星运控中,需要考虑很多包括与资源相关、用户需求以及运行管理相关的约束,为了简化问题,突出研究重点,本实施例只考虑与资源以及与时序相关的几个关键约束。区域目标已经被分解为卫星一次过境可以拍摄的多个条带,若一次过境无法完成,则任务失败;卫星的电量充足;没有考虑卫星任务的回传;存储约束用每个轨道进行成像的最长时间表示;环境方面,可见时间窗口位于地影区时无法成像。

本实施例中的约束满足模型可以简化为:给定任务集合t,第i个任务ti∈t都包含优先级pi和持续时间di,任务ti的可见时间窗口集合为twi。本实施例需要确定每个任务ti的开始时间hi,以最大化可被观测的任务的优先级之和。约束满足模型的输出为一个带有时间和观测角度的任务序列。约束满足模型具体如下:

s.t.

hi+di+trans(i,i+1)≤hi+1(5)

上述各公式中:

公式(1)是目标函数,所有观测任务的优先级之和。公式(1)中:1个任务ti具有多个可见时间窗口,xij是一个布尔变量,该变量表示任务ti的第j个窗口是否被调度方案选取,若选取,则为1,否则为0。

约束(2)表示每个任务ti只能至多被观测一次,每个任务具有多个窗口,至多被选取一次,因此,对于一个任务ti,只能有一个窗口对应的xij等于1,其余都为0。

约束(3)和约束(4)中sti*为选取观测的可见时间窗口的开始时间,eti*为选取观测的可见时间窗口的结束时间,dli表示任务的规定最晚观测时间。因此,约束(3)和约束(4)表示任务的观测时段必须落在其可见时间窗口内,同时不能晚于任务的规定最晚观测时间。

约束(5)定义了两个任务之间的姿态转换时间trans(i,i+1),前一任务观测结束加姿态转换时间不能晚于后一观测任务的开始,即两个相邻任务的时间间隔必须满足任务间的姿态转换时间。

约束(6)给出了xij取值的条件,当窗口被包含在调度方案中,则取值为1,否则为0,其中tobs为输出的观测任务集合,owi为任务ti的观测时间窗口,即任务ti的观测时段。

约束(7)给出了姿态转换时间的计算方法,其中δg为相邻两个任务观测姿态角的变化值,v1~v4则定义了不同角度变化下的四种姿态调整速度。

约束(8)代表卫星的存储约束,其中|rk|代表卫星第k个轨道进行成像的数目,m为每个轨道可以进行观测的最大时长。

step2,首先将算法中涉及的参数进行初始化;根据step1中的模型求解初始解,具体包括:

step21,利用贪婪规则,将约束满足模型中的任务按照优先级排列,在优先级相同的情形下优先选取成像时间窗口早的任务,生成可行初始解s0。

step22,利用生成的可行初始解s0,通过输入上述公式(1),可以计算得到初始解s0的收益为r0。

step23,令初始解s0为当前解sc和最优解sb,即令sc←s0,sb←s0。

step3,在当前解sc的邻域内进行调整,得到新解s’c。

该步骤中,新解通过一系列的破坏和修复邻域操作而得到,为了将alns算法运用于本问题,本步骤分别设计了邻域搜索中的破坏操作和修复操作方法,每种方法都包含了多种操作算子,这些算子决定了解在其邻域中可行的变化,新解通过这些算子的迭代操作而获得。

step3中的“在当前解的邻域内进行调整得到新解”的方法具体包括:

step31,选取一个删除算子,在当前解sc的邻域内进行破坏操作:根据所选择的删除算子定义的选择规则删除当前解sc中的部分任务,得到破坏解,并将被删除的任务存入需求银行;其中,删除算子是用于从当前解中选取一定数量的任务进行删除,进而允许新的任务的插入,所有被删除的任务被存入到需求银行中,需求银行中的所有任务都可以被插入到被破坏的解中。step31中的删除算子包括:

随机删除算子:从当前解中随机选取q个任务删除。

基于优先级的删除算子:从当前解中选取q个优先级最低的任务删除。

基于可见机会的删除算子:从当前解中选取q个观测机会多的任务删除,观测机会由任务的可见时间窗口的数量决定。

基于冲突度的删除算子:删除q个冲突度最高的任务,任务的冲突度定义为与任务的当前观测窗口交叉的其他任务可见时间窗口的数目。

批量删除算子1:该算子将一次性选取多个具有某种共同属性的任务删除,这里定义为删除处于同一轨道的任务,轨道的选取依赖于该轨道已安排任务的优先级之和,优先级小的轨道中的任务将被首先删除,直至满足q个任务。

批量删除算子2:算子将一次性选取多个具有某种共同属性的任务删除,这里定义为删除处于同一轨道的任务,轨道的选取依赖于轨道上已安排任务的数量,优先删除具有最小已安排任务数量的轨道中的任务。

step32,选择一个插入算子,在破坏解的邻域内做修复操作:根据所选择的插入算子定义的选择规则,在需求银行中选择部分任务,并将之插入在破坏解中,得到修复解,该修复解为新解s’c。

该步骤中,插入算子与删除算子相反,插入算子是从需求银行中选取任务,并将其插入到由step31得到的破坏解中,以实现解的修复,进而生成新解。step32中的插入算子包括:

贪婪插入算子:为了最大化收益,该算子每次从任务银行中选取优先级最大的任务,并尝试插入。

最少可见机会插入算子:优先选取观测机会少的任务,并尝试插入。

最小冲突度插入算子:优先插入冲突度小的任务,这种任务将引入尽可能少的冲突到新解中。

step4,通过将step3计算得到的新解s’c输入上述公式(1),可以计算得到新解s’c的收益r’c,比较新解s’c的收益r’c与当前解sc的收益rc和最优解sb的收益rb,具体如下:

如果新解s’c的收益r’c相比当前解sc的收益rc有所提高,则令新解s’c为当前解sc,新解s’c的收益r’c为当前解sc的收益,即sc←s’c,rc←r’c。

如果新解s’c的收益r’c相比当前解sc的收益rc并没有提高,则采用模拟退火机制判定是否接受新解s’c为当前解sc,在采用模拟退火机制判定接受新解为当前解的情形下,相应更新当前解sc和当前解的收益rc。如果判定不接受新解为当前解的情形下,则舍弃掉新解,当前解保持不变,下一次迭代还是在当前解邻域内调整。

如果新解s’c的收益r’c相比最优解sb的收益rb有所提高,则令新解s’c为最优解sb,新解s’c的收益r’c为最优解sb的收益rb,即令sb←s’c,rb←r’c;“最优解”可以理解为到目前为止,算法通过输入上述公式(1)计算得到的收益最大的解。

step5,基于step4中计算的结果,更新step3中所选取的全部算子的分数;并在每个包含预设次数(比如下文出现的)的迭代的阶段结束后,根据在此阶段的表现,更新step3中所选取的全部算子的权重以及初始化step3中所选取的全部算子的分数。

算子的权重包括两个方面:一部分继承自历史阶段,一部分来源于当前阶段算子的分数。

为了保证本发明方法的搜索效率,该步骤设置了自适应层。为了实现算子的自适应选取,为每个算子都设置一个分数和权重,并将根据算子在搜索过程中的表现更新每个算子的分数和权重,在迭代中能够得到全局最优解或者较优解的算子将会获得更高的分数,进而在下阶段迭代中被选中的概率将更高。本发明方法对于算子的选择是基于轮盘赌的选取机制,保证搜索效率高的算子,能够更多地被采用。

本发明方法令每次循环为一个阶段。算子的分数在每次迭代更新;权重则在每个阶段结束时更新,同时,将算子的分数初始化。

一旦一个算子被选中,则该算子的分数根据以下的公式进行更新:

τi=τi+δ1:如果达到新的全局最优解。

τi=τi+δ2:如果新解没有被采纳,但好于当前解,差于最优解。

τi=τi+δ3:如果新解差于当前解,但新解被采纳。

τi=τi+δ4:如果新解没有被采纳。

其中,τi指的是算子当前的分数。δ1、δ2、δ3和δ4分别指的是根据四种不同表现,给对所选取的算子的分数的增量,δ1>δ2>δ3>δ4。

在每个阶段结束后,对算子的权重进行更新的方法包括:

其中,λ∈[0,1],是一个控制常数,表示算子权重对于每个阶段算子表现变化的敏感程度。nd代表删除算子的个数,nr代表插入算子的个数。

在第一个阶段内,由于算子的没有历史权重,所有的权重初始化为1,算子随机进行选取,但在前20次迭代内,必须使全部算子至少被选中过一次。

每次迭代需要选出一对删除算子和插入算子,采用轮盘赌机制对删除算子进行选取,采用下式计算算子被选中的概率:

其中ωj代表更新过的算子权重;

采用模拟退火机制对没有提高收益的新解进行采纳的判断:令t温度系数为,rc为当前解sc的收益值,当r’c>rc时,则新解s’c被采纳;否则,根据以下概率采纳s,c:

每一次迭代,采用模拟退火标准调整温度值t;第n次迭代时温度值tn=ctn-1,其中c为退火系数;为了确保退火过程缓慢和平稳,初始温度设置为:

step6,如果满足终止条件,输出最优解和最优解的收益值,否则执行step3。该步骤中的“终止条件”有两个:1,达到设定的最大迭代次数。2,所有任务都成功调度。该步骤中达到其中任一终止条件即可。

利用本发明提供给的alns对结果进行分析,分析过程如下:

采用c#语言在visualstudio2013中构建模型和算法,并在intelcorei51.70hz,8gbram的笔记本电脑中进行实验。

共设计了两类不同任务分布模式的15个算例用以测试alns算法的适用性,第一类算例中的任务采取区域分布模式,目标点的位置分布在我国经纬范围内,任务数量最少为50个,使用c-50表示,每次增加25个任务,最多为200个任务(c-200);第二类算例中的任务采取全球分布模式,目标点随机分布在全球,任务最少为50个(w-50),每次增加50个,最多为400个任务(w-400)。

为了突出alns的算法性能,同时采用标准蚁群算法(antcolonyoptimization,aco)对问题进行了求解。算法的参数配置方面,alns算法迭代次数为5000次,每次迭代删除任务比例为10%,每次迭代为一个阶段,进行权重的更新,更新参数λ=0.5,算子分数增量为σ1=30,σ2=20,σ3=10,σ4=0,插入任务最大尝试15次,退火系数c=0.9975。aco算法蚂蚁数量为30个,算法最大迭代次数为500次,信息素挥发系数为0.34,随机性选取参数为0.8。两种算法对上述14个算例的计算结果如下表所示:

表1alns与aco算法求解结果对比

主要从任务完成率、收益率以及计算时间三个指标对算法的性能进行评价。任务完成率指的是进行观测的任务占全部具有可见时间窗口的任务的百分比,任务收益率指的是全部已经观测任务的收益之和占全部具有可见时间窗口的任务优先级之和的百分比。表1中已经将两种算法中较优的结果用加粗标出。

从表1可以明显看出,alns在大多数的算例中,任务的完成率、收益率和计算时间都要优于aco。区域分布模式下,alns算法的完成率约比aco算法的完成率高30%~50%,而收益率则高出aco算法约20%~40%,而计算时间则要快2~3倍。在全球分布模式下,alns在任务数量较少时的各项指标均优于aco算法,但差距并不明显,当任务数量增对达到200以上时,alns表现出了强大的优越性,在仅仅比aco算法使用多10%左右的时间下,取得了高20%以上的高完成率与高收益率。

aco算法之所以在任务数量增大时表现下降,是因为将蚂蚁数量限制在30个,导致任务数量增多时,难以找到较优解,这也是aco算法在任务数量增大时耗时小于alns的原因,理论上如果加大蚂蚁数量,得到的任务完成率与收益率会更高,计算时间也会大大提高。但尽管蚂蚁数量较少,aco算法仍然消耗了大量的计算时间,同时,在任务数量较少时,也没有体现出优越性。

图2a、图2b和图3a、图3b展示的是两种算法在两种分布模型下完成任务数量和获得收益的对比情况。可以看出,两种算法在随着任务数量增大的情况下,任务的完成数量和收益值的增长速度变慢,逐渐出现饱和现象。但无论从任务数量还是获得收益来看,alns算法都比aco都具有更好的性能。

因此,综合上述结果,alns在两种分布模式下以及各种任务数量下,均表现出较强的搜索效率,在利用更少的时间的情况下取得了更高的完成率与收益率。

敏捷卫星作为新一代对地观测卫星,具有三个方向的自由度,使得卫星对底面目标的可见时间窗口大大延长,因而观测能力得到极大提高,能够完成更多复杂任务,但也使得其任务调度问题成为具有时间依赖性的复杂组合优化问题。

针对敏捷卫星对地观测任务调度中的时间依赖问题,本实施例提出一种自适应大邻域搜索算法进行求解。共设计了6种删除算子及3种插入算子进行邻域搜索。仿真实验中共生成了两种分布模式下的15组算例,并与蚁群算法求解进行比较。实验结果表明,在两种分布模式下,alns均能在使用更少时间得到更优的解,证明了算法的有效性。

最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。本领域的普通技术人员应当理解:可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1