CN108804220A - 一种基于并行计算的卫星任务规划算法研究的方法 - Google Patents
一种基于并行计算的卫星任务规划算法研究的方法 Download PDFInfo
- Publication number
- CN108804220A CN108804220A CN201810097177.6A CN201810097177A CN108804220A CN 108804220 A CN108804220 A CN 108804220A CN 201810097177 A CN201810097177 A CN 201810097177A CN 108804220 A CN108804220 A CN 108804220A
- Authority
- CN
- China
- Prior art keywords
- task
- satellite
- parallel
- time
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- Biomedical Technology (AREA)
- Educational Administration (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Game Theory and Decision Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于并行计算的卫星任务规划算法研究的方法,包括六个步骤:首先构建多星协同任务的数据库;根据卫星运行的规则和约束,分别得到观测元任务集和接收元任务集;根据卫星的约束条件进行模型假设及约束变量定义,基于模型的假设建立任务调度模型;设计CPU并行计算和GPU并行计算架构;对CPU并行计算和GPU并行计算架构中采用的并行计算算法进行设计;最后对并行计算出的结果进行并行计算性能分析,分析各参数之间的相互关系,得到综合评价指标。本发明在综合考虑卫星任务规划问题并行性及国内外目前主流的并行框架的基础上,采用CPU并行、GPU并行架构来加速解决卫星任务规划问题,本发明可广泛应用于卫星任务规划领域。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于并行计算的卫星任务规划算法研究的方法。
背景技术
进入21世纪以来,我国航天事业实现快速发展,载人航天、月球探测等航天重大科技工程取得突破性进展,空间技术整体水平大幅跃升,空间应用的经济与社会效益显著提高,空间科学取得创新性成果。在未来几年,我国对地观测卫星应用的领域和规模将不断扩大,业务服务能力将不断提升和增强,初步形成对地观测卫星应用体系。
到2020年,在轨运行的卫星将达到上百颗,每颗卫星都将搭载多种不同的载荷,多卫星间协同工作共同完成对地观测任务。
面对如此浩大的工程,既需要未雨绸缪,又需要应对有方。任务规划在整个对地观测卫星业务应用中起着关键的作用,卫星任务规划主要解决如何对多颗卫星资源进行有效的分配与调度,指定卫星的观测计划,以最大限度的完成用户提交的任务,其结果直接影响到对地观测卫星系统的任务执行效果。
随着对地观测卫星技术的发展和地面影像数据需求的增加,在安排的过程中,需考虑诸多的约束,以保证卫星安全可靠的运行和顺利的进行观测任务。为缓解这种供求矛盾,越来越多的对地观测卫星出现在太空中执行对地观测任务。此外,应用场景的复杂性、遥感载荷的多样性,都需要多个卫星、载荷协同配合完成观测任务。
由于对地观测卫星任务规划问题复杂、涉及大量非线性约束、求解目标不唯一,目前有研究者将卫星任务规划问题抽象为组合优化问题,并采用遗传算法、模拟退火算法、粒子群算法等智能优化算法求解该问题,规划出了比较好的方案,使得智能优化算法广泛应用于求解卫星任务规划问题。由于求解卫星任务规划问题的算法普遍比较耗时,算法的瓶颈主要在于处理约束耗时过长,如用遗传算法求解日规模问题耗时会达到分钟级别,与实际工程项目要求的高时效性有一定的差距。特别是对于求解更大规模的月规划、年规划问题耗时会达到小时级别,这是实际工程中无法容忍的时间,所以在提高规划结果的同时如何提高算法的效率是实际工程问题中亟需研究和解决的问题。
卫星任务规划在时间上具有明显的周期性的特点,可以根据时间点划分为若干个独立的任务集,各个任务集独立并行求解,该问题具有内在并行性。由于智能优化算法通用性强、不依赖于特定问题、搜索效率高、适用于大规模求解问题,目前对于卫星任务规划这样复杂的优化问题可采用智能搜索算法求解。结合卫星任务规划问题本身的并行性和智能优化算法的内在并行性,可以考虑利用并行计算提高卫星规划算法的效率,从而大幅度的减少算法的运行时间。
从计算机诞生以来,人类对于计算性能的追求从未停止,作为高性能计算和超级计算的核心技术,并行计算是充分利用资源加速计算的主要途径。并行计算,简单地讲就是在并行计算机上或单机上并行地做计算。目前,并行计算主要集中在高端应用领域,例如气象、石油、航天航空。这是由硬软件的复杂性和成本的高昂性所决定的。多核CPU的研制成功,使单机的运算效率得到了进一步的提高。
多核技术和并行计算理念在PC中的运用,引起IT界的变化甚至是变革。在IT界,在高端,例如银行的数据处理中心,电信部门的交换中心,将以并行计算为主,而中低端领域,例如个人的PDA、手机等嵌入式设备,也极有可能会支持并行计算。机群系统、网络技术和多核技术使并行计算走向大众化,主要原因在于它克服了复杂性和高昂价格这两个关键性因素,并带来了更快的速度和更高的性能。
近年来,随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU 完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(General Purpose computing on graphics processing units,基于GPU的通用计算)。CPU+GPU是一个强大的组合,因为CPU包含几个专为串行处理而优化的核心,而GPU则由数以千计更小、更节能的核心组成,这些核心专为提供强劲的并行性能而设计。程序的串行部分在CPU上运行,而并行部分则在GPU上运行。 GPU已经发展到成熟阶段,可轻松执行现实生活中的各种应用程序,而且程序运行速度已远远超过使用多核系统时的情形。未来计算架构将是并行核心GPU与多核CPU共同运行的混合型系统。
发明内容
针对上述存在的技术问题,本发明在综合考虑卫星任务规划问题并行性及国内外目前主流的并行框架的基础上,采用CPU并行、GPU并行架构来加速求解卫星任务规划问题,同时根据卫星任务规划具有复杂约束的特点采用智能优化算法来评价各类并行架构的并行效率,对这些并行架构的并行加速比和效率进行完整的比较分析。
一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,包括以下步骤:
S101:构建能够提供卫星任务规划所必需的物理数据的多星协同任务的数据库;
S102:根据卫星运行的规则和约束,分别对观测元任务信息和接收元任务信息建立可用资源和可见时间窗口的映射关系,分别得到观测元任务集和接收元任务集;
S103:排列卫星的约束条件,根据卫星的约束条件进行模型假设及约束变量定义,基于模型的假设建立任务调度模型;
S104:根据所述任务调度模型设计CPU并行计算和GPU并行计算架构;
S105:根据所述CPU并行计算架构设计并行计算算法,以及根据所述GPU并行计算架构设计覆盖率计算并行算法;
S106:对并行计算出的结果进行并行计算性能分析,通过问题规模、运算效率和收敛变化情况三个方面的评价,分析各参数之间的相互关系,得到并行计算方法的综合评价指标。
进一步的,在步骤S101中,所述数据库存放包括观测元任务信息、接收元任务信息、任务规划预案信息、任务处理配置信息、接收任务规划预案信息和观测任务规划预案信息。
进一步的,在步骤S103中,所述卫星的约束条件中具体考虑的约束有数传固存约束、数传模式、侧摆次数、观测和接收两个部分的工作时间、太阳高度角、侧摆角度约束。
进一步的,在步骤S103中,所述模型假设及约束变量定义具体的步骤是:
S401、共有m个可视时间窗口,记为时间窗口Wi的开始时间和结束时间Ei;
S402、共有n个要完成的任务,记为A={a1,a2,···,an},每个任务所需时间为D={d1,d2,···,dn},优先级为P={p1,p2,···,pn};
S403、第j个任务的开始时间变量记为sj,结束时间变量为ej;
S404、定义任务决策变量tj,如果任务能够完成,则tj=1,反之,tj=0;
S405、天线转换时间r,即地面站在完成意向任务之后,执行下一个任务所需的天线姿态调整时间;
S406、指令模板要求的成像之前模板时间为Tcs、成像之后模板时间Ce,指令模板间隔It;
S407、卫星最大固存为M,单位时间的观测数据占用固存为mj,假设在第j个记录文件放入固存之前固存占用量为Mj;
S408、定义一个任务数传模式变量Pj,如果任务做记录模式,则Pj=1,如果任务做实传模式,则 Pj=0;
S409、调度开始时间为Tj,调度截至时间为TE;
S410、单圈次最大观测时长为To,单圈次最大接收时长为Tr;
S411、第i个接收任务的开始时间变量记为swi,结束时间变量为ewi;
S412、定义接收任务决策变量ki,如果任务能够完成,则ki=1,反之,ki=0。
进一步的,在步骤S103中,所述建立任务调度模型具体的步骤是:
S501、优化目标:
(1)max:表示完成任务的优先级之和最大;
(2)max:tj={0,1},表示完成任务数最大,即总的完成任务数量;
(3)max:tj={0,1},表示完成任务的观测时长之和最大;
(4)max:M=αf(A)+βf2(A)+γf3(A),tj={0,1},其中α、β、γ为影响因子,并且α+β+γ=1;表示结合(1)和(3),对两个目标设置不同的权重得到新的规划目标;
S502、考虑约束:
(5)对于如果Pj=0,则使得tjsj≥Si,1≤j≤n,1≤i≤m,表示当aj做实传模式时如果任务在时间窗口Wi内执行,那么任务的开始时间必须在相应的时间窗口的开始时间之后;
(6)对于如果Pj=0,则使得tjej≤Ei,1≤j≤n,1≤i≤m,表示当aj做实传模式时任务的结束时间必须在相应的时间窗口的结束时间之前,式(4)、(5)限定做实传的任务必须在对应的时间窗口之内完成;
(7)Ts≤sj≤TE,Ts≤ej≤TE,1≤j≤n,表示所有任务的开始和结束时间必须在规定的时间段 [Ts,TE]之内;
(8)tjh(ejh+Cs+Ce+It)≤tjbsjb,1≤j≤n,1≤jh≤jb≤n,其中:jh、jb分别表示观测元任务序列中前后两个相邻的任务序号;表示所有任务的结束时间加上指令模板起止时间和指令模板间隔时间都不大于其后执行的观测任务开始时间;
(9)Mj+tj(ej-sj)mj≤M,1≤j≤n,Mj<M,表示固存占用量加上当前记录文件固存占用量必须不超过卫星最大固存;
(10)s≤j≤e,1≤s≤e≤n,其中:s、e表示单圈次中第一个和最后一个任务的序号,表示单圈次中观测元任务总的时长必须不超过单圈次最大观测时长;
(11)s'≤i≤e',1≤s'≤e'≤m,其中:s'、e'表示单圈次中第一个和最后一个任务的序号,表示单圈次中接收任务总的时长必须不超过单圈次最大接收时长。
进一步的,在步骤S105中,所述采用的四种算法具体为差分进化算法、禁忌搜索算法、模拟退火算法和粒子群算法。
进一步的,还涉及一种存储设备,所述存储设备存储指令及数据用于实现权利要求1~7所述的任意一种基于并行计算的卫星任务规划算法研究的方法。
进一步的,还涉及一种基于并行计算的卫星任务规划算法研究的装置,包括:处理器及所述存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现权利要求1~7所述的任意一种基于并行计算的卫星任务规划算法研究的方法。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的一种基于并行计算的卫星任务规划算法研究的方法流程图;
图2是本发明的观测任务映射关系图;
图3是本发明的接收任务映射关系图;
图4是本发明的主从式并行结构模型图;
图5是本发明的主从式并行结构流程图;
图6是本发明的基于CUDA架构的GPU并行设计框架图;
图7是本发明的并行化后的DE执行框图;
图8是本发明的种群初始化串行实现框图;
图9是本发明的禁忌搜索算法并行化设计图;
图10是本发明的模拟退火算法并行化设计图;
图11是本发明的粒子群算法并行化设计图;
图12是本发明的基于并行计算的卫星任务规划算法的综合评价方案流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
如图1所示,本发明一种基于并行计算的卫星任务规划算法研究的方法分为六个步骤,每个步骤的具体实施方式如下:
一、数据设计
(1)数据构成
本发明所需的数据以数据库的形式存放。数据库中既包含描述卫星、载荷、目标的特性数据,也包含任务规划所需的逻辑数据,这些数据是进行任务规划的基本数据支撑。
本发明将数据库中的资源数据划分为两类:基础资源数据和扩展资源数据。基础资源数据包含基本的卫星数据、载荷数据和目标数据;扩展资源数据则包括任务规划级的各种元数据和预案、方案信息。
(2)基础数据表
基础数据表主要用于存放基础资源数据,主要包括:观测元任务信息表、接收元任务信息表。这些数据用于为基于并行计算的卫星任务规划的可行性、正确性验证提供数据支撑。
观测元任务信息表,存放任务规划中的描述观测任务的基本数据单位——观测元任务的基本信息。包括任务处理批号、观测元任务编号、初步规划结果编号、观测需求编号、需求名称、任务名称、任务名称、用户ID、观测类型、卫星代号、传感器要求、传感器模式、光谱、观测次数要求、观测频度要求、有效起始时间、有效结束时间、数据获取最晚时间、优先级、区域类型、中心经度、中心纬度、左上角经度、左上角纬度、右上角经度、右上角纬度、左下角经度、左下角纬度、右下角经度、右下角纬度、轨道圈号、侧视角、太阳高度角、云量等级、指定接收资源、指定实传、子需求编号、指定数传圈号、定标模式、极化方式、波位、压缩比等字段。
接收元任务信息表,存放任务规划中的描述接收任务的基本数据单位——接收元任务的基本信息。包括任务处理批号、接收元任务编号、卫星代号、地面站代号、轨道圈号、进站时间、接收开始时间、接收结束时间、出站时间、最高仰角、指定接收的观测元任务编号、状态、入库时间、地面站位于星下点轨迹的位置:左/右、天线编号等字段。
(3)扩展数据表
扩展数据表主要用于存放任务规划中所需的包含各种约束信息的复杂工程性数据。这些数据用于为基于并行的卫星任务规划的应用性、有效性、其面对复杂约束的性能验证提供数据支撑。
任务规划预案信息表,用于存放任务规划预案的基本信息,描述任务规划的结果。包括方案编号、每个可选方案的评价值、任务完成数量、任务完成率、资源占用率、入库时间、方案描述等字段。
任务处理配置信息表,存放任务处理配置信息,包括所在的任务处理批号、时间、卫星代号等。包括任务处理批号、处理开始时间、处理结束时间、参与卫星代号、参与地面站代号、状态、入库时间、类型等字段。
接收任务规划预案信息表,存放算法完成后,任务规划的结果信息(即接收任务预案配置信息)。包括子项序号、方案编号、观测元任务编号、接收资源代号、卫星代号、轨道圈号、接收开始时间、接收结束时间、数传模式、入库时间、地面站位于星下点轨迹的位置:左/右、天线编号等字段。
观测任务规划预案信息表,存放并行任务规划的结果信息(即观测任务预案配置信息)。包括子项序号、方案编号、卫星代号、轨道圈号、数传模式、观测开始时间、观测结束时间、观测元任务编号、传感器模式、传感器类型、侧视角、太阳高度角、开关机序号、压缩比、波位、入库时间、需求编号、未安排原因、子需求编号、压缩原因、定标模式、极化方式等字段。
二、任务规划
(1)数据来源
对卫星观测效率优化的问题来说,最大的特点和难点就是涉及的因素繁多,约束条件十分复杂,而且有的约束条件非常难以用数学模型进行量化。比如说时间窗口的约束条件,是卫星观测效率优化中无法回避的问题,它的计算涉及到轨道方程,计算过程十分复杂,如果将其具体量化到模型中,模型会变得十分复杂,也会给模型求解带来诸多不便。本发明的规划对象是逻辑资源,即观测元任务集和接收元任务集,也就是元任务。
(2)元任务集
逻辑资源的实质是一系列具有特定时间窗口的观测能力或接收能力的抽象。其形成过程实际是由任务列表到资源能力表的数据查询和转换,最终形成逻辑资源列表。
对于观测任务的逻辑资源,通常涉及的要素有:观测任务、载荷类型要求及卫星时间窗口。假设待成像的任务集为,卫星个数为k,载荷个数为m,对每个成像任务,如果具有可用资源和可见时间窗口 (可见时间窗口一般不止一个),调度预处理后,我们可以建立如图2的映射关系(其中m≥k):
在图2中,如果任务和时间窗口之间存在路径,则表示这个时间窗口在任务的可选时间窗口集中。将所有的可选时间窗口集定义为观测元任务集。
同样的,对于接收任务的逻辑资源,通常涉及的要素包含卫星已观测的任务、地面站天线接收时间窗。假设卫星个数为k,地面站个数为g,天线个数为q,对每个地面站,如果它与卫星之间存在可见的时间窗口,则可以执行数据下传,调度预处理后,我们可以建立如图3的映射关系(其中q≥g):
在图3中,如果卫星和地面站天线时间窗口之间存在路径,则表示这个时间窗口在可选接收时间窗口集中。将所有的可选接收时间窗口集定义为接收元任务集。
(3)任务规划定义
卫星根据用户提出的观测任务需求,对地面目标进行观测,在卫星的视场范围内利用星载遥感观测设备来进行数据采集。根据卫星与地面观测目标的相对位置,卫星通常有侧摆和不侧摆两种姿态,当地面目标在星下点附近,卫星不侧摆就可以在视场角内对其进行观测。当地面目标超出不侧摆时卫星观测的视场角时,则需要通过侧摆来完成观测需求。卫星在执行侧摆时需要消耗能量,由于卫星能量有限,所以它有单圈次最大侧摆次数限制,即在单圈次内最多只能执行多少次侧摆动作。卫星进行观测时同样需要消耗能量,因此无法长时间持续观测,在单圈次内有一个最大观测时长约束。对地面目标进行观测时,如果不是采用实时下传模式,则需要将观测所得的图像信息暂时存储于星载的大容量存储器上,然后通过一定的途径下传至地面站。由于地面站天线接收能力的限制,也有一个单圈次最大接收时长约束。数据下传跟数据采集一样,需要在一定的接收时间窗口才能进行。但这样的接收时间窗口资源是有限的,这就带来一个问题,当观测任务成像生成的数据比较多,不能及时下传时,会导致星载存储容量被完全占用,后面其他的观测任务成像数据无法存储的问题,也即卫星任务规划存在卫星最大存储能力的约束。面对卫星如此众多的约束要求,如何规划及约束处理,并使得效益最优是本发明研究的重点内容之一。
卫星任务规划的建模与优化往往涉及到诸多的约束条件,而且其中大部分约束条件十分复杂,往往涉及到多个学科领域的专业知识。要想完全考虑这些约束条件往往十分困难。因此,本发明只考虑与所研究的问题直接相关的因素与约束条件,考虑的约束有数传固存约束、数传模式、侧摆次数、工作时间 (分为观测、接收两个部分)、太阳高度角、侧摆角度约束。对相关约束与冲突定义如表-1所示。
表-1约束与冲突表
综上,卫星的约束条件较多,且较为复杂,因而卫星约束处理计算量大,在整个卫星任务规划中往往较为耗时。在传统的串行算法中,约束处理的耗时会让整个算法的运行时间大大增加,这就需要进行设计并使用智能优化算法并行的方式来提高求解效率。
三、建立模型
本发明从逻辑资源列表出发,将每个观测时间窗口具体化为一个观测元任务,这些观测元任务有着固定的时间顺序,规划的目标是对于每个任务选择做或者不做。
I.模型假设及约束变量定义
针对上述的约束,进行合理假设及约束变量的定义:
(1)假设现共有m个可视时间窗口,记为时间窗口Wi的开始时间和结束时间Ei。
(2)假设有n个要完成的任务,记为A={a1,a2,···,an};每个任务所需时间为 D={d1,d2,···,dn},优先级为P={p1,p2,···,pn};
(3)第j个任务的开始时间变量记为sj,结束时间变量为ej;
(4)定义任务决策变量tj,如果任务能够完成,则tj=1,反之,tj=0;
(5)天线转换时间r,即地面站在完成意向任务之后,执行下一个任务所需的天线姿态调整时间 (这里假设天线转换时间是统一的);
(6)指令模板要求的成像之前模板时间为Tcs、成像之后模板时间Ce(假设实传和记录模板时间相同),指令模板间隔It;
(7)卫星最大固存为M,单位时间的观测数据占用固存为mj,假设在第j个记录文件放入固存之前固存占用量为Mj;
(8)定义一个任务数传模式变量Pj,如果任务做记录模式,则Pj=1,如果任务做实传模式,则 Pj=0;
(9)调度开始时间为Tj,调度截至时间为TE;
(10)单圈次最大观测时长为To,单圈次最大接收时长为Tr;
(11)第i个接收任务的开始时间变量记为swi,结束时间变量为ewi;
(12)定义接收任务决策变量ki,如果任务能够完成,则ki=1,反之,ki=0;
II.模型表示
基于模型的假设,建立如下任务调度模型。
优化目标:
(1)max:表示完成任务的优先级之和最大;
(2)max:tj={0,1},表示完成任务数最大,即总的完成任务数量;
(3)max:tj={0,1},表示完成任务的观测时长之和最大;
(4)max:M=αf(A)+βf2(A)+γf3(A),tj={0,1},其中α、β、γ为影响因子,并且α+β+γ=1;表示结合(1)和(3),对两个目标设置不同的权重得到新的规划目标;
考虑约束:
(5)对于如果Pj=0,则使得tjsj≥Si,1≤j≤n,1≤i≤m,表示当aj做实传模式时如果任务在时间窗口Wi内执行,那么任务的开始时间必须在相应的时间窗口的开始时间之后;
(6)对于如果Pj=0,则使得tjej≤Ei,1≤j≤n,1≤i≤m,表示当aj做实传模式时任务的结束时间必须在相应的时间窗口的结束时间之前,式(4)、(5)限定做实传的任务必须在对应的时间窗口之内完成;
(7)Ts≤sj≤TE,Ts≤ej≤TE,1≤j≤n,表示所有任务的开始和结束时间必须在规定的时间段 [Ts,TE]之内;
(8)tjh(ejh+Cs+Ce+It)≤tjbsjb,1≤j≤n,1≤jh≤jb≤n,其中:jh、jb分别表示观测元任务序列中前后两个相邻的任务序号;表示所有任务的结束时间加上指令模板起止时间和指令模板间隔时间都不大于其后执行的观测任务开始时间;
(9)Mj+tj(ej-sj)mj≤M,1≤j≤n,Mj<M,表示固存占用量加上当前记录文件固存占用量必须不超过卫星最大固存;
(10)s≤j≤e,1≤s≤e≤n,其中:s、e表示单圈次中第一个和最后一个任务的序号,表示单圈次中观测元任务总的时长必须不超过单圈次最大观测时长;
(11)s'≤i≤e',1≤s'≤e'≤m,其中:s'、e'表示单圈次中第一个和最后一个任务的序号,表示单圈次中接收任务总的时长必须不超过单圈次最大接收时长。
四、并行计算设计
本发明采用目前较为主流的两种并行架构:CPU并行计算、GPU并行计算架构。其中CPU并行计算中包括主从式并行模型、粗粒度并行模型、细粒度并行模型及混合并行模型,其中智能优化算法由于其具备天然的算法并行性,因此本发明采用CPU并行架构对智能算法进行优化,并基于不同的并行模型,采用 Intel TBB并行技术对模型进行改进,形成面向任务的改进优化方法,通过相关的模板类,优化规划算法中最为耗时的循环迭代和循环赋值,将每个解向量的求解过程分配到不同线程,充分利用计算机多核的资源优势,实现算法的并行化。
相较于CPU采用了复杂的控制逻辑和分支预测以及大量的缓存来提高少数执行流水线的效率,对延迟极为敏感,GPU则是通过大量功能简单的流处理器共同运转来提高计算和数据的整体吞吐。在任务规划过程中,覆盖率计算涉及多个目标的需求覆盖分析,计算量大,耗费时间长,因此本发明在覆盖率计算方面采用GPU并行架构,将大量运算转至GPU上进行处理,减少了CPU端的延迟,提高了计算效率。
(1)CPU并行设计
①主从式并行模型
主从式并行模型的应用场景主要包括两种:单机多核和多机多核,下面分别介绍主从式并行模型在单机多核场景中的具体应用设计。由于算法规划过程中较为耗时的是种群中个体在适应值计算阶段,因此在采用主从式模型并行化的阶段为适应值的计算阶段。模型如图4所示。
1)单机多核
在单机多核环境下,由主处理器在适应值计算阶段,按照主从方式,将整个种群个体通过一定的分配算法分配到各个从处理器,从处理器接收来自主处理器的个体,进行适应值计算及相关处理,处理完毕后将各自的适应值返回给主处理器。主处理器管理整个算法的运行并对从处理器的运行状态进行监控,从处理器只需要接收主处理器的任务请求并对个体进行评价处理,并将结果返回给主处理器。主从并行流程如图5所示。
(2)GPU并行设计
由于本发明所涉及的覆盖率计算模块是基于CUDA架构平台,该平台上的算法是一种CPU+GPU异构模式,CPU作为Host主机端的详细介绍已经前面章节介绍了,GPU是作为协处理器的。主机端(CPU) 在这个试验中需要重点完成下面的一些功能:
1)启动CUDA,并进行初始化工作,接着判断实验环境系统中有没有支持CUDA的设备、选择GPU 计算设备和调用相关函数库头文件等。CUDA系统中通过调用由cutil中的宏所定义的函数 cudaSetDevice()来设置GPU环境,该函数的作用就是启动CUDA。
2)分配主机端(CPU)的内存空间,从数据库中读取相应批号的卫星元任务数据,初始化与程序有关的相关信息。
3)创建设备端(GPU)上的内存空间:调用系统函数CUDA SAFEes CALL(cudaMalloc(size))来创建,其中size表示用以存放数据的GPU一维线状存储器空间大小。
4)把主机内存中的数据复制到设备端(GPU)的存储空间上,这个工作通过调用系统函数CUDA SAFEes CALL(cudaMemcpy())来完成。分三种情况复制数据:
1.cudaMemcpy Device To Host—从设备端(GPU)复制到主机端(CPU);
2.cudaMemcpy Host To Device--从主机端(CPU)复制到设备端(GPU);
3.cudaMemcpy Device To Device—从设备端(GPU)的全局内存中复制到同一CUDA上下文的另一区域中。
5)调用内核函数kernel(设备GPU的设备端的),内核函数在本发明中主要是实现覆盖率计算的网格划分判断操作,计算量大。负责以上这些部门工作的函数为DisCUDA+<dimGrid,dimBlock,0;>(),用设备端(GPU)的存储空间来存入函数计算所得到的结果,最后再复制回CPU内存。
6)分配内存空间(主机端(CPU)的),用于存放设备端(GPU)传回来的数据信息。
7)在存储空间(设备端(GPU)的)中读取数据,并复制传回内存空间(主机端(CPU)的)。
8)释放主机端(CPU)和设备端(GPU)的内存空间。
以上这些是CPU+GPU异构多核编程模式下,在主机端(CPU)上实现的主要功能部分,而以下几个方面的功能是在设备端(GPU)完成的:
1.读取主机端(CPU)数据,计算每个线程对应的block ID和thread ID,设备端(GPU)的线程并行执行,按照算法代码的指令顺序串行执行每个线程内部的内核函数。
2.通过内核函数kernel实现覆盖率计算网格归属条带判断。
3.将计算结果写入设备端(GPU)的存储空间,并复制其结构回主机端(CPU)的内存。
以上是整个基于CUDA架构的GPU并行设计框架如图6所示。
五、并行规划算法设计
本发明选择的规划算法主要分为:差分进化算法、禁忌搜索算法、模拟退火算法以及粒子群算法。这些算法本身非常适合规模的并行计算,各自可以进行独立的种群进化计算,具有内在并行性;这些算法采用种群的方式组织搜索,因而可以同时搜索空间的多个区域,并相互交流信息,具有内涵并行性。并行化这些规划算法的总体目标是:可扩展、可移植、高性能、正确性。可扩展有两个层面的含义,一是随着数据数量增大而性能提升效率也提高;二是当处理器核数增多,仍然有很大的性能提升。可移植性的含义是可以在单核多核等不同配置的机器上运行。高性能是并行化的最终目的,希望通过利用多核资源,提供更高性能的计算需求。正确性则是并行化规划算法的最基本要求,并行后的程序必须和串行程序一样具有同样的运行结果。下面对采用的相关算法进行介绍。
1、差分进化算法算法
差分进化算法具有天然并行性,其并行形式主要有四类:
(1)个体适应度评价内部的并行性;
(2)种群中各个个体适应度评价的并行性;
(3)算法的基本操作内部的并行性;
(4)基于种群分组的并行。
对基于多核CPU的差分进化算法,本文采用的是(2)、(3)两类结合的并行计算形式。对差分进化算法中的选择、交叉、差分变异操作和各个体适应度的评价分别进行并行化,由于这些操作属于轻量级运算,且内部不存在数据的相关性,因此这样的并行形式非常适合内存共享型的CPU计算环境,经过并行化后的DE执行框图如图7所示。
本文采用TBB支持多核处理器并行计算的优势来设计并行差分进化算法,即采用TBB面向对象的并行化方法,通过相关的模板类,优化差分进化算法中最为耗时的基本操作和个体评价操作,同时对种群初始化进行并行化处理,将每个个体的求解过程分配到不同线程,充分利用计算机多核的资源优势,实现算法的并行化,并且采用串行和并行相结合的方法对差分进化算法中最佳个体信息进行更新。
I.种群初始化并行设计
差分进化算法种群初始化操作中,每个个体的基因位随机产生,并对新产生的染色体进行评价操作,主要由initPop()函数实现。
种群初始化串行实现框图如图8所示。从初始化种群的操作来看,其主要是采用了大量循环操作,因此,利用TBB中parallel_for并行模板编写初始化种群个体的模板类,对循环体内的循环元素进行并行化处理,从而提高循环处理的速度。同时,parallel_for可以实现负载均衡,并行执行固定数量的独立循环迭代体。在种群初始化过程中,其实是对每个个体进行同样的操作,循环中对每个个体的基因位随机产生,并对计算其适应值,个体与个体之间没有关联,因此可以并发的处理,并且是安全的。
parallel_for对函数循环体的并行化主要有三个步骤:
第一步:定义在parallel中使用的类,将函数实现放在operator()方法里;
第二步:在实现函数里,定义迭代空间,将循环体划分为子空间,为下一步处理做准备。
第三步:调用parallel_for函数,将迭代空间参数传递给parallel_for参数表,作为第一个参数,将函数实现主体作为第二个参数。
经过三个步骤可以实现对循环并行化处理。
在种群初始化中,由于每个个体执行相同的操作,执行随机函数产生基因,执行个体适应值计算函数。将这个循环并行化就是将循环体转换为在小空间上进行操作的形式。这种形式是标准模板库(STL) 风格的函数对象,每个operator()中将处理一个小空间。
operator()方法的迭代空间参数为blocked_range<size_t>&r。
blocked_range<T>是一个库中定义的模板类,它表示的是一维的迭代空间。
将循环体写成一个对象后,就可以调用模板函数parallel_for,在类parallelBody中,operator() 方法的实现为:
在初始化种群时,使用以下调用方式即可实现并行化初始化种群操作。
其中task_scheduler_init::default_num_threads()使用计算机默认的核心数目,parallel_for 处理种群初始化,采用并行化的方式是parallel/join,将程序分成细粒度的子线程处理,然后再将其合并,从而完成了循环的并行化。
II.差分变异并行化设计
差分进化算法是通过差分策略实现个体变异,这也是区别于遗传算法的重要标志。本发明采用的差分进化算法的差分策略是选取当前演化个体和种群最优个体,将其向量差缩放后与当前演化个体进行向量合成。由于种群最优个体在差分变异操作过程中不会发生改变,且每个个体的染色体相互独立,没有相关性,即并行化差分变异操作是线程安全的,不会产生脏数据,适合利用TBB并行优化。
利用TBB中parallel_for并行模板编写差分变异操作的模板类,模板中实现差分变异操作。使用 TBB定义的blocked_range模板类,将个体经过差分变异后更新当前染色体到种群中。
模板parallel_for会将种群个体差分变异操作的迭代空间打散为一些块,在每个块上运行一个独立的线程。因此,需要将个体基因位变异操作的循环体转变成对块的操作的形式,其中operator()处理一个块,具体实现如下所示。
III.种群个体适应度评价的并行设计
卫星任务规划过程中,最为耗时的操作为染色体适应度计算,涉及卫星常规约束、数传约束、卫星固存约束等复杂处理。本发明对差分进化算法中个体适应度评价使用任务级并行化实现,采用 TBB_scheduler和TBB_task配合使用实现算法并行化。
TBB任务调度器能自动为每一个内核构建线程,然后把开发者创建的逻辑任务(这里为种群中的个体)自动映射到某个工作线程的逻辑池内。当一个工作线程完成了线程池内的任务时,还可以从其他任务池取得任务执行,这就是TBB特有的任务窃取策略,因此,TBB可以实现动态的负载平衡。
本发明以TBB::task为基类派生出新类,扩展出新的任务执行和调度算法。
通过PerformParallel类型的任务来执行适应度计算。步骤是:
1)为任务分配内存空间。内存分配空间操作是通过特定的重载运算符new和task::allocate_root 方法完成的。名字中的root后缀表示所创建的任务没有父任务。它是任务树中的根节点;
2)通过构造函数PerformParallel(this,fitness,newPop,0,0,false)来创建任务,这个函数将重载运算符new中被调用。当任务在步骤3中运行时,将执行任务;
3)运行任务,直到task::spawn_root_and_wait完成。
种群个体适应度评价采用任务并行结构,在粗粒度和细粒度上均有所优化,能最大程度地提高计算效率。
2、禁忌搜索算法并行化设计
禁忌搜索算法是从一个初始可行解出发,选择一系列的特定搜索方向(邻域解)作为试探,向目标函数值变化最多的方向移动。由于TS搜索中对已经进行优化的过程进行了记录和选择,即建立了 Tabu表,同时其搜索性能完全依赖于邻域结构和初解,解向量之间的依赖关系较强,因此,寻找邻域解的过程不适合并行化处理。
本发明对禁忌搜索算法的并行化处理主要集中在对解向量的评价操作。禁忌搜索算法从邻域结构中选取的解向量在计算适应值过程中,每个解向量相互独立,解向量之间的评价操作可以同时执行。
派生TBB::task出新类,实现任务对象的生成,同时实现纯虚函数execute。
调度器持有一个定向图标,每个结点对应一个任务对象。每个任务指向它的继任者,也就是指向等待它完成的任务。如图9所示。
调度器运行任务在两种执行方式深度优先和广度优先间达到平衡。最深层次的通常是最新创建的任务,如果他们能完成,紧接着他们的任务就会被执行(如执行完任务D后执行任务C);执行最浅节点的任务会将树按照广度优先展开,通过任务窃取方式保证负载均衡,实现效益的最大化。
3、模拟退火算法并行化设计
与差分进化算法一样,模拟退火算法并行化处理是在初始化个体和适应值计算,其中初始化个体使用并行模板parallel_for模板,个体适应值计算使用基于任务的并行模板TBB::task,与差分进化算法类似。
卫星任务规划过程中,最为耗时的操作为染色体适应度计算,涉及卫星常规约束、数传约束、卫星固存约束等复杂处理。本文对模拟退火进化算法中对个体适应度评价使用任务级并行化实现,采用 TBB_scheduler和TBB_task配合使用实现算法并行化;细化到每个task计算评价值时采用TBB的 parallel_for()并行计算,如图10所示。
TBB任务调度器能自动为每一个内核构建线程,然后把开发者创建的逻辑任务(这里为种群中的个体)自动映射到某个工作线程的逻辑池内。当一个工作线程完成了线程池内的任务时,还可以从其他任务池取得任务执行,这就是TBB特有的任务窃取策略,因此,TBB可以实现动态的负载平衡。
本发明以TBB::task为基类派生出新类,扩展出新的任务执行和调度算法。
通过SAParallel类型的任务来执行适应度计算。步骤是:
1)为任务分配内存空间。内存分配空间操作是通过特定的重载运算符new和task::allocate_root 方法完成的。名字中的_root后缀表示所创建的任务没有父任务。它是任务树中的根节点;
2)通过构造函数SAParallel(this,0,0,false)来创建任务,这个函数将重载运算符new中被调用。当任务在步骤3中运行时,将执行任务;
3)运行任务,直到task::spawn_root_and_wait完成。
种群个体适应度评价采用任务并行结构,在粗粒度和细粒度上均有所优化,能最大程度地提高计算效率。
4、粒子群算法并行化设计
基于粒子群算法的任务规划算法优化流程图如图11所示,与模拟退火算法一样,粒子群算法并行化处理是在初始化个体和适应值计算,其中初始化个体使用并行模板parallel_for模板,个体适应值计算使用基于任务的并行模板TBB::task,与模拟退火算法类似。
卫星任务规划过程中,最为耗时的操作为染色体适应度计算,涉及卫星常规约束、数传约束、卫星固存约束等复杂处理。对粒子群算法中对个体适应度评价使用任务级并行化实现,采用TBB_scheduler 和TBB_task配合使用实现算法并行化;细化到每个task计算评价值时采用TBB的parallel_for()并行计算。
本发明以TBB::task为基类派生出新类,扩展出新的任务执行和调度算法。
通过PSOParallel类型的任务来执行适应度计算。步骤是:
1)为任务分配内存空间。内存分配空间操作是通过特定的重载运算符new和task::allocate_root 方法完成的。名字中的_root后缀表示所创建的任务没有父任务。它是任务树中的根节点;
2)通过构造函数PSOParallel(this,0,0,false)来创建任务,这个函数将重载运算符new中被调用。当任务在步骤3中运行时,将执行任务;
3)运行任务,直到task::spawn_root_and_wait完成。
种群个体适应度评价采用任务并行结构,在粗粒度和细粒度上均有所优化,能最大程度地提高计算效率,其过程与模拟退火算法基本一致。
六、并行计算性能分析
并行计算性能评价应考虑硬件、系统软件及应用程序之间的关系,尽可能的设计一种无瓶颈、结构支持应用且应用适应结构的均衡系统,而并行计算的评价可以作为一种辅助手段,在保证任务较快完成的前提下尽可能的发挥硬件的计算能力。
对于度量并行计算性能指标的研究,主要是通过算法性能、加速比等信息,分析各参数之间的相互关系,从而得到该并行计算方法的评价指标。
①算法性能评价
I.算法评价对象
评价的研究是卫星任务规划算法。作为一个复杂的综合体,无法用一个严谨的数学形式对卫星任务规划算法进行绝对完整的描述。因此,任务规划算法评价所要考察的具体问题,即为具体规划时,用户普遍关心的算法性能,主要包括以下几个方面:
1)问题规模适应度
问题规模适应度是指:规划算法对不同规模的任务进行规划。不同规模算法的性能可能有所差异,对不同量级的任务规划的效果也不同,在评价规划算法时,应考虑问题规模的大小,和不同的应用场景,对算法的解的影响。主要表现为并行后的程序是否串行程序具有一样同样的运行结果。
2)运算效率
运算效率是评价并行算法性能的一项重要指标。规划算法的运算效率越高,可能完成的任务数就越多,规划效益就越好。主要表现为规划耗时。
3)收敛速度
并行化的规划算法收敛速度可能发生改变,在评价并行算法时,需要对算法收敛速度进行评价。
实施卫星任务规划算法评价,就是要结合规划任务和规划方案,综合考察规划算法对上述几个方面的满足情况,统计计算各个指标的评价值,给出定量和定性的评价结论。
II.评价方案的总体设计
本发明在对卫星任务规划问题及规划算法进行深入研究的基础上,提出了基于并行计算的卫星任务规划算法的综合评价方案,如图12所示。卫星任务规划算法综合评价方案包括算法规划测试、规划结果评价两部分,下面给出具体介绍:
1)算法规划测试
算法规划测试部分的主要工作是输入测试数据,驱动待评价算法,得到规划结果。这一过程可以多次进行,即在一次规划结束后,还可以重新输入不同的测试数据,调用待评价算法,获得多次规划的结果并计算平均值。测试数据包括观测元任务集和接收元任务集。
实施步骤如下:
1.首先根据评价目的输入测试数据;
2.然后调用待评价算法对输入数据进行规划,得到规划结果;
3.选择操作模式,或者重新进行规划,或者进入规划结果评价阶段。
2)规划结果评价
规划结果评价的主要工作是结合测试数据和规划结果,根据评价指标对待评价算法进行统计分析,得到评价结论。
实施步骤如下:
1.统计分析测试数据和规划结果,计算各个评价指标值;
2.采用综合评价的方法,获得综合评价值;
3.同一批测试数据调用不同的规划算法得到的综合评价值进行横向比较,不同测试数据调用同一个规划算法得到的综合评价值进行纵向比较,得到评价结论。
III.评价方法
1)完成任务数
首先比较的是完成任务数,即针对不同的规划规模(应用场景),调用待测试的规划算法,比较各个规划算法完成的任务情况。本发明通过对多组数据进行多次规划,分析规划结果,最终得到比较结果。
在不同的问题规模(应用场景)下采用四种算法进行规划,比较每种算法完成的任务数情况。例如,依次规模为500、1000、1500、3000、4000和5000的任务进行规划,得到每种算法的规划结果,计算相应算法的完成任务数量、运行效率、综合评价值等,并与串行程序进行比较。
对同一个规模的任务调用不同的规划算法完成的任务数进行横向比较,对不同规模的任务调用同一规划算法完成的任务数进行纵向对比,最终得到一张二维表格来显示不同并行规划算法对不同规模的任务规划结果的对比情况。
2)运算效率
并行算法的运行效率是评价算法性能的重要指标,是判断其是否适用于特定规划任务的基础。本发明中对每种算法进行独立规划,规划结果保存在指定文件中,然后,在进行比较分析的时候只需要读取这些指定文件即可以得到规划的结果,从结果中即可以分析出所需要的结论。规划时长是指在规划算法开始规划到规划趋于稳定,直至收敛所需要的时间,这个结果可以作为算法规划效率评价的参考。
下面给出每种算法规划时长的计算方法。对于同一批数据,进行多次的规划,计算其平均值得到规划时长。假设第i次规划时长为Ti,则进行n次规划的
平均规划时长为:
例如,现在需要规划500规模的任务,采用四种并行算法依次对其进行规划,每种算法都规划n次,得到每种算法n次规划的规划时长并计算平均值。比较这四个平均值即可得到每种算法规划效率的对比情况。
3)收敛变化情况
卫星任务规划是一个复杂的问题,用户提出的任务具有复杂性、未知性,不同算法从规划开始到规划趋于稳定的过程必定是不相同的,是有着很多的变化的,这些变化是比较并行算法收敛情况的重要参考。比较各个并行算法的收敛情况,可以从算法收敛速度和解的稳定性两方面来考虑。
比较并行算法收敛速度时,我们假设并行算法一次规划的迭代次数为k次,按以下公式来判断算法是否收敛:
|hi-hk|≤εi∈[1,k]
其中,hi为第i次迭代时的目标函数值,hk为最后一次迭代的目标函数值,ε为一个足够小的正数。
当第i次迭代的目标函数值与最后一次迭代的目标函数值的差值在一个很小的范围内时,我们就近似地认为该算法在第i次迭代时收敛。比较每种算法的i值,就可以比较出这几种并行算法的收敛速度快慢程度。
我们还可以通过画算法收敛变化曲线图来直观表示各算法的收敛情况。分别对算法进行多次规划,对于每一次规划,设定固定的迭代次数,记录规划过程中在某些不同迭代次数时的规划结果。以迭代次数为横坐标、评价值为纵坐标,即可绘制出收敛变化曲线。将四种算法的收敛变化曲线绘制在同一个坐标中,就可以直观地看到每种算法的规划情况,据此可以得出比较结果。
比较解的稳定性时,我们假设每种算法均规划n次,计算规划出来的n个解的平均值,然后计算每种并行算法的解的标准差,标准差越小,说明解的稳定性越好。解的标准差的计算公式如下:
比较各个算法的解的标准差大小,就可以得到各个算法的解的稳定性的比较情况。
4)综合评价
综合评价是指在不同的问题规模下,采用不同的算法进行多次规划,结合以上3个指标,分析4种算法在不同指标下的表现情况,给出一个具体的性能评价结果、对比分析结果。分析结果给出每种算法的适用场景,如不同问题规模下采用哪种算法更优、当任务存在某种特殊性时采用哪种算法更优等。
②并行加速比分析
衡量并行计算程序性能的另一指标就是用最优串行算法的执行时间除以并行程序的执行时间所得到的比值,这就是加速比(speedup)的概念,加速比能够准确描述串行程序并行化之后所获得的性能收益。
本发明采用Amdahl加速比定律进行性能评价,为了表述方便,定义如下参数:n代表节点数目; W是工作量(任务量),W1是应用工作串行分量,Wn代表W中可并行化部分(显然W=W1+Wn); f=W1/W是串行分量的比例,1-f为并行分量比例。其加速比计算如下:
此外,通过获取系统硬件的资源利用率,如CPU使用率、GPU使用率及内存使用率,作为一种辅助手段,可以分析出应用程序的运行性能。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (8)
1.一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,包括以下步骤:
S101:构建能够提供卫星任务规划所必需的物理数据的多星协同任务的数据库;
S102:根据卫星运行的规则和约束,分别对观测元任务信息和接收元任务信息建立可用资源和可见时间窗口的映射关系,分别得到观测元任务集和接收元任务集;
S103:排列卫星的约束条件,根据卫星的约束条件进行模型假设及约束变量定义,基于模型的假设建立任务调度模型;
S104:根据所述任务调度模型设计CPU并行计算和GPU并行计算架构;
S105:根据所述CPU并行计算架构设计并行计算算法,以及根据所述GPU并行计算架构设计覆盖率计算并行算法;
S106:对并行计算出的结果进行并行计算性能分析,通过问题规模、运算效率和收敛变化情况三个方面的评价,分析各参数之间的相互关系,得到并行计算方法的综合评价指标。
2.如权利要求1所述的一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,在步骤S101中,所述数据库存放包括观测元任务信息、接收元任务信息、任务规划预案信息、任务处理配置信息、接收任务规划预案信息和观测任务规划预案信息。
3.如权利要求1所述的一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,在步骤S103中,所述卫星的约束条件中具体考虑的约束有数传固存约束、数传模式、侧摆次数、观测和接收两个部分的工作时间、太阳高度角、侧摆角度约束。
4.如权利要求1所述的一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,在步骤S103中,所述模型假设及约束变量定义具体的步骤是:
S401、共有m个可视时间窗口,记为时间窗口Wi的开始时间和结束时间Ei;
S402、共有n个要完成的任务,记为A={a1,a2,···,an},每个任务所需时间为D={d1,d2,···,dn},优先级为P={p1,p2,···,pn};
S403、第j个任务的开始时间变量记为sj,结束时间变量为ej;
S404、定义任务决策变量tj,如果任务能够完成,则tj=1,反之,tj=0;
S405、天线转换时间r,即地面站在完成意向任务之后,执行下一个任务所需的天线姿态调整时间;
S406、指令模板要求的成像之前模板时间为Tcs、成像之后模板时间Ce,指令模板间隔It;
S407、卫星最大固存为M,单位时间的观测数据占用固存为mj,假设在第j个记录文件放入固存之前固存占用量为Mj;
S408、定义一个任务数传模式变量Pj,如果任务做记录模式,则Pj=1,如果任务做实传模式,则Pj=0;
S409、调度开始时间为Tj,调度截至时间为TE;
S410、单圈次最大观测时长为To,单圈次最大接收时长为Tr;
S411、第i个接收任务的开始时间变量记为swi,结束时间变量为ewi;
S412、定义接收任务决策变量ki,如果任务能够完成,则ki=1,反之,ki=0。
5.如权利要求1所述的一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,在步骤S103中,所述建立任务调度模型具体的步骤是:
S501、优化目标:
(1)表示完成任务的优先级之和最大;
(2)表示完成任务数最大,即总的完成任务数量;
(3)表示完成任务的观测时长之和最大;
(4)max:M=αf(A)+βf2(A)+γf3(A),tj={0,1},其中α、β、γ为影响因子,并且α+β+γ=1;表示结合(1)和(3),对两个目标设置不同的权重得到新的规划目标;
S502、考虑约束:
(5)对于如果Pj=0,则使得tjsj≥Si,1≤j≤n,1≤i≤m,表示当aj做实传模式时如果任务在时间窗口Wi内执行,那么任务的开始时间必须在相应的时间窗口的开始时间之后;
(6)对于如果Pj=0,则使得tjej≤Ei,1≤j≤n,1≤i≤m,表示当aj做实传模式时任务的结束时间必须在相应的时间窗口的结束时间之前,式(4)、(5)限定做实传的任务必须在对应的时间窗口之内完成;
(7)Ts≤sj≤TE,Ts≤ej≤TE,1≤j≤n,表示所有任务的开始和结束时间必须在规定的时间段[Ts,TE]之内;
(8)tjh(ejh+Cs+Ce+It)≤tjbsjb,1≤j≤n,1≤jh≤jb≤n,其中:jh、jb分别表示观测元任务序列中前后两个相邻的任务序号;表示所有任务的结束时间加上指令模板起止时间和指令模板间隔时间都不大于其后执行的观测任务开始时间;
(9)Mj+tj(ej-sj)mj≤M,1≤j≤n,Mj<M,表示固存占用量加上当前记录文件固存占用量必须不超过卫星最大固存;
(10)其中:s、e表示单圈次中第一个和最后一个任务的序号,表示单圈次中观测元任务总的时长必须不超过单圈次最大观测时长;
(11)其中:s'、e'表示单圈次中第一个和最后一个任务的序号,表示单圈次中接收任务总的时长必须不超过单圈次最大接收时长。
6.如权利要求1所述的一种基于并行计算的卫星任务规划算法研究的方法,其特征在于,在步骤S105中,所述采用的四种算法具体为差分进化算法、禁忌搜索算法、模拟退火算法和粒子群算法。
7.一种存储设备,其特征在于,所述存储设备存储指令及数据用于实现权利要求1~6所述的任意一种基于并行计算的卫星任务规划算法研究的方法。
8.一种基于并行计算的卫星任务规划算法研究的装置,其特征在于,包括:处理器及所述存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现权利要求1~6所述的任意一种基于并行计算的卫星任务规划算法研究的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810097177.6A CN108804220A (zh) | 2018-01-31 | 2018-01-31 | 一种基于并行计算的卫星任务规划算法研究的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810097177.6A CN108804220A (zh) | 2018-01-31 | 2018-01-31 | 一种基于并行计算的卫星任务规划算法研究的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108804220A true CN108804220A (zh) | 2018-11-13 |
Family
ID=64095099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810097177.6A Pending CN108804220A (zh) | 2018-01-31 | 2018-01-31 | 一种基于并行计算的卫星任务规划算法研究的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804220A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684688A (zh) * | 2018-12-11 | 2019-04-26 | 上海航天控制技术研究所 | 一种基准载荷与目标载荷交叉定标轨道设计方法 |
CN109741837A (zh) * | 2018-12-24 | 2019-05-10 | 深圳航天东方红海特卫星有限公司 | 一种星上自主成像任务规划系统 |
CN109767128A (zh) * | 2019-01-15 | 2019-05-17 | 中国人民解放军国防科技大学 | 基于机器学习的成像卫星自主任务规划方法 |
CN109933842A (zh) * | 2019-01-23 | 2019-06-25 | 北京航空航天大学 | 一种基于约束满足遗传算法的移动目标单星任务规划方法 |
CN110120833A (zh) * | 2019-05-14 | 2019-08-13 | 中国电子科技集团公司第五十四研究所 | 一种星地协同任务管理系统 |
CN110262884A (zh) * | 2019-06-20 | 2019-09-20 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的核组内多程序多数据流分区并行的运行方法 |
CN110276712A (zh) * | 2018-12-29 | 2019-09-24 | 中国科学院软件研究所 | 星载图像处理装置以及星载图像处理与决策平台 |
CN111114849A (zh) * | 2019-12-25 | 2020-05-08 | 长沙天仪空间科技研究院有限公司 | 一种基于新型拓扑结构的卫星平台系统及其集成方法 |
CN111161126A (zh) * | 2019-12-17 | 2020-05-15 | 北京航空航天大学杭州创新研究院 | 一种基于gpu的并行进化算法的可靠性评估方法 |
CN111612384A (zh) * | 2020-06-23 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种具有时间分辨率约束的多星接力任务规划方法 |
CN111884703A (zh) * | 2020-06-19 | 2020-11-03 | 中国电子科技集团公司第五十四研究所 | 一种基于通信卫星间协同计算的业务请求分配方法 |
CN111913787A (zh) * | 2020-06-19 | 2020-11-10 | 合肥工业大学 | 基于遗传算法的成像卫星调度方法和系统 |
CN111969602A (zh) * | 2020-08-14 | 2020-11-20 | 山东大学 | 一种综合能源系统的日前随机优化调度方法及装置 |
CN112905153A (zh) * | 2020-12-07 | 2021-06-04 | 中国科学院软件研究所 | 一种面向软件定义卫星的软件并行构建方法以及装置 |
CN113625264A (zh) * | 2021-06-16 | 2021-11-09 | 中国铁道科学研究院集团有限公司铁道建筑研究所 | 一种并行处理铁路检测大数据的方法及系统 |
CN113641407A (zh) * | 2021-06-18 | 2021-11-12 | 北京航空航天大学 | 一种基于cpu和gpu的混合并行智能优化方法 |
CN114528106A (zh) * | 2022-02-17 | 2022-05-24 | 西安电子科技大学 | 雷达信号分选中利用gpu加速决策树训练的方法 |
CN114580181A (zh) * | 2022-03-08 | 2022-06-03 | 南京大学 | 基于cuda的巨型星座覆盖性能并行计算方法 |
CN114944999A (zh) * | 2022-04-08 | 2022-08-26 | 北京遥测技术研究所 | 一种基于gpu和粒子群优化算法的高速路由通信系统及方法 |
CN115296717A (zh) * | 2022-06-29 | 2022-11-04 | 航天恒星科技有限公司 | 一种低轨卫星系统地面站天线阵列的调度方法 |
CN115759598A (zh) * | 2022-11-07 | 2023-03-07 | 二十一世纪空间技术应用股份有限公司 | 一种基于多源云量的遥感卫星任务规划方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512479A (zh) * | 2015-12-03 | 2016-04-20 | 中国地质大学(武汉) | 一种多星对地观测任务规划算法的评价方法及装置 |
CN107025664A (zh) * | 2017-04-17 | 2017-08-08 | 梅非 | 基于并行计算的国产遥感卫星快速配准方法 |
-
2018
- 2018-01-31 CN CN201810097177.6A patent/CN108804220A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512479A (zh) * | 2015-12-03 | 2016-04-20 | 中国地质大学(武汉) | 一种多星对地观测任务规划算法的评价方法及装置 |
CN107025664A (zh) * | 2017-04-17 | 2017-08-08 | 梅非 | 基于并行计算的国产遥感卫星快速配准方法 |
Non-Patent Citations (1)
Title |
---|
姜晓: ""基于背景建模的TBB和CUDA并行策略研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684688B (zh) * | 2018-12-11 | 2023-05-30 | 上海航天控制技术研究所 | 一种基准载荷与目标载荷交叉定标轨道设计方法 |
CN109684688A (zh) * | 2018-12-11 | 2019-04-26 | 上海航天控制技术研究所 | 一种基准载荷与目标载荷交叉定标轨道设计方法 |
CN109741837A (zh) * | 2018-12-24 | 2019-05-10 | 深圳航天东方红海特卫星有限公司 | 一种星上自主成像任务规划系统 |
CN109741837B (zh) * | 2018-12-24 | 2020-12-11 | 深圳航天东方红海特卫星有限公司 | 一种星上自主成像任务规划系统 |
CN110276712B (zh) * | 2018-12-29 | 2022-06-28 | 中国科学院软件研究所 | 星载图像处理装置以及星载图像处理与决策平台 |
CN110276712A (zh) * | 2018-12-29 | 2019-09-24 | 中国科学院软件研究所 | 星载图像处理装置以及星载图像处理与决策平台 |
CN109767128A (zh) * | 2019-01-15 | 2019-05-17 | 中国人民解放军国防科技大学 | 基于机器学习的成像卫星自主任务规划方法 |
CN109933842A (zh) * | 2019-01-23 | 2019-06-25 | 北京航空航天大学 | 一种基于约束满足遗传算法的移动目标单星任务规划方法 |
CN109933842B (zh) * | 2019-01-23 | 2021-08-06 | 北京航空航天大学 | 一种基于约束满足遗传算法的移动目标单星任务规划方法 |
CN110120833A (zh) * | 2019-05-14 | 2019-08-13 | 中国电子科技集团公司第五十四研究所 | 一种星地协同任务管理系统 |
CN110262884A (zh) * | 2019-06-20 | 2019-09-20 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的核组内多程序多数据流分区并行的运行方法 |
CN111161126B (zh) * | 2019-12-17 | 2023-06-09 | 北京航空航天大学杭州创新研究院 | 一种基于gpu的并行进化算法的可靠性评估方法 |
CN111161126A (zh) * | 2019-12-17 | 2020-05-15 | 北京航空航天大学杭州创新研究院 | 一种基于gpu的并行进化算法的可靠性评估方法 |
CN111114849A (zh) * | 2019-12-25 | 2020-05-08 | 长沙天仪空间科技研究院有限公司 | 一种基于新型拓扑结构的卫星平台系统及其集成方法 |
CN111114849B (zh) * | 2019-12-25 | 2021-06-29 | 长沙天仪空间科技研究院有限公司 | 一种基于新型拓扑结构的卫星平台系统及其集成方法 |
CN111884703A (zh) * | 2020-06-19 | 2020-11-03 | 中国电子科技集团公司第五十四研究所 | 一种基于通信卫星间协同计算的业务请求分配方法 |
CN111913787A (zh) * | 2020-06-19 | 2020-11-10 | 合肥工业大学 | 基于遗传算法的成像卫星调度方法和系统 |
CN111913787B (zh) * | 2020-06-19 | 2022-10-18 | 合肥工业大学 | 基于遗传算法的成像卫星调度方法和系统 |
CN111612384B (zh) * | 2020-06-23 | 2023-04-25 | 中国人民解放军国防科技大学 | 一种具有时间分辨率约束的多星接力任务规划方法 |
CN111612384A (zh) * | 2020-06-23 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种具有时间分辨率约束的多星接力任务规划方法 |
CN111969602A (zh) * | 2020-08-14 | 2020-11-20 | 山东大学 | 一种综合能源系统的日前随机优化调度方法及装置 |
CN111969602B (zh) * | 2020-08-14 | 2022-02-01 | 山东大学 | 一种综合能源系统的日前随机优化调度方法及装置 |
CN112905153B (zh) * | 2020-12-07 | 2023-10-27 | 中国科学院软件研究所 | 一种面向软件定义卫星的软件并行构建方法以及装置 |
CN112905153A (zh) * | 2020-12-07 | 2021-06-04 | 中国科学院软件研究所 | 一种面向软件定义卫星的软件并行构建方法以及装置 |
CN113625264A (zh) * | 2021-06-16 | 2021-11-09 | 中国铁道科学研究院集团有限公司铁道建筑研究所 | 一种并行处理铁路检测大数据的方法及系统 |
CN113641407A (zh) * | 2021-06-18 | 2021-11-12 | 北京航空航天大学 | 一种基于cpu和gpu的混合并行智能优化方法 |
CN113641407B (zh) * | 2021-06-18 | 2024-03-01 | 北京航空航天大学 | 一种基于cpu和gpu的混合并行智能优化方法 |
CN114528106A (zh) * | 2022-02-17 | 2022-05-24 | 西安电子科技大学 | 雷达信号分选中利用gpu加速决策树训练的方法 |
CN114528106B (zh) * | 2022-02-17 | 2024-05-17 | 西安电子科技大学 | 雷达信号分选中利用gpu加速决策树训练的方法 |
CN114580181A (zh) * | 2022-03-08 | 2022-06-03 | 南京大学 | 基于cuda的巨型星座覆盖性能并行计算方法 |
CN114944999A (zh) * | 2022-04-08 | 2022-08-26 | 北京遥测技术研究所 | 一种基于gpu和粒子群优化算法的高速路由通信系统及方法 |
CN114944999B (zh) * | 2022-04-08 | 2023-10-10 | 北京遥测技术研究所 | 一种基于gpu和粒子群优化算法的高速路由通信系统及方法 |
CN115296717B (zh) * | 2022-06-29 | 2024-05-17 | 航天恒星科技有限公司 | 一种低轨卫星系统地面站天线阵列的调度方法 |
CN115296717A (zh) * | 2022-06-29 | 2022-11-04 | 航天恒星科技有限公司 | 一种低轨卫星系统地面站天线阵列的调度方法 |
CN115759598A (zh) * | 2022-11-07 | 2023-03-07 | 二十一世纪空间技术应用股份有限公司 | 一种基于多源云量的遥感卫星任务规划方法 |
CN115759598B (zh) * | 2022-11-07 | 2023-10-31 | 二十一世纪空间技术应用股份有限公司 | 一种基于多源云量的遥感卫星任务规划方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804220A (zh) | 一种基于并行计算的卫星任务规划算法研究的方法 | |
CN108388958B (zh) | 一种二维姿态机动卫星任务规划技术研究的方法及装置 | |
Johnson et al. | Optimization by simulated annealing: an experimental evaluation; part II, graph coloring and number partitioning | |
CN105159762B (zh) | 基于贪心策略的启发式云计算任务调度方法 | |
Wang et al. | Towards dynamic real-time scheduling for multiple earth observation satellites | |
CN110210700A (zh) | 面向应急响应的基于任务优先级的多星动态任务规划方法 | |
CN103345504B (zh) | 单星调度的算子构建方法 | |
Song et al. | Learning-guided nondominated sorting genetic algorithm II for multi-objective satellite range scheduling problem | |
Yu et al. | Automated runtime-aware scheduling for multi-tenant dnn inference on gpu | |
CN109598939B (zh) | 一种基于多任务多视图学习模型的短时交通预测方法 | |
CN105893319A (zh) | 一种多车道/多核系统和方法 | |
CN109344207B (zh) | 基于北斗扫描的天地一体频谱大数据平台 | |
Ingmar et al. | Modelling diversity of solutions | |
Wang et al. | A massively parallel neural network approach to large-scale Euclidean traveling salesman problems | |
CN109918199A (zh) | 基于gpu的分布式图处理系统 | |
CN107657599A (zh) | 基于混合粒度划分和动态负载分配的遥感图像融合系统并行实现方法 | |
Lu et al. | Balanced coloring for parallel computing applications | |
CN102750732A (zh) | 基于gis系统的土地资源利用变化动态预测模型及其使用方法 | |
CN104680238A (zh) | 多卫星对地协同观测的待观测任务确定方法 | |
CN112232594A (zh) | 一种多星应急观测任务规划方法、装置和计算机设备 | |
Santé et al. | A simulated annealing algorithm for zoning in planning using parallel computing | |
Carratalá-Sáez et al. | Tiled Algorithms for Efficient Task-Parallel ℌ-Matrix Solvers | |
Zhou et al. | Multi-satellite scheduling problem with marginal decreasing imaging duration: An improved adaptive ant colony algorithm | |
Bruder et al. | A hybrid in situ approach for cost efficient image database generation | |
CN105184038A (zh) | 面向资源利用率的成像卫星任务规划绩效评估方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181113 |