发明内容
本发明的目的是提供一种保证解的质量的条件下求解的效率高的单星调度的算子构建方法。
为了实现上述目的,本发明提供一种单星调度的算子构建方法,该方法的具体步骤如下:
(1)基于任务集的分布形式构建问题分类器,对单星调度子问题进行分类,分为均匀分布和块状分布;
(2)设定问题域和构建规则库,并在此基础上通过搜索技术的合理嵌套提高求解性能,从而完成蚁群算法引擎的构建;
(3)由问题分类-算子设计规则-得分三元组构建问题算子知识库,所述问题算子知识库,记录每种算子设计在求解每类问题是的历史绩效,从而为今后新的具体问题的求解提供算子设计决策支持。
优选地,所述步骤(2)中,蚁群算法引擎的构建具体如下:
1)设定问题域:
(A) 问题参数
(B) 决策变量
(C) 优化目标
本文研究的单星调度问题时只考虑效益最大化的优化目标:
(D) 问题约束
其中,(2-1)表示任务最多只能被卫星观测一次,(2-2)表示卫星在完成一个任务后将继续移动执行下一个任务,结合式(2-1)可知,此调度为链式调度,(2-3)表示一旦一个任务被选择,则该任务的开始执行时间要在时间窗开始之后,(2-4)表示一旦一个任务被选择,则该任务的执行结束时间要在时间窗结束之前,(2-3)和(2-4)共同表明被调度的任务必须完整地在一个时间窗内执行,(2-5)表示一个任务的执行必须在其准备就绪后才能开始,(2-6)和(2-7)是变量的01约束;
2)构建规则库
构建规则库主要是针对可行解构造和信息素更新两个算子进行设计,其中可行解构造又分为观察任务序的生成和观察时间的确定,具体如下:
(E)可行解构造:
可行解构造阶段不仅仅是任务选择的过程还要对观测的时间进行具体的确定,可行解的构造分为两个阶段,第一阶段是生成任务的序,第二阶段则是具体确定观测时间:
(a)任务序的生成:
(Ⅰ)启发因子的设计:
将任务的优先级作为启发信息的重要部分,其中,单独的定义优先级为启发信息,得到第一种启发因子定义方式即为
;
在启发因子中加入时间窗的冲突信息,并使用“拥挤度”和“机会损失”来衡量时间窗的冲突,所述拥挤度是指机会窗口的选择会受已安排观测的机会窗口的影响,后添加的窗口不能与已安排的窗口产生观测冲突,同时插入一个新的窗口会对其他未安排的窗口产生影响,该影响即为“机会损失”,由此,可以得到时间窗冲突度的一个定量的衡量方法,把机会窗口的冲突分为与已安排观测的机会窗口的冲突,即拥挤度记为
,与未安排观测的机会窗口的冲突情况,即机会损失记为
,则可以定义窗口冲突的启发信息为:
接下来要具体介绍几种冲突度的计算方法,在此之前,先对几个定义进行介绍:时间窗交叉:若
在
之前(按时间窗的起点排序),
与
交叉的定义为:
;观测冲突:时间窗
与已安排观测的任务i存在观测冲突定义为:
;
最后,考虑到多时间窗带来的影响,对于一个优先级较高的任务,虽然其在一个时间窗口由于冲突没法得到观测,但可以在其他窗口进行观测,那么在对冲突进行处理时可以考虑先安排优先级相对低些但只有这一个观测机会的任务,从而在启发因子中加上观测机会的影响,定义观测机会的启发信息为
;可以得到四种启发因子的设计方案,即只有优先级信息,优先级信息+窗口冲突信息,优先级信息+观测机会信息,优先级信息+窗口冲突信息+观测机会信息这四种设计;
(Ⅱ)概率选择机制的设计
基于轮盘赌的随机比例概率选择策略和伪随机概率选择机制设计概率选择机制如下:
根据标准蚁群算法的设计思路每只蚂蚁是根据随机比例的概率选择机制来选择下一节点的,如蚂蚁k在节点i根据式(2-8)选择下一节点j,
而伪随机比例的概率选择机制则是设定一个概率
,让蚂蚁以
的选择概率将最大可能的候选点选入路径中,同时不失随机性优化方法的特征,以
的概率采用随机比例的概率选择机制,具体实现思路如(2-9)所示:
其中S代表随机比例概率选择机制;
(b)确定观测时间
在生成序之后,对于观测时间的确定,具有两种策略:
一种是基于最早观测的启发式规则,即在不与已调度任务产生冲突的前提下确定时间窗内最早可以安排观测的时间为实际的执行时间;另一种基于后移空余时间的动态调整的时间确定方法;
所谓后移空余时间就是在不导致任务序列中任何任务违反时间窗约束的情况下,任务i的最大可以推迟执行的时间,以数学公式的形式来表达就是:
其中,
表示任务i在任务序列
中的后移空余时间,
表示任务
的时间窗结束时间,
表示任务i的开始执行时间,
表示任务i的执行持续时间,
表示任务l-1到l的转换时间;
由后移空余时间的概念可以得到当任务i的准备完成时间推迟
后,等待时间与后移空余时间的总和会推迟
的时间,即
将u插入i和i+1之间情况下,记u的后移空余时间为
,注意到插入任务u后,会使任务i+1的准备就绪时间后移,所以不难推出
其中,
所述基于后移空余时间的动态确定时间的方式就是在每次考虑将一个任务插入到已调度序列时,考虑是否可以通过对已调度序列进行微调使得任务可以插入,将上述两种方法结合起来,即先用最早观测的启发式规则确定观测时间,再基于后移空余时间对解进行改进,也就是通过对调度序列的调整,考虑插入未被调度的任务;
(F)信息素更新
(c)基本的信息素更新策略
蚂蚁每走完一步或是完成一次循环后就会对边上的信息素进行更新,更新策略如(2-10)所示;
;
(d)保护精英个体的更新策略
保护精英个体的更新策略是借鉴了遗传算法的精英策略思想,在信息素的更新规则上,给予当前最优解额外的信息素补充,以增强最优解在下次循环中的引导作用,加快收敛速度,其信息素按如下规则更新:
其中,
(e)仅全局最优进行更新的策略:
为了加速收敛速度,该种策略只对每次迭代的最优解进行信息素更新,更新规则如(2-12)所示;
其中,
其中为当前循环中所求得的最优路径解,同时,这种更新策略下还定义了局部更新策略,即针对所有的蚂蚁,在每步转移后都会按如下规则进行局部的信息素更新,
(f)最优最差蚂蚁的信息素更新策略:
为进一步加速收敛速度,在蚁群系统的基础上对最差的蚂蚁进行了额外的信息素的缩减,如下所示,
其余的信息素更新策略与蚁群算法完全相同;
(g)设置最大最小信息素的策略:
上述几种改进均是针对加速收敛速度设计的,但没有对局部收敛问题进行了很好的处理,最大最小蚂蚁系统通过引入
和
较好的避免了算法过早的收敛于局部最优解,具体实现思路如下:将各条路径上的信息素限制于
,若信息素小于
,则将其强制变为
,若信息素大于
,则将其强制变为
;
3)搜索技术的选择与设计:
为了加速算法的收敛性,选择局部搜索算子为该引擎的的搜索算子,局部搜索的基本思想是从某个初始解开始,以迭代的方式反复尝试当前解的邻域,以寻找更好的解来代替当前解,采用局部搜索技术来优化得到的粗糙解可以加速蚁群算法的收敛。
与现有技术相比,本发明所提供的单星调度的算子构建方法,具有以下优点:
1、在任务问题分析的基础上,将单星调度子问题进行分类,从而可以根据子问题的不同设置不同的约束条件,从而提高求解精度;
2、通过设定问题域和构建规则库,并在此基础上通过搜索技术的合理嵌套提高求解性能;在构建规则库时,设计可行解构造和信息素更新,在可行解构造中,根据卫星特点,将观察任务和观察时间综合进行考虑,并针对不同情况设计多种信息素更新策略,从而在保证解的质量的条件下提高求解的效率;
3、设计由(问题分类-算子设计规则-得分)三元组构成的问题算子知识库,记录每种算子设计在求解每类问题时的历史绩效,从而为今后新的具体问题的求解提供算子设计决策支持。
综上所述,本发明所提供的单星调度的算子构建方法,保证解的质量的条件下求解的效率高。
具体实施方式
本发明的目的是提供一种保证解的质量的条件下求解的效率高的单星调度的算子构建方法。
为了使本领域技术人员更好地理解本发明的技术方案,下面结合附图对本发明进行详细描述,本部分的描述仅是示范性和解释性,不应对本发明的保护范围有任何的限制作用。
在一种实施例中,如图1所示,单星调度的算子构建框架由问题分类器,算法引擎和问题算子知识库构成。算法引擎是推荐框架的核心部件,提供算子运行的逻辑环境,并支持问题、算法和决策者信息的交流。本实施中以蚁群算法为例来设计蚁群算法引擎,即用蚁群算法的迭代框架作为算子运行的逻辑环境,并通过问题域和规则库实现问题、算法和决策者知识的交流与融合。问题分类器是算法引擎的输入,是根据对问题特征的抽取进行构建的,如对于任务分配问题,根据卫星能力的不同可以分为容量过载问题,能量过载问题,能量和容量均过载问题,能量和容量均不过载问题。对于一个具体的问题,首先通过问题分类器进行归类,然后利用算法引擎进行求解,求解过程中根据问题算子知识库中记录的同一类型问题的历史求解算子的不同绩效,实现求解该问题的算子的快速选择。所谓问题算子知识库是由(问题分类-算子设计规则-得分)三元组构成,记录每种算子设计在求解每类问题是的历史绩效,从而为今后新的具体问题的求解提供算子设计决策支持。
如图2所示,问题模型的建立要明确问题要求中涉及的所有对象,并分析所涉及对象的属性和对象间的关系。而卫星调度问题涉及的对象包括卫星资源和任务两大类,对象的属性和关系就对应于调度的各种约束,其中任务信息中的需求时间信息是指用户对信息的需求时间范围,图像质量需求包括图像类型、分辨率和最小数据量需求,结合卫星采集速率即可确定卫星对任务的最小成像时间。卫星信息中的姿态机动能力包括最大侧摆能力,敏捷卫星还包括俯仰侧摆的能力。能量供应信息包括单圈最大开机次数,最大成像时间等需求。配对信息中的成像时间需求包括卫星对任务的可见时间窗以及最小成像时间需求,观测角度需求包括根据预处理的结果得到的卫星对任务的侧摆信息以及规划结果中卫星对任务的俯仰信息。
基于对调度问题对象的分析,可以对调度问题进行分类。依据分解优化的思想,问题分类模型的建立也是基于双层来考虑的。第一阶段的任务分配问题的分类是从存储容量和能量方面根据卫星能力和任务需求的供需关系进行分类。第二阶段的单星调度子问题是从姿态机动角度将卫星分为敏捷卫星和非敏捷卫星,对于一个确定的卫星调度问题则是进一步的根据任务的分布情况将其分解为均匀分布和块状分布两类。基于这种分解优化的思想得到问题分类模型如图 3所示。其中卫星能力有很多方面,在本文中只考虑最基本的四种能力指标,载荷类型(常见的有可见光,红外,SAR),分辨率,容量限制和能量的限制。对于成像卫星任务的需求主要体现在对图像类型和成像质量的需求,成像质量的需求体现为对执行该任务的分辨率和观测角度的需求。在第一阶段的任务分配问题中主要是根据图像的成像类型和质量要求进行分配。根据图像对数据量的需求和卫星容量和能量能力的匹配情况可以将任务分配问题分为能量过载、容量过载,能量和容量均不过载,能量和容量均过载四类。对于一个特定的调度器而言,其分类可以依据所分配的任务的分布形式进行分类求解,如分为均匀分布的任务和块状分布的任务。
蚁群算法引擎应该包括迭代框架以及与问题和决策者进行信息交流的接口。为此,本实施例中分别定义了问题域和规则库作为算法与问题和决策者交流的接口,结合蚁群算法本身提供的迭代框架,得到蚁群算法引擎的设计如图 4所示。
蚁群算法的迭代框架是模拟蚂蚁群觅食行为得到的,主要分为可行解的构造和信息素的更新两大模块。对于每一代而言,可以应用一些搜索技术来提高解的质量并加速迭代过程。也就是说,搜索技术是嵌套在迭代框架中,可以将搜索技术抽象为框架中的一个算子。而规则库的构架则是用于充实迭代框架中的各个算子的,是算子的具体实现。蚁群算法迭代框架中的主要算子包括蚂蚁位置初始化、可行解构造、解的评价搜索技术和信息素更新。相应的规则库的构建也根据算子进行分类,分为位置初始化规则集、目标选择规则集、评价规则集、搜索策略集和信息素更新方式集。问题域是算法与问题的接口,通过将问题按照上述所归纳的问题四要素进行抽象整理,从而将各式各样复杂的问题转换为算法可识别的形式。如通过对决策变量的编码可以确定蚂蚁所行走的地图形式,问题的约束定义了算法搜索的可行域,问题的优化目标则定义了算法评价的准则,问题参数会影响算法参数的确定。具体的蚁群算法的引擎如图4所示。此外,通过对问题的特征进行抽取还可以指导规则库的构建。如目标选择规则、局部搜索技术等规则的设计就要严重依赖对问题特征的抽取。
蚁群算法引擎的构建具体如下:
1)设定问题域:
(A) 问题参数
任务的准备就绪时间();
(B) 决策变量
(C) 优化目标
本文研究的单星调度问题时只考虑效益最大化的优化目标:
(D) 问题约束
其中,(2-1)表示任务最多只能被卫星观测一次,(2-2)表示卫星在完成一个任务后将继续移动执行下一个任务,结合式(2-1)可知,此调度为链式调度,(2-3)表示一旦一个任务被选择,则该任务的开始执行时间要在时间窗开始之后,(2-4)表示一旦一个任务被选择,则该任务的执行结束时间要在时间窗结束之前,(2-3)和(2-4)共同表明被调度的任务必须完整地在一个时间窗内执行,(2-5)表示一个任务的执行必须在其准备就绪后才能开始,(2-6)和(2-7)是变量的01约束;
2)构建规则库
如图5所示,构建规则库主要是针对可行解构造和信息素更新两个算子进行设计,其中可行解构造又分为观察任务序的生成和观察时间的确定,具体如下:
(E)可行解构造:
可行解构造阶段不仅仅是任务选择的过程还要对观测的时间进行具体的确定,可行解的构造分为两个阶段,第一阶段是生成任务的序,第二阶段则是具体确定观测时间:
(a)任务序的生成:
(Ⅰ)启发因子的设计:
将任务的优先级作为启发信息的重要部分,其中,单独的定义优先级为启发信息,得到第一种启发因子定义方式即为
;
在启发因子中加入时间窗的冲突信息,并使用“拥挤度”和“机会损失”来衡量时间窗的冲突,所述拥挤度是指机会窗口的选择会受已安排观测的机会窗口的影响,后添加的窗口不能与已安排的窗口产生观测冲突,同时插入一个新的窗口会对其他未安排的窗口产生影响,该影响即为“机会损失”,由此,可以得到时间窗冲突度的一个定量的衡量方法,把机会窗口的冲突分为与已安排观测的机会窗口的冲突,即拥挤度记为
,与未安排观测的机会窗口的冲突情况,即机会损失记为
,则可以定义窗口冲突的启发信息为:
接下来要具体介绍几种冲突度的计算方法,在此之前,先对几个定义进行介绍:时间窗交叉:若
在
之前(按时间窗的起点排序),
与
交叉的定义为:
;观测冲突:时间窗
与已安排观测的任务i存在观测冲突定义为:
;
最后,考虑到多时间窗带来的影响,对于一个优先级较高的任务,虽然其在一个时间窗口由于冲突没法得到观测,但可以在其他窗口进行观测,那么在对冲突进行处理时可以考虑先安排优先级相对低些但只有这一个观测机会的任务,从而在启发因子中加上观测机会的影响,定义观测机会的启发信息为
;可以得到四种启发因子的设计方案,即只有优先级信息,优先级信息+窗口冲突信息,优先级信息+观测机会信息,优先级信息+窗口冲突信息+观测机会信息这四种设计;
(Ⅱ)概率选择机制的设计
基于轮盘赌的随机比例概率选择策略和伪随机概率选择机制设计概率选择机制如下:
根据标准蚁群算法的设计思路每只蚂蚁是根据随机比例的概率选择机制来选择下一节点的,如蚂蚁k在节点i根据式(2-8)选择下一节点j,
而伪随机比例的概率选择机制则是设定一个概率
,让蚂蚁以
的选择概率将最大可能的候选点选入路径中,同时不失随机性优化方法的特征,以
的概率采用随机比例的概率选择机制,具体实现思路如(2-9)所示:
其中S代表随机比例概率选择机制;
(b)确定观测时间
在生成序之后,对于观测时间的确定,具有两种策略:
一种是基于最早观测的启发式规则,即在不与已调度任务产生冲突的前提下确定时间窗内最早可以安排观测的时间为实际的执行时间;另一种基于后移空余时间的动态调整的时间确定方法;
所谓后移空余时间就是在不导致任务序列中任何任务违反时间窗约束的情况下,任务i的最大可以推迟执行的时间,以数学公式的形式来表达就是:
其中,
表示任务i在任务序列
中的后移空余时间,
表示任务
的时间窗结束时间,
表示任务i的开始执行时间,
表示任务i的执行持续时间,
表示任务l-1到l的转换时间;
由后移空余时间的概念可以得到当任务i的准备完成时间推迟
后,等待时间与后移空余时间的总和会推迟
的时间,即
将u插入i和i+1之间情况下,记u的后移空余时间为
,注意到插入任务u后,会使任务i+1的准备就绪时间后移,所以不难推出
其中,
所述基于后移空余时间的动态确定时间的方式就是在每次考虑将一个任务插入到已调度序列时,考虑是否可以通过对已调度序列进行微调使得任务可以插入,将上述两种方法结合起来,即先用最早观测的启发式规则确定观测时间,再基于后移空余时间对解进行改进,也就是通过对调度序列的调整,考虑插入未被调度的任务;
(F)信息素更新
(c)基本的信息素更新策略
蚂蚁每走完一步或是完成一次循环后就会对边上的信息素进行更新,更新策略如(2-10)所示;
其中根据更新策略采用蚁周系统的更新策略
(d)保护精英个体的更新策略
保护精英个体的更新策略是借鉴了遗传算法的精英策略思想,在信息素的更新规则上,给予当前最优解额外的信息素补充,以增强最优解在下次循环中的引导作用,加快收敛速度,其信息素按如下规则更新:
其中,
(e)仅全局最优进行更新的策略:
为了加速收敛速度,该种策略只对每次迭代的最优解进行信息素更新,更新规则如(2-12)所示;
其中,
其中
为当前循环中所求得的最优路径解,同时,这种更新策略下还定义了局部更新策略,即针对所有的蚂蚁,在每步转移后都会按如下规则进行局部的信息素更新,
(f)最优最差蚂蚁的信息素更新策略:
为进一步加速收敛速度,在蚁群系统的基础上对最差的蚂蚁进行了额外的信息素的缩减,如下所示,
其余的信息素更新策略与蚁群算法完全相同;
(g)设置最大最小信息素的策略:
上述几种改进均是针对加速收敛速度设计的,但没有对局部收敛问题进行了很好的处理,最大最小蚂蚁系统通过引入
和
较好的避免了算法过早的收敛于局部最优解,具体实现思路如下:将各条路径上的信息素限制于
,若信息素小于
,则将其强制变为
,若信息素大于
,则将其强制变为
;
3)搜索技术的选择与设计:
为了加速算法的收敛性,选择局部搜索算子为该引擎的的搜索算子,局部搜索的基本思想是从某个初始解开始,以迭代的方式反复尝试当前解的邻域,以寻找更好的解来代替当前解,采用局部搜索技术来优化得到的粗糙解可以加速蚁群算法的收敛。
与现有技术相比,本实施例所提供的单星调度的算子构建方法,具有以下优点:
1、在任务问题分析的基础上,将单星调度子问题进行分类,从而可以根据子问题的不同设置不同的约束条件,从而提高求解精度;
2、通过设定问题域和构建规则库,并在此基础上通过搜索技术的合理嵌套提高求解性能;在构建规则库时,设计可行解构造和信息素更新,在可行解构造中,根据卫星特点,将观察任务和观察时间综合进行考虑,并针对不同情况设计多种信息素更新策略,从而在保证解的质量的条件下提高求解的效率;
3、设计由(问题分类-算子设计规则-得分)三元组构成的问题算子知识库,记录每种算子设计在求解每类问题时的历史绩效,从而为今后新的具体问题的求解提供算子设计决策支持。
综上所述,本实施例所提供的单星调度的算子构建方法,保证解的质量的条件下求解的效率高。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括哪些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。以上所述仅是本发明的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其它场合的,均应视为本发明的保护范围。